Record Class VmaDeviceMemoryCallbacks

java.lang.Object
java.lang.Record
club.doki7.vma.datatype.VmaDeviceMemoryCallbacks
All Implemented Interfaces:
IPointer, IVmaDeviceMemoryCallbacks

@ValueBasedCandidate @UnsafeConstructor public record VmaDeviceMemoryCallbacks(@NotNull MemorySegment segment) extends Record implements IVmaDeviceMemoryCallbacks

Set of callbacks that the library will call for vkAllocateMemory and vkFreeMemory.

Provided for informative purpose, e.g. to gather statistics about number of allocations or total amount of memory allocated in Vulkan.

Used in VmaAllocatorCreateInfo::pDeviceMemoryCallbacks.

Structure Link icon

typedef struct VmaDeviceMemoryCallbacks {
    PFN_vmaAllocateDeviceMemoryFunction pfnAllocate; // optional
    PFN_vmaFreeDeviceMemoryFunction pfnFree; // optional
    void* pUserData; // optional
} VmaDeviceMemoryCallbacks;

Contracts Link icon

The property segment() should always be not-null (segment != NULL && !segment.equals(MemorySegment.NULL)), and properly aligned to LAYOUT.byteAlignment() bytes. To represent null pointer, you may use a Java null instead. See the documentation of IPointer.segment() for more details.

The constructor of this class is marked as UnsafeConstructor, because it does not perform any runtime check. The constructor can be useful for automatic code generators.

Member documentation Link icon