vulkan_screen.h 4.1 KB

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