harmony 鸿蒙NativeWindow

2023-06-24 浏览 (1016)

NativeWindow

Overview

The NativeWindow module provides the NativeWindow capability for connection to the EGL.

@syscap SystemCapability.Graphic.Graphic2D.NativeWindow

Since

8

Summary

Files

NameDescription
external_window.hDeclares the functions for obtaining and using NativeWindow.
File to include: <native_window/external_window.h>
Library: libnative_window.so

Structs

NameDescription
RegionDefines the rectangle (dirty region) where the content is to be updated in the local OHNativeWindow.
OHHDRMetaDataDefines the HDR metadata.
OHExtDataHandleDefines the extended data handle.

Types

NameDescription
OHNativeWindowProvides the capability of accessing the OHNativeWindow.
OHNativeWindowBufferProvides the capability of accessing the OHNativeWindowBuffer.
RegionDefines the rectangle (dirty region) where the content is to be updated in the local OHNativeWindow.

Enums

NameDescription
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

NameDescription
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.

ValueDescription
SET_BUFFER_GEOMETRYSetting the geometry for the local window buffer.
Variable arguments in the function: [Input] int32_t height and [Input] int32_t width.
GET_BUFFER_GEOMETRYObtaining the geometry of the local window buffer.
Variable arguments in the function: [Output] int32_t *height and [Output] int32_t *width.
GET_FORMATObtaining the format of the local window buffer.
Variable argument in the function: [Output] int32_t *format.
SET_FORMATSetting the format for the local window buffer.
Variable argument in the function: [Input] int32_t format.
GET_USAGEObtaining the usage mode of the local window buffer.
Variable argument in the function: [Output] int32_t *usage.
SET_USAGESetting the usage mode for the local window buffer.
Variable argument in the function: [Input] int32_t usage.
SET_STRIDESetting the stride for the local window buffer.
Variable argument in the function: [Input] int32_t stride.
GET_STRIDEObtaining the stride of the local window buffer.
Variable argument in the function: [Output] int32_t *stride.
SET_SWAP_INTERVALSetting the swap interval for the local window buffer.
Variable argument in the function: [Input] int32_t interval.
GET_SWAP_INTERVALObtaining the swap interval of the local window buffer.
Variable argument in the function: [Output] int32_t *interval.
SET_TIMEOUTSetting the timeout duration for requesting the local window buffer.
Variable argument in the function: [Input] int32_t timeout.
GET_TIMEOUTObtaining the timeout duration for requesting the local window buffer.
Variable argument in the function: [Output] int32_t *timeout.
SET_COLOR_GAMUTSetting the color gamut for the local window buffer.
Variable argument in the function: [Input] int32_t colorGamut.
GET_COLOR_GAMUTObtaining the color gamut of the local window buffer.
Variable argument in the function: [Output] int32_t *colorGamut.
SET_TRANSFORMSetting the transform for the local window buffer.
Variable argument in the function: [Input] int32_t transform.
GET_TRANSFORMObtaining the transform of the local window buffer.
Variable argument in the function: [Output] int32_t *transform.
SET_UI_TIMESTAMPSetting 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.

ValueDescription
OH_METAKEY_RED_PRIMARY_XX coordinate of the red primary color.
OH_METAKEY_RED_PRIMARY_YY coordinate of the red primary color.
OH_METAKEY_GREEN_PRIMARY_XX coordinate of the green primary color.
OH_METAKEY_GREEN_PRIMARY_YY coordinate of the green primary color.
OH_METAKEY_BLUE_PRIMARY_XX coordinate of the blue primary color.
OH_METAKEY_BLUE_PRIMARY_YY coordinate of the blue primary color.
OH_METAKEY_WHITE_PRIMARY_XX coordinate of the white point.
OH_METAKEY_WHITE_PRIMARY_YY coordinate of the white point.
OH_METAKEY_MAX_LUMINANCEMaximum luminance.
OH_METAKEY_MIN_LUMINANCEMinimum luminance.
OH_METAKEY_MAX_CONTENT_LIGHT_LEVELMaximum content light level (MaxCLL).
OH_METAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVELMaximum frame average light level (MaxFALLL).
OH_METAKEY_HDR10_PLUSHDR10 Plus
OH_METAKEY_HDR_VIVIDVivid

OHScalingMode

enum OHScalingMode

Description

Enumerates the scaling modes.

Since

9

Deprecated

This enum is deprecated since API version 10. No substitute enum is provided.

ValueDescription
OH_SCALING_MODE_FREEZEThe window content cannot be updated before the buffer of the window size is received.
OH_SCALING_MODE_SCALE_TO_WINDOWThe buffer is scaled in two dimensions to match the window size.
OH_SCALING_MODE_SCALE_CROPThe buffer is scaled uniformly so that its smaller size can match the window size.
OH_SCALING_MODE_NO_SCALE_CROPThe 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

NameDescription
pSurfacePointer to a ProduceSurface. The type is sptr<OHOS::Surface>.

Returns

Returns the pointer to the OHNativeWindow instance created.

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

NameDescription
pSurfaceBufferPointer to a ProduceSurfaceBuffer. The type is sptr<OHOS::SurfaceBuffer>.

Returns

Returns the pointer to the OHNativeWindowBuffer instance created.

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

NameDescription
windowPointer 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

NameDescription
bufferPointer 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

NameDescription
bufferPointer 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

NameDescription
objPointer 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

NameDescription
objPointer 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

NameDescription
objPointer 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

NameDescription
windowPointer to an OHNativeWindow instance.
bufferPointer 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

NameDescription
windowPointer to an OHNativeWindow instance.
bufferPointer to an OHNativeWindowBuffer instance.
fenceFdFile descriptor handle, which is used for timing synchronization.
regionDirty 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

NameDescription
windowPointer to an OHNativeWindow instance.
codeOperation 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

NameDescription
windowPointer to an OHNativeWindow instance.
bufferDouble pointer to an OHNativeWindowBuffer instance.
fenceFdPointer 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

NameDescription
windowPointer to an OHNativeWindow instance.
sequenceSequence of the producer buffer.
sizeSize of the OHHDRMetaData array.
metaDataPointer 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

NameDescription
windowPointer to an OHNativeWindow instance.
sequenceSequence of the producer buffer.
keyMetadata key. For details, see OHHDRMetadataKey.
sizeSize of the uint8_t vector.
metaDataPointer 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

NameDescription
windowPointer to an OHNativeWindow instance.
sequenceSequence of the producer buffer.
scalingModeScaling 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

NameDescription
windowPointer to an OHNativeWindow instance.
handlePointer 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.

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Native APIs

harmony 鸿蒙AVCapability

harmony 鸿蒙AVDemuxer

harmony 鸿蒙AVMuxer

harmony 鸿蒙AVScreenCapture

harmony 鸿蒙AVSource

harmony 鸿蒙AudioDecoder

harmony 鸿蒙AudioEncoder

harmony 鸿蒙CodecBase

harmony 鸿蒙Core

  • 所属分类: 后端技术
  • 本文标签: 鸿蒙 软件
  • 版权声明: 本文链接 https://seaxiang.com/blog/6c9cafe3b5204b87acea20444302fc09