예제 #1
0
        public D3D12MA_MemoryBlock(D3D12MA_Allocator *allocator, [NativeTypeName("const D3D12_HEAP_PROPERTIES&")] D3D12_HEAP_PROPERTIES *heapProps, D3D12_HEAP_FLAGS heapFlags, [NativeTypeName("UINT64")] ulong size, [NativeTypeName("UINT")] uint id)
        {
            lpVtbl = Vtbl;

            m_Allocator = allocator;
            m_HeapProps = *heapProps;
            m_HeapFlags = heapFlags;
            m_Size      = size;
            m_Id        = id;
            m_Heap      = null;
        }
예제 #2
0
        public D3D12MA_MemoryBlock(D3D12MA_AllocatorPimpl *allocator, D3D12_HEAP_TYPE heapType, D3D12_HEAP_FLAGS heapFlags, [NativeTypeName("UINT64")] ulong size, [NativeTypeName("UINT")] uint id)
        {
            lpVtbl = Vtbl;

            m_Allocator = allocator;
            m_HeapType  = heapType;
            m_HeapFlags = heapFlags;
            m_Size      = size;
            m_Id        = id;
            m_Heap      = null;
        }
예제 #3
0
    public static ID3D12Heap *GetLatestD3D12Heap(ID3D12Heap *d3d12Heap, out uint d3d12HeapVersion)
    {
        ID3D12Heap *result;

        if (d3d12Heap->QueryInterface(__uuidof <ID3D12Heap1>(), (void **)&result).SUCCEEDED)
        {
            d3d12HeapVersion = 1;
            _ = d3d12Heap->Release();
        }
        else
        {
            d3d12HeapVersion = 0;
            result           = d3d12Heap;
        }

        return(result);
    }
예제 #4
0
 public void UpdateTileMappings([NativeTypeName("ID3D12Resource *")] ID3D12Resource *pResource, [NativeTypeName("UINT")] uint NumResourceRegions, [NativeTypeName("const D3D12_TILED_RESOURCE_COORDINATE *")] D3D12_TILED_RESOURCE_COORDINATE *pResourceRegionStartCoordinates, [NativeTypeName("const D3D12_TILE_REGION_SIZE *")] D3D12_TILE_REGION_SIZE *pResourceRegionSizes, [NativeTypeName("ID3D12Heap *")] ID3D12Heap *pHeap, [NativeTypeName("UINT")] uint NumRanges, [NativeTypeName("const D3D12_TILE_RANGE_FLAGS *")] D3D12_TILE_RANGE_FLAGS *pRangeFlags, [NativeTypeName("const UINT *")] uint *pHeapRangeStartOffsets, [NativeTypeName("const UINT *")] uint *pRangeTileCounts, D3D12_TILE_MAPPING_FLAGS Flags)
 {
     ((delegate * unmanaged <ID3D12CommandQueue *, ID3D12Resource *, uint, D3D12_TILED_RESOURCE_COORDINATE *, D3D12_TILE_REGION_SIZE *, ID3D12Heap *, uint, D3D12_TILE_RANGE_FLAGS *, uint *, uint *, D3D12_TILE_MAPPING_FLAGS, void>)(lpVtbl[8]))((ID3D12CommandQueue *)Unsafe.AsPointer(ref this), pResource, NumResourceRegions, pResourceRegionStartCoordinates, pResourceRegionSizes, pHeap, NumRanges, pRangeFlags, pHeapRangeStartOffsets, pRangeTileCounts, Flags);
 }
예제 #5
0
 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));
 }