static bool ValidateAllocateMemoryParameters(D3D12MA_ALLOCATION_DESC *pAllocDesc, D3D12_RESOURCE_ALLOCATION_INFO *pAllocInfo, D3D12MA_Allocation **ppAllocation) { return((pAllocDesc != null) && (pAllocInfo != null) && (ppAllocation != null) && ((pAllocInfo->Alignment == 0) || (pAllocInfo->Alignment == D3D12_DEFAULT_RESOURCE_PLACEMENT_ALIGNMENT) || (pAllocInfo->Alignment == D3D12_DEFAULT_MSAA_RESOURCE_PLACEMENT_ALIGNMENT)) && (pAllocInfo->SizeInBytes != 0) && ((pAllocInfo->SizeInBytes % (64UL * 1024)) == 0)); }
public int AllocateMemory1([NativeTypeName("const ALLOCATION_DESC*")] D3D12MA_ALLOCATION_DESC *pAllocDesc, [NativeTypeName("const D3D12_RESOURCE_ALLOCATION_INFO*")] D3D12_RESOURCE_ALLOCATION_INFO *pAllocInfo, ID3D12ProtectedResourceSession *pProtectedSession, D3D12MA_Allocation **ppAllocation) { if (!ValidateAllocateMemoryParameters(pAllocDesc, pAllocInfo, ppAllocation)) { D3D12MA_ASSERT(false); // "Invalid arguments passed to Allocator::AllocateMemory1." return(E_INVALIDARG); } using var debugGlobalMutexLock = D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK(); return(m_Pimpl->AllocateMemory1(pAllocDesc, pAllocInfo, pProtectedSession, ppAllocation)); }