public static void _ctor(ref D3D12MA_NormalBlock pThis, D3D12MA_AllocatorPimpl *allocator, ref D3D12MA_BlockVector blockVector, D3D12_HEAP_TYPE heapType, D3D12_HEAP_FLAGS heapFlags, [NativeTypeName("UINT64")] ulong size, [NativeTypeName("UINT")] uint id) { pThis.Base = new D3D12MA_MemoryBlock(allocator, heapType, heapFlags, size, id); pThis.Base.lpVtbl = Vtbl; pThis.m_pMetadata = null; pThis.m_BlockVector = (D3D12MA_BlockVector *)Unsafe.AsPointer(ref blockVector); }
public static void Dispose(ref D3D12MA_NormalBlock pThis) { if (pThis.m_pMetadata != null) { // THIS IS THE MOST IMPORTANT ASSERT IN THE ENTIRE LIBRARY! // Hitting it means you have some memory leak - unreleased Allocation objects. D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && pThis.m_pMetadata->IsEmpty()); // "Some allocations were not freed before destruction of this memory block!" D3D12MA_DELETE(pThis.Base.m_Allocator->GetAllocs(), pThis.m_pMetadata); } D3D12MA_MemoryBlock.Dispose(ref pThis.Base); }