vulkan_android.h 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. #ifndef VULKAN_ANDROID_H_
  2. #define VULKAN_ANDROID_H_ 1
  3. /*
  4. ** Copyright 2015-2021 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. #define VK_KHR_android_surface 1
  16. struct ANativeWindow;
  17. #define VK_KHR_ANDROID_SURFACE_SPEC_VERSION 6
  18. #define VK_KHR_ANDROID_SURFACE_EXTENSION_NAME "VK_KHR_android_surface"
  19. typedef VkFlags VkAndroidSurfaceCreateFlagsKHR;
  20. typedef struct VkAndroidSurfaceCreateInfoKHR {
  21. VkStructureType sType;
  22. const void* pNext;
  23. VkAndroidSurfaceCreateFlagsKHR flags;
  24. struct ANativeWindow* window;
  25. } VkAndroidSurfaceCreateInfoKHR;
  26. typedef VkResult (VKAPI_PTR *PFN_vkCreateAndroidSurfaceKHR)(VkInstance instance, const VkAndroidSurfaceCreateInfoKHR* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkSurfaceKHR* pSurface);
  27. #ifndef VK_NO_PROTOTYPES
  28. VKAPI_ATTR VkResult VKAPI_CALL vkCreateAndroidSurfaceKHR(
  29. VkInstance instance,
  30. const VkAndroidSurfaceCreateInfoKHR* pCreateInfo,
  31. const VkAllocationCallbacks* pAllocator,
  32. VkSurfaceKHR* pSurface);
  33. #endif
  34. #define VK_ANDROID_external_memory_android_hardware_buffer 1
  35. struct AHardwareBuffer;
  36. #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_SPEC_VERSION 3
  37. #define VK_ANDROID_EXTERNAL_MEMORY_ANDROID_HARDWARE_BUFFER_EXTENSION_NAME "VK_ANDROID_external_memory_android_hardware_buffer"
  38. typedef struct VkAndroidHardwareBufferUsageANDROID {
  39. VkStructureType sType;
  40. void* pNext;
  41. uint64_t androidHardwareBufferUsage;
  42. } VkAndroidHardwareBufferUsageANDROID;
  43. typedef struct VkAndroidHardwareBufferPropertiesANDROID {
  44. VkStructureType sType;
  45. void* pNext;
  46. VkDeviceSize allocationSize;
  47. uint32_t memoryTypeBits;
  48. } VkAndroidHardwareBufferPropertiesANDROID;
  49. typedef struct VkAndroidHardwareBufferFormatPropertiesANDROID {
  50. VkStructureType sType;
  51. void* pNext;
  52. VkFormat format;
  53. uint64_t externalFormat;
  54. VkFormatFeatureFlags formatFeatures;
  55. VkComponentMapping samplerYcbcrConversionComponents;
  56. VkSamplerYcbcrModelConversion suggestedYcbcrModel;
  57. VkSamplerYcbcrRange suggestedYcbcrRange;
  58. VkChromaLocation suggestedXChromaOffset;
  59. VkChromaLocation suggestedYChromaOffset;
  60. } VkAndroidHardwareBufferFormatPropertiesANDROID;
  61. typedef struct VkImportAndroidHardwareBufferInfoANDROID {
  62. VkStructureType sType;
  63. const void* pNext;
  64. struct AHardwareBuffer* buffer;
  65. } VkImportAndroidHardwareBufferInfoANDROID;
  66. typedef struct VkMemoryGetAndroidHardwareBufferInfoANDROID {
  67. VkStructureType sType;
  68. const void* pNext;
  69. VkDeviceMemory memory;
  70. } VkMemoryGetAndroidHardwareBufferInfoANDROID;
  71. typedef struct VkExternalFormatANDROID {
  72. VkStructureType sType;
  73. void* pNext;
  74. uint64_t externalFormat;
  75. } VkExternalFormatANDROID;
  76. typedef VkResult (VKAPI_PTR *PFN_vkGetAndroidHardwareBufferPropertiesANDROID)(VkDevice device, const struct AHardwareBuffer* buffer, VkAndroidHardwareBufferPropertiesANDROID* pProperties);
  77. typedef VkResult (VKAPI_PTR *PFN_vkGetMemoryAndroidHardwareBufferANDROID)(VkDevice device, const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo, struct AHardwareBuffer** pBuffer);
  78. #ifndef VK_NO_PROTOTYPES
  79. VKAPI_ATTR VkResult VKAPI_CALL vkGetAndroidHardwareBufferPropertiesANDROID(
  80. VkDevice device,
  81. const struct AHardwareBuffer* buffer,
  82. VkAndroidHardwareBufferPropertiesANDROID* pProperties);
  83. VKAPI_ATTR VkResult VKAPI_CALL vkGetMemoryAndroidHardwareBufferANDROID(
  84. VkDevice device,
  85. const VkMemoryGetAndroidHardwareBufferInfoANDROID* pInfo,
  86. struct AHardwareBuffer** pBuffer);
  87. #endif
  88. #ifdef __cplusplus
  89. }
  90. #endif
  91. #endif