Added a member void* pUserData to VmaDeviceMemoryCallbacks Updated PFN_vmaAllocateDeviceMemoryFunction to use new pUserData member Updated PFN_vmaFreeDeviceMemoryFunction to use new pUserData member Signed-off-by: Nils Petter Skålerud <np_skalerud@hotmail.com>
diff --git a/src/vk_mem_alloc.h b/src/vk_mem_alloc.h index 6be990a..fd85476 100644 --- a/src/vk_mem_alloc.h +++ b/src/vk_mem_alloc.h
@@ -1904,13 +1904,15 @@ VmaAllocator allocator, uint32_t memoryType, VkDeviceMemory memory, - VkDeviceSize size); + VkDeviceSize size, + void* pUserData); /// Callback function called before vkFreeMemory. typedef void (VKAPI_PTR *PFN_vmaFreeDeviceMemoryFunction)( VmaAllocator allocator, uint32_t memoryType, VkDeviceMemory memory, - VkDeviceSize size); + VkDeviceSize size, + void* pUserData); /** \brief Set of callbacks that the library will call for `vkAllocateMemory` and `vkFreeMemory`. @@ -1924,6 +1926,8 @@ PFN_vmaAllocateDeviceMemoryFunction pfnAllocate; /// Optional, can be null. PFN_vmaFreeDeviceMemoryFunction pfnFree; + /// Optional, can be null. + void* pUserData; } VmaDeviceMemoryCallbacks; /// Flags for created #VmaAllocator. @@ -16363,7 +16367,7 @@ // Informative callback. if(m_DeviceMemoryCallbacks.pfnAllocate != VMA_NULL) { - (*m_DeviceMemoryCallbacks.pfnAllocate)(this, pAllocateInfo->memoryTypeIndex, *pMemory, pAllocateInfo->allocationSize); + (*m_DeviceMemoryCallbacks.pfnAllocate)(this, pAllocateInfo->memoryTypeIndex, *pMemory, pAllocateInfo->allocationSize, m_DeviceMemoryCallbacks.pUserData); } } else @@ -16379,7 +16383,7 @@ // Informative callback. if(m_DeviceMemoryCallbacks.pfnFree != VMA_NULL) { - (*m_DeviceMemoryCallbacks.pfnFree)(this, memoryType, hMemory, size); + (*m_DeviceMemoryCallbacks.pfnFree)(this, memoryType, hMemory, size, m_DeviceMemoryCallbacks.pUserData); } // VULKAN CALL vkFreeMemory.