diff --git a/en/device_api/hdi/display/display_device.h b/en/device_api/hdi/display/display_device.h index af285b46ae6357ff66885e1f16ca12dc95c9bc5d..f23424430aebb5f6604013e5d631f304043d12cd 100644 --- a/en/device_api/hdi/display/display_device.h +++ b/en/device_api/hdi/display/display_device.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -51,8 +51,8 @@ extern "C" { * transferred to the graphics service through the current callback. It identifies the display device to connect. * @param connected Indicates the connection status of the display device. The value true means that the * display device is connected, and false means the opposite. - * @param data Indicates the private data carried by the graphics service. This parameter carries the private data - * address transferred when RegHotPlugCallback is called. For details, see {@link RegHotPlugCallback}. + * @param data Indicates the pointer to the private data carried by the graphics service. This parameter carries the private data + * address passed when RegHotPlugCallback is called. For details, see {@link RegHotPlugCallback}. * * * @since 1.0 @@ -101,7 +101,7 @@ typedef struct { * HotPlugCallback callback. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -118,7 +118,7 @@ typedef struct { * VBlankCallback callback. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -126,7 +126,7 @@ typedef struct { int32_t (*RegDisplayVBlankCallback)(uint32_t devId, VBlankCallback callback, void *data); /* * - * @brief Called when the graphics service needs to refresh data frames. + * @brief Registers the callback to be invoked when the graphics service needs to refresh data frames. * * @param devId Indicates the ID of the display device. * @param callback Indicates the instance used to notify the graphics service of the request for refreshing @@ -135,7 +135,7 @@ typedef struct { * RefreshCallback callback. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -146,11 +146,11 @@ typedef struct { * @brief Obtains the capabilities of a display device. * * @param devId Indicates the ID of the display device. - * @param info Indicates the pointer to the capabilities supported by the display device. For details, + * @param info Indicates the pointer to the capabilities of the display device. For details, * see {@link DisplayCapability}. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -167,7 +167,7 @@ typedef struct { * the mode is set or obtained. For details, see {@link DisplayModeInfo}. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -181,6 +181,8 @@ typedef struct { * @param modeId indicates the pointer to the ID of the current display mode of the device. The display mode ID * is written by this API. * + * @return Returns 0 if the operation is successful; returns an error code defined + * in {@link DispErrCode} otherwise. * @since 1.0 * @version 1.0 */ @@ -194,7 +196,7 @@ typedef struct { * this parameter in this interface. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -208,7 +210,7 @@ typedef struct { * @param status Indicates the pointer to the power status of the device. The status is written by this interface. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -222,7 +224,7 @@ typedef struct { * @param status Indicates the power status to set. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -237,7 +239,7 @@ typedef struct { * by this interface. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -251,7 +253,7 @@ typedef struct { * @param level Indicates the backlight value to set. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -263,12 +265,14 @@ typedef struct { * * @param devId Indicates the ID of the display device. * @param id Indicates the property ID returned by GetDisplayCapability. - * @param level Indicates the pointer to the property corresponding to the property ID. The property value is + * @param level Indicates the pointer to the property obtained. The property value is * written by this interface. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * + * @return Returns 0 if the operation is successful; returns an error code defined + * in {@link DispErrCode} otherwise. * @since 1.0 * @version 1.0 */ @@ -282,7 +286,7 @@ typedef struct { * @param value Indicates the property to set. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -301,7 +305,7 @@ typedef struct { * The value true means that the framebuffer needs to be reset, and false means the opposite. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -317,11 +321,13 @@ typedef struct { * @param devId Indicates the ID of the display device. * @param num Indicates the pointer to the number of layers whose composition types have changed. * @param Layers Indicates the pointer to the start address of the layer array. - * @param Layers Indicates the pointer to the start address of the composition type array. + * @param type Indicates the pointer to the start address of the composition type array. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * + * @return Returns 0 if the operation is successful; returns an error code defined + * in {@link DispErrCode} otherwise. * @since 1.0 * @version 1.0 */ @@ -337,7 +343,7 @@ typedef struct { * @param rect Indicates the pointer to the cropped region of the client buffer. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -351,7 +357,7 @@ typedef struct { * @param rect Indicates the pointer to the display region. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -370,7 +376,7 @@ typedef struct { * signaled state. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -388,7 +394,7 @@ typedef struct { * @param rect Indicates the pointer to the start address of the rectangle array. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -409,7 +415,7 @@ typedef struct { * vertical sync signal, and false means to disable it. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode}otherwise. + * @return returns an error code defined in {@link DispErrCode}otherwise. * * @since 1.0 * @version 1.0 @@ -425,7 +431,7 @@ typedef struct { * @param fences Indicates the pointer to the start address of the fence array. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -440,7 +446,7 @@ typedef struct { * @param gamuts Indicates the pointer to the information about all color gamuts supported by the display device. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -455,7 +461,7 @@ typedef struct { * by this interface. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -469,7 +475,7 @@ typedef struct { * @param gamut Indicates the color gamut to set. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -484,7 +490,7 @@ typedef struct { * by this interface. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -498,7 +504,7 @@ typedef struct { * @param gamutMap Indicates the gamut map to set. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -512,7 +518,7 @@ typedef struct { * @param matrix Indicates the pointer to the 4x4 color transformation matrix to set. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -527,7 +533,7 @@ typedef struct { * by this interface. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -542,7 +548,7 @@ typedef struct { * @param keys Indicates the pointer to the information about all HDR metadata keys supported by the display device. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -556,12 +562,10 @@ typedef struct { * the hardware for display. * * @param devId Indicates the ID of the display device. - * @param num Indicates the pointer to the number of layers. - * @param layers Indicates the pointer to the start address of the layer array. * @param fences Indicates the pointer to the start address of the fence array. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -577,7 +581,7 @@ typedef struct { * @param devId Indicates the ID of the display device. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -595,7 +599,7 @@ typedef struct { * @param devId Indicates the pointer to the ID of the virtual display device created. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -608,7 +612,7 @@ typedef struct { * @param devId Indicates the ID of the display device. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -626,7 +630,7 @@ typedef struct { * @param fence Indicates the sync fence. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -642,12 +646,12 @@ typedef struct { * @param devId Indicates the ID of the display device. * @param buffer Indicates the pointer to the buffer of the writeback endpoint data. * @param fence Indicates the pointer to the sync fence. When calling this interface, the graphics service needs - * to pass the release fence of the buffer to - * specify whether data can be written to the buffer. Then, acquire fence of the buffer needs to be written + * to pass the release fence of the buffer to specify whether data can be written to the buffer. + * Then, acquire fence of the buffer needs to be written * and sent to the graphics service to specify whether the writeback data has been written to the buffer. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -667,7 +671,7 @@ typedef struct { * The format can be modified based on hardware requirements and returned to the graphics service. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -680,7 +684,7 @@ typedef struct { * @param devId Indicates the ID of the display device. * * @return Returns 0 if the operation is successful; - * @returns an error code defined in {@link DispErrCode} otherwise. + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 @@ -696,8 +700,8 @@ typedef struct { * the double pointer to operate the display device. The memory is allocated during initialization, and therefore * the caller does not need to allocate the memory. * - * @return Returns 0 if the operation is successful; returns an error code defined - * in {@link DispErrCode} otherwise. + * @return Returns 0 if the operation is successful; + * @return returns an error code defined in {@link DispErrCode} otherwise. * * @since 1.0 * @version 1.0 diff --git a/en/device_api/hdi/display/display_gfx.h b/en/device_api/hdi/display/display_gfx.h index 1b9e770fc3f7380fb00ac39bd52655d6dcdf73b2..08495fa722bb3aae31aecd9192fc5a7ca9d6bcc5 100644 --- a/en/device_api/hdi/display/display_gfx.h +++ b/en/device_api/hdi/display/display_gfx.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/en/device_api/hdi/display/display_gralloc.h b/en/device_api/hdi/display/display_gralloc.h index 288232c0da326e6bbbbce5bf9647242a55326cd3..9793a7e3c00f80b6cf70e31d33701a0957bed4e5 100644 --- a/en/device_api/hdi/display/display_gralloc.h +++ b/en/device_api/hdi/display/display_gralloc.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -51,7 +51,6 @@ typedef struct { * @brief Allocates memory based on the parameters passed by the GUI. * * @param info Indicates the pointer to the description info of the memory to allocate. - * * @param handle Indicates the double pointer to the buffer of the memory to allocate. * * @return Returns 0 if the operation is successful; returns an error code defined in {@link DispErrCode} @@ -82,6 +81,18 @@ typedef struct { */ void *(*Mmap)(BufferHandle *handle); + /** + * @brief Maps memory for YUV. + * + * @param handle Indicates the pointer to the buffer of the memory to map. + * @param info Indicates the pointer to the YUVDescInfo of the memory to map. + * + * @return Returns the pointer to a valid address if the operation is successful; returns NULL otherwise. + * @since 3.2 + * @version 1.0 + */ + void *(*MmapYUV)(BufferHandle *handle, YUVDescInfo *info); + /** * @brief Maps memory to memory with cache in the process's address space. * diff --git a/en/device_api/hdi/display/display_layer.h b/en/device_api/hdi/display/display_layer.h index 2576042c92d93f68d86a4984b21a66eb6f8960b3..3312d51c16f3d5286a74f30bca3d0e48228466dc 100644 --- a/en/device_api/hdi/display/display_layer.h +++ b/en/device_api/hdi/display/display_layer.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -743,6 +743,36 @@ typedef struct { * @version 1.0 */ int32_t (*GetHwPresentTimestamp)(uint32_t devId, uint32_t layerId, PresentTimestamp *pts); + /** + * @brief Sets a tunnel handle for a layer. + * + * @param devId Indicates the ID of the display device. The value ranges from 0 to 4, where 0 indicates the first + * display device, and 4 indicates the last display device. + * @param layerId Indicates the layer ID, which uniquely identifies a layer. You can perform operations on the layer + * with the specified layer ID. + * @param handle Indicates the handle of ExtDataHandle. + * + * @return Returns 0 if the operation is successful; returns an error code defined in {@link DispErrCode} + * otherwise. + * @since 3.2 + * @version 1.0 + */ + int32_t (*SetLayerTunnelHandle)(uint32_t devId, uint32_t layerId, ExtDataHandle *handle); + /** + * @brief Obtains the release fence of a layer. + * + * @param devId Indicates the ID of the display device. The value ranges from 0 to 4, where 0 indicates the first + * display device, and 4 indicates the last display device. + * @param layerId Indicates the layer ID, which uniquely identifies a layer. You can perform operations on the layer + * with the specified layer ID. + * @param fence Indicates the pointer to the release fence obtained. + * + * @return Returns 0 if the operation is successful; returns an error code defined in {@link DispErrCode} + * otherwise. + * @since 3.2 + * @version 1.0 + */ + int32_t (*GetLayerReleaseFence)(uint32_t devId, uint32_t layerId, int32_t *fence); } LayerFuncs; /** diff --git a/en/device_api/hdi/display/display_type.h b/en/device_api/hdi/display/display_type.h index 40f9bfd8611ed6aa47043629c1b25d9597de59a8..7c93fc5a9111e1917894bef7555c3491c778f5ef 100644 --- a/en/device_api/hdi/display/display_type.h +++ b/en/device_api/hdi/display/display_type.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020-2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -100,41 +100,42 @@ enum { * */ typedef enum { - PIXEL_FMT_CLUT8 = 0, /**< CLUT8 format */ - PIXEL_FMT_CLUT1, /**< CLUT1 format */ - PIXEL_FMT_CLUT4, /**< CLUT4 format */ - PIXEL_FMT_RGB_565, /**< RGB565 format */ - PIXEL_FMT_RGBA_5658, /**< RGBA5658 format */ - PIXEL_FMT_RGBX_4444, /**< RGBX4444 format */ - PIXEL_FMT_RGBA_4444, /**< RGBA4444 format */ - PIXEL_FMT_RGB_444, /**< RGB444 format */ - PIXEL_FMT_RGBX_5551, /**< RGBX5551 format */ - PIXEL_FMT_RGBA_5551, /**< RGBA5551 format */ - PIXEL_FMT_RGB_555, /**< RGB555 format */ - PIXEL_FMT_RGBX_8888, /**< RGBX8888 format */ - PIXEL_FMT_RGBA_8888, /**< RGBA8888 format */ - PIXEL_FMT_RGB_888, /**< RGB888 format */ - PIXEL_FMT_BGR_565, /**< BGR565 format */ - PIXEL_FMT_BGRX_4444, /**< BGRX4444 format */ - PIXEL_FMT_BGRA_4444, /**< BGRA4444 format */ - PIXEL_FMT_BGRX_5551, /**< BGRX5551 format */ - PIXEL_FMT_BGRA_5551, /**< BGRA5551 format */ - PIXEL_FMT_BGRX_8888, /**< BGRX8888 format */ - PIXEL_FMT_BGRA_8888, /**< BGRA8888 format */ - PIXEL_FMT_YUV_422_I, /**< YUV422 interleaved format */ - PIXEL_FMT_YCBCR_422_SP, /**< YCBCR422 semi-planar format */ - PIXEL_FMT_YCRCB_422_SP, /**< YCRCB422 semi-planar format */ - PIXEL_FMT_YCBCR_420_SP, /**< YCBCR420 semi-planar format */ - PIXEL_FMT_YCRCB_420_SP, /**< YCRCB420 semi-planar format */ - PIXEL_FMT_YCBCR_422_P, /**< YCBCR422 planar format */ - PIXEL_FMT_YCRCB_422_P, /**< YCRCB422 planar format */ - PIXEL_FMT_YCBCR_420_P, /**< YCBCR420 planar format */ - PIXEL_FMT_YCRCB_420_P, /**< YCRCB420 planar format */ - PIXEL_FMT_YUYV_422_PKG, /**< YUYV422 packed format */ - PIXEL_FMT_UYVY_422_PKG, /**< UYVY422 packed format */ - PIXEL_FMT_YVYU_422_PKG, /**< YVYU422 packed format */ - PIXEL_FMT_VYUY_422_PKG, /**< VYUY422 packed format */ - PIXEL_FMT_BUTT /**< Invalid pixel format */ + PIXEL_FMT_CLUT8 = 0, /**< CLUT8 format */ + PIXEL_FMT_CLUT1, /**< CLUT1 format */ + PIXEL_FMT_CLUT4, /**< CLUT4 format */ + PIXEL_FMT_RGB_565, /**< RGB565 format */ + PIXEL_FMT_RGBA_5658, /**< RGBA5658 format */ + PIXEL_FMT_RGBX_4444, /**< RGBX4444 format */ + PIXEL_FMT_RGBA_4444, /**< RGBA4444 format */ + PIXEL_FMT_RGB_444, /**< RGB444 format */ + PIXEL_FMT_RGBX_5551, /**< RGBX5551 format */ + PIXEL_FMT_RGBA_5551, /**< RGBA5551 format */ + PIXEL_FMT_RGB_555, /**< RGB555 format */ + PIXEL_FMT_RGBX_8888, /**< RGBX8888 format */ + PIXEL_FMT_RGBA_8888, /**< RGBA8888 format */ + PIXEL_FMT_RGB_888, /**< RGB888 format */ + PIXEL_FMT_BGR_565, /**< BGR565 format */ + PIXEL_FMT_BGRX_4444, /**< BGRX4444 format */ + PIXEL_FMT_BGRA_4444, /**< BGRA4444 format */ + PIXEL_FMT_BGRX_5551, /**< BGRX5551 format */ + PIXEL_FMT_BGRA_5551, /**< BGRA5551 format */ + PIXEL_FMT_BGRX_8888, /**< BGRX8888 format */ + PIXEL_FMT_BGRA_8888, /**< BGRA8888 format */ + PIXEL_FMT_YUV_422_I, /**< YUV422 interleaved format */ + PIXEL_FMT_YCBCR_422_SP, /**< YCBCR422 semi-planar format */ + PIXEL_FMT_YCRCB_422_SP, /**< YCRCB422 semi-planar format */ + PIXEL_FMT_YCBCR_420_SP, /**< YCBCR420 semi-planar format */ + PIXEL_FMT_YCRCB_420_SP, /**< YCRCB420 semi-planar format */ + PIXEL_FMT_YCBCR_422_P, /**< YCBCR422 planar format */ + PIXEL_FMT_YCRCB_422_P, /**< YCRCB422 planar format */ + PIXEL_FMT_YCBCR_420_P, /**< YCBCR420 planar format */ + PIXEL_FMT_YCRCB_420_P, /**< YCRCB420 planar format */ + PIXEL_FMT_YUYV_422_PKG, /**< YUYV422 packed format */ + PIXEL_FMT_UYVY_422_PKG, /**< UYVY422 packed format */ + PIXEL_FMT_YVYU_422_PKG, /**< YVYU422 packed format */ + PIXEL_FMT_VYUY_422_PKG, /**< VYUY422 packed format */ + PIXEL_FMT_VENDER_MASK = 0X7FFF0000, /**< vendor mask format */ + PIXEL_FMT_BUTT = 0X7FFFFFFF /**< Invalid pixel format */ } PixelFormat; /** @@ -411,11 +412,11 @@ typedef enum { * @brief Defines the capability of the output. */ typedef struct { - char name[PROPERTY_NAME_LEN]; /**< Name of the output */ - InterfaceType type; /**< Interface type of the output */ + char name[PROPERTY_NAME_LEN]; /**< Name of the display device */ + InterfaceType type; /**< Interface type of panel */ uint32_t phyWidth; /**< Physical width */ uint32_t phyHeight; /**< Physical height */ - uint32_t supportLayers; /**< Bitmask of LayerType */ + uint32_t supportLayers; /**< Number of supported layers */ uint32_t virtualDispCount; /**< Count of virtual displays supported */ bool supportWriteBack; /**< Whether writeback is supported */ uint32_t propertyCount; /**< Count of properties */ @@ -461,8 +462,8 @@ typedef enum { typedef enum { COMPOSITION_CLIENT, /**< Client composition type. The composer should be the CPU or GPU. */ COMPOSITION_DEVICE, /**< Device composition type. The composer should be the hardware. */ - COMPOSITION_CURSOR, /**< Cursor composition type, used for cursor. */ - COMPOSITION_VIDEO, /**< Cursor composition type, used for video. */ + COMPOSITION_CURSOR, /**< Composition type used for cursor. */ + COMPOSITION_VIDEO, /**< Composition type used for video. */ COMPOSITION_BUTT } CompositionType; @@ -631,6 +632,21 @@ typedef struct { int64_t time; /**< Present timestamp value */ } PresentTimestamp; +typedef struct { + int32_t fd; /**< Handle fd, -1 if not supported */ + uint32_t reserveInts; /**< the number of reserved integer value */ + int32_t reserve[0]; /**< the reserved data */ +} __attribute__((__packed__)) ExtDataHandle; + +typedef struct { + void *baseAddr; /**< Base address of memory */ + size_t yOffset; /**< Offset of Y */ + size_t uOffset; /**< Offset of U */ + size_t vOffset; /**< Offset of V */ + size_t yStride; /**< Stride of Y */ + size_t uvStride; /**< Stride of UV */ + size_t uvStep; /**< Step of UV */ +} __attribute__((__packed__)) YUVDescInfo; #ifdef __cplusplus } #endif diff --git a/en/device_api/hdi/display/display_vgu.h b/en/device_api/hdi/display/display_vgu.h index 6214bfaa1aa0b88bd1c53d0eacf1d3f800585391..b93906de8827ce10bbccf27f088b1e0520842620 100644 --- a/en/device_api/hdi/display/display_vgu.h +++ b/en/device_api/hdi/display/display_vgu.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021 Huawei Device Co., Ltd. + * Copyright (c) 2021-2022 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at diff --git a/zh-cn/device_api/hdi/display/display_device.h b/zh-cn/device_api/hdi/display/display_device.h index 6b45dd4674c186e14eae2056459a6f38d18c7a47..205bf8ed6c03790c6321a840ae644bef3d576f30 100644 --- a/zh-cn/device_api/hdi/display/display_device.h +++ b/zh-cn/device_api/hdi/display/display_device.h @@ -41,84 +41,660 @@ extern "C" { #endif +/* * + * @brief 热插拔事件回调 + * + * 当有热插拔事件发生时,会回调该接口,需要通过RegHotPlugCallback注册该回调接口。 + * + * @paramdevId 输入参数,显示设备ID,此ID由HDI实现层生成,并通过当前回调接口传递给图形服务使用,用以标记当前连接的显示设备。 + * @param connected 输入参数,指明设备的连接状态,ture代表连接,false代表断开。 + * @param data 输出参数,图形服务携带的私有数据,该参数携带的是RegHotPlugCallback接口注册时传递的私有数据地址,详情参考 {@RegHotPlugCallback} + * 接口注册时传递的地址。 + * + * @since 1.0 + * @version 1.0 + */ +typedef void (*HotPlugCallback)(uint32_t devId, bool connected, void *data); + +/* * + * @brief VBlank 事件回调。 + * + * 垂直同步事件回调接口,需要通过RegDisplayVBlankCallback注册该回调接口。 + * + * @param sequence 输入参数,指明VBlank序列,是一个累加值。 + * @param ns 输入参数,该次VBlank事件的时间戳,以纳秒为单位。 + * @param data 输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayVBlankCallback接口注册时传递的地址。 + * + * @since 1.0 + * @version 1.0 + */ +typedef void (*VBlankCallback)(unsigned int sequence, uint64_t ns, void *data); + +/* * + * @brief 刷新请求回调 + * + * 刷新请求回调,当接口实现层需要图形服务刷新数据帧时会回调该接口,需要通过RegDisplayRefreshCallback注册该回调接口。 + * + * @param devId 输入参数,显示设备ID。 + * @param data 输出参数,图形服务携带的私有数据,该参数携带的是RegDisplayRefreshCallback接口注册时传递的地址。 + * + * @since 1.0 + * @version 1.0 + */ +typedef void (*RefreshCallback)(uint32_t devId, void *data); + /** * @brief 显示设备控制接口结构体,定义显示设备控制接口函数指针。 */ typedef struct { - /** - * @brief 设置电源状态 + /* * + * @brief 注册热插拔事件回调。 * - * 在系统休眠或者唤醒时,display服务或电源管理模块设置电源状态,以使驱动IC能正常进入对应的模式。 + * 注册热插拔事件回调,当有热插拔事件发生时接口实现层需要回调注册的接口。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param status 设置的电源状态,display服务控制显示设备进入on、off等状态{具体参考@link PowerStatus}。 + * @param callback 输入参数,热插拔事件回调实例,当有热插拔事件发生时,接口实现层需要通过该实例通知图形服务。 + * @param data 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ - int32_t (*SetDisplayPowerStatus)(uint32_t devId, PowerStatus status); + int32_t (*RegHotPlugCallback)(HotPlugCallback callback, void *data); - /** - * @brief 获取电源状态 + /* * + * @brief 注册VBlank事件回调。 * - * 获取devId对应设备的电源状态 + * 注册VBlank事件回调,当有VBlank事件发生时接口实现层需要回调注册的接口。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param status 获取到的devId对应设备的电源状态{具体参考@link PowerStatus}。 + * @param devId 输入参数,指示需要操作的设备ID。 + * @param callback 输入参数,VBlank事件回调实例,当有VBlank事件发生时并且DisplayVsync处于Enable状态,接口实现层需要通过该实例通知图形服务。 + * @param data 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ - int32_t (*GetDisplayPowerStatus)(uint32_t devId, PowerStatus *status); + int32_t (*RegDisplayVBlankCallback)(uint32_t devId, VBlankCallback callback, void *data); - /** - * @brief 设置背光等级 + /* * + * @brief 刷新请求回调。 * - * 设置devId对应设备的背光等级 + * 注册刷新请求事件回调,当实现层有刷新需求时,实现层通过回调注册的接口通知图形服务。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param level 将要设置的具体背光值 + * @param devId 输入参数,指示需要操作的设备ID。 + * @param callback 输入参数,刷新请求事件回调实例,当有接口实现层有刷新请求时,需要通过该实例通知图形服务。 + * @param data 输出参数,图形服务携带的私有数据,在事件回调接口中需要返回给图形服务。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ - int32_t (*SetDisplayBacklight)(uint32_t devId, uint32_t level); + int32_t (*RegDisplayRefreshCallback)(uint32_t devId, RefreshCallback callback, void *data); + + /* * + * @brief 获取显示设备能力集。 + * + * 图形服务可以通过该接口获取显示设备具备哪些显示能力。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param info 输出参数,设备支持的能力级信息,详情参考 {@DisplayCapability}。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayCapability)(uint32_t devId, DisplayCapability *info); + + /* * + * @brief 获取显示设备支持的显示模式信息。 + * + * 图形服务可以通过该接口获取到显示设备支持哪些显示模式。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param num 输出参数,设备支持的模式数量。 + * @param modes 输出参数,设备支持的所有模式信息,包括所有能支持的分辨率和刷新率,每一个模式实现层都有一个Id与之对应,在获取当前模式 + *和设置当前模式时都会使用到,详情参考 {@DisplayModeInfo}。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplaySupportedModes)(uint32_t devId, uint32_t *num, DisplayModeInfo *modes); + + /* * + * @brief 获取显示设备当前的显示模式。 + * + * 图形服务可以通过该接口获取显示设备当前的显示模式。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param modeId 输出参数,存放当前设备的显示模式ID, 由接口实现层进行数据的写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayMode)(uint32_t devId, uint32_t *modeId); + + /* * + * @brief 设置显示设备的显示模式。 + * + * 图形服务可以通过该接口获设置显示设备的显示模式。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param modeId 输入参数,指明需要设置的模式ID,接口实现层将设备切换到该参数对应的显示模式。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayMode)(uint32_t devId, uint32_t modeId); + + /* * + * @brief 获取显示设备当前的电源状态。 + * + * 图形服务可以通过该接口获设置显示设备的电源状态。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param status 输出参数,保存对应设备的电源状态,由接口实现层进行状态的写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayPowerStatus)(uint32_t devId, DispPowerStatus *status); + + /* * + * @brief 设置显示设备当前的电源状态。 + * + * 图形服务可以通过该接口获设置显示设备的电源状态。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param status 输入参数,表示需要设置的电源状态。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayPowerStatus)(uint32_t devId, DispPowerStatus status); - /** - * @brief 获取背光等级 + /* * + * @brief 获取显示设备当前的背光值。 * - * 获取devId对应设备的背光等级 + * 图形服务可以通过该接口获取设置显示设备的背光值。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param level 获取到的具体背光值。 + * @param devId 输入参数,指示需要操作的设备ID。 + * @param level 输出参数,保存对应设备的背光值,由接口实现层进行写入。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ int32_t (*GetDisplayBacklight)(uint32_t devId, uint32_t *level); + + /* * + * @brief 设置显示设备当前的背光值。 + * + * 图形服务可以通过该接口获设置显示设备的背光值。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param level 输入参数,表示需要设置的背光值。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayBacklight)(uint32_t devId, uint32_t level); + + /* * + * @brief 设置显示设备属性值。 + * + * 图形服务可以通过该接口获取显示设备具体的属性值。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param id 输入参数,由接口GetDisplayCapability返回属性ID。 + * @param level 输出参数,属性ID对应的属性值,由接口实现层写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayProperty)(uint32_t devId, uint32_t id, uint64_t *value); + + /* * + * @brief 设置显示设备属性值。 + * + * 图形服务可以通过该接口设置显示设备具体的属性值。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param id 输入参数,由接口GetDisplayCapability返回属性ID。 + * @param value 输入参数,需要设置的属性值。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayProperty)(uint32_t devId, uint32_t id, uint64_t value); + + /* * + * @brief 显示设备合成前准备。 + * + * 图形服务在合成前需要通过该接口通知显示设备进行合成前的准备工作。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param needFlushFb 输出参数,接口实现层通过该参数指示图形服务在commit前是否需要通过SetDisplayClientBuffer重新设置显示帧存。 + * true表示需要设置显示帧存,false表示不需要。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*PrepareDisplayLayers)(uint32_t devId, bool *needFlushFb); + + /* * + * @brief 获取显示设备合成类型有变化的layer。 + * + * 在合成准备阶段,显示设备会根据设备的合成能力修改图层的合成类型,该接口会返回哪些图层合成类型发生了变化。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param num 输出参数,表示合成类型发生了变化的图层数量。 + * @param Layers 输出参数,指向图层数组首地址。 + * @param type 输出参数,指向合成类型数组首地址。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayCompChange)(uint32_t devId, uint32_t *num, uint32_t *Layers, int32_t *type); + + /* * + * @brief 设置显示设备的裁剪区域。 + * + * 图形服务可以通过该接口设置显示设备的ClientBuffer的裁剪区域,裁剪区域不能超过ClientBuffer的大小。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param rect 输入参数,ClientBuffer的裁剪区域。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayClientCrop)(uint32_t devId, IRect *rect); + + /* * + * @brief 设置显示设备的显示区域。 + * + * 图形服务可以通过该接口设置显示设备的显示区域。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param rect 输入参数,显示区域。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayClientDestRect)(uint32_t devId, IRect *rect); + + /* * + * @brief 设置显示设备的显示缓存。 + * + * 图形服务可以通过该接口将显示缓存设置给显示设备,显示设备硬件合成结果将会存放在该显示缓存中。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param buffer 输入参数,显示缓存。 + * @param fence 输入参数,同步栅栏,标识显示缓存是否可以访问,有图形服务创建和释放,接口实现层需要等待同步栅栏发送信号后才能使用显示缓存。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayClientBuffer)(uint32_t devId, const BufferHandle *buffer, int32_t fence); + + /* * + * @brief 设置显示设备的显示脏区。 + * + * 图形服务可以通过该接口设置显示设备脏区,接口实现层可以根据该区域进行区域刷新,脏区是由多个矩形区域组合起来的。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param num 输入参数,矩形个数。 + * @param rect 输入参数,区域矩形指针,指向矩形数组的首地址。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayClientDamage)(uint32_t devId, uint32_t num, IRect *rect); + + /* * + * @brief 使能垂直同步信号。 + * + * 图形服务可以通过该接口使能或取消垂直同步信号,当有垂直同步信号产生时,接口实现层需要回调图形服务通过RegDisplayVBlankCallback注册的 + * VBlankCallback 回调。 + * 图形服务在需要刷新显示时需要使能垂直同步信号,在收到VBlankCallback事件回调时再进行合成送显,不需要刷新显示时需要取消垂直同步信号。 + * @param devId 输入参数,指示需要操作的设备ID。 + * @param enabled 输入参数,使能状态,true表示能,false表示不能。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayVsyncEnabled)(uint32_t devId, bool enabled); + + /* * + * @brief 获取显示图层fence。 + * + * 图形服务在调用接口Commit后,需要通过该接口获取图层的fence信息。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param num 输出参数,图层个数。 + * @param layers 输出参数,图层首地址,指向图层数组的首地址。 + * @param fences 输出参数,fence首地址,指向fence数组的首地址。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayReleaseFence)(uint32_t devId, uint32_t *num, uint32_t *layers, int32_t *fences); + + /* * + * @brief 获取显示设备支持的色域信息。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param num 输出参数,设备支持的色域数组个数。 + * @param gamuts 输出参数,色域首地址,指向色域数组首地址。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplaySupportedColorGamuts)(uint32_t devId, uint32_t *num, ColorGamut *gamuts); + + /* * + * @brief 获取显示设备当前的色域模式。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param gamut 输出参数,保存对应设备的色域模式,由接口实现层进行写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayColorGamut)(uint32_t devId, ColorGamut *gamut); + + /* * + * @brief 设置显示设备当前的色域模式。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param gamut 输入参数,表示需要设置的色域模式。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayColorGamut)(uint32_t devId, ColorGamut gamut); + + /* * + * @brief 获取显示设备当前的色域映射模式。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param gamutMap 输出参数,保存对应设备的色域映射模式,由接口实现层进行写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetDisplayGamutMap)(uint32_t devId, GamutMap *gamutMap); + + /* * + * @brief 设置显示设备当前的色域映射模式。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param gamutMap 输入参数,表示需要设置的色域映射模式。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayGamutMap)(uint32_t devId, GamutMap gamutMap); + + /* * + * @brief 设置显示设备当前的4x4的颜色转换矩阵。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param matrix 输入参数,表示需要设置的颜色转换模式。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetDisplayColorTransform)(uint32_t devId, const float *matrix); + + /* * + * @brief 获取显示设备支持的HDR属性信息。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param info 输出参数,保存对应设备的HDR属性信息,由接口实现层进行写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetHDRCapabilityInfos)(uint32_t devId, HDRCapability *info); + + /* * + * @brief 获取显示设备支持的 HDRMetadataKey。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param num 输出参数,设备支持的HDRMetadataKey数组个数。 + * @param keys 输出参数,HDRMetadataKey首地址, 指向HDRMetadataKey数组首地址。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetSupportedMetadataKey)(uint32_t devId, uint32_t *num, HDRMetadataKey *keys); + + /* * + * @brief 提交合成送显请求。 + * + * 图形服务通过该接口向接口实现层提交合成送显请求,如果有硬件合成层,接口实现层需要在这时进行合成,并且把最终合成的数据送到硬件进行显示。 + * + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param fences 输出参数,fence首地址,指向fence数组的首地址。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*Commit)(uint32_t devId, int32_t *fence); + + /* * + * @brief 调用显示设备命令。 + * + * 该接口用于图形服务和接口实现层之间的的接口扩展,如果由临时接口新增可以通过该接口进行扩展,不用增加新的接口定义。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*InvokeDisplayCmd)(uint32_t devId, ...); + + /* * + * @brief 创建虚拟显示设备。 + * + * 该接口用于创建一个虚拟显示设备。 + * + * @param width 输入参数,指定显示设备的像素宽度。 + * @param height 输入参数,指定显示设备的像素高度。 + * @param format 输出参数,指定显示设备的像素格式。 + * 详情参考{@}PixelFormat,接口实现层可以根据硬件需求,修改format并返回给图形服务。 + * @param devId 输出参数,用于接口层返回创建的设备ID。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*CreateVirtualDisplay)(uint32_t width, uint32_t height, int32_t *format, uint32_t *devId); + + /* * + * @brief 销毁虚拟显示设备。 + * + * 该接口用于销毁指定的虚拟显示设备。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*DestroyVirtualDisplay)(uint32_t devId); + + /* * + * @brief 设置虚拟屏的输出缓存。 + * + * 该接口用于设置虚拟屏输出缓存,接口实现层需要将虚拟屏的输出放入到该缓存中,接口实现层需要等待同步栅栏发送信号后才能使用缓存。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param buffer 输出参数,输出缓存。 + * @param fence 输出参数,同步栅栏。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetVirtualDisplayBuffer)(uint32_t devId, BufferHandle *buffer, int32_t fence); + + /* * + * @brief 获取显示设备的回写帧。 + * + * 该接口用来获取devId指定的回写点数据,接口实现层将显示设备回写点的数据写入到设置的缓存中。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param buffer 输出参数,回写点数据缓存。 + * @param fence 输出参数,同步栅栏,图形服务在调用该接口时,需要将Buffer的release fence + * 传入,标记该缓存是否可以被写入,接口实现层在接口返回前需要将buffer的acquirce fence + * 写入回传给图形服务,用来标记回写数据是否已经写入缓存。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetWriteBackFrame)(uint32_t devId, BufferHandle *buffer, int32_t *fence); + + /* * + * @brief 对指定显示设备创建回写点。 + * + * 该接口用来对指定的设备创建一个回写点,如果回写点数量超过了限制,接口实现层将会返回失败。 + * + * @param devId 输入参数,指示需要操作的设备ID,接口实现层在创建完回写点后将回写点设备ID存放在该参数中返回给图形服务。 + * @param width 输入参数,回写像素宽度。 + * @param height 输入参数,回写像素高度。 + * @param format 输入参数,回写点数据格式,详情参考{@}PixelFormat, 接口实现层可以根据硬件需求,修改format并返回给图形服务。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*CreateWriteBack)(uint32_t *devId, uint32_t width, uint32_t height, int32_t *format); + + /* * + * @brief 销毁指定显示设备的回写点。 + * + * 该接口用來销毁指定的回写点。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*DestroyWriteBack)(uint32_t devId); } DeviceFuncs; /** - * @brief 实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口 + * @brief 实现显示设备控制接口的初始化,申请操作显示设备控制接口的资源,并获取对应的操作接口。 * - * @param funcs 显示设备控制接口指针,初始化时分配内存,调用者不需要分配内存,调用者获取该指针用于操作显示设备。 + * @param funcs 输出参数,显示设备控制接口指针,初始化时分配内存,调用者不需要分配内存,调用者获取该指针用于操作显示设备。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * - * otherwise. * @since 1.0 * @version 1.0 */ @@ -127,10 +703,10 @@ int32_t DeviceInitialize(DeviceFuncs **funcs); /** * @brief 取消显示设备控制接口的初始化,释放控制接口使用到的资源。 * - * @param funcs 显示设备控制接口指针,用于释放初始化函数中分配的操作指针内存。 + * @param 输出参数,显示设备控制接口指针,用于释放初始化函数中分配的操作指针内存。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 diff --git a/zh-cn/device_api/hdi/display/display_gfx.h b/zh-cn/device_api/hdi/display/display_gfx.h index 7d229b5793c3e48201fe391ae8998f38aabf6b75..2bc1f28c2429e63d6072e5e12bf4aed58d14a54e 100644 --- a/zh-cn/device_api/hdi/display/display_gfx.h +++ b/zh-cn/device_api/hdi/display/display_gfx.h @@ -22,7 +22,7 @@ * 提供给图形系统使用的驱动接口,包括图层管理、设备控制、图形硬件加速、显示内存管理和回调接口等。 * * @since 1.0 - * @version 1.0 + * @version 2.0 */ /** @@ -49,8 +49,8 @@ typedef struct { /** * @brief 初始化硬件加速。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see DeinitGfx * @since 1.0 @@ -61,8 +61,8 @@ typedef struct { /** * @brief 去初始化硬件加速。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see InitGfx * @since 1.0 @@ -73,13 +73,13 @@ typedef struct { /** * @brief 填充矩形,用一种颜色填充画布上指定矩形区域的矩形框。 * - * @param surface 画布。 - * @param rect 填充的矩形区域。 - * @param color 填充的颜色。 - * @param opt 硬件加速选项。 + * @param surface 输入参数,画布。 + * @param rect 输入参数,填充的矩形区域。 + * @param color 输入参数,填充的颜色。 + * @param opt 输入参数,硬件加速选项。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -89,13 +89,13 @@ typedef struct { /** * @brief 绘制矩形框,用一种颜色在画布上绘制指定区域的矩形框。 * - * @param surface 画布。 - * @param rect 矩形框结构。 - * @param color 绘制的颜色。 - * @param opt 硬件加速选项。 + * @param surface 输入参数,画布。 + * @param rect 输入参数,矩形框结构。 + * @param color 输入参数,绘制的颜色。 + * @param opt 输入参数,硬件加速选项。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -105,12 +105,12 @@ typedef struct { /** * @brief 绘制直线,使用一种颜色在画布上绘制一条直线。 * - * @param surface 画布。 - * @param line 直线结构。 - * @param opt 硬件加速选项。 + * @param surface 输入参数,画布。 + * @param line 输入参数,直线结构。 + * @param opt 输入参数,硬件加速选项。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -120,12 +120,12 @@ typedef struct { /** * @brief 绘制圆形,使用一种颜色在画布上绘制指定圆心和半径的圆。 * - * @param surface 画布。 - * @param circle 圆形结构。 - * @param opt 硬件加速选项。 + * @param surface 输入参数,画布。 + * @param circle 输入参数,圆形结构。 + * @param opt 输入参数,硬件加速选项。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -137,14 +137,14 @@ typedef struct { * * 在位图搬移过程中,可以实现色彩空间转换、缩放、旋转等功能。 * - * @param srcSurface 源位图信息。 - * @param srcRect 源位图搬移区域。 - * @param dstSurface 目标位图信息。 - * @param dstRect 目标位图区域。 - * @param opt 硬件加速选项。 + * @param srcSurface 输入参数,源位图信息。 + * @param srcRect 输入参数,源位图搬移区域。 + * @param dstSurface 输出参数,目标位图信息。 + * @param dstRect 输出参数,目标位图区域。 + * @param opt 输入参数,硬件加速选项。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -156,10 +156,10 @@ typedef struct { * * 在使用硬件加速模块进行图像绘制、图像叠加、图像搬移时,通过调用该接口进行硬件同步,该接口会等待硬件加速完成。 * - * @param timeOut 硬件加速同步超时设置,设置为0表示无超时,等待直到硬件加速完成。 + * @param timeOut 输入参数,硬件加速同步超时设置,设置为0表示无超时,等待直到硬件加速完成。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -170,10 +170,10 @@ typedef struct { /** * @brief 获取硬件加速相关的操作接口指针。 * - * @param funcs 硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。 + * @param funcs 输出参数,硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -183,10 +183,10 @@ int32_t GfxInitialize(GfxFuncs **funcs); /** * @brief 释放硬件加速相关的操作接口指针。 * - * @param funcs 硬件加速操作接口指针。 + * @param funcs 输出参数,硬件加速操作接口指针。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 diff --git a/zh-cn/device_api/hdi/display/display_gralloc.h b/zh-cn/device_api/hdi/display/display_gralloc.h index e71f7d1f0b9a3f2626519906e9091b6c02942047..a07f5047b82c2201c2df81a02f3f7cd47d041647 100644 --- a/zh-cn/device_api/hdi/display/display_gralloc.h +++ b/zh-cn/device_api/hdi/display/display_gralloc.h @@ -22,7 +22,7 @@ * 提供给图形系统使用的驱动接口,包括图层管理、设备控制、图形硬件加速、显示内存管理和回调接口等。 * * @since 1.0 - * @version 1.0 + * @version 2.0 */ /** @@ -31,7 +31,7 @@ * @brief 显示内存驱动接口声明。 * * @since 1.0 - * @version 1.0 + * @version 2.0 */ #ifndef DISPLAY_GRALLOC_H @@ -51,95 +51,140 @@ typedef struct { * * 根据GUI图形系统传递的参数分配内存,分配的内存根据类型可分为共享内存、cache内存和非cache内存等。 * - * @param buffer 指向申请的内存buffer指针。 + * @param info 输入参数,指示申请内存AllocInfo信息. + * @param handle 输入参数,指向申请的内存handle指针。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ - int32_t (*AllocMem)(GrallocBuffer *buffer); + int32_t (*AllocMem)(const AllocInfo* info, BufferHandle** handle); /** * @brief 显示内存释放。 * - * @param buffer 待释放的内存buffer指针。 + * @param handle 输入参数,待释放的内存handle指针。 + * + * @return 成功返回有效地址,失败返回NULL。 * * @since 1.0 * @version 1.0 */ - void (*FreeMem)(GrallocBuffer *buffer); + void (*FreeMem)(BufferHandle *handle); /** * @brief 显示内存映射,将内存映射到对应的进程地址空间中。 * - * @param buffer 待映射内存buffer指针。 + * @param handle 输入参数,待映射内存handle指针。 + * + * @return 成功返回有效地址,失败返回NULL。 * - * @return 成功返回有效地址,失败返回NULL * @since 1.0 * @version 1.0 */ - void *(*Mmap)(GrallocBuffer *buffer); + void *(*Mmap)(BufferHandle *handle); + /** + * @brief YUV 内存映射。 + * + * @param handle 输出参数,指示内存映射的输出缓存。 + * @param info 输出参数,指示内存映射的YUVDescInfo信息。 + * + * @return 成功返回有效地址,失败返回 NULL。 + * + * @since 3.2 + * @version 1.0 + */ + void *(*MmapYUV)(BufferHandle *handle, YUVDescInfo *info); /** - * @brief 显示内存映射,将内存映射为cache内存到对应的进程地址空间中。 + * @brief 显示内存映射,将内存映射为 cache 内存到对应的进程地址空间中。 + * + * @param handle 输出参数,待映射内存 handle 指针。 * - * @param buffer 待映射内存buffer指针。 + * @return 成功返回有效地址,失败返回 NULL。 * - * @return 成功返回有效地址,失败返回NULL * @since 1.0 * @version 1.0 */ - void *(*MmapCache)(GrallocBuffer *buffer); + void *(*MmapCache)(BufferHandle *handle); /** * @brief 内存反映射,将内存进行反映射。 * - * @param buffer 待反映射内存buffer指针。 + * @param handle 输出参数,待反映射内存handle指针。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ - int32_t (*Unmap)(GrallocBuffer *buffer); + int32_t (*Unmap)(BufferHandle *handle); /** * @brief 刷新cache,刷新cache里的内容到内存并且使cache里的内容无效。 * - * @param buffer 待刷新cache的buffer指针。 + * @param handle 输出参数,待刷新cache的handle指针。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ - int32_t (*FlushCache)(GrallocBuffer *buffer); + int32_t (*FlushCache)(BufferHandle *handle); /** * @brief 刷新Mmap映射的cache,刷新Mmap映射的cache里的内容到内存并且使cache里的内容无效。 * - * @param buffer 待刷新cache的buffer指针。 + * @param handle 输出参数,待刷新cache的handle指针。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*FlushMCache)(BufferHandle *handle); + + /** + * @brief 使cache中的内容无效用以存储更新内存内容。 + * + * @param handle 输出参数,待无效cache的handle指针。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*InvalidateCache)(BufferHandle* handle); + + /** + * @brief 检测给定的VerifyAllocInfo数组信息能否申请内存成功。 + * + * @param num 输入参数,VerifyAllocInfo数组个数。 + * @param infos 输出参数,VerifyAllocInfo数组首地址。 + * @param supporteds 输出参数,supporteds数组首地址, 表示能否申请成功。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 */ - int32_t (*FlushMCache)(GrallocBuffer *buffer); + int32_t (*IsSupportedAlloc)(uint32_t num, const VerifyAllocInfo *infos, bool *supporteds); } GrallocFuncs; /** * @brief 初始化内存模块,并获取内存提供的操作接口。 * - * @param funcs 内存模块操作接口指针,初始化内存模块时分配内存,调用者不需要分配内存,调用者获取该指针操作内存。 + * @param funcs 输出参数,内存模块操作接口指针,初始化内存模块时分配内存,调用者不需要分配内存,调用者获取该指针操作内存。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -149,10 +194,10 @@ int32_t GrallocInitialize(GrallocFuncs **funcs); /** * @brief 取消初始化内存模块,并释放内存操作接口指针。 * - * @param funcs 内存操作接口指针,用于释放内存初始化函数中分配的操作指针内存。 + * @param funcs 输出参数,内存操作接口指针,用于释放内存初始化函数中分配的操作指针内存。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 diff --git a/zh-cn/device_api/hdi/display/display_layer.h b/zh-cn/device_api/hdi/display/display_layer.h index 869e84750949087f79a304ee7979b0ec205adda3..b9e8b0be8749f99f2d6ee278d32ac5637ea385b2 100644 --- a/zh-cn/device_api/hdi/display/display_layer.h +++ b/zh-cn/device_api/hdi/display/display_layer.h @@ -31,7 +31,7 @@ * @brief 显示图层驱动接口声明。 * * @since 1.0 - * @version 1.0 + * @version 2.0 */ #ifndef DISPLAY_LAYTER_H @@ -49,10 +49,10 @@ typedef struct { /** * @brief 初始化显示设备。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see DeinitDisplay * @since 1.0 @@ -63,10 +63,10 @@ typedef struct { /** * @brief 取消初始化显示设备。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see InitDisplay * @since 1.0 @@ -77,11 +77,11 @@ typedef struct { /** * @brief 获取显示设备相关信息。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param dispInfo 显示相关信息。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param dispInfo 输出参数,显示相关信息。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -89,33 +89,33 @@ typedef struct { int32_t (*GetDisplayInfo)(uint32_t devId, DisplayInfo *dispInfo); /** - * @brief 打开图层 + * @brief 打开图层。 * * GUI在使用图层时,需要先根据图层信息打开图层,打开图层成功可获得图层ID,根据图层ID使用图层各接口。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerInfo 图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。 - * @param layerId 图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerInfo 输入参数,图层信息,上层GUI打开图层时需传递图层信息,包括图层类型,图层大小,像素格式等信息。 + * @param layerId 输入参数,图层ID,打开图层成功后返回给GUI的图层ID,用于标识唯一的图层。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see CloseLayer * @since 1.0 * @version 1.0 */ - int32_t (*OpenLayer)(uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId); + int32_t (*CreateLayer)(uint32_t devId, const LayerInfo *layerInfo, uint32_t *layerId); /** - * @brief 关闭图层 + * @brief 关闭图层。 * * 在完成显示后,如果不在需要使用图层,调用关闭图层接口关闭图层。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see OpenLayer * @since 1.0 @@ -124,16 +124,16 @@ typedef struct { int32_t (*CloseLayer)(uint32_t devId, uint32_t layerId); /** - * @brief 设置图层是否可见 + * @brief 设置图层是否可见。 * * 不可见情况下图层不显示在屏幕上,可见情况下图层显示在屏幕上。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param visible 待设置的图层可见标识,设置true表示图层可见,设置false表示图层不可见。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param visible 输入参数,待设置的图层可见标识,设置true表示图层可见,设置false表示图层不可见。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerVisibleState * @since 1.0 @@ -144,12 +144,12 @@ typedef struct { /** * @brief 获取图层是否可见状态。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param visible 保存获取的图层可见状态,为true表示图层可见,为false表示图层不可见。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param visible 输出参数,保存获取的图层可见状态,true表示图层可见,false表示图层不可见。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerVisible * @since 1.0 @@ -160,12 +160,12 @@ typedef struct { /** * @brief 设置图层大小。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param rect 待设置的图层大小,单位为像素。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param rect 输入参数,待设置的图层大小,单位为像素。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerSize * @since 1.0 @@ -176,12 +176,12 @@ typedef struct { /** * @brief 获取图层大小。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param rect 保存获取的图层大小。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param rect 输出参数,保存获取的图层大小。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerSize * @since 1.0 @@ -192,12 +192,12 @@ typedef struct { /** * @brief 设置图层裁剪区域。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param rect 待设置的裁剪区域。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param rect 输入参数,待设置的裁剪区域。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -205,16 +205,16 @@ typedef struct { int32_t (*SetLayerCrop)(uint32_t devId, uint32_t layerId, IRect *rect); /** - * @brief 设置图层Z轴次序 + * @brief 设置图层Z轴次序。 * * 图层的Z序值越大,图层越靠上显示。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param zorder 待设置的图层Z序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param zorder 输入参数,待设置的图层Z序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerZorder * @since 1.0 @@ -225,12 +225,12 @@ typedef struct { /** * @brief 获取图层Z轴次序。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param zorder 保存获取的图层Z轴次序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param zorder 输出参数,保存获取的图层Z轴次序,为整数值,取值范围为[0, 255],值越大图层越往上排列。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerZorder * @since 1.0 @@ -241,12 +241,12 @@ typedef struct { /** * @brief 设置图层预乘。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param preMul 待设置的图层预乘使能标识,1表示使能图层预乘,0表示不使能图层预乘。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param preMul 输入参数,待设置的图层预乘使能标识,1表示使能图层预乘,0表示不使能图层预乘。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerPreMulti * @since 1.0 @@ -257,12 +257,12 @@ typedef struct { /** * @brief 获取图层预乘标识。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param preMul 保存获取的图层预乘使能标识。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param preMul 输出参数,保存获取的图层预乘使能标识。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerPreMulti * @since 1.0 @@ -273,12 +273,12 @@ typedef struct { /** * @brief 设置图层alpha值。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param alpha 待设置的图层alpha值。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param alpha 输入参数,待设置的图层 alpha 值。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerAlpha * @since 1.0 @@ -289,12 +289,12 @@ typedef struct { /** * @brief 获取图层alpha值。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param alpha 保存获取的图层alpha值。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param alpha 输出参数,保存获取的图层alpha值。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerAlpha * @since 1.0 @@ -305,13 +305,13 @@ typedef struct { /** * @brief 设置图层colorkey属性,在图层叠加时使用。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param enable 待设置的色键使能标识。 - * @param key 待设置的色键值,即颜色值。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param enable 输入参数,待设置的色键使能标识。 + * @param key 输入参数,待设置的色键值,即颜色值。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerColorKey * @since 1.0 @@ -322,13 +322,13 @@ typedef struct { /** * @brief 获取图层colorkey。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param enable 保存获取的enable 色键使能标识。 - * @param key 保存获取的色键值,即颜色值。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param enable 输出参数,保存获取的enable色键使能标识。 + * @param key 输出参数,保存获取的色键值,即颜色值。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerColorKey * @since 1.0 @@ -339,13 +339,13 @@ typedef struct { /** * @brief 设置图层调色板。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param palette 待设置的图层调色板。 - * @param len 调色板长度。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param palette 输入参数,待设置的图层调色板。 + * @param len 输入参数,调色板长度。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerPalette * @since 1.0 @@ -356,13 +356,13 @@ typedef struct { /** * @brief 获取图层调色板。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param palette 保存获取的图层调色板。 - * @param len 调色板长度。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param palette 输出参数,保存获取的图层调色板。 + * @param len 输入参数,调色板长度。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerPalette * @since 1.0 @@ -373,12 +373,12 @@ typedef struct { /** * @brief 设置图层变换模式,根据不同的场景设置图层的旋转、缩放、移位等。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param type 待设置的图层变换模式。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param type 输入参数,待设置的图层变换模式。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -390,12 +390,12 @@ typedef struct { * * 在特定场景下,需要对图像数据进行压缩,可设置启动或关闭图层压缩功能。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param compType 图层压缩使能标识。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param compType 输入参数,图层压缩使能标识。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see GetLayerCompression * @since 1.0 @@ -406,12 +406,12 @@ typedef struct { /** * @brief 获取图层压缩功能是否打开。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param compType 保存获取的图层压缩功能状态。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param compType 输出参数,保存获取的图层压缩功能状态。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see SetLayerCompression * @since 1.0 @@ -420,16 +420,16 @@ typedef struct { int32_t (*GetLayerCompression)(uint32_t devId, uint32_t layerId, int32_t *compType); /** - * @brief 设置图层刷新区域 + * @brief 设置图层刷新区域。 * * GUI图形系统绘制好图像数据后,在调用Flush接口刷新屏幕之前需要设置图层刷新区域。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param region 待设置的刷新区域。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param region 输入参数,待设置的刷新区域。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -437,16 +437,16 @@ typedef struct { int32_t (*SetLayerDirtyRegion)(uint32_t devId, uint32_t layerId, IRect *region); /** - * @brief 获取图层的buffer + * @brief 获取图层的buffer。 * * 向buffer中绘图后,调用Flush接口显示到屏幕上。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param buffer 保存获取的图层buffer。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param buffer 输出参数,保存获取的图层buffer。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see Flush * @since 1.0 @@ -455,16 +455,16 @@ typedef struct { int32_t (*GetLayerBuffer)(uint32_t devId, uint32_t layerId, LayerBuffer *buffer); /** - * @brief 刷新图层 + * @brief 刷新图层。 * * 将buffer显示数据刷新到指定的layerId图层上,实现图像数据显示到屏幕上。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param buffer 待刷新的buffer。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param buffer 输出参数,待刷新的buffer。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -472,16 +472,16 @@ typedef struct { int32_t (*Flush)(uint32_t devId, uint32_t layerId, LayerBuffer *buffer); /** - * @brief 实现等待帧消隐期到来功能 + * @brief 实现等待帧消隐期到来功能。 * * 该函数会让系统等待,直到帧消隐期到来,用于软件和硬件之间的同步。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param layerId 图层ID,图层的唯一标识,根据图层ID操作图层。 - * @param timeOut 超时时间,在设置的超时时间后,没有等到帧消隐期到来则超时返回。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param layerId 输入参数,图层ID,图层的唯一标识,根据图层ID操作图层。 + * @param timeOut 输入参数,超时时间,在设置的超时时间后,没有等到帧消隐期到来则超时返回。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @since 1.0 * @version 1.0 @@ -489,30 +489,251 @@ typedef struct { int32_t (*WaitForVBlank)(uint32_t devId, uint32_t layerId, int32_t timeOut); /** - * @brief 实现抓图功能 + * @brief 实现抓图功能。 * * 本函数将显示设备上的图像数据截图保存到buffer中,用于调试、应用截图等场景。 * - * @param devId 显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 - * @param buffer 保存截屏的buffer信息。 + * @param devId 输入参数,显示设备ID,用于支持多个显示设备,取值从0开始,0表示第一个设备,最大支持5个设备。 + * @param buffer 输出参数,保存截屏的buffer信息。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * otherwise. * @since 1.0 * @version 1.0 */ int32_t (*SnapShot)(uint32_t devId, LayerBuffer *buffer); + + /** + * @brief 设置一个图层的可见区域 + * + * + * @param devId 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 + * @param layerId 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 + * @param num 输入参数,指定rect的计数,该区域包含多个 IRect,num表示该区域中有多少个rect区域。 + * @param rect 输出参数,rectes对象的指针。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 2.0 + * @version 2.0 + */ + int32_t (*SetLayerVisibleRegion)(uint32_t devId, uint32_t layerId, uint32_t num, IRect *rect); + + /** + * @brief 设置一个层的缓冲区。 + * + * + * @param devId 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 + * @param layerId 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 + * @param buffer 输入参数,指示缓冲区句柄的指针,该指针包含所有用于合成的缓冲区的所有信息。 + * @param fence 输入参数,同步文件的fd。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 2.0 + * @version 2.0 + */ + int32_t (*SetLayerBuffer)(uint32_t devId, uint32_t layerId, const BufferHandle *buffer, int32_t fence); + + /** + * @brief 扩展接口 + * + * + * @param devId 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 + * @param layerId 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 + * @param cmd 输入参数,表示扩展cmd,用于识别不同的意图。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 2.0 + * @version 2.0 + */ + int32_t (*InvokeLayerCmd)(uint32_t devId, uint32_t layerId, uint32_t cmd, ...); + + /** + * @brief 设置客户端期望的组合类型 + * + * + * @param devId 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 + * @param layerId 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 + * @param type 输入参数,指示客户端期望的组合类型。它可能随实现而变化。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 2.0 + * @version 2.0 + */ + int32_t (*SetLayerCompositionType)(uint32_t devId, uint32_t layerId, CompositionType type); + + /** + * @brief 设置混合类型 + * + * + * @param devId 输入参数,显示设备的ID。取值范围为0 ~ 4,其中0表示第一个显示设备,4表示最后一个显示设备。 + * @param layerId 输入参数,层ID,唯一标识一个层。可以对该层进行操作。 + * @param type 输入参数,指示混合类型。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 2.0 + * @version 2.0 + */ + int32_t (*SetLayerBlendType)(uint32_t devId, uint32_t layerId, BlendType type); + + /** + * @brief 设置图层当前的颜色转换矩阵。 + * + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param matrix 输入参数,表示需要设置的颜色转换模式。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetLayerColorTransform)(uint32_t devId, uint32_t layerId, const float *matrix); + + /** + * @brief 设置图层的颜色数据空间。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param colorSpace 输入参数,表示需要设置的颜色数据空间。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetLayerColorDataSpace)(uint32_t devId, uint32_t layerId, ColorDataSpace colorSpace); + + /** + * @brief 获取图层当前的颜色数据空间。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param colorSpace 输出参数,保存对应图层的颜色数据空间。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetLayerColorDataSpace)(uint32_t devId, uint32_t layerId, ColorDataSpace *colorSpace); + + /** + * @brief 设置图层的HDRmetaData。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param num 输入参数,metadata 数组个数。 + * @param metaData 输入参数,表示需要设置的 metadata 数组首地址。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetLayerMetaData)(uint32_t devId, uint32_t layerId, uint32_t num, const HDRMetaData *metaData); + + /** + * @brief 设置图层的metaData set。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param key 输入参数,表示需要设置的 HDRMetadataKey。 + * @param num 输入参数,metadata 数组个数。 + * @param metaData 输入参数,表示需要设置的 metadata 数组首地址, 数据类型为uint8_t。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*SetLayerMetaDataSet)(uint32_t devId, uint32_t layerId, HDRMetadataKey key, uint32_t num, + const uint8_t *metaData); + + /** + * @brief 获取图层支持的上屏时间戳类型。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param type 输出参数,保存图层支持的上屏时间戳类型, 由接口实现层进行写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetSupportedPresentTimestamp)(uint32_t devId, uint32_t layerId, PresentTimestampType *type); + + /** + * @brief 获取图层的上屏时间戳信息。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param pts 输出参数,保存图层的上屏时间戳信息, 由接口实现层进行写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 1.0 + * @version 1.0 + */ + int32_t (*GetHwPresentTimestamp)(uint32_t devId, uint32_t layerId, PresentTimestamp *pts); + + /** + * @brief 设置图层的tunnel句柄。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param handle 输入参数,表示需要设置的句柄。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 3.2 + * @version 1.0 + */ + int32_t (*SetLayerTunnelHandle)(uint32_t devId, uint32_t layerId, ExtDataHandle *handle); + /** + * @brief 获取图层的同步栅栏。 + * + * @param devId 输入参数,指示需要操作的设备ID。 + * @param layerId 输入参数,指示需要操作的图层ID。 + * @param fence 输出参数,保存图层的 release fence, 由接口实现层进行写入。 + * + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * + * @since 3.2 + * @version 1.0 + */ + int32_t (*GetLayerReleaseFence)(uint32_t devId, uint32_t layerId, int32_t *fence); } LayerFuncs; /** * @brief 实现图层初始化功能,申请图层使用的资源,并获取图层提供的操作接口。 * - * @param funcs 图层操作接口指针,初始化图层时分配内存,调用者不需要分配内存,调用者获取该指针操作图层。 + * @param funcs 输出参数,图层操作接口指针,初始化图层时分配内存,调用者不需要分配内存,调用者获取该指针操作图层。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see LayerUninitialize * @since 1.0 @@ -521,12 +742,12 @@ typedef struct { int32_t LayerInitialize(LayerFuncs **funcs); /** - * @brief 取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针 + * @brief 取消图层初始化功能,释放图层使用到的资源,并释放图层操作接口指针。 * - * @param funcs 图层操作接口指针,用于释放图层初始化函数中分配的操作指针内存。 + * @param funcs 输出参数,图层操作接口指针,用于释放图层初始化函数中分配的操作指针内存。 * - * @return Returns DISPLAY_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 + * @return DISPLAY_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link DispErrCode}。 * * @see LayerInitialize * @since 1.0 diff --git a/zh-cn/device_api/hdi/display/display_type.h b/zh-cn/device_api/hdi/display/display_type.h index fae2f52df45ab4872f3319d356a55d9624bebd44..3ca5e2f30bd809a5055bfac181b87781b6ed5141 100644 --- a/zh-cn/device_api/hdi/display/display_type.h +++ b/zh-cn/device_api/hdi/display/display_type.h @@ -22,7 +22,7 @@ * 提供给图形系统使用的驱动接口,包括图层管理、设备控制、图形硬件加速、显示内存管理和回调接口等。 * * @since 1.0 - * @version 1.0 + * @version 2.0 */ /** @@ -31,19 +31,21 @@ * @brief 显示类型定义,定义显示驱动接口所使用的数据类型。 * * @since 1.0 - * @version 1.0 + * @version 2.0 */ #ifndef DISPLAY_TYPE_H #define DISPLAY_TYPE_H #include #include +#include #include #include #include #include #include #include +#include "buffer_handle.h" #ifdef __cplusplus extern "C" { @@ -54,50 +56,15 @@ extern "C" { * */ typedef enum { - /** - * 成功 - */ - DISPLAY_SUCCESS = 0, - - /** - * 失败 - */ - DISPLAY_FAILURE = -1, - - /** - * fd错误 - */ - DISPLAY_FD_ERR = -2, - - /** - * 参数错误 - */ - DISPLAY_PARAM_ERR = -3, - - /** - * 空指针 - */ - DISPLAY_NULL_PTR = -4, - - /** - * 不支持的特性 - */ - DISPLAY_NOT_SUPPORT = -5, - - /** - * 内存不足 - */ - DISPLAY_NOMEM = -6, - - /** - * 系统繁忙 - */ - DISPLAY_SYS_BUSY = -7, - - /** - * 操作不允许 - */ - DISPLAY_NOT_PERM = -8 + DISPLAY_SUCCESS = 0, /**< 成功 */ + DISPLAY_FAILURE = -1, /**< 失败 */ + DISPLAY_FD_ERR = -2, /**< fd错误 */ + DISPLAY_PARAM_ERR = -3, /**< 参数错误 */ + DISPLAY_NULL_PTR = -4, /**< 空指针 */ + DISPLAY_NOT_SUPPORT = -5, /**< 不支持的特性 */ + DISPLAY_NOMEM = -6, /**< 内存不足 */ + DISPLAY_SYS_BUSY = -7, /**< 系统繁忙 */ + DISPLAY_NOT_PERM = -8 /**< 操作不允许 */ } DispErrCode; /** @@ -105,206 +72,69 @@ typedef enum { * */ typedef enum { - /** - * 图形层 - */ - LAYER_TYPE_GRAPHIC, - - /** - * 视频层 - */ - LAYER_TYPE_OVERLAY, - - /** - * 媒体播放 - */ - LAYER_TYPE_SDIEBAND, - - /** - * 空图层 - */ - LAYER_TYPE_BUTT + LAYER_TYPE_GRAPHIC, /**< 图形层 */ + LAYER_TYPE_OVERLAY, /**< 视频层 */ + LAYER_TYPE_SDIEBAND, /**< 媒体播放 */ + LAYER_TYPE_CURSOR, /**< 光标层 */ + LAYER_TYPE_BUTT /**< 空图层 */ } LayerType; +/* * + * @brief 定义缓冲区使用。 + * + */ +enum { + HBM_USE_CPU_READ = (1 << 0), /**< CPU 读缓冲 */ + HBM_USE_CPU_WRITE = (1 << 1), /**< CPU 写内存 */ + HBM_USE_MEM_MMZ = (1 << 2), /**< MMZ */ + HBM_USE_MEM_DMA = (1 << 3), /**< DMA缓冲区 */ + HBM_USE_MEM_SHARE = (1 << 4), /**< 共享内存缓冲区 */ + HBM_USE_MEM_MMZ_CACHE = (1 << 5), /**< MMZ缓存 */ + HBM_USE_MEM_FB = (1 << 6), /**< 帧缓存 */ + HBM_USE_ASSIGN_SIZE = (1 << 7), /**< 内存分配 */ +}; + /** * @brief 像素格式类型定义。 * */ typedef enum { - /** - * CLUT8 格式 - */ - PIXEL_FMT_CLUT8 = 0, - - /** - * CLUT1 格式 - */ - PIXEL_FMT_CLUT1, - - /** - * CLUT4 格式 - */ - PIXEL_FMT_CLUT4, - - /** - * RGB565 格式 - */ - PIXEL_FMT_RGB_565, - - /** - * RGBA5658 格式 - */ - PIXEL_FMT_RGBA_5658, - - /** - * RGBX4444 格式 - */ - PIXEL_FMT_RGBX_4444, - - /** - * RGBA4444 格式 - */ - PIXEL_FMT_RGBA_4444, - - /** - * RGB444 格式 - */ - PIXEL_FMT_RGB_444, - - /** - * RGBX5551 格式 - */ - PIXEL_FMT_RGBX_5551, - - /** - * RGBA5551 格式 - */ - PIXEL_FMT_RGBA_5551, - - /** - * RGB555 格式 - */ - PIXEL_FMT_RGB_555, - - /** - * RGBX8888 格式 - */ - PIXEL_FMT_RGBX_8888, - - /** - * RGBA8888 格式 - */ - PIXEL_FMT_RGBA_8888, - - /** - * RGB888 格式 - */ - PIXEL_FMT_RGB_888, - - /** - * BGR565 格式 - */ - PIXEL_FMT_BGR_565, - - /** - * BGRX4444 格式 - */ - PIXEL_FMT_BGRX_4444, - - /** - * BGRA4444 格式 - */ - PIXEL_FMT_BGRA_4444, - - /** - * BGRX5551 格式 - */ - PIXEL_FMT_BGRX_5551, - - /** - * BGRA5551 格式 - */ - PIXEL_FMT_BGRA_5551, - - /** - * BGRX8888 格式 - */ - PIXEL_FMT_BGRX_8888, - - /** - * BGRA8888 格式 - */ - PIXEL_FMT_BGRA_8888, - - /** - * YUV422 交错格式 - */ - PIXEL_FMT_YUV_422_I, - - /** - * YCBCR422 半平面格式 - */ - PIXEL_FMT_YCBCR_422_SP, - - /** - * YCRCB422 半平面格式 - */ - PIXEL_FMT_YCRCB_422_SP, - - /** - * YCBCR420 半平面格式 - */ - PIXEL_FMT_YCBCR_420_SP, - - /** - * YCRCB420 半平面格式 - */ - PIXEL_FMT_YCRCB_420_SP, - - /** - * YCBCR422 平面格式 - */ - PIXEL_FMT_YCBCR_422_P, - - /** - * YCRCB422 平面格式 - */ - PIXEL_FMT_YCRCB_422_P, - - /** - * YCBCR420 平面格式 - */ - PIXEL_FMT_YCBCR_420_P, - - /** - * YCRCB420 平面格式 - */ - PIXEL_FMT_YCRCB_420_P, - - /** - * YUYV422 打包格式 - */ - PIXEL_FMT_YUYV_422_PKG, - - /** - * UYVY422 打包格式 - */ - PIXEL_FMT_UYVY_422_PKG, - - /** - * YVYU422 打包格式 - */ - PIXEL_FMT_YVYU_422_PKG, - - /** - * VYUY422 打包格式 - */ - PIXEL_FMT_VYUY_422_PKG, - - /** - * 无效像素格式 - */ - PIXEL_FMT_BUTT + PIXEL_FMT_CLUT8 = 0, /**< CLUT8 格式 */ + PIXEL_FMT_CLUT1, /**< CLUT1 格式 */ + PIXEL_FMT_CLUT4, /**< CLUT4 格式 */ + PIXEL_FMT_RGB_565, /**< RGB565 格式 */ + PIXEL_FMT_RGBA_5658, /**< RGBA5658 格式 */ + PIXEL_FMT_RGBX_4444, /**< RGBX4444 格式 */ + PIXEL_FMT_RGBA_4444, /**< RGBA4444 格式 */ + PIXEL_FMT_RGB_444, /**< RGB444 格式 */ + PIXEL_FMT_RGBX_5551, /**< RGBX5551 格式 */ + PIXEL_FMT_RGBA_5551, /**< RGBA5551 格式 */ + PIXEL_FMT_RGB_555, /**< RGB555 格式 */ + PIXEL_FMT_RGBX_8888, /**< RGBX8888 格式 */ + PIXEL_FMT_RGBA_8888, /**< RGBA8888 格式 */ + PIXEL_FMT_RGB_888, /**< RGB888 格式 */ + PIXEL_FMT_BGR_565, /**< BGR565 格式 */ + PIXEL_FMT_BGRX_4444, /**< BGRX4444 格式 */ + PIXEL_FMT_BGRA_4444, /**< BGRA4444 格式 */ + PIXEL_FMT_BGRX_5551, /**< BGRX5551 格式 */ + PIXEL_FMT_BGRA_5551, /**< BGRA5551 格式 */ + PIXEL_FMT_BGRX_8888, /**< BGRX8888 格式 */ + PIXEL_FMT_BGRA_8888, /**< BGRA8888 格式 */ + PIXEL_FMT_YUV_422_I, /**< YUV422 交错格式 */ + PIXEL_FMT_YCBCR_422_SP, /**< YCBCR422 半平面格式 */ + PIXEL_FMT_YCRCB_422_SP, /**< YCRCB422 半平面格式 */ + PIXEL_FMT_YCBCR_420_SP, /**< YCBCR420 半平面格式 */ + PIXEL_FMT_YCRCB_420_SP, /**< YCRCB420 半平面格式 */ + PIXEL_FMT_YCBCR_422_P, /**< YCBCR422 平面格式 */ + PIXEL_FMT_YCRCB_422_P, /**< YCRCB422 平面格式 */ + PIXEL_FMT_YCBCR_420_P, /**< YCBCR420 平面格式 */ + PIXEL_FMT_YCRCB_420_P, /**< YCRCB420 平面格式 */ + PIXEL_FMT_YUYV_422_PKG, /**< YUYV422 打包格式 */ + PIXEL_FMT_UYVY_422_PKG, /**< UYVY422 打包格式t */ + PIXEL_FMT_YVYU_422_PKG, /**< YVYU422 打包格式 */ + PIXEL_FMT_VYUY_422_PKG, /**< VYUY422 打包格式*/ + PIXEL_FMT_VENDER_MASK = 0X7FFF0000, /**< vendor mask 格式 */ + PIXEL_FMT_BUTT = 0X7FFFFFFF /**< Invalid 像素格式 */ } PixelFormat; /** @@ -312,30 +142,11 @@ typedef enum { * */ typedef enum { - /** - * 不旋转 - */ - ROTATE_NONE = 0, - - /** - * 旋转90度 - */ - ROTATE_90, - - /** - * 旋转180度 - */ - ROTATE_180, - - /** - * 旋转270度 - */ - ROTATE_270, - - /** - * 无效操作 - */ - ROTATE_BUTT + ROTATE_NONE = 0, /**< 不旋转 */ + ROTATE_90, /**< 旋转90度 */ + ROTATE_180, /**< 旋转180度 */ + ROTATE_270, /**< 旋转270度 */ + ROTATE_BUTT /**< 无效操作 */ } TransformType; /** @@ -345,113 +156,23 @@ typedef enum { * */ typedef enum { - /** - * 常规内存,不带cache - */ - NORMAL_MEM = 0, - - /** - * 带cache内存 - */ - CACHE_MEM, - - /** - * 共享内存 - */ - SHM_MEM -} MemType; - -/** - * @brief 定义图像的压缩类型。 - * - * 在硬件加速时可指定压缩类型,硬件加速按照指定的压缩类型进行压缩图像。 - * - */ -typedef enum { - /** - * No 混合操作 - */ - BLEND_NONE = 0, - - /** - * CLEAR 混合操作 - */ - BLEND_CLEAR, - - /** - * SRC 混合操作 - */ - BLEND_SRC, - - /** - * SRC_OVER 混合操作 - */ - BLEND_SRCOVER, - - /** - * DST_OVER 混合操作 - */ - BLEND_DSTOVER, - - /** - * SRC_IN 混合操作 - */ - BLEND_SRCIN, - - /** - * DST_IN 混合操作 - */ - BLEND_DSTIN, - - /** - * SRC_OUT 混合操作 - */ - BLEND_SRCOUT, - - /** - * DST_OUT 混合操作 - */ - BLEND_DSTOUT, - - /** - * SRC_ATOP 混合操作 - */ - BLEND_SRCATOP, - - /** - * DST_ATOP 混合操作 - */ - BLEND_DSTATOP, - - /** - * ADD 混合操作 - */ - BLEND_ADD, - - /** - * XOR 混合操作 - */ - BLEND_XOR, - - /** - * DST 混合操作 - */ - BLEND_DST, - - /** - * AKS 混合操作 - */ - BLEND_AKS, - - /** - * AKD 混合操作 - */ - BLEND_AKD, - - /** - * 空操作 - */ - BLEND_BUTT + BLEND_NONE = 0, /**< No 混合操作 */ + BLEND_CLEAR, /**< CLEAR 混合操作 */ + BLEND_SRC, /**< SRC 混合操作 */ + BLEND_SRCOVER, /**< SRC_OVER 混合操作 */ + BLEND_DSTOVER, /**< DST_OVER 混合操作 */ + BLEND_SRCIN, /**< SRC_IN 混合操作 */ + BLEND_DSTIN, /**< DST_IN 混合操作 */ + BLEND_SRCOUT, /**< SRC_OUT 混合操作 */ + BLEND_DSTOUT, /**< DST_OUT 混合操作 */ + BLEND_SRCATOP, /**< SRC_ATOP 混合操作 */ + BLEND_DSTATOP, /**< DST_ATOP 混合操作 */ + BLEND_ADD, /**< ADD 混合操作 */ + BLEND_XOR, /**< XOR 混合操作 */ + BLEND_DST, /**< DST 混合操作 */ + BLEND_AKS, /**< AKS 混合操作 */ + BLEND_AKD, /**< AKD 混合操作 */ + BLEND_BUTT /**< 空操作 */ } BlendType; /** @@ -462,90 +183,23 @@ typedef enum { * */ typedef enum { - /** - * Blackness - */ - ROP_BLACK = 0, - - /** - *~(S2+S1) - */ - ROP_NOTMERGEPEN, - - /** - * ~S2&S1 - */ - ROP_MASKNOTPEN, - - /** - *~S2 - */ - ROP_NOTCOPYPEN, - - /** - * S2&~S1 - */ - ROP_MASKPENNOT, - - /** - * ~S1 - */ - ROP_NOT, - - /** - * S2^S1 - */ - ROP_XORPEN, - - /** - * ~(S2&S1) - */ - ROP_NOTMASKPEN, - - /** - * S2&S1 - */ - ROP_MASKPEN, - - /** - * ~(S2^S1) - */ - ROP_NOTXORPEN, - - /** - * S1 - */ - ROP_NOP, - - /** - * ~S2+S1 - */ - ROP_MERGENOTPEN, - - /** - * S2 - */ - ROP_COPYPE, - - /** - * S2+~S1 - */ - ROP_MERGEPENNOT, - - /** - * S2+S1 - */ - ROP_MERGEPEN, - - /** - * Whiteness - */ - ROP_WHITE, - - /** - * Invalid ROP type - */ - ROP_BUTT + ROP_BLACK = 0, /**< 黑色 */ + ROP_NOTMERGEPEN, /**< ~(S2+S1) */ + ROP_MASKNOTPEN, /**< ~S2&S1 */ + ROP_NOTCOPYPEN, /**< ~S2 */ + ROP_MASKPENNOT, /**< S2&~S1 */ + ROP_NOT, /**< ~S1 */ + ROP_XORPEN, /**< S2^S1 */ + ROP_NOTMASKPEN, /**< ~(S2&S1) */ + ROP_MASKPEN, /**< S2&S1 */ + ROP_NOTXORPEN, /**< ~(S2^S1) */ + ROP_NOP, /**< S1 */ + ROP_MERGENOTPEN, /**< ~S2+S1 */ + ROP_COPYPE, /**< S2 */ + ROP_MERGEPENNOT, /**< S2+~S1 */ + ROP_MERGEPEN, /**< S2+S1 */ + ROP_WHITE, /**< 白色 */ + ROP_BUTT /**< 无效值 */ } RopType; /** @@ -553,25 +207,10 @@ typedef enum { * */ typedef enum { - /** - * 不使用colorkey - */ - CKEY_NONE = 0, - - /** - * 使用源colorkey - */ - CKEY_SRC, - - /** - * 使用目标colorkey - */ - CKEY_DST, - - /** - * 空操作 - */ - CKEY_BUTT + CKEY_NONE = 0, /**< 不使用colorkey */ + CKEY_SRC, /**< 使用源colorkey */ + CKEY_DST, /**< 使用目标colorkey */ + CKEY_BUTT /**< 空操作 */ } ColorKey; /** @@ -579,25 +218,10 @@ typedef enum { * */ typedef enum { - /** - * 不使用镜像 - */ - MIRROR_NONE = 0, - - /** - * 左右镜像 - */ - MIRROR_LR, - - /** - * 上下镜像 - */ - MIRROR_TB, - - /** - * 空操作 - */ - MIRROR_BUTT + MIRROR_NONE = 0, /**< 不使用镜像 */ + MIRROR_LR, /**< 左右镜像 */ + MIRROR_TB, /**< 上下镜像 */ + MIRROR_BUTT /**< 空操作 */ } MirrorType; /** @@ -605,20 +229,9 @@ typedef enum { * */ typedef enum { - /** - * 无效类型 - */ - INVALID = 0, - - /** - * 已连接 - */ - CONNECTED, - - /** - * 断开连接 - */ - DISCONNECTED + CON_INVALID = 0, /**< 无效类型 */ + CONNECTED, /**< 已连接 */ + DISCONNECTED /**< 断开连接 */ } Connection; /** @@ -626,20 +239,9 @@ typedef enum { * */ typedef struct { - /** - * 显示屏宽度 - */ - uint32_t width; - - /** - * 显示屏高度 - */ - uint32_t height; - - /** - * 显示屏旋转角度 - */ - int32_t rotAngle; + uint32_t width; /**< 显示屏宽度 */ + uint32_t height; /**< 显示屏高度 */ + int32_t rotAngle; /**< 显示屏旋转角度 */ } DisplayInfo; /** @@ -649,30 +251,11 @@ typedef struct { * */ typedef struct { - /** - * 图层宽度 - */ - int32_t width; - - /** - * 图层高度 - */ - int32_t height; - - /** - * 图层类型,包括图形层、视频层和媒体播放模式 - */ - LayerType type; - - /** - * 每像素所占bit数 - */ - int32_t bpp; - - /** - * 图层像素格式 - */ - PixelFormat pixFormat; + int32_t width; /**< 图层宽度 */ + int32_t height; /**< 图层高度 */ + LayerType type; /**< 图层类型,包括图形层、视频层和媒体播放模式 */ + int32_t bpp; /**< 每像素所占bit数 */ + PixelFormat pixFormat; /**< 图层像素格式 */ } LayerInfo; /** @@ -680,363 +263,398 @@ typedef struct { * */ typedef struct { - /** - * 全局alpha使能标志 - */ - bool enGlobalAlpha; - - /** - * 像素alpha使能标志 - */ - bool enPixelAlpha; - - /** - * alpha0值,取值范围:[0, 255] - */ - uint8_t alpha0; - - /** - * alpha1值,取值范围:[0, 255] - */ - uint8_t alpha1; - - /** - * 全局alpha值,取值范围:[0, 255] - */ - uint8_t gAlpha; + bool enGlobalAlpha; /**< 全局alpha使能标志 */ + bool enPixelAlpha; /**< 像素alpha使能标志 */ + uint8_t alpha0; /**< alpha0值,取值范围:[0, 255] */ + uint8_t alpha1; /**< alpha1值,取值范围:[0, 255] */ + uint8_t gAlpha; /**< 全局alpha值,取值范围:[0, 255] */ } LayerAlpha; + /** - * @brief buffer句柄的定义。 - * - * 包括共享内存键值、共享内存标识、物理内存地址。 + * @brief 定义一层的缓冲区数据,包括虚拟和物理内存地址。 * */ typedef struct { - /** - * 共享内存键值 - */ - int32_t key; - - /** - * 共享内存唯一标识 - */ - int32_t shmid; - - /** - * 物理内存地址 - */ - uint64_t phyAddr; -} BufferHandle; + uint64_t phyAddr; /**< 物理内存地址 */ + void *virAddr; /**< 虚拟内存地址 */ +} BufferData; /** - * @brief 显示内存buffer结构体定义,包括内存物理地址,内存虚拟地址等。 + * @brief 图层Buffer,用于存放图层数据。 * */ typedef struct { - /** - * buffer句柄 - */ - BufferHandle hdl; - - /** - * 申请的内存类型 - */ - MemType type; - - /** - * 申请的内存大小 - */ - uint32_t size; - - /** - * 申请的内存虚拟地址 - */ - void *virAddr; -} GrallocBuffer; + int32_t fenceId; /**< buffer 的fence号r */ + int32_t width; /**< buffer宽度 */ + int32_t height; /**< buffer高度 */ + int32_t pitch; /**< 一行数据所占字节数 */ + PixelFormat pixFormat; /**< buffer像素格式r */ + BufferData data; /**< 图层buffer数据 */ + BufferHandle* hdl; /**< 图层buffer句柄 */ +} LayerBuffer; /** - * @brief 图层buffer结构体定义,包括虚拟内存地址和物理内存地址。 + * @brief 定义矩形信息 * */ typedef struct { - /** - * 物理内存地址 - */ - uint64_t phyAddr; + int32_t x; /**< 矩形框起始x坐标 */ + int32_t y; /**< 矩形框起始y坐标 */ + int32_t w; /**< 矩形框宽度 */ + int32_t h; /**< 矩形框高度 */ +} IRect; - /** - * 虚拟内存地址 - */ - void *virAddr; -} BufferData; +/** + * @brief 用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 + */ +typedef struct { + uint64_t phyAddr; /**< 图像首地址 */ + int32_t height; /**< 图像高度 */ + int32_t width; /**< 图像宽度 */ + int32_t stride; /**< 图像跨度 */ + PixelFormat enColorFmt; /**< 图像格式 */ + bool bYCbCrClut; /**< CLUT表是否位于 YCbCr 空间 */ + bool bAlphaMax255; /**< 图像alpha最大值为255还是128 */ + bool bAlphaExt1555; /**< 是否使能1555的Alpha扩展 */ + uint8_t alpha0; /**< Alpha0值,取值范围:[0,255] */ + uint8_t alpha1; /**< Alpha1值,取值范围:[0,255] */ + uint64_t cbcrPhyAddr; /**< CbCr分量地址 */ + int32_t cbcrStride; /**< CbCr分量跨度 */ + uint64_t clutPhyAddr; /**< Clut表首地址,用作颜色扩展或颜色校正 */ +} ISurface; /** - * @brief 图层Buffer,用于存放图层数据。 + * @brief 线条描述结构体定义,用于硬件加速绘制直线。 * */ typedef struct { - /** - * buffer 的fence号 - */ - int32_t fenceId; - - /** - * buffer宽度 - */ - int32_t width; - - /** - * buffer高度 - */ - int32_t height; - - /** - * 一行数据所占字节数 - */ - int32_t pitch; - - /** - * buffer像素格式 - */ - PixelFormat pixFormat; - - /** - * 图层buffer数据 - */ - BufferData data; -} LayerBuffer; + int32_t x0; /**< 线条起点的x坐标 */ + int32_t y0; /**< 线条起点的y坐标 */ + int32_t x1; /**< 线条终点的x坐标 */ + int32_t y1; /**< 线条终点的y坐标 */ + uint32_t color; /**< 线条颜色 */ +} ILine; /** - * @brief 定义矩形信息 + * @brief 圆形描述结构体定义,用于硬件加速绘制圆形。 * */ typedef struct { - /** - * 矩形框起始x坐标 - */ - int32_t x; + int32_t x; /**< 圆心x坐标 */ + int32_t y; /**< 圆心y坐标r */ + int32_t r; /**< 圆的半径 */ + uint32_t color; /**< 圆的颜色 */ +} ICircle; - /** - * 矩形框起始y坐标 - */ - int32_t y; +/** + * @brief 矩形描述结构体定义,用于硬件加速绘制矩形, + * + */ +typedef struct { + IRect rect; /**< 矩形区域 */ + uint32_t color; /**< 矩形颜色 */ +} Rectangle; - /** - * 矩形框宽度 - */ - int32_t w; +/** + * @brief 图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 + * + */ +typedef struct { + bool enGlobalAlpha; /**< 全局alpha使能位 */ + uint32_t globalAlpha; /**< 全局alpha的值 */ + bool enPixelAlpha; /**< 像素alpha使能位 */ + BlendType blendType; /**< 混合方式 */ + ColorKey colorKeyFrom; /**< 色键模式 */ + bool enableRop; /**< Rop功能使能位 */ + RopType colorRopType; /**< 颜色的Rop类型 */ + RopType alphaRopType; /**< Alpha的Rop类型 */ + bool enableScale; /**< 缩放功能使能位 */ + TransformType rotateType; /**< 旋转类型 */ + MirrorType mirrorType; /**< 镜像类型 */ +} GfxOpt; - /** - * 矩形框高度 - */ - int32_t h; -} IRect; +#define PROPERTY_NAME_LEN 50 /** - * @brief 用于存放窗口相关信息的结构体定义,提供给硬件加速使用,例如图像合成,位图搬移等操作。 + * @brief 定义包含名称、属性ID和值的属性对象。 + * */ typedef struct { - /** - * 图像首地址 - */ - uint64_t phyAddr; + char name[PROPERTY_NAME_LEN]; /**< 属性名称 */ + uint32_t propId; /**< 属性ID */ + uint64_t value; /**< 属性值 */ +} PropertyObject; - /** - * 图像高度 - */ - int32_t height; - - /** - * 图像宽度 - */ - int32_t width; +/** + * @brief 枚举接口类型。 + * + */ +typedef enum { + DISP_INTF_HDMI = 0, /**< HDMI 接口 */ + DISP_INTF_LCD, /**< LCD 接口 */ + DISP_INTF_BT1120, /**< BT1120 接口 */ + DISP_INTF_BT656, /**< BT656 接口 */ + DISP_INTF_YPBPR, /**< YPBPR 接口 */ + DISP_INTF_RGB, /**< RGB 接口 */ + DISP_INTF_CVBS, /**< CVBS 接口 */ + DISP_INTF_SVIDEO, /**< SVIDEO 接口 */ + DISP_INTF_VGA, /**< VGA 接口 */ + DISP_INTF_MIPI, /**< MIPI 接口 */ + DISP_INTF_PANEL, /**< PANEL 接口 */ + DISP_INTF_BUTT, +} InterfaceType; - /** - * 图像跨度 - */ - int32_t stride; +/** + * @brief 定义输出性能。 + */ +typedef struct { + char name[PROPERTY_NAME_LEN]; /**< 显示设备名称 */ + InterfaceType type; /**< 显示屏接口类型 */ + uint32_t phyWidth; /**< 物理宽度 */ + uint32_t phyHeight; /**< 物理高度 */ + uint32_t supportLayers; /**< 支持的图层数 */ + uint32_t virtualDispCount; /**< 支持的虚拟屏数 */ + bool supportWriteBack; /**< 是否支持回写 */ + uint32_t propertyCount; /**< 属性数组大小 */ + PropertyObject* props; /**< 属性数组*/ +} DisplayCapability; - /** - * 图像格式 - */ - PixelFormat enColorFmt; +/** + * @brief 定义输出模式信息。 + */ +typedef struct { + int32_t width; /**< 像素宽度 */ + int32_t height; /**< 像素高度 */ + uint32_t freshRate; /**< 刷新速率 */ + int32_t id; /**< 模式ID */ +} DisplayModeInfo; - /** - * CLUT表是否位于 YCbCr 空间 - */ - bool bYCbCrClut; +/** + * @brief 定义关于要分配的内存的信息。 + * + */ +typedef struct { + uint32_t width; /**< 申请内存宽度 */ + uint32_t height; /**< 申请内存高度 */ + uint64_t usage; /**< 申请内存的使用场景 */ + PixelFormat format; /**< 申请内存格式 */ + uint32_t expectedSize; /**< 申请内存大小 */ +} AllocInfo; +/** + * @brief 枚举显示状态 + */ - /** - * 图像alpha最大值为255还是128 - */ - bool bAlphaMax255; +typedef enum { + POWER_STATUS_ON, /**< 上电模式 */ + POWER_STATUS_STANDBY, /**< 待机模式 */ + POWER_STATUS_SUSPEND, /**< 休眠模式 */ + POWER_STATUS_OFF, /**< 下电模式 */ + POWER_STATUS_BUTT /**< 默认模式 */ +} DispPowerStatus; - /** - * 是否使能1555的Alpha扩展 - */ - bool bAlphaExt1555; +/** + * @brief 枚举特殊层的组合类型。 + */ +typedef enum { + COMPOSITION_CLIENT, /**< Client 合成类型,使用CPU或者GPU合成 */ + COMPOSITION_DEVICE, /**< Device 合成类型,使用Device合成 */ + COMPOSITION_CURSOR, /**< Cursor合成类型,用于光标合成 */ + COMPOSITION_VIDEO, /**< Video合成类型,用于视频层合成 */ + COMPOSITION_DEVICE_CLEAR, /**< Device clear 合成类型, device会清除目标区域 */ + COMPOSITION_CLIENT_CLEAR, /**< Client clear 合成类型, service会清除目标区域 */ + COMPOSITION_TUNNEL, /**< Tunnel 合成类型, 用于tunnel. */ + COMPOSITION_BUTT +} CompositionType; - /** - * Alpha0值,取值范围:[0,255] - */ - uint8_t alpha0; +/** + * @brief 色域类型枚举值 + * + */ +typedef enum { + COLOR_GAMUT_INVALID = -1, /**< 无效值 */ + COLOR_GAMUT_NATIVE = 0, /**< 默认值 */ + COLOR_GAMUT_SATNDARD_BT601 = 1, /**< Standard BT601类型 */ + COLOR_GAMUT_STANDARD_BT709 = 2, /**< Standard BT709类型 */ + COLOR_GAMUT_DCI_P3 = 3, /**< DCI P3类型 */ + COLOR_GAMUT_SRGB = 4, /**< SRGB类型 */ + COLOR_GAMUT_ADOBE_RGB = 5, /**< Adobe RGB类型 */ + COLOR_GAMUT_DISPLAY_P3 = 6, /**< display P3类型 */ + COLOR_GAMUT_BT2020 = 7, /**< BT2020类型 */ + COLOR_GAMUT_BT2100_PQ = 8, /**< BT2100 PQ类型 */ + COLOR_GAMUT_BT2100_HLG = 9, /**< BT2100 HLG类型 */ + COLOR_GAMUT_DISPLAY_BT2020 = 10, /**< Display BT2020类型 */ +} ColorGamut; - /** - * Alpha1值,取值范围:[0,255] - */ - uint8_t alpha1; +/** + * @brief 枚举色域的映射类型 + * + */ +typedef enum { + GAMUT_MAP_CONSTANT = 0, /**< 不变 */ + GAMUT_MAP_EXPANSION = 1, /**< 映射增强 */ + GAMUT_MAP_HDR_CONSTANT = 2, /**< 不变,用于HDR */ + GAMUT_MAP_HDR_EXPANSION = 3, /**< 映射增强, 用于HDR */ +} GamutMap; - /** - * CbCr分量地址 - */ - uint64_t cbcrPhyAddr; +/** + * @brief 枚举颜色空间的类型 + * + */ - /** - * CbCr分量跨度 - */ - int32_t cbcrStride; +typedef enum { + COLOR_DATA_SPACE_UNKNOWN = 0, /**< 未知的 */ + GAMUT_BT601 = 0x00000001, /**< BT601色域 */ + GAMUT_BT709 = 0x00000002, /**< BT709色域 */ + GAMUT_DCI_P3 = 0x00000003, /**< DCI_P3色域 */ + GAMUT_SRGB = 0x00000004, /**< SRGB色域 */ + GAMUT_ADOBE_RGB = 0x00000005, /**< ADOBE_RGB色域 */ + GAMUT_DISPLAY_P3 = 0x00000006, /**< DISPLAY_P3色域 */ + GAMUT_BT2020 = 0x00000007, /**< BT2020色域 */ + GAMUT_BT2100_PQ = 0x00000008, /**< BT2100_PQ色域 */ + GAMUT_BT2100_HLG = 0x00000009, /**< BT2100_HLG色域 */ + GAMUT_DISPLAY_BT2020 = 0x0000000a, /**< DISPLAY_BT2020色域 */ + TRANSFORM_FUNC_UNSPECIFIED = 0x00000100, /**< UNSPECIFIED转换函数 */ + TRANSFORM_FUNC_LINEAR = 0x00000200, /**< LINEAR转换函数 */ + TRANSFORM_FUNC_SRGB = 0x00000300, /**< SRGB转换函数 */ + TRANSFORM_FUNC_SMPTE_170M = 0x00000400, /**< SMPTE_170M转换函数 */ + TRANSFORM_FUNC_GM2_2 = 0x00000500, /**< GM2_2转换函数 */ + TRANSFORM_FUNC_GM2_6 = 0x00000600, /**< GM2_6转换函数 */ + TRANSFORM_FUNC_GM2_8 = 0x00000700, /**< GM2_8转换函数 */ + TRANSFORM_FUNC_ST2084 = 0x00000800, /**< ST2084转换函数 */ + TRANSFORM_FUNC_HLG = 0x00000900, /**< HLG转换函数 */ + PRECISION_UNSPECIFIED = 0x00010000, /**< UNSPECIFIED精度 */ + PRECISION_FULL = 0x00020000, /**< FULL精度 */ + PRESION_LIMITED = 0x00030000, /**< LIMITED精度 */ + PRESION_EXTENDED = 0x00040000, /**< EXTENDED精度 */ + BT601_SMPTE170M_FULL = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, /**< BT601色域 | SMPTE_170M转换函数 | FULL精度 */ + BT601_SMPTE170M_LIMITED = GAMUT_BT601 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, /**< BT601色域 | SMPTE_170M转换函数 | LIMITED精度 */ + BT709_LINEAR_FULL = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, /**< BT709色域 | LINEAR转换函数 | FULL精度 */ + BT709_LINEAR_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_LINEAR | PRESION_EXTENDED, /**< BT709色域 | LINEAR转换函数 | EXTENDED精度 */ + BT709_SRGB_FULL = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, /**< BT709色域 | SRGB转换函数 | FULL精度 */ + BT709_SRGB_EXTENDED = GAMUT_BT709 | TRANSFORM_FUNC_SRGB | PRESION_EXTENDED, /**< BT709色域 | SRGB转换函数 | EXTENDED精度 */ + BT709_SMPTE170M_LIMITED = GAMUT_BT709 | TRANSFORM_FUNC_SMPTE_170M | PRESION_LIMITED, /**< BT709色域 | SMPTE_170M转换函数 | LIMITED精度 */ + DCI_P3_LINEAR_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, /**< DCI_P3色域 | LINEAR转换函数 | FULL精度 */ + DCI_P3_GAMMA26_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_GM2_6 | PRECISION_FULL, /**< DCI_P3色域 | GM2_6转换函数 | FULL精度 */ + DISPLAY_P3_LINEAR_FULL = GAMUT_DISPLAY_P3 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, /**< DISPLAY_P3色域 | LINEAR转换函数 | FULL精度 */ + DCI_P3_SRGB_FULL = GAMUT_DCI_P3 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, /**< DCI_P3色域 | SRGB转换函数 | FULL精度 */ + ADOBE_RGB_GAMMA22_FULL = GAMUT_ADOBE_RGB | TRANSFORM_FUNC_GM2_2 | PRECISION_FULL, /**< ADOBE_RGB色域 | GM2_2转换函数 | FULL精度 */ + BT2020_LINEAR_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_LINEAR | PRECISION_FULL, /**< BT2020色域 | LINEAR转换函数 | FULL精度 */ + BT2020_SRGB_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SRGB | PRECISION_FULL, /**< BT2020色域 | SRGB转换函数 | FULL精度 */ + BT2020_SMPTE170M_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_SMPTE_170M | PRECISION_FULL, /**< BT2020色域 | SMPTE_170M转换函数 | FULL精度 */ + BT2020_ST2084_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRECISION_FULL, /**< BT2020色域 | ST2084转换函数 | FULL精度 */ + BT2020_HLG_FULL = GAMUT_BT2020 | TRANSFORM_FUNC_HLG | PRECISION_FULL, /**< BT2020色域 | HLG转换函数 | FULL精度 */ + BT2020_ST2084_LIMITED = GAMUT_BT2020 | TRANSFORM_FUNC_ST2084 | PRESION_LIMITED, /**< BT2020色域 | ST2084转换函数 | LIMITED精度 */ +} ColorDataSpace; - /** - * Clut表首地址,用作颜色扩展或颜色校正 - */ - uint64_t clutPhyAddr; -} ISurface; +/** + * @brief 枚举HDR格式 + * + */ +typedef enum { + NOT_SUPPORT_HDR = 0, /**< 不支持HDR */ + DOLBY_VISION = 1, /**< Dolby Vision格式 */ + HDR10 = 2, /**< HDR10格式 */ + HLG = 3, /**< HLG格式 */ + HDR10_PLUS = 4, /**< HDR10 Plus格式 */ + HDR_VIVID = 5, /**< Vivid格式 */ +} HDRFormat; /** - * @brief 线条描述结构体定义,用于硬件加速绘制直线。 + * @brief HDR属性结构体定义 * */ typedef struct { - /** - * 线条起点的x坐标 - */ - int32_t x0; - - /** - * 线条起点的y坐标 - */ - int32_t y0; - - /** - * 线条终点的x坐标 - */ - int32_t x1; + uint32_t formatCount; /**< 支持的HDR格式的数量 */ + HDRFormat* formats; /**< 支持的HDR格式的数组首地址 */ + float maxLum; /**< 最大的光亮度luminance值 */ + float maxAverageLum; /**< 最大的平均光亮度luminance值 */ + float minLum; /**< 最小的光亮度luminance值 */ +} HDRCapability; - /** - * 线条终点的y坐标 - */ - int32_t y1; - - /** - * 线条颜色 - */ - uint32_t color; -} ILine; +/** + * @brief 枚举HDR元数据关键字 + * + */ +typedef enum { + MATAKEY_RED_PRIMARY_X = 0, /**< 红基色X坐标 */ + MATAKEY_RED_PRIMARY_Y = 1, /**< 红基色Y坐标 */ + MATAKEY_GREEN_PRIMARY_X = 2, /**< 绿基色X坐标 */ + MATAKEY_GREEN_PRIMARY_Y = 3, /**< 绿基色Y坐标 */ + MATAKEY_BLUE_PRIMARY_X = 4, /**< 蓝基色X坐标 */ + MATAKEY_BLUE_PRIMARY_Y = 5, /**< 蓝基色Y坐标 */ + MATAKEY_WHITE_PRIMARY_X = 6, /**< 白点X坐标 */ + MATAKEY_WHITE_PRIMARY_Y = 7, /**< 白点Y坐标 */ + MATAKEY_MAX_LUMINANCE = 8, /**< 最大的光亮度 */ + MATAKEY_MIN_LUMINANCE = 9, /**< 最小的光亮度 */ + MATAKEY_MAX_CONTENT_LIGHT_LEVEL = 10, /**< 最大的内容亮度水平 */ + MATAKEY_MAX_FRAME_AVERAGE_LIGHT_LEVEL = 11, /**< 最大的帧平均亮度水平 */ + MATAKEY_HDR10_PLUS = 12, /**< HDR10 Plus */ + MATAKEY_HDR_VIVID = 13, /**< Vivid */ +} HDRMetadataKey; /** - * @brief 圆形描述结构体定义,用于硬件加速绘制圆形。 + * @brief HDR元数据结构体定义 * */ typedef struct { - /** - * 圆心x坐标 - */ - int32_t x; - - /** - * 圆心y坐标 - */ - int32_t y; - - /** - * 圆的半径 - */ - int32_t r; - - /** - * 圆的颜色 - */ - uint32_t color; -} ICircle; + HDRMetadataKey key; /**< HDR元数据关键字 */ + float value; /**< 关键字对应的值 */ +} HDRMetaData; /** - * @brief 矩形描述结构体定义,用于硬件加速绘制矩形, + * @brief 用于验证内存分配信息的结构体定义 * */ typedef struct { - /** - * 矩形区域 - */ - IRect rect; + uint32_t width; /**< 分配内存的宽度 */ + uint32_t height; /**< 分配内存的高度 */ + uint64_t usage; /**< 内存的用处 */ + PixelFormat format; /**< 分配内存的像素格式 */ +} VerifyAllocInfo; - /** - * 矩形颜色 - */ - uint32_t color; -} Rectangle; +/** + * @brief 上屏时间戳类型枚举值 + * + */ +typedef enum { + HARDWARE_DISPLAY_PTS_UNSUPPORTED = 0, /**< 不支持 */ + HARDWARE_DISPLAY_PTS_DELAY = 1 << 0, /**< Delay 时延类型 */ + HARDWARE_DISPLAY_PTS_TIMESTAMP = 1 << 1, /**< 时间戳类型 */ +} PresentTimestampType; /** - * @brief 图像硬件加速相关的操作选项结构体定义,用于图像硬件加速时的操作选项。 + * @brief 上屏时间戳结构体定义 * */ typedef struct { - /** - * 全局alpha使能位 - */ - bool enGlobalAlpha; - - /** - * 全局alpha的值 - */ - uint32_t globalAlpha; - - /** - * 像素alpha使能位 - */ - bool enPixelAlpha; - - /** - * 混合方式 - */ - BlendType blendType; - - /** - * 色键模式 - */ - ColorKey colorKeyFrom; + PresentTimestampType type; /**< 上屏时间戳类型 */ + int64_t time; /**< 类型对应的值 */ +} PresentTimestamp; - /** - * Rop功能使能位 - */ - bool enableRop; - - /** - * 颜色的Rop类型 - */ - RopType colorRopType; - - /** - * Alpha的Rop类型 - */ - RopType alphaRopType; - - /** - * 缩放功能使能位 - */ - bool enableScale; - - /** - * 旋转类型 - */ - TransformType rotateType; - - /** - * 镜像类型 - */ - MirrorType mirrorType; -} GfxOpt; +/** + * @brief 扩展数据句柄结构体定义 + * + */ +typedef struct { + int32_t fd; /**< 句柄 fd, -1代表不支持 */ + uint32_t reserveInts; /**< reserve数组的个数 */ + int32_t reserve[0]; /**< reserve数组 */ +} __attribute__((__packed__)) ExtDataHandle; +/** + * @brief YUV描述信息结构体定义 + * + */ +typedef struct { + void *baseAddr; /**< 内存的初始地址 */ + size_t yOffset; /**< Y的偏移量 */ + size_t uOffset; /**< U的偏移量 */ + size_t vOffset; /**< V的偏移量 */ + size_t yStride; /**< Y的stride信息 */ + size_t uvStride; /**< UV的stride信息 */ + size_t uvStep; /**< UV的step信息 */ +} __attribute__((__packed__)) YUVDescInfo; #ifdef __cplusplus } #endif diff --git a/zh-cn/device_api/hdi/display/display_vgu.h b/zh-cn/device_api/hdi/display/display_vgu.h index 735c7f414fa9a09e86edba3f40e8bd096e933bf1..e1315d6cb16d1907cb9bad9c1e04f0ef8ed0f50e 100644 --- a/zh-cn/device_api/hdi/display/display_vgu.h +++ b/zh-cn/device_api/hdi/display/display_vgu.h @@ -49,35 +49,17 @@ typedef float VGUScalar; typedef int32_t VGUScalar; #endif -/** -* 像素格式 -*/ -typedef PixelFormat VGUPixelFormat; - -/** -* 混合操作类型 -*/ -typedef BlendType VGUBlendType; +typedef PixelFormat VGUPixelFormat; /* < 像素格式 */ +typedef BlendType VGUBlendType; /* < 混合操作类型 */ /* * * @brief 路径坐标数据类型。 * */ typedef enum { - /** - * 整型(2 bytes) - */ - VGU_DATA_TYPE_S16 = 0, - - /** - * 整型(4 bytes) - */ - VGU_DATA_TYPE_S32, - - /** - * 浮点(4 bytes) - */ - VGU_DATA_TYPE_F32 + VGU_DATA_TYPE_S16 = 0, /**< 整型(2 bytes) */ + VGU_DATA_TYPE_S32, /**< 整型(4 bytes) */ + VGU_DATA_TYPE_F32 /**< 浮点(4 bytes) */ } VGUPathDataType; /** @@ -85,25 +67,10 @@ typedef enum { * */ typedef enum { - /** - * 支持Blit能力 - */ - VGU_CAP_BLIT = (1 << 0), - - /** - * 搬移支持图片叠加最大数目 - */ - VGU_CAP_BLIT_NUM = (1 << 1), - - /** - * 支持路径的fill和stroke能力 - */ - VGU_CAP_PATH = (1 << 2), - - /** - * 支持模糊能力 - */ - VGU_CAP_FILTER_BLUR = (1 << 3), + VGU_CAP_BLIT = (1 << 0), /**< 支持Blit能力 */ + VGU_CAP_BLIT_NUM = (1 << 1), /**< 搬移支持图片叠加最大数目 */ + VGU_CAP_PATH = (1 << 2), /**< 支持路径的fill和stroke能力 */ + VGU_CAP_FILTER_BLUR = (1 << 3), /**< 支持模糊能力 */ } VGUCapability; /** @@ -111,45 +78,14 @@ typedef enum { * */ typedef enum { - /** - * 成功 - */ - VGU_SUCCESS = 0, - - /** - * 不支持 - */ - VGU_NO_SUPPORT = -1, - - /** - * 操作失败 - */ - VGU_OPERATION_FAILED = -2, - - /** - * 内存溢出 - */ - VGU_OUT_OF_MEMORY = -3, - - /** - * 超时 - */ - VGU_TIMEOUT = -4, - - /** - * 无效参数 - */ - VGU_INVALID_PARAMETER = -5, - - /** - * 设备忙 - */ - VGU_BUSY = -6, - - /** - * 无上下文 - */ - VGU_NO_CONTEXT = -7, + VGU_SUCCESS = 0, /**< 成功 */ + VGU_NO_SUPPORT = -1, /**< 不支持 */ + VGU_OPERATION_FAILED = -2, /**< 操作失败 */ + VGU_OUT_OF_MEMORY = -3, /**< 内存溢出 */ + VGU_TIMEOUT = -4, /**< 超时 */ + VGU_INVALID_PARAMETER = -5, /**< 无效参数,*/ + VGU_BUSY = -6, /**< 设备忙 */ + VGU_NO_CONTEXT = -7, /**< 无上下文 */ } VGUResult; /* * @@ -157,20 +93,9 @@ typedef enum { * */ typedef enum { - /** - * 线条末端为平直线帽(默认) - */ - VGU_LINECAP_BUTT = 0, - - /** - * 线条末端为圆形线帽 - */ - VGU_LINECAP_ROUND, - - /** - * 线条末端为正方向形线帽 - */ - VGU_LINECAP_SQUARE + VGU_LINECAP_BUTT = 0, /**< 线条末端为平直线帽(默认) */ + VGU_LINECAP_ROUND, /**< 线条末端为圆形线帽 */ + VGU_LINECAP_SQUARE /**< 线条末端为正方向形线帽 */ } VGULineCap; /** @@ -178,25 +103,10 @@ typedef enum { * */ typedef enum { - /** - * 尖角(默认) - */ - VGU_LINE_JOIN_MITER = 0, - - /** - * 圆角 - */ - VGU_LINE_JOIN_ROUND, - - /** - * 斜角 - */ - VGU_LINE_JOIN_BEVEL, - - /** - * 无效定义 - */ - VGU_LINE_JOIN_BUTT + VGU_LINE_JOIN_MITER = 0, /**< 尖角(默认) */ + VGU_LINE_JOIN_ROUND, /**< 圆角 */ + VGU_LINE_JOIN_BEVEL, /**< 斜角 */ + VGU_LINE_JOIN_BUTT /**< 无效定义 */ } VGUJointType; /** @@ -204,15 +114,8 @@ typedef enum { * */ typedef struct { - /** - * 点水平坐标 - */ - VGUScalar x; - - /** - * 点垂直坐标 - */ - VGUScalar y; + VGUScalar x; /**< 点水平坐标 */ + VGUScalar y; /**< 点垂直坐标 */ } VGUPoint; /** @@ -220,25 +123,10 @@ typedef struct { * */ typedef struct { - /** - * 矩形水平起始坐标 - */ - VGUScalar x; - - /** - * 矩形垂直起始坐标 - */ - VGUScalar y; - - /** - * 矩形宽度 - */ - VGUScalar w; - - /** - * 矩形高度 - */ - VGUScalar h; + VGUScalar x; /**< 矩形水平起始坐标 */ + VGUScalar y; /**< 矩形垂直起始坐标 */ + VGUScalar w; /**< 矩形宽度 */ + VGUScalar h; /**< 矩形高度 */ } VGURect; /** @@ -246,25 +134,10 @@ typedef struct { * */ typedef enum { - /** - * 双线性插值(默认) - */ - VGU_FILTER_BILINEAR = 0, - - /** - * 无插值 - */ - VGU_FILTER_NEAREST, - - /** - * 线性插值. - */ - VGU_FILTER_LINEAR, - - /** - * 无效定义 - */ - VGU_FILTER_BUTT + VGU_FILTER_BILINEAR = 0, /**< 双线性插值(默认) */ + VGU_FILTER_NEAREST, /**< 无插值 */ + VGU_FILTER_LINEAR, /**< 线性插值 */ + VGU_FILTER_BUTT /**< 无效定义 */ } VGUFilter; /** @@ -272,20 +145,9 @@ typedef enum { * */ typedef enum { - /** - * 非0填充(默认) - */ - VGU_RULE_WINDING = 0, - - /** - * 奇偶填充 - */ - VGU_RULE_EVEN_ODD, - - /** - * 无效定义 - */ - VGU_RULE_BUTT + VGU_RULE_WINDING = 0, /**< 非0填充(默认) */ + VGU_RULE_EVEN_ODD, /**< 奇偶填充 */ + VGU_RULE_BUTT /**< 无效定义 */ } VGUFillRule; /** @@ -293,25 +155,10 @@ typedef enum { * */ typedef enum { - /** - * Pad类型(默认) - */ - VGU_SPREAD_PAD = 0, - - /** - * Reflect类型 - */ - VGU_SPREAD_REFLECT, - - /** - * Repeat类型 - */ - VGU_SPREAD_REPEAT, - - /** - * 无效定义 - */ - VGU_SPREAD_BUTT + VGU_SPREAD_PAD = 0, /**< Pad类型(默认) */ + VGU_SPREAD_REFLECT, /**< Reflect类型 */ + VGU_SPREAD_REPEAT, /**< Repeat类型 */ + VGU_SPREAD_BUTT /**< 无效定义 */ } VGUFillSpread; /** @@ -319,20 +166,9 @@ typedef enum { * */ typedef enum { - /** - * 反射类型 - */ - VGU_WRAP_REFLECT = 0, - - /** - * 重复类型 - */ - VGU_WRAP_REPEAT, - - /** - * 无效定义 - */ - VGU_WRAP_BUTT + VGU_WRAP_REFLECT = 0, /**< 反射类型 */ + VGU_WRAP_REPEAT, /**< 重复类型 */ + VGU_WRAP_BUTT /**< 无效定义 */ } VGUWrapType; /** @@ -340,55 +176,16 @@ typedef enum { * */ typedef enum { - /** - * 线段关闭,坐标数据: none - */ - VGU_PATH_CMD_CLOSE = 0, - - /** - * 移动到指定位置,坐标数据: x0, y0 - */ - VGU_PATH_CMD_MOVE, - - /** - * 线条,坐标数据: x0, y0 - */ - VGU_PATH_CMD_LINE, - - /** - * 水平线,坐标数据: x0 - */ - VGU_PATH_CMD_HLINE, - - /** - * 垂直线,坐标数据: y0 - */ - VGU_PATH_CMD_VLINE, - - /** - * 二次贝塞尔曲线,坐标数据: x0, y0, x1, y1 - */ - VGU_PATH_CMD_QUAD, - - /** - * 三次贝塞尔曲线,坐标数据: x0, y0, x1, y1, x2, y2 - */ - VGU_PATH_CMD_CUBIC, - - /** - * 平滑二次贝塞尔曲线,坐标数据: x1, y1 - */ - VGU_PATH_CMD_SQUAD, - - /** - * 平滑三次贝塞尔曲线,坐标数据: x1, y1, x2, y2 - */ - VGU_PATH_CMD_SCUBIC, - - /** - * 无效定义 - */ - VGU_PATH_CMD_BUTT, + VGU_PATH_CMD_CLOSE = 0, /**< 线段关闭,坐标数据: none */ + VGU_PATH_CMD_MOVE, /**< 移动到指定位置,坐标数据: x0, y0 */ + VGU_PATH_CMD_LINE, /**< 线条,坐标数据: x0, y0 */ + VGU_PATH_CMD_HLINE, /**< 水平线,坐标数据: x0 */ + VGU_PATH_CMD_VLINE, /**< 垂直线,坐标数据: y0 */ + VGU_PATH_CMD_QUAD, /**< 二次贝塞尔曲线,坐标数据: x0, y0, x1, y1 */ + VGU_PATH_CMD_CUBIC, /**< 三次贝塞尔曲线,坐标数据: x0, y0, x1, y1, x2, y2 */ + VGU_PATH_CMD_SQUAD, /**< 平滑二次贝塞尔曲线,坐标数据: x1, y1 */ + VGU_PATH_CMD_SCUBIC, /**< 平滑三次贝塞尔曲线,坐标数据: x1, y1, x2, y2 */ + VGU_PATH_CMD_BUTT, /**< 无效定义 */ } VGUPathCmd; /** @@ -396,35 +193,12 @@ typedef enum { * */ typedef struct { - /** - * 存放路径命令数据 - */ - uint8_t *segment; - - /** - * 路径命令总数 - */ - int32_t numSegments; - - /** - * 存放路径命令对应坐标数据 - */ - uint8_t *data; - - /** - * 路径数据存储类型 - */ - VGUPathDataType type; - - /** - * 抗锯齿开关 - */ - bool enAlias; - - /** - * 路径最大边界 - */ - VGURect boundBox; + uint8_t *segment; /**< 存放路径命令数据 */ + int32_t numSegments; /**< 路径命令总数 */ + uint8_t *data; /**< 存放路径命令对应坐标数据 */ + VGUPathDataType type; /**< 路径数据存储类型 */ + bool enAlias; /**< 抗锯齿开关 */ + VGURect boundBox; /**< 路径最大边界 */ } VGUPath; /** @@ -432,35 +206,12 @@ typedef struct { * */ typedef enum { - /** - * 平移变换 - */ - VGU_TRANSFORM_TRANSLATE = (1 << 0), - - /** - * 缩放变换 - */ - VGU_TRANSFORM_SCALE = (1 << 1), - - /** - * 旋转90度 - */ - VGU_TRANSFORM_ROTATE_90 = (1 << 2), - - /** - * 旋转180度 - */ - VGU_TRANSFORM_ROTATE_180 = (1 << 3), - - /** - * 旋转270度 - */ - VGU_TRANSFORM_ROTATE_270 = (1 << 4), - - /** - * 其他变换 - */ - VGU_TRANSFORM_OTHER = (1 << 16) + VGU_TRANSFORM_TRANSLATE = (1 << 0), /**< 平移变换 */ + VGU_TRANSFORM_SCALE = (1 << 1), /**< 缩放变换 */ + VGU_TRANSFORM_ROTATE_90 = (1 << 2), /**< 旋转90度 */ + VGU_TRANSFORM_ROTATE_180 = (1 << 3), /**< 旋转180度 */ + VGU_TRANSFORM_ROTATE_270 = (1 << 4), /**< 旋转270度 */ + VGU_TRANSFORM_OTHER = (1 << 16) /**< 其他变换 */ } VGUTransformType; /** @@ -468,15 +219,8 @@ typedef enum { * */ typedef struct { - /** - * 3x3变换矩阵 - */ - float m[3][3]; - - /** - * 矩阵变换类型,简单变换为缩放,平移,90度倍数旋转 - */ - uint32_t type; + float m[3][3]; /**< 3x3变换矩阵 */ + uint32_t type; /**< 矩阵变换类型,简单变换为缩放,平移,90度倍数旋转 */ } VGUMatrix3; /** @@ -484,35 +228,12 @@ typedef struct { * */ typedef struct { - /** - * 像素格式 - */ - VGUPixelFormat pixelFormat; - - /** - * 位图宽度 - */ - uint32_t width; - - /** - * 位图高度 - */ - uint32_t height; - - /** - * 位图stride - */ - uint32_t stride; - - /** - * 位图缓存的虚拟地址 - */ - void *virAddr; - - /** - * 位图缓存的物理地址 - */ - uint64_t phyAddr; + VGUPixelFormat pixelFormat; /**< 像素格式 */ + uint32_t width; /**< 位图宽度 */ + uint32_t height; /**< 位图高度 */ + uint32_t stride; /**< 位图stride */ + void *virAddr; /**< 位图缓存的虚拟地址 */ + uint64_t phyAddr; /**< 位图缓存的物理地址 */ } VGUBuffer; /** @@ -520,20 +241,9 @@ typedef struct { * */ typedef enum { - /** - * 矩形剪切(默认) - */ - VGU_CLIP_RECT = 0, - - /** - * 路径剪切 - */ - VGU_CLIP_PATH, - - /** - * 无效定义 - */ - VGU_CLIP_BUTT + VGU_CLIP_RECT = 0, /**< 矩形剪切(默认) */ + VGU_CLIP_PATH, /**< 路径剪切 */ + VGU_CLIP_BUTT /**< 无效定义 */ } VGUClipType; /** @@ -541,15 +251,8 @@ typedef enum { * */ typedef struct { - /** - * 蒙版缓存 - */ - VGUBuffer *buffer; - - /** - * 蒙版矩形 - */ - VGURect *rect; + VGUBuffer *buffer; /**< 蒙版缓存 */ + VGURect *rect; /**< 蒙版矩形 */ } VGUMaskLayer; /** @@ -557,41 +260,15 @@ typedef struct { * */ typedef struct { - /** - * 位图缓存 - */ - VGUBuffer *buffer; + VGUBuffer *buffer; /**< 位图缓存 */ union { - /** - * 矩形剪切域,如果为空,整个表面直接渲染 - */ - VGURect *clipRect; - - /** - * 路径剪切域,如果为空,整个表面直接渲染 - */ - VGUPath *clipPath; + VGURect *clipRect; /**< 矩形剪切域,如果为空,整个表面直接渲染 */ + VGUPath *clipPath; /**< 路径剪切域,如果为空,整个表面直接渲染 */ }; - - /** - * 表面剪切类型 - */ - VGUClipType clipType; - - /** - * 蒙版图层, 可以为空 - */ - VGUMaskLayer *mask; - - /** - * 混合叠加模式 - */ - VGUBlendType blend; - - /** - * 图像滤波类型 - */ - VGUFilter filter; + VGUClipType clipType; /**< 表面剪切类型 */ + VGUMaskLayer *mask; /**< 蒙版图层, 可以为空 */ + VGUBlendType blend; /**< 混合叠加模式 */ + VGUFilter filter; /**< 图像滤波类型 */ } VGUSurface; /** @@ -599,15 +276,8 @@ typedef struct { * */ typedef struct { - /** - * 颜色偏移位置, 值范围是 0.0 ~ 1.0 - */ - float stop; - - /** - * 偏移位置对应颜色 - */ - uint32_t color; + float stop; /**< 颜色偏移位置, 值范围是 0.0 ~ 1.0 */ + uint32_t color; /**< 偏移位置对应颜色 */ } VGUColorStop; /** @@ -615,25 +285,10 @@ typedef struct { * */ typedef struct { - /** - * 线性渐变起点水平坐标 - */ - VGUScalar x1; - - /** - * 线性渐变起点垂直坐标 - */ - VGUScalar y1; - - /** - * 线性渐变终点水平坐标 - */ - VGUScalar x2; - - /** - * 线性渐变终点垂直坐标 - */ - VGUScalar y2; + VGUScalar x1; /**< 线性渐变起点水平坐标 */ + VGUScalar y1; /**< 线性渐变起点垂直坐标 */ + VGUScalar x2; /**< 线性渐变终点水平坐标 */ + VGUScalar y2; /**< 线性渐变终点垂直坐标 */ } VGULinear; /** @@ -641,35 +296,12 @@ typedef struct { * */ typedef struct { - /** - * 内圈圆心水平坐标 - */ - VGUScalar x0; - - /** - * 内圈圆心垂直坐标 - */ - VGUScalar y0; - - /** - * 内圈圆半径 - */ - VGUScalar r0; - - /** - * 外圈圆心水平坐标 - */ - VGUScalar x1; - - /** - * 外圈圆心垂直坐标 - */ - VGUScalar y1; - - /** - * 外圈圆半径 - */ - VGUScalar r1; + VGUScalar x0; /**< 内圈圆心水平坐标 */ + VGUScalar y0; /**< 内圈圆心垂直坐标 */ + VGUScalar r0; /**< 内圈圆半径 */ + VGUScalar x1; /**< 外圈圆心水平坐标 */ + VGUScalar y1; /**< 外圈圆心垂直坐标 */ + VGUScalar r1; /**< 外圈圆半径 */ } VGURadial; /** @@ -677,15 +309,8 @@ typedef struct { * */ typedef struct { - /** - * 圆弧中心x坐标 - */ - VGUScalar cx; - - /** - * 圆弧中心y坐标 - */ - VGUScalar cy; + VGUScalar cx; /**< 圆弧中心x坐标 */ + VGUScalar cy; /**< 圆弧中心y坐标 */ } VGUConic; /** @@ -693,25 +318,10 @@ typedef struct { * */ typedef struct { - /** - * 图像存储缓存 - */ - VGUBuffer *buffer; - - /** - * 图像矩阵变换,该参数为空,则内部使用单位变换矩阵 - */ - VGUMatrix3 *matrix; - - /** - * 图像截取矩形,该参数为空,则截取整个图像 - */ - VGURect *rect; - - /** - * 透明度,范围0~255 - */ - uint8_t opacity; + VGUBuffer *buffer; /**< 图像存储缓存 */ + VGUMatrix3 *matrix; /**< 图像矩阵变换,该参数为空,则内部使用单位变换矩阵 */ + VGURect *rect; /**< 图像截取矩形,该参数为空,则截取整个图像 */ + uint8_t opacity; /**< 透明度,范围0~255 */ } VGUImage; /** @@ -719,20 +329,9 @@ typedef struct { * */ typedef struct { - /** - * 图像对象 - */ - VGUImage *image; - - /** - * 图像水平方向平铺类型 - */ - VGUWrapType wrapx; - - /** - * 图像垂直方向平铺类型 - */ - VGUWrapType wrapy; + VGUImage *image; /**< 图像对象 */ + VGUWrapType wrapx; /**< 图像水平方向平铺类型 */ + VGUWrapType wrapy; /**< 图像垂直方向平铺类型 */ } VGUPattern; /** @@ -740,25 +339,10 @@ typedef struct { * */ typedef enum { - /** - * 线性渐变 - */ - VGU_GRADIENT_LINEAR = 0, - - /** - * 辐射渐变 - */ - VGU_GRADIENT_RADIAL, - - /** - * 圆锥渐变 - */ - VGU_GRADIENT_CONIC, - - /** - * 无效定义 - */ - VGU_GRADIENT_BUTT + VGU_GRADIENT_LINEAR = 0, /**< 线性渐变 */ + VGU_GRADIENT_RADIAL, /**< 辐射渐变 */ + VGU_GRADIENT_CONIC, /**< 圆锥渐变 */ + VGU_GRADIENT_BUTT /**< 无效定义 */ } VGUGradientType; /** @@ -766,50 +350,17 @@ typedef enum { * */ typedef struct { - /** - * 针对渐变对象的变换矩阵 - */ - VGUMatrix3 *matrix; - - /** - * 渐变停止颜色数组指针 - */ - VGUColorStop *colorStops; - - /** - * 渐变停止颜色个数 - */ - uint16_t stopCount; + VGUMatrix3 *matrix; /**< 针对渐变对象的变换矩阵 */ + VGUColorStop *colorStops; /**< 渐变停止颜色数组指针 */ + uint16_t stopCount; /**< 渐变停止颜色个数 */ union { - /** - * 线性渐变对象 - */ - VGULinear linear; - - /** - * 辐射渐变对象 - */ - VGURadial radial; - - /** - * 圆锥渐变对象 - */ - VGUConic conic; + VGULinear linear; /**< 线性渐变对象 */ + VGURadial radial; /**< 辐射渐变对象 */ + VGUConic conic; /**< 圆锥渐变对象 */ }; - /** - * 渐变类型 - */ - VGUGradientType type; - - /** - * 渐变延伸模式 - */ - VGUFillSpread spread; - - /** - * 透明度,范围0~255 - */ - uint8_t opacity; + VGUGradientType type; /**< 渐变类型 */ + VGUFillSpread spread; /**< 渐变延伸模式 */ + uint8_t opacity; /**< 透明度,范围0~255 */ } VGUGradient; /** @@ -817,15 +368,8 @@ typedef struct { * */ typedef struct { - /** - * 颜色值 - */ - uint32_t color; - - /** - * 透明度. 值范围 0 ~ 255. - */ - uint8_t opacity; + uint32_t color; /**< 颜色值 */ + uint8_t opacity; /**< 透明度. 值范围 0 ~ 255. */ } VGUSolid; /** @@ -833,25 +377,10 @@ typedef struct { * */ typedef enum { - /** - * 填充颜色 - */ - VGU_PAINT_SOLID = 0, - - /** - * 渲染渐变对象 - */ - VGU_PAINT_GRADIENT, - - /** - * 渲染图片模式 - */ - VGU_PAINT_PATTERN, - - /** - * 无效操作 - */ - VGU_PAINT_BUTT + VGU_PAINT_SOLID = 0, /**< 填充颜色 */ + VGU_PAINT_GRADIENT, /**< 渲染渐变对象 */ + VGU_PAINT_PATTERN, /**< 渲染图片模式 */ + VGU_PAINT_BUTT /**< 无效操作 */ } VGUPaintType; /** @@ -860,25 +389,11 @@ typedef enum { */ typedef struct { union { - /** - * 渐变对象 - */ - VGUGradient *gradient; - - /** - * 图片模式对象 - */ - VGUPattern *pattern; - - /** - * 颜色对象 - */ - VGUSolid *solid; + VGUGradient *gradient; /**< 渐变对象 */ + VGUPattern *pattern; /**< 图片模式对象 */ + VGUSolid *solid; /**< 颜色对象 */ }; - /** - * 渲染类型 - */ - VGUPaintType type; + VGUPaintType type; /**< 渲染类型 */ } VGUPaintStyle; /** @@ -886,10 +401,7 @@ typedef struct { * */ typedef struct { - /** - * 填充规格 - */ - VGUFillRule rule; + VGUFillRule rule; /**< 填充规格 */ } VGUFillAttr; /** @@ -897,25 +409,10 @@ typedef struct { * */ typedef struct { - /** - * 线帽类型 - */ - VGULineCap cap; - - /** - * 联结类型 - */ - VGUJointType join; - - /** - * 最大斜切长度 - */ - float miterLimit; - - /** - * 线宽 - */ - float width; + VGULineCap cap; /**< 线帽类型 */ + VGUJointType join; /**< 联结类型 */ + float miterLimit; /**< 最大斜切长度 */ + float width; /**< 线宽 */ } VGUStrokeAttr; /** @@ -925,8 +422,8 @@ typedef struct { /** * @brief 初始化硬件加速。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @see DeinitVgu * @since 3.0 @@ -936,8 +433,8 @@ typedef struct { /** * @brief 去初始化硬件加速。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @see InitVgu * @since 3.0 @@ -947,10 +444,10 @@ typedef struct { /** * @brief 查询硬件能力集。 * - * @param cap 待查询能力。该参数类型定义参考 VGUCapability。 + * @param cap 输入参数,待查询能力。该参数类型定义参考 VGUCapability。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -959,14 +456,14 @@ typedef struct { /** * @brief 使用指定的渲染对象来填充路径。 * - * @param target 渲染目标表面。 - * @param path 路径对象。 - * @param matrix 变换矩阵对象. 如果该参数为空,默认为单位矩阵。 - * @param attr 填充属性。 - * @param style 绘制对象。 + * @param target 输入参数,渲染目标表面。 + * @param path 输入参数,路径对象。 + * @param matrix 输入参数,变换矩阵对象。 如果该参数为空,默认为单位矩阵。 + * @param attr 输入参数,填充属性。 + * @param style 输入参数,绘制对象。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -976,14 +473,14 @@ typedef struct { /** * @brief 使用指定的渲染对象来描边路径。 * - * @param target 渲染目标表面。 - * @param path 路径对象。 - * @param matrix 变换矩阵对象. 如果该参数为空,默认为单位矩阵。 - * @param attr 描边属性。 - * @param style 绘制对象。 + * @param target 输入参数,渲染目标表面。 + * @param path 输入参数,路径对象。 + * @param matrix 输入参数,变换矩阵对象。 如果该参数为空,默认为单位矩阵。 + * @param attr 输入参数,描边属性。 + * @param style 输入参数,绘制对象。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -993,11 +490,11 @@ typedef struct { /** * @brief 对目标表面进行模糊处理。 * - * @param target 渲染目标表面。 - * @param blur 模糊半径。 + * @param target 输入参数,渲染目标表面。 + * @param blur 输入参数,模糊半径。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1008,12 +505,12 @@ typedef struct { * * 搬移过程中同时进行颜色空间转换,矩阵变换操作。 * - * @param target 渲染目标表面。 - * @param src 待叠加源图像。 - * @param color 参与混合的颜色值。如果颜色值为0,则不参与混合操作 + * @param target 输入参数,渲染目标表面。 + * @param src 输入参数,待叠加源图像。 + * @param color 输入参数,参与混合的颜色值。如果颜色值为0,则不参与混合操作。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1023,15 +520,15 @@ typedef struct { * @brief 对多个源图像进行叠加操作。 * * 搬移过程中同时进行颜色空间转换,矩阵变换操作。该接口支持多个源图形同时叠加到目标表面,\n - * 对于硬件支持源图像数目可以通过QueryCapability接口查询 + * 对于硬件支持源图像数目可以通过QueryCapability接口查询。 * - * @param target 渲染目标表面。 - * @param src 待叠加源图像数组。 - * @param count 待叠加源图像个数。 - * @param color 参与混合的颜色值。如果颜色值为0,则不参与混合操作 + * @param target 输入参数,渲染目标表面。 + * @param src 输入参数,待叠加源图像数组。 + * @param count 输入参数,待叠加源图像个数。 + * @param color 输入参数,参与混合的颜色值。如果颜色值为0,则不参与混合操作 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1040,13 +537,13 @@ typedef struct { /** * @brief 对指定矩形进行颜色清除操作。 * - * @param target 渲染目标表面。 - * @param rect 待填充矩形大小,如果该参数为空,则整个表面清除。 - * @param color 填充颜色。 - * @param opacity 填充透明度。 + * @param target 输入参数,渲染目标表面。 + * @param rect 输入参数,待填充矩形大小,如果该参数为空,则整个表面清除。 + * @param color 输入参数,填充颜色。 + * @param opacity 输入参数,填充透明度。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1055,8 +552,8 @@ typedef struct { /** * @brief 取消硬件加速渲染。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1067,10 +564,10 @@ typedef struct { * * 该函数将阻塞等待硬件绘制完成后继续运行。 * - * @param timeOut 该参数表示硬件加速同步等待超时时间。 值为0表示没有等待时间。 + * @param timeOut 输入参数,该参数表示硬件加速同步等待超时时间。 值为0表示没有等待时间。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1080,16 +577,16 @@ typedef struct { /** * @brief 初始化路径对象。 * - * @param path 路径对象。 - * @param type 存储路径的数据类型。 - * @param segments 路径的命令缓存。 - * @param numSegments 路径命令总数。 - * @param data 路径命令对应的坐标缓存。 - * @param enAlias 使能抗锯齿。 - * @param boundBox 路径的边界范围。 + * @param path 输入参数,路径对象。 + * @param type 输入参数,存储路径的数据类型。 + * @param segments 输入参数,路径的命令缓存。 + * @param numSegments 输入参数,路径命令总数。 + * @param data 输入参数,路径命令对应的坐标缓存。 + * @param enAlias 输入参数,使能抗锯齿。 + * @param boundBox 输入参数,路径的边界范围。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1099,11 +596,11 @@ VGUResult VGUPathInit(VGUPath *path, VGUPathDataType type, const uint8_t *segmen /** * @brief 添加子路径到当前路径中。 * - * @param path 路径对象。 - * @param subpath 存放子路径对象 + * @param path 输入参数,路径对象。 + * @param subpath 输入参数,存放子路径对象。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1112,10 +609,10 @@ VGUResult VGUPathAppend(VGUPath *path, const VGUPath *subpath); /** * @brief 清除路径对象内存。 * - * @param path 路径对象。 + * @param path 输入参数,路径对象。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1124,10 +621,10 @@ VGUResult VGUPathClear(VGUPath *path); /** * @brief 初始化矩阵对象为单位矩阵。 * - * @param matrix 变换矩阵对象。 + * @param matrix 输入参数,变换矩阵对象。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1136,12 +633,12 @@ VGUResult VGUMatrixIdentity(VGUMatrix3 *matrix); /** * @brief 矩阵变换缩放。 * - * @param matrix 变换矩阵对象。 - * @param xScale 水平方向缩放倍数。 - * @param yScale 垂直方向缩放倍数。 + * @param matrix 输入参数,变换矩阵对象。 + * @param xScale 输入参数,水平方向缩放倍数。 + * @param yScale 输入参数,垂直方向缩放倍数。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1150,11 +647,11 @@ VGUResult VGUMatrixScale(VGUMatrix3 *matrix, float xScale, float yScale); /** * @brief 矩阵变换旋转。 * - * @param matrix 变换矩阵对象。 - * @param degree 旋转度数。 + * @param matrix 输入参数,变换矩阵对象。 + * @param degree 输入参数,旋转度数。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1163,12 +660,12 @@ VGUResult VGUMatrixRotate(VGUMatrix3 *matrix, float degree); /** * @brief 矩阵变换平移。 * - * @param matrix 变换矩阵对象。 - * @param x 水平方向位置。 - * @param y 垂直方向位置。 + * @param matrix 输入参数,变换矩阵对象。 + * @param x 输入参数,水平方向位置。 + * @param y 输入参数,垂直方向位置。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1177,12 +674,12 @@ VGUResult VGUMatrixTranslate(VGUMatrix3 *matrix, float x, float y); /** * @brief 对渐变添加ColorStop。 * - * @param gradient 渐变对象。 - * @param colorStop ColorStop数组指针。 - * @param count colorStops总数。 + * @param gradient 输入参数,渐变对象。 + * @param colorStop 输入参数,ColorStop数组指针。 + * @param count 输入参数,colorStops总数。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1191,10 +688,10 @@ VGUResult VGUGradientColorStop(VGUGradient *gradient, const VGUColorStop *colorS /** * @brief 清除ColorStop。 * - * @param gradient 渐变对象。 + * @param gradient 输入参数,渐变对象。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1203,11 +700,11 @@ VGUResult VGUGradientClearStop(VGUGradient *gradient); /** * @brief 设置渐变对象的变换矩阵。 * - * @param gradient 渐变对象。 - * @param matrix 渐变对象变换矩阵。 + * @param gradient 输入参数,渐变对象。 + * @param matrix 输入参数,渐变对象变换矩阵。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1216,12 +713,12 @@ VGUResult VGUGradientMatrix(VGUGradient *gradient, const VGUMatrix3 *matrix); /** * @brief 创建线性渐变对象。 * - * @param gradient 渐变对象。 - * @param p1 起点坐标。 - * @param p2 终点坐标。 + * @param gradient 输入参数,渐变对象。 + * @param p1 输入参数,起点坐标。 + * @param p2 输入参数,终点坐标。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1230,14 +727,14 @@ VGUResult VGUGradientLinear(VGUGradient *gradient, const VGUPoint *p1, const VGU /** * @brief 创建辐射渐变对象 * - * @param gradient 渐变对象。 - * @param p1 内圆圆心坐标。 - * @param r1 内圆半径。 - * @param p2 外圆圆心坐标。 - * @param r2 外圆半径。 + * @param gradient 输入参数,渐变对象。 + * @param p1 输入参数,内圆圆心坐标。 + * @param r1 输入参数,内圆半径。 + * @param p2 输入参数,外圆圆心坐标。 + * @param r2 输入参数,外圆半径。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1246,12 +743,12 @@ VGUResult VGUGradientRadial(VGUGradient *gradient, const VGUPoint *p1, VGUScalar /** * @brief 创建圆锥渐变对象。 * - * @param gradient 渐变对象。 - * @param cx 渐变中心水平坐标。 - * @param cy 渐变中心垂直坐标。 + * @param gradient 输入参数,渐变对象。 + * @param cx 输入参数,渐变中心水平坐标。 + * @param cy 输入参数,渐变中心垂直坐标。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1260,10 +757,10 @@ VGUResult VGUGradientConic(VGUGradient *gradient, VGUScalar cx, VGUScalar cy); /** * @brief 获取硬件加速相关的操作接口指针。 * - * @param funcs 硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。 + * @param funcs 输出参数,硬件加速模块操作接口指针,调用者不需要分配内存,调用者获取该指针操作硬件加速。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */ @@ -1272,10 +769,10 @@ VGUResult VGUInitialize(VGUFuncs **funcs); /** * @brief 去初始化硬件加速模块,同时释放硬件加速模块操作函数指针。 * - * @param funcs 硬件加速操作接口指针。 + * @param funcs 输出参数,硬件加速操作接口指针。 * - * @return Returns VGU_SUCCESS 表示执行成功。 - * @return Returns 其他值表示执行失败,具体错误码查看{@link VGUResult}。 + * @return VGU_SUCCESS 表示执行成功。 + * @return 其他值表示执行失败,具体错误码查看{@link VGUResult}。 * * @since 3.0 */