1 #ifndef VULKAN_SCREEN_H_ 2 #define VULKAN_SCREEN_H_ 1 3 4 /* 5 ** Copyright 2015-2024 The Khronos Group Inc. 6 ** 7 ** SPDX-License-Identifier: Apache-2.0 8 */ 9 10 /* 11 ** This header is generated from the Khronos Vulkan XML API Registry. 12 ** 13 */ 14 15 16 #ifdef __cplusplus 17 extern "C" { 18 #endif 19 20 21 22 // VK_QNX_screen_surface is a preprocessor guard. Do not pass it to API calls. 23 #define VK_QNX_screen_surface 1 24 #define VK_QNX_SCREEN_SURFACE_SPEC_VERSION 1 25 #define VK_QNX_SCREEN_SURFACE_EXTENSION_NAME "VK_QNX_screen_surface" 26 typedef VkFlags VkScreenSurfaceCreateFlagsQNX; 27 typedef struct VkScreenSurfaceCreateInfoQNX { 28 VkStructureType sType; 29 const void* pNext; 30 VkScreenSurfaceCreateFlagsQNX flags; 31 struct _screen_context* context; 32 struct _screen_window* window; 33 } VkScreenSurfaceCreateInfoQNX; 34 35 typedef VkResult (VKAPI_PTR *PFN_vkCreateScreenSurfaceQNX)(VkInstance instance, const VkScreenSurfaceCreateInfoQNX* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface); 36 typedef VkBool32 (VKAPI_PTR *PFN_vkGetPhysicalDeviceScreenPresentationSupportQNX)(VkPhysicalDevice physicalDevice, uint32_t queueFamilyIndex, struct _screen_window* window); 37 38 #ifndef VK_NO_PROTOTYPES 39 VKAPI_ATTR VkResult VKAPI_CALL vkCreateScreenSurfaceQNX( 40 VkInstance instance, 41 const VkScreenSurfaceCreateInfoQNX* pCreateInfo, 42 const VkAllocationCallbacks* pAllocator, 43 VkSurfaceKHR* pSurface); 44 45 VKAPI_ATTR VkBool32 VKAPI_CALL vkGetPhysicalDeviceScreenPresentationSupportQNX( 46 VkPhysicalDevice physicalDevice, 47 uint32_t queueFamilyIndex, 48 struct _screen_window* window); 49 #endif 50 51 52 // VK_QNX_external_memory_screen_buffer is a preprocessor guard. Do not pass it to API calls. 53 #define VK_QNX_external_memory_screen_buffer 1 54 #define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_SPEC_VERSION 1 55 #define VK_QNX_EXTERNAL_MEMORY_SCREEN_BUFFER_EXTENSION_NAME "VK_QNX_external_memory_screen_buffer" 56 typedef struct VkScreenBufferPropertiesQNX { 57 VkStructureType sType; 58 void* pNext; 59 VkDeviceSize allocationSize; 60 uint32_t memoryTypeBits; 61 } VkScreenBufferPropertiesQNX; 62 63 typedef struct VkScreenBufferFormatPropertiesQNX { 64 VkStructureType sType; 65 void* pNext; 66 VkFormat format; 67 uint64_t externalFormat; 68 uint64_t screenUsage; 69 VkFormatFeatureFlags formatFeatures; 70 VkComponentMapping samplerYcbcrConversionComponents; 71 VkSamplerYcbcrModelConversion suggestedYcbcrModel; 72 VkSamplerYcbcrRange suggestedYcbcrRange; 73 VkChromaLocation suggestedXChromaOffset; 74 VkChromaLocation suggestedYChromaOffset; 75 } VkScreenBufferFormatPropertiesQNX; 76 77 typedef struct VkImportScreenBufferInfoQNX { 78 VkStructureType sType; 79 const void* pNext; 80 struct _screen_buffer* buffer; 81 } VkImportScreenBufferInfoQNX; 82 83 typedef struct VkExternalFormatQNX { 84 VkStructureType sType; 85 void* pNext; 86 uint64_t externalFormat; 87 } VkExternalFormatQNX; 88 89 typedef struct VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX { 90 VkStructureType sType; 91 void* pNext; 92 VkBool32 screenBufferImport; 93 } VkPhysicalDeviceExternalMemoryScreenBufferFeaturesQNX; 94 95 typedef VkResult (VKAPI_PTR *PFN_vkGetScreenBufferPropertiesQNX)(VkDevice device, const struct _screen_buffer* buffer, VkScreenBufferPropertiesQNX* pProperties); 96 97 #ifndef VK_NO_PROTOTYPES 98 VKAPI_ATTR VkResult VKAPI_CALL vkGetScreenBufferPropertiesQNX( 99 VkDevice device, 100 const struct _screen_buffer* buffer, 101 VkScreenBufferPropertiesQNX* pProperties); 102 #endif 103 104 #ifdef __cplusplus 105 } 106 #endif 107 108 #endif 109