1 /* 2 * Copyright (c) Huawei Technologies Co., Ltd. 2023-2023. All rights reserved. 3 * Description: vulkan api partial render extended function. Will delete when vulkan-headers heuristic 4 * Create: 2023/11/27 5 */ 6 7 #pragma once 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 typedef enum VkStructureTypeHUAWEI { 14 VK_STRUCTURE_TYPE_BLUR_COLOR_FILTER_INFO_HUAWEI = VK_STRUCTURE_TYPE_MAX_ENUM - 15, 15 VK_STRUCTURE_TYPE_BLUR_NOISE_INFO_HUAWEI = VK_STRUCTURE_TYPE_MAX_ENUM - 14, 16 VK_STRUCTURE_TYPE_DRAW_BLUR_IMAGE_INFO_HUAWEI = VK_STRUCTURE_TYPE_MAX_ENUM - 13, 17 VK_STRUCTURE_TYPE_RENDER_PASS_DAMAGE_REGION_BEGIN_INFO_TYPE = VK_STRUCTURE_TYPE_MAX_ENUM - 7 18 } VkstructureTypeHUAWEI; 19 20 typedef struct VkRenderPassDamageRegionBeginInfo { 21 VkStructureTypeHUAWEI sType; 22 const void* pNext; 23 uint32_t regionCount; 24 const VkRect2D* regions; 25 } VkRenderPassDamageRegionBeginInfo; 26 27 #define VK_HUAWEI_DRAW_BLUR_IMAGE 1 28 #define VK_HUAWEI_DRAW_BLUR_IMAGE_SPEC_VERSION 10 29 #define VK_HUAWEI_DRAW_BLUR_IMAGE_EXTENSION_NAME "VK_HUAWEI_draw_blur_image" 30 31 typedef enum VkBlurOriginTypeHUAWEI { 32 BLUR_ORIGIN_NONE_FLIP_HUAWEI = 0, 33 BLUR_ORIGIN_Y_AXIS_FLIP_HUAWEI = 1, 34 } VkBlurOriginTypeHUAWEI; 35 36 typedef struct VkDrawBlurImageInfoHUAWEI { 37 VkStructureTypeHUAWEI sType; 38 const void* pNext; 39 float sigma; 40 VkBlurOriginTypeHUAWEI origin; 41 VkRect2D srcRegion; 42 VkRect2D dstRegion; 43 VkImageView srcImageView; 44 } VkDrawBlurImageInfoHUAWEI; 45 46 typedef struct VkBlurNoiseInfoHUAWEI { 47 VkStructureTypeHUAWEI sType; 48 const void* pNext; 49 float noiseRatio; 50 } VkBlurNoiseInfoHUAWEI; 51 52 typedef struct VkBlurColorFilterInfoHUAWEI { 53 VkStructureTypeHUAWEI sType; 54 const void* pNext; 55 float saturation; 56 float brightness; 57 } VkBlurColorFilterInfoHUAWEI; 58 59 typedef void (VKAPI_PTR *PFN_vkCmdDrawBlurImageHUAWEI)(VkCommandBuffer commandBuffer,\ 60 const VkDrawBlurImageInfoHUAWEI* drawBlurImageInfo); 61 62 typedef VkResult (VKAPI_PTR *PFN_vkGetBlurImageSizeHUAWEI)(VkDevice device, \ 63 const VkDrawBlurImageInfoHUAWEI *drawBlurImageInfo, VkRect2D *pSize); 64 65 #ifndef VK_NO_PROTOTYPES 66 VKAPI_ATTR void VKAPI_CALL vkCmdDrawBlurImageHUAWEI( 67 VkCommandBuffer commandBuffer, 68 const VkDrawBlurImageInfoHUAWEI* drawBlurImageInfo); 69 70 VKAPI_ATTR VkResult VKAPI_CALL vkGetBlurImageSizeHUAWEI( 71 VkDevice device, 72 const VkDrawBlurImageInfoHUAWEI* drawBlurImageInfo, 73 VkRect2D* pSize); 74 #endif 75 76 #ifdef __cplusplus 77 } 78 #endif