Merge pull request #105 from Didgy74/master

Add pUserData to VmaDeviceMemoryCallbacks
diff --git a/src/vk_mem_alloc.h b/src/vk_mem_alloc.h
index 4b13934..8f18d0f 100644
--- a/src/vk_mem_alloc.h
+++ b/src/vk_mem_alloc.h
@@ -1951,13 +1951,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`.

 

@@ -1971,6 +1973,8 @@
     PFN_vmaAllocateDeviceMemoryFunction pfnAllocate;

     /// Optional, can be null.

     PFN_vmaFreeDeviceMemoryFunction pfnFree;

+    /// Optional, can be null.

+    void* pUserData;

 } VmaDeviceMemoryCallbacks;

 

 /// Flags for created #VmaAllocator.

@@ -15133,6 +15137,7 @@
 

     if(pCreateInfo->pDeviceMemoryCallbacks != VMA_NULL)

     {

+        m_DeviceMemoryCallbacks.pUserData = pCreateInfo->pDeviceMemoryCallbacks->pUserData;

         m_DeviceMemoryCallbacks.pfnAllocate = pCreateInfo->pDeviceMemoryCallbacks->pfnAllocate;

         m_DeviceMemoryCallbacks.pfnFree = pCreateInfo->pDeviceMemoryCallbacks->pfnFree;

     }

@@ -16484,7 +16489,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

@@ -16500,7 +16505,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.