NativeWindow
Overview
Provides the native window capability for connection to the EGL.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Since: 8
Summary
Files
Name | Description |
---|---|
external_window.h | Defines the functions for obtaining and using a native window. File to Include: <native_window/external_window.h> |
Structs
Name | Description |
---|---|
Region | Defines the rectangle (dirty region) where the content is to be updated in the local native window. |
OHHDRMetaData | Defines the HDR metadata. |
OHExtDataHandle | Defines the extended data handle. |
Types
Name | Description |
---|---|
OHNativeWindow | Provides the function of accessing the NativeWindow. |
OHNativeWindowBuffer | Provides the function of accessing the NativeWindowBuffer. |
Region | Defines the rectangle (dirty region) where the content is to be updated in the local native window. |
Enums
Name | Description |
---|---|
NativeWindowOperation { SET_BUFFER_GEOMETRY, GET_BUFFER_GEOMETRY, GET_FORMAT, SET_FORMAT, GET_USAGE, SET_USAGE, SET_STRIDE, GET_STRIDE, SET_SWAP_INTERVAL, GET_SWAP_INTERVAL, SET_TIMEOUT, GET_TIMEOUT, SET_COLOR_GAMUT, GET_COLOR_GAMUT, SET_TRANSFORM, GET_TRANSFORM, SET_UI_TIMESTAMP } |
Enumerates the operation codes in the OH_NativeWindow_NativeWindowHandleOpt function. |
OHScalingMode { OH_SCALING_MODE_FREEZE = 0, OH_SCALING_MODE_SCALE_TO_WINDOW, OH_SCALING_MODE_SCALE_CROP, OH_SCALING_MODE_NO_SCALE_CROP } | Enumerates the scaling modes. |
OHHDRMetadataKey { OH_METAKEY_RED_PRIMARY_X = 0, OH_METAKEY_RED_PRIMARY_Y = 1, OH_METAKEY_GREEN_PRIMARY_X = 2, OH_METAKEY_GREEN_PRIMARY_Y = 3, OH_METAKEY_BLUE_PRIMARY_X = 4, OH_METAKEY_BLUE_PRIMARY_Y = 5, OH_METAKEY_WHITE_PRIMARY_X = 6, OH_METAKEY_WHITE_PRIMARY_Y = 7, OH_METAKEY_MAX_LUMINANCE = 8, OH_METAKEY_MIN_LUMINANCE = 9, OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11, OH_METAKEY_HDR10_PLUS = 12, OH_METAKEY_HDR_VIVID = 13 } |
Enumerates the HDR metadata keys. |
Functions
Name | Description |
---|---|
OH_NativeWindow_CreateNativeWindow (void *pSurface) | Creates a NativeWindow instance. A new NativeWindow instance is created each time this function is called. |
OH_NativeWindow_DestroyNativeWindow (OHNativeWindow *window) | Decreases the reference count of a NativeWindow instance by 1 and when the reference count reaches 0, destroys the instance. |
OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer (void *pSurfaceBuffer) | Creates a NativeWindowBuffer instance. A new NativeWindowBuffer instance is created each time this function is called. |
OH_NativeWindow_DestroyNativeWindowBuffer (OHNativeWindowBuffer *buffer) | Decreases the reference count of a NativeWindowBuffer instance by 1 and when the reference count reaches 0, destroys the instance. |
OH_NativeWindow_NativeWindowRequestBuffer (OHNativeWindow *window, OHNativeWindowBuffer **buffer, int *fenceFd) | Requests a NativeWindowBuffer through a NativeWindow instance for content production. |
OH_NativeWindow_NativeWindowFlushBuffer (OHNativeWindow *window, OHNativeWindowBuffer *buffer, int fenceFd, Region region) | Flushes the NativeWindowBuffer filled with the content to the buffer queue through a NativeWindow instance for content consumption. |
OH_NativeWindow_NativeWindowAbortBuffer (OHNativeWindow *window, OHNativeWindowBuffer *buffer) | Returns the NativeWindowBuffer to the buffer queue through a NativeWindow instance, without filling in any content. The NativeWindowBuffer can be used for another request. |
OH_NativeWindow_NativeWindowHandleOpt (OHNativeWindow *window, int code,...) | Sets or obtains the attributes of a native window, including the width, height, and content format. |
OH_NativeWindow_GetBufferHandleFromNative (OHNativeWindowBuffer *buffer) | Obtains the pointer to a BufferHandle of a NativeWindowBuffer instance. |
OH_NativeWindow_NativeObjectReference (void *obj) | Adds the reference count of a native object. |
OH_NativeWindow_NativeObjectUnreference (void *obj) | Decreases the reference count of a native object and when the reference count reaches 0, destroys this object. |
OH_NativeWindow_GetNativeObjectMagic (void *obj) | Obtains the magic ID of a native object. |
OH_NativeWindow_NativeWindowSetScalingMode (OHNativeWindow *window, uint32_t sequence, OHScalingMode scalingMode) | Sets the scaling mode for a native window. |
OH_NativeWindow_NativeWindowSetMetaData (OHNativeWindow *window, uint32_t sequence, int32_t size, const OHHDRMetaData *metaData) | Sets the metadata for a native window. |
OH_NativeWindow_NativeWindowSetMetaDataSet (OHNativeWindow *window, uint32_t sequence, OHHDRMetadataKey key, int32_t size, const uint8_t *metaData) | Sets the metadata set for a native window. |
OH_NativeWindow_NativeWindowSetTunnelHandle (OHNativeWindow *window, const OHExtDataHandle *handle) | Sets a tunnel handle for a native window. |
Enum Description
NativeWindowOperation
enum NativeWindowOperation
Description
Enumerates the operation codes in the OH_NativeWindow_NativeWindowHandleOpt function.
Name | Description |
---|---|
SET_BUFFER_GEOMETRY | Setting the geometry for the local window buffer. Variable arguments in the function: [Input] int32_t height and [Input] int32_t width. |
GET_BUFFER_GEOMETRY | Obtaining the geometry of the local window buffer. Variable arguments in the function: [Output] int32_t *height and [Output] int32_t *width. |
GET_FORMAT | Obtaining the format of the local window buffer. Variable argument in the function: [Output] int32_t *format. |
SET_FORMAT | Setting the format for the local window buffer. Variable argument in the function: [Input] int32_t format. |
GET_USAGE | Obtaining the usage mode of the local window buffer. Variable argument in the function: [Output] int32_t *usage. |
SET_USAGE | Setting the usage mode for the local window buffer. Variable argument in the function: [Input] int32_t usage. |
SET_STRIDE | Setting the stride for the local window buffer. Variable argument in the function: [Input] int32_t stride. |
GET_STRIDE | Obtaining the stride of the local window buffer. Variable argument in the function: [Output] int32_t *stride. |
SET_SWAP_INTERVAL | Setting the swap interval for the local window buffer. Variable argument in the function: [Input] int32_t interval. |
GET_SWAP_INTERVAL | Obtaining the swap interval of the local window buffer. Variable argument in the function: [Output] int32_t *interval. |
SET_TIMEOUT | Setting the timeout duration for requesting the local window buffer. Variable argument in the function: [Input] int32_t timeout. |
GET_TIMEOUT | Obtaining the timeout duration for requesting the local window buffer. Variable argument in the function: [Output] int32_t *timeout. |
SET_COLOR_GAMUT | Setting the color gamut for the local window buffer. Variable argument in the function: [Input] int32_t colorGamut. |
GET_COLOR_GAMUT | Obtaining the color gamut of the local window buffer. Variable argument in the function: [out int32_t *colorGamut]. |
SET_TRANSFORM | Setting the transform for the local window buffer. Variable argument in the function: [Input] int32_t transform. |
GET_TRANSFORM | Obtaining the transform of the local window buffer. Variable argument in the function: [Output] int32_t *transform. |
SET_UI_TIMESTAMP | Setting the UI timestamp for the local window buffer. Variable argument in the function: [Input] uint64_t uiTimestamp. |
OHHDRMetadataKey
enum OHHDRMetadataKey
Description
Enumerates the HDR metadata keys.
Name | Description |
---|---|
OH_METAKEY_RED_PRIMARY_X | X coordinate of the red primary color. |
OH_METAKEY_RED_PRIMARY_Y | Y coordinate of the red primary color. |
OH_METAKEY_GREEN_PRIMARY_X | X coordinate of the green primary color. |
OH_METAKEY_GREEN_PRIMARY_Y | Y coordinate of the green primary color. |
OH_METAKEY_BLUE_PRIMARY_X | X coordinate of the blue primary color. |
OH_METAKEY_BLUE_PRIMARY_Y | Y coordinate of the blue primary color. |
OH_METAKEY_WHITE_PRIMARY_X | X coordinate of the white point. |
OH_METAKEY_WHITE_PRIMARY_Y | Y coordinate of the white point. |
OH_METAKEY_MAX_LUMINANCE | Maximum luminance. |
OH_METAKEY_MIN_LUMINANCE | Minimum luminance. |
OH_METAKEY_MAX_CONTENT_LIGHT_LEVEL | Maximum content light level (MaxCLL). |
OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL | Maximum frame average light level (MaxFALLL). |
OH_METAKEY_HDR10_PLUS | HDR10+. |
OH_METAKEY_HDR_VIVID | Vivid. |
OHScalingMode
enum OHScalingMode
Description
Enumerates the scaling modes.
Name | Description |
---|---|
OH_SCALING_MODE_FREEZE | The window content cannot be updated before the buffer of the window size is received. |
OH_SCALING_MODE_SCALE_TO_WINDOW | The buffer is scaled in two dimensions to match the window size. |
OH_SCALING_MODE_SCALE_CROP | The buffer is scaled uniformly so that its smaller size can match the window size. |
OH_SCALING_MODE_NO_SCALE_CROP | The window is cropped to the size of the buffer's cropping rectangle. Pixels outside the cropping rectangle are considered completely transparent. |
Function Description
OH_NativeWindow_CreateNativeWindow()
OHNativeWindow* OH_NativeWindow_CreateNativeWindow (void * pSurface)
Description
Creates a NativeWindow instance. A new NativeWindow instance is created each time this function is called.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
pSurface | Indicates the pointer to a ProduceSurface. The type is sptr<OHOS::Surface>. |
Returns
Returns the pointer to the NativeWindow instance created.
OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer()
OHNativeWindowBuffer* OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer (void * pSurfaceBuffer)
Description
Creates a NativeWindowBuffer instance. A new NativeWindowBuffer instance is created each time this function is called.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
pSurfaceBuffer | Indicates the pointer to a produce buffer. The type is sptr<OHOS::SurfaceBuffer>. |
Returns
Returns the pointer to the NativeWindowBuffer instance created.
OH_NativeWindow_DestroyNativeWindow()
void OH_NativeWindow_DestroyNativeWindow (OHNativeWindow * window)
Description
Decreases the reference count of a NativeWindow instance by 1 and when the reference count reaches 0, destroys the instance.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
OH_NativeWindow_DestroyNativeWindowBuffer()
void OH_NativeWindow_DestroyNativeWindowBuffer (OHNativeWindowBuffer * buffer)
Description
Decreases the reference count of a NativeWindowBuffer instance by 1 and when the reference count reaches 0, destroys the instance.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
buffer | Indicates the pointer to a NativeWindowBuffer instance. |
OH_NativeWindow_GetBufferHandleFromNative()
BufferHandle* OH_NativeWindow_GetBufferHandleFromNative (OHNativeWindowBuffer * buffer)
Description
Obtains the pointer to a BufferHandle of a NativeWindowBuffer instance.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
buffer | Indicates the pointer to a NativeWindowBuffer instance. |
Returns
Returns the pointer to the BufferHandle instance obtained.
OH_NativeWindow_GetNativeObjectMagic()
int32_t OH_NativeWindow_GetNativeObjectMagic (void * obj)
Description
Obtains the magic ID of a native object.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
obj | Indicates the pointer to a NativeWindow or NativeWindowBuffer instance. |
Returns
Returns the magic ID, which is unique for each native object.
OH_NativeWindow_NativeObjectReference()
int32_t OH_NativeWindow_NativeObjectReference (void * obj)
Description
Adds the reference count of a native object.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
obj | Indicates the pointer to a NativeWindow or NativeWindowBuffer instance. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeObjectUnreference()
int32_t OH_NativeWindow_NativeObjectUnreference (void * obj)
Description
Decreases the reference count of a native object and when the reference count reaches 0, destroys this object.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
obj | Indicates the pointer to a NativeWindow or NativeWindowBuffer instance. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowAbortBuffer()
int32_t OH_NativeWindow_NativeWindowAbortBuffer (OHNativeWindow * window, OHNativeWindowBuffer * buffer )
Description
Returns the NativeWindowBuffer to the buffer queue through a NativeWindow instance, without filling in any content. The NativeWindowBuffer can be used for another request.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
buffer | Indicates the pointer to a NativeWindowBuffer instance. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowFlushBuffer()
int32_t OH_NativeWindow_NativeWindowFlushBuffer (OHNativeWindow * window, OHNativeWindowBuffer * buffer, int fenceFd, Region region )
Description
Flushes the NativeWindowBuffer filled with the content to the buffer queue through a NativeWindow instance for content consumption.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
buffer | Indicates the pointer to a NativeWindowBuffer instance. |
fenceFd | Indicates a file descriptor handle, which is used for timing synchronization. |
region | Indicates a dirty region where content is updated. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowHandleOpt()
int32_t OH_NativeWindow_NativeWindowHandleOpt (OHNativeWindow * window, int code, ... )
Description
Sets or obtains the attributes of a native window, including the width, height, and content format.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
code | Indicates the operation code. For details, see NativeWindowOperation. |
... | Indicates the variable argument, which must correspond to the operation code. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowRequestBuffer()
int32_t OH_NativeWindow_NativeWindowRequestBuffer (OHNativeWindow * window, OHNativeWindowBuffer ** buffer, int * fenceFd )
Description
Requests a NativeWindowBuffer through a NativeWindow instance for content production.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
buffer | Indicates the double pointer to a NativeWindowBuffer instance. |
fenceFd | Indicates the pointer to a file descriptor handle. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowSetMetaData()
int32_t OH_NativeWindow_NativeWindowSetMetaData (OHNativeWindow * window, uint32_t sequence, int32_t size, const OHHDRMetaData * metaData )
Description
Sets the metadata for a native window.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
sequence | Indicates the sequence of the producer buffer. |
size | Indicates the size of the OHHDRMetaData array. |
metaData | Indicates the pointer to the OHHDRMetaData array. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowSetMetaDataSet()
int32_t OH_NativeWindow_NativeWindowSetMetaDataSet (OHNativeWindow * window, uint32_t sequence, OHHDRMetadataKey key, int32_t size, const uint8_t * metaData )
Description
Sets the metadata set for a native window.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
sequence | Indicates the sequence of the producer buffer. |
key | Indicates a metadata key. For details, see OHHDRMetadataKey. |
size | Indicates the size of the uint8_t vector. |
metaData | Indicates the pointer to the uint8_t vector. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowSetScalingMode()
int32_t OH_NativeWindow_NativeWindowSetScalingMode (OHNativeWindow * window, uint32_t sequence, OHScalingMode scalingMode )
Description
Sets the scaling mode for a native window.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
sequence | Indicates the sequence of the producer buffer. |
scalingMode | Indicates the scaling mode to set. For details, see OHScalingMode. |
Returns
Returns an error code defined in GSError.
OH_NativeWindow_NativeWindowSetTunnelHandle()
int32_t OH_NativeWindow_NativeWindowSetTunnelHandle (OHNativeWindow * window, const OHExtDataHandle * handle )
Description
Sets a tunnel handle for a native window.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Indicates the pointer to a NativeWindow instance. |
handle | Indicates the pointer to an OHExtDataHandle. |
Returns
Returns an error code defined in GSError.