vulkan_android.h 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159
  1. #ifndef VULKAN_ANDROID_H_
  2. #define VULKAN_ANDROID_H_ 1
  3. /*
  4. ** Copyright 2015-2026 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_KHR_android_surface is a preprocessor guard. Do not pass it to API calls.
  16. #define VK_KHR_android_surface 1
  17. struct ANativeWindow;
  18. #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
  19. #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
  20. typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
  21. typedef struct VkAndroidSurfaceCreateInfoKHR {
  22. VkStructureType sType;
  23. const void* pNext;
  24. VkAndroidSurfaceCreateFlagsKHR flags;
  25. struct ANativeWindow* window;
  26. } VkAndroidSurfaceCreateInfoKHR;
  27. typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  28. #ifndef VK_NO_PROTOTYPES
  29. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  30. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
  31. VkInstance instance,
  32. const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
  33. const VkAllocationCallbacks* pAllocator,
  34. VkSurfaceKHR* pSurface);
  35. #endif
  36. #endif
  37. // VK_ANDROID_external_memory_android_hardware_buffer is a preprocessor guard. Do not pass it to API calls.
  38. #define VK_ANDROID_external_memory_android_hardware_buffer 1
  39. struct AHardwareBuffer;
  40. #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 5
  41. #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
  42. typedef struct VkAndroidHardwareBufferUsageANDROID {
  43. VkStructureType sType;
  44. void* pNext;
  45. uint64_t androidHardwareBufferUsage;
  46. } VkAndroidHardwareBufferUsageANDROID;
  47. typedef struct VkAndroidHardwareBufferPropertiesANDROID {
  48. VkStructureType sType;
  49. void* pNext;
  50. VkDeviceSize allocationSize;
  51. uint32_t memoryTypeBits;
  52. } VkAndroidHardwareBufferPropertiesANDROID;
  53. typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
  54. VkStructureType sType;
  55. void* pNext;
  56. VkFormat format;
  57. uint64_t externalFormat;
  58. VkFormatFeatureFlags formatFeatures;
  59. VkComponentMapping samplerYcbcrConversionComponents;
  60. VkSamplerYcbcrModelConversion suggestedYcbcrModel;
  61. VkSamplerYcbcrRange suggestedYcbcrRange;
  62. VkChromaLocation suggestedXChromaOffset;
  63. VkChromaLocation suggestedYChromaOffset;
  64. } VkAndroidHardwareBufferFormatPropertiesANDROID;
  65. typedef struct VkImportAndroidHardwareBufferInfoANDROID {
  66. VkStructureType sType;
  67. const void* pNext;
  68. struct AHardwareBuffer* buffer;
  69. } VkImportAndroidHardwareBufferInfoANDROID;
  70. typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
  71. VkStructureType sType;
  72. const void* pNext;
  73. VkDeviceMemory memory;
  74. } VkMemoryGetAndroidHardwareBufferInfoANDROID;
  75. typedef struct VkExternalFormatANDROID {
  76. VkStructureType sType;
  77. void* pNext;
  78. uint64_t externalFormat;
  79. } VkExternalFormatANDROID;
  80. typedef struct VkAndroidHardwareBufferFormatProperties2ANDROID {
  81. VkStructureType sType;
  82. void* pNext;
  83. VkFormat format;
  84. uint64_t externalFormat;
  85. VkFormatFeatureFlags2 formatFeatures;
  86. VkComponentMapping samplerYcbcrConversionComponents;
  87. VkSamplerYcbcrModelConversion suggestedYcbcrModel;
  88. VkSamplerYcbcrRange suggestedYcbcrRange;
  89. VkChromaLocation suggestedXChromaOffset;
  90. VkChromaLocation suggestedYChromaOffset;
  91. } VkAndroidHardwareBufferFormatProperties2ANDROID;
  92. typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
  93. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
  94. #ifndef VK_NO_PROTOTYPES
  95. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  96. VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
  97. VkDevice device,
  98. const struct AHardwareBuffer* buffer,
  99. VkAndroidHardwareBufferPropertiesANDROID* pProperties);
  100. #endif
  101. #ifndef VK_ONLY_EXPORTED_PROTOTYPES
  102. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
  103. VkDevice device,
  104. const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
  105. struct AHardwareBuffer** pBuffer);
  106. #endif
  107. #endif
  108. // VK_ANDROID_external_format_resolve is a preprocessor guard. Do not pass it to API calls.
  109. #define VK_ANDROID_external_format_resolve 1
  110. #define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_SPEC_VERSION 1
  111. #define VK_ANDROID_EXTERNAL_FORMAT_RESOLVE_EXTENSION_NAME "VK_ANDROID_external_format_resolve"
  112. typedef struct VkPhysicalDeviceExternalFormatResolveFeaturesANDROID {
  113. VkStructureType sType;
  114. void* pNext;
  115. VkBool32 externalFormatResolve;
  116. } VkPhysicalDeviceExternalFormatResolveFeaturesANDROID;
  117. typedef struct VkPhysicalDeviceExternalFormatResolvePropertiesANDROID {
  118. VkStructureType sType;
  119. void* pNext;
  120. VkBool32 nullColorAttachmentWithExternalFormatResolve;
  121. VkChromaLocation externalFormatResolveChromaOffsetX;
  122. VkChromaLocation externalFormatResolveChromaOffsetY;
  123. } VkPhysicalDeviceExternalFormatResolvePropertiesANDROID;
  124. typedef struct VkAndroidHardwareBufferFormatResolvePropertiesANDROID {
  125. VkStructureType sType;
  126. void* pNext;
  127. VkFormat colorAttachmentFormat;
  128. } VkAndroidHardwareBufferFormatResolvePropertiesANDROID;
  129. #ifdef __cplusplus
  130. }
  131. #endif
  132. #endif