public int CreateResource([NativeTypeName("const ALLOCATION_DESC*")] D3D12MA_ALLOCATION_DESC *pAllocDesc, [NativeTypeName("const D3D12_RESOURCE_DESC*")] D3D12_RESOURCE_DESC *pResourceDesc, D3D12_RESOURCE_STATES InitialResourceState, [NativeTypeName("const D3D12_CLEAR_VALUE*")] D3D12_CLEAR_VALUE *pOptimizedClearValue, D3D12MA_Allocation **ppAllocation, [NativeTypeName("REFIID")] Guid *riidResource, void **ppvResource) { if ((pAllocDesc == null) || (pResourceDesc == null) || (ppAllocation == null)) { D3D12MA_ASSERT(false); // "Invalid arguments passed to Allocator::CreateResource." return(E_INVALIDARG); } using var debugGlobalMutexLock = D3D12MA_DEBUG_GLOBAL_MUTEX_LOCK(); return(m_Pimpl->CreateResource(pAllocDesc, pResourceDesc, InitialResourceState, pOptimizedClearValue, ppAllocation, riidResource, ppvResource)); }
public int CreatePlacedResource([NativeTypeName("ID3D12Heap *")] ID3D12Heap *pHeap, [NativeTypeName("UINT64")] ulong HeapOffset, [NativeTypeName("const D3D12_RESOURCE_DESC *")] D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, [NativeTypeName("const D3D12_CLEAR_VALUE *")] D3D12_CLEAR_VALUE *pOptimizedClearValue, [NativeTypeName("const IID &")] Guid *riid, [NativeTypeName("void **")] void **ppvResource) { return(((delegate * unmanaged <ID3D12Device *, ID3D12Heap *, ulong, D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, D3D12_CLEAR_VALUE *, Guid *, void **, int>)(lpVtbl[29]))((ID3D12Device *)Unsafe.AsPointer(ref this), pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource)); }
public int CreateReservedResource([NativeTypeName("const D3D12_RESOURCE_DESC *")] D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, [NativeTypeName("const D3D12_CLEAR_VALUE *")] D3D12_CLEAR_VALUE *pOptimizedClearValue, [NativeTypeName("const IID &")] Guid *riid, [NativeTypeName("void **")] void **ppvResource) { return(((delegate * unmanaged <ID3D12Device *, D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, D3D12_CLEAR_VALUE *, Guid *, void **, int>)(lpVtbl[30]))((ID3D12Device *)Unsafe.AsPointer(ref this), pDesc, InitialState, pOptimizedClearValue, riid, ppvResource)); }
public int CreateCommittedResource([NativeTypeName("const D3D12_HEAP_PROPERTIES *")] D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, [NativeTypeName("const D3D12_RESOURCE_DESC *")] D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialResourceState, [NativeTypeName("const D3D12_CLEAR_VALUE *")] D3D12_CLEAR_VALUE *pOptimizedClearValue, [NativeTypeName("const IID &")] Guid *riidResource, [NativeTypeName("void **")] void **ppvResource) { return(((delegate * unmanaged <ID3D12Device *, D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, D3D12_CLEAR_VALUE *, Guid *, void **, int>)(lpVtbl[27]))((ID3D12Device *)Unsafe.AsPointer(ref this), pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource)); }
public int CreateCommittedResource2([NativeTypeName("const D3D12_HEAP_PROPERTIES *")] D3D12_HEAP_PROPERTIES *pHeapProperties, D3D12_HEAP_FLAGS HeapFlags, [NativeTypeName("const D3D12_RESOURCE_DESC1 *")] D3D12_RESOURCE_DESC1 *pDesc, D3D12_RESOURCE_STATES InitialResourceState, [NativeTypeName("const D3D12_CLEAR_VALUE *")] D3D12_CLEAR_VALUE *pOptimizedClearValue, [NativeTypeName("ID3D12ProtectedResourceSession *")] ID3D12ProtectedResourceSession *pProtectedSession, [NativeTypeName("const IID &")] Guid *riidResource, [NativeTypeName("void **")] void **ppvResource) { return(((delegate * stdcall <ID3D12Device8 *, D3D12_HEAP_PROPERTIES *, D3D12_HEAP_FLAGS, D3D12_RESOURCE_DESC1 *, D3D12_RESOURCE_STATES, D3D12_CLEAR_VALUE *, ID3D12ProtectedResourceSession *, Guid *, void **, int>)(lpVtbl[69]))((ID3D12Device8 *)Unsafe.AsPointer(ref this), pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, pProtectedSession, riidResource, ppvResource)); }
public int CreateReservedResource1([NativeTypeName("const D3D12_RESOURCE_DESC *")] D3D12_RESOURCE_DESC *pDesc, D3D12_RESOURCE_STATES InitialState, [NativeTypeName("const D3D12_CLEAR_VALUE *")] D3D12_CLEAR_VALUE *pOptimizedClearValue, [NativeTypeName("ID3D12ProtectedResourceSession *")] ID3D12ProtectedResourceSession *pProtectedSession, [NativeTypeName("const IID &")] Guid *riid, [NativeTypeName("void **")] void **ppvResource) { return(((delegate * stdcall <ID3D12Device8 *, D3D12_RESOURCE_DESC *, D3D12_RESOURCE_STATES, D3D12_CLEAR_VALUE *, ID3D12ProtectedResourceSession *, Guid *, void **, int>)(lpVtbl[55]))((ID3D12Device8 *)Unsafe.AsPointer(ref this), pDesc, InitialState, pOptimizedClearValue, pProtectedSession, riid, ppvResource)); }
public int CreateResource2([NativeTypeName("UINT64")] ulong size, [NativeTypeName("UINT64")] ulong alignment, [NativeTypeName("const D3D12MA_ALLOCATION_DESC&")] D3D12MA_ALLOCATION_DESC *allocDesc, [NativeTypeName("const D3D12_RESOURCE_DESC1&")] D3D12_RESOURCE_DESC1 *resourceDesc, D3D12_RESOURCE_STATES InitialResourceState, [NativeTypeName("const D3D12_CLEAR_VALUE&")] D3D12_CLEAR_VALUE *pOptimizedClearValue, ID3D12ProtectedResourceSession *pProtectedSession, D3D12MA_Allocation **ppAllocation, [NativeTypeName("REFIID")] Guid *riidResource, void **ppvResource) { D3D12MA_ASSERT((D3D12MA_DEBUG_LEVEL > 0) && (pProtectedSession == null)); // "Should never get here. pProtectedSession != NULL currently requires committed resources." ID3D12Device8 *device8 = m_hAllocator->GetDevice8(); if (device8 == null) { return(E_NOINTERFACE); } HRESULT hr = Allocate(size, alignment, allocDesc, 1, ppAllocation); if (SUCCEEDED(hr)) { ID3D12Resource *res = null; hr = device8->CreatePlacedResource1( (*ppAllocation)->m_Placed.block->GetHeap(), (*ppAllocation)->GetOffset(), resourceDesc, InitialResourceState, pOptimizedClearValue, __uuidof <ID3D12Resource>(), (void **)&res ); if (SUCCEEDED(hr)) { if (ppvResource != null) { hr = res->QueryInterface(riidResource, ppvResource); } if (SUCCEEDED(hr)) { (*ppAllocation)->SetResource(res, resourceDesc); } else { res->Release(); SAFE_RELEASE(ref *ppAllocation); } } else { SAFE_RELEASE(ref *ppAllocation); } } return(hr); }
public int CreateResource([NativeTypeName("UINT64")] ulong size, [NativeTypeName("UINT64")] ulong alignment, [NativeTypeName("const D3D12MA_ALLOCATION_DESC&")] D3D12MA_ALLOCATION_DESC *allocDesc, [NativeTypeName("const D3D12_RESOURCE_DESC&")] D3D12_RESOURCE_DESC *resourceDesc, D3D12_RESOURCE_STATES InitialResourceState, [NativeTypeName("const D3D12_CLEAR_VALUE&")] D3D12_CLEAR_VALUE *pOptimizedClearValue, D3D12MA_Allocation **ppAllocation, [NativeTypeName("REFIID")] Guid *riidResource, void **ppvResource) { HRESULT hr = Allocate(size, alignment, allocDesc, 1, ppAllocation); if (SUCCEEDED(hr)) { ID3D12Resource *res = null; hr = m_hAllocator->GetDevice()->CreatePlacedResource( (*ppAllocation)->m_Placed.block->GetHeap(), (*ppAllocation)->GetOffset(), resourceDesc, InitialResourceState, pOptimizedClearValue, __uuidof <ID3D12Resource>(), (void **)&res ); if (SUCCEEDED(hr)) { if (ppvResource != null) { hr = res->QueryInterface(riidResource, ppvResource); } if (SUCCEEDED(hr)) { (*ppAllocation)->SetResource(res, resourceDesc); } else { res->Release(); SAFE_RELEASE(ref *ppAllocation); } } else { SAFE_RELEASE(ref *ppAllocation); } } return(hr); }