internal static void _ctor(ref D3D12MA_VirtualBlock pThis, D3D12MA_ALLOCATION_CALLBACKS *allocationCallbacks, [NativeTypeName("UINT64")] ulong size)
        {
            D3D12MA_IUnknownImpl._ctor(ref pThis.m_IUnknownImpl, Vtbl);

            pThis.m_AllocationCallbacks = *allocationCallbacks;
            pThis.m_Size = size;

            D3D12MA_BlockMetadata_Generic._ctor(ref pThis.m_Metadata, (D3D12MA_ALLOCATION_CALLBACKS *)Unsafe.AsPointer(ref pThis.m_AllocationCallbacks), true); // isVirtual

            pThis.m_Metadata.Init(pThis.m_Size);
        }
        public int Init()
        {
            HRESULT hr = Base.Init();

            if (FAILED(hr))
            {
                return(hr);
            }

            var allocationCallbacks = Base.m_Allocator->GetAllocs();

            var metadata = D3D12MA_NEW <D3D12MA_BlockMetadata_Generic>(allocationCallbacks);

            D3D12MA_BlockMetadata_Generic._ctor(ref *metadata, allocationCallbacks, false);

            m_pMetadata = metadata;
            m_pMetadata->Init(Base.m_Size);

            return(hr);
        }