vulkan_android.h 6.1 KB

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