NativeWindow
Overview
The NativeWindow module provides the NativeWindow capability for connection to the EGL.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Since
8
Summary
Files
Name | Description |
---|---|
external_window.h | Declares the functions for obtaining and using NativeWindow. File to include: <native_window/external_window.h> Library: libnative_window.so |
Structs
Name | Description |
---|---|
Region | Defines the rectangle (dirty region) where the content is to be updated in the local OHNativeWindow. |
OHHDRMetaData | Defines the HDR metadata. |
OHExtDataHandle | Defines the extended data handle. |
Types
Name | Description |
---|---|
OHNativeWindow | Provides the capability of accessing the OHNativeWindow. |
OHNativeWindowBuffer | Provides the capability of accessing the OHNativeWindowBuffer. |
Region | Defines the rectangle (dirty region) where the content is to be updated in the local OHNativeWindow. |
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 an OHNativeWindow instance. A new OHNativeWindow instance is created each time this function is called. |
OH_NativeWindow_DestroyNativeWindow (OHNativeWindow *window) | Decreases the reference count of an OHNativeWindow instance by 1 and when the reference count reaches 0, destroys the instance. |
OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer (void *pSurfaceBuffer) | Creates an OHNativeWindowBuffer instance. A new OHNativeWindowBuffer instance is created each time this function is called. |
OH_NativeWindow_DestroyNativeWindowBuffer (OHNativeWindowBuffer *buffer) | Decreases the reference count of an OHNativeWindowBuffer instance by 1 and when the reference count reaches 0, destroys the instance. |
OH_NativeWindow_NativeWindowRequestBuffer (OHNativeWindow *window, OHNativeWindowBuffer **buffer, int *fenceFd) | Requests an OHNativeWindowBuffer through an OHNativeWindow instance for content production. |
OH_NativeWindow_NativeWindowFlushBuffer (OHNativeWindow *window, OHNativeWindowBuffer *buffer, int fenceFd, Region region) | Flushes the OHNativeWindowBuffer filled with the content to the buffer queue through an OHNativeWindow instance for content consumption. |
OH_NativeWindow_NativeWindowAbortBuffer (OHNativeWindow *window, OHNativeWindowBuffer *buffer) | Returns the OHNativeWindowBuffer to the buffer queue through an OHNativeWindow instance, without filling in any content. The OHNativeWindowBuffer can be used for a new request. |
OH_NativeWindow_NativeWindowHandleOpt (OHNativeWindow *window, int code,...) | Sets or obtains the attributes of an OHNativeWindow, including the width, height, and content format. |
OH_NativeWindow_GetBufferHandleFromNative (OHNativeWindowBuffer *buffer) | Obtains the pointer to a BufferHandle of an OHNativeWindowBuffer 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 a scaling mode for an OHNativeWindow. |
OH_NativeWindow_NativeWindowSetMetaData (OHNativeWindow *window, uint32_t sequence, int32_t size, const OHHDRMetaData *metaData) | Sets metadata for an OHNativeWindow. |
OH_NativeWindow_NativeWindowSetMetaDataSet (OHNativeWindow*window, uint32_t sequence, OHHDRMetadataKey key, int32_t size, const uint8_t *metaData) | Sets a metadata set for an OHNativeWindow. |
OH_NativeWindow_NativeWindowSetTunnelHandle (OHNativeWindow *window, const OHExtDataHandle *handle) | Sets a tunnel handle to an OHNativeWindow. |
Type Description
OHNativeWindow
typedef struct NativeWindow OHNativeWindow
Description
Provides the capability of accessing the OHNativeWindow.
OHNativeWindowBuffer
typedef struct NativeWindowBuffer OHNativeWindowBuffer
Description
Provides the capability of accessing the OHNativeWindowBuffer.
Region
typedef struct Region Region
Description
Defines the rectangle (dirty region) where the content is to be updated in the local OHNativeWindow.
Enum Description
NativeWindowOperation
enum NativeWindowOperation
Description
Enumerates the operation codes in the OH_NativeWindow_NativeWindowHandleOpt function.
Value | Description |
---|---|
SET_BUFFER_GEOMETRY | Setting the geometry for the local window buffer. Variable arguments in the function: [Input] int32_t width and [Input] int32_t height. |
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: [Output] 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.
Since
9
Deprecated
This enum is deprecated since API version 10. No substitute enum is provided.
Value | 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 Plus |
OH_METAKEY_HDR_VIVID | Vivid |
OHScalingMode
enum OHScalingMode
Description
Enumerates the scaling modes.
Since
9
Deprecated
This enum is deprecated since API version 10. No substitute enum is provided.
Value | 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 an OHNativeWindow instance. A new OHNativeWindow instance is created each time this function is called.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
pSurface | Pointer to a ProduceSurface. The type is sptr<OHOS::Surface>. |
Returns
Returns the pointer to the OHNativeWindow instance created.
NOTE
If this API is unavailable, you can create an OHNativeWindow instance by calling OH_NativeImage_AcquireNativeWindow or through the <XComponent>.
OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer()
OHNativeWindowBuffer* OH_NativeWindow_CreateNativeWindowBufferFromSurfaceBuffer (void * pSurfaceBuffer)
Description
Creates an OHNativeWindowBuffer instance. A new OHNativeWindowBuffer instance is created each time this function is called.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
pSurfaceBuffer | Pointer to a ProduceSurfaceBuffer. The type is sptr<OHOS::SurfaceBuffer>. |
Returns
Returns the pointer to the OHNativeWindowBuffer instance created.
NOTE
This API cannot be used.
OH_NativeWindow_DestroyNativeWindow()
void OH_NativeWindow_DestroyNativeWindow (OHNativeWindow * window)
Description
Decreases the reference count of an OHNativeWindow instance by 1 and when the reference count reaches 0, destroys the instance.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
OH_NativeWindow_DestroyNativeWindowBuffer()
void OH_NativeWindow_DestroyNativeWindowBuffer (OHNativeWindowBuffer * buffer)
Description
Decreases the reference count of an OHNativeWindowBuffer instance by 1 and when the reference count reaches 0, destroys the instance.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
buffer | Pointer to an OHNativeWindowBuffer instance. |
OH_NativeWindow_GetBufferHandleFromNative()
BufferHandle* OH_NativeWindow_GetBufferHandleFromNative (OHNativeWindowBuffer * buffer)
Description
Obtains the pointer to a BufferHandle of an OHNativeWindowBuffer instance.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
buffer | Pointer to an OHNativeWindowBuffer 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 | Pointer to an OHNativeWindow or OHNativeWindowBuffer 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 | Pointer to an OHNativeWindow or OHNativeWindowBuffer instance. |
Returns
Returns 0 if the operation is successful.
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 | Pointer to an OHNativeWindow or OHNativeWindowBuffer instance. |
Returns
Returns 0 if the operation is successful.
OH_NativeWindow_NativeWindowAbortBuffer()
int32_t OH_NativeWindow_NativeWindowAbortBuffer (OHNativeWindow * window, OHNativeWindowBuffer * buffer )
Description
Returns the OHNativeWindowBuffer to the buffer queue through an OHNativeWindow instance, without filling in any content. The OHNativeWindowBuffer can be used for a new request.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
buffer | Pointer to an OHNativeWindowBuffer instance. |
Returns
Returns 0 if the operation is successful.
OH_NativeWindow_NativeWindowFlushBuffer()
int32_t OH_NativeWindow_NativeWindowFlushBuffer (OHNativeWindow * window, OHNativeWindowBuffer * buffer, int fenceFd, Region region )
Description
Flushes the OHNativeWindowBuffer filled with the content to the buffer queue through an OHNativeWindow instance for content consumption.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
buffer | Pointer to an OHNativeWindowBuffer instance. |
fenceFd | File descriptor handle, which is used for timing synchronization. |
region | Dirty region where content is updated. |
Returns
Returns 0 if the operation is successful.
OH_NativeWindow_NativeWindowHandleOpt()
int32_t OH_NativeWindow_NativeWindowHandleOpt (OHNativeWindow * window, int code, ... )
Description
Sets or obtains the attributes of an OHNativeWindow, including the width, height, and content format.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
code | Operation code. For details, see NativeWindowOperation. |
... | Variable argument, which must correspond to the operation code. |
Returns
Returns 0 if the operation is successful.
OH_NativeWindow_NativeWindowRequestBuffer()
int32_t OH_NativeWindow_NativeWindowRequestBuffer (OHNativeWindow * window, OHNativeWindowBuffer ** buffer, int * fenceFd )
Description
Requests an OHNativeWindowBuffer through an OHNativeWindow instance for content production.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
buffer | Double pointer to an OHNativeWindowBuffer instance. |
fenceFd | Pointer to a file descriptor handle. |
Returns
Returns 0 if the operation is successful.
OH_NativeWindow_NativeWindowSetMetaData()
int32_t OH_NativeWindow_NativeWindowSetMetaData (OHNativeWindow * window, uint32_t sequence, int32_t size, const OHHDRMetaData * metaData )
Description
Sets metadata for an OHNativeWindow.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
sequence | Sequence of the producer buffer. |
size | Size of the OHHDRMetaData array. |
metaData | Pointer to the OHHDRMetaData array. |
Returns
Returns 0 if the operation is successful.
Since
9
Deprecated
This function is deprecated since API version 10. No substitute function is provided.
OH_NativeWindow_NativeWindowSetMetaDataSet()
int32_t OH_NativeWindow_NativeWindowSetMetaDataSet (OHNativeWindow * window, uint32_t sequence, OHHDRMetadataKey key, int32_t size, const uint8_t * metaData )
Description
Sets a metadata set for an OHNativeWindow.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
sequence | Sequence of the producer buffer. |
key | Metadata key. For details, see OHHDRMetadataKey. |
size | Size of the uint8_t vector. |
metaData | Pointer to the uint8_t vector. |
Returns
Returns 0 if the operation is successful.
Since
9
Deprecated
This function is deprecated since API version 10. No substitute function is provided.
OH_NativeWindow_NativeWindowSetScalingMode()
int32_t OH_NativeWindow_NativeWindowSetScalingMode (OHNativeWindow * window, uint32_t sequence, OHScalingMode scalingMode )
Description
Sets a scaling mode for an OHNativeWindow.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
sequence | Sequence of the producer buffer. |
scalingMode | Scaling mode to set. For details, see OHScalingMode. |
Returns
Returns 0 if the operation is successful.
Since
9
Deprecated
This function is deprecated since API version 10. No substitute function is provided.
OH_NativeWindow_NativeWindowSetTunnelHandle()
int32_t OH_NativeWindow_NativeWindowSetTunnelHandle (OHNativeWindow * window, const OHExtDataHandle * handle )
Description
Sets a tunnel handle to an OHNativeWindow.
@syscap SystemCapability.Graphic.Graphic2D.NativeWindow
Parameters
Name | Description |
---|---|
window | Pointer to an OHNativeWindow instance. |
handle | Pointer to an OHExtDataHandle. |
Returns
Returns 0 if the operation is successful.
Since
9
Deprecated
This function is deprecated since API version 10. No substitute function is provided.