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