Merge pull request #347 from Rob2309/extends-marker

Add attribute to mark pNext pointers with the Vulkan struct they extend
This commit is contained in:
Adam Sawicki 2023-07-04 10:24:24 +02:00 committed by GitHub
commit 1f38a49cc8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -234,6 +234,12 @@ extern "C" {
#define VMA_CALL_POST #define VMA_CALL_POST
#endif #endif
// Define this macro to decorate pNext pointers with an attribute specifying the Vulkan
// structure that will be extended via the pNext chain.
#ifndef VMA_EXTENDS_VK_STRUCT
#define VMA_EXTENDS_VK_STRUCT(vkStruct)
#endif
// Define this macro to decorate pointers with an attribute specifying the // Define this macro to decorate pointers with an attribute specifying the
// length of the array they point to if they are not null. // length of the array they point to if they are not null.
// //
@ -1319,7 +1325,7 @@ typedef struct VmaPoolCreateInfo
Please note that some structures, e.g. `VkMemoryPriorityAllocateInfoEXT`, `VkMemoryDedicatedAllocateInfoKHR`, Please note that some structures, e.g. `VkMemoryPriorityAllocateInfoEXT`, `VkMemoryDedicatedAllocateInfoKHR`,
can be attached automatically by this library when using other, more convenient of its features. can be attached automatically by this library when using other, more convenient of its features.
*/ */
void* VMA_NULLABLE pMemoryAllocateNext; void* VMA_NULLABLE VMA_EXTENDS_VK_STRUCT(VkMemoryAllocateInfo) pMemoryAllocateNext;
} VmaPoolCreateInfo; } VmaPoolCreateInfo;
/** @} */ /** @} */
@ -2227,7 +2233,7 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindBufferMemory2(
VmaAllocation VMA_NOT_NULL allocation, VmaAllocation VMA_NOT_NULL allocation,
VkDeviceSize allocationLocalOffset, VkDeviceSize allocationLocalOffset,
VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer, VkBuffer VMA_NOT_NULL_NON_DISPATCHABLE buffer,
const void* VMA_NULLABLE pNext); const void* VMA_NULLABLE VMA_EXTENDS_VK_STRUCT(VkBindBufferMemoryInfoKHR) pNext);
/** \brief Binds image to allocation. /** \brief Binds image to allocation.
@ -2264,7 +2270,7 @@ VMA_CALL_PRE VkResult VMA_CALL_POST vmaBindImageMemory2(
VmaAllocation VMA_NOT_NULL allocation, VmaAllocation VMA_NOT_NULL allocation,
VkDeviceSize allocationLocalOffset, VkDeviceSize allocationLocalOffset,
VkImage VMA_NOT_NULL_NON_DISPATCHABLE image, VkImage VMA_NOT_NULL_NON_DISPATCHABLE image,
const void* VMA_NULLABLE pNext); const void* VMA_NULLABLE VMA_EXTENDS_VK_STRUCT(VkBindImageMemoryInfoKHR) pNext);
/** \brief Creates a new `VkBuffer`, allocates and binds memory for it. /** \brief Creates a new `VkBuffer`, allocates and binds memory for it.