// ------------------------------------------------------------------------------
//
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
// ------------------------------------------------------------------------------
namespace Win32.Graphics.Direct3D12;
///
/// ID3D12Device
[Guid("189819f1-1db6-4b57-be54-1821339b85f7")]
[NativeTypeName("struct ID3D12Device : ID3D12Object")]
[NativeInheritance("ID3D12Object")]
public unsafe partial struct ID3D12Device
{
public static ref readonly Guid IID_ID3D12Device
{
[MethodImpl(MethodImplOptions.AggressiveInlining)]
get
{
ReadOnlySpan data = new byte[] {
0xF1, 0x19, 0x98, 0x18,
0xB6, 0x1D,
0x57, 0x4B,
0xBE,
0x54,
0x18,
0x21,
0x33,
0x9B,
0x85,
0xF7
};
Debug.Assert(data.Length == Unsafe.SizeOf());
return ref Unsafe.As(ref MemoryMarshal.GetReference(data));
}
}
public static Guid* NativeGuid => (Guid*)Unsafe.AsPointer(ref Unsafe.AsRef(in IID_ID3D12Device));
public void** lpVtbl;
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(0)]
public HResult QueryInterface([NativeTypeName("const IID &")] Guid* riid, void** ppvObject)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[0]))((IUnknown*)Unsafe.AsPointer(ref this), riid, ppvObject);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(1)]
[return: NativeTypeName("ULONG")]
public uint AddRef()
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[1]))((IUnknown*)Unsafe.AsPointer(ref this));
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(2)]
[return: NativeTypeName("ULONG")]
public uint Release()
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[2]))((IUnknown*)Unsafe.AsPointer(ref this));
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(3)]
public HResult GetPrivateData(Guid* guid, uint* pDataSize, void* pData)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[3]))((ID3D12Device*)Unsafe.AsPointer(ref this), guid, pDataSize, pData);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(4)]
public HResult SetPrivateData(Guid* guid, uint DataSize, void* pData)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[4]))((ID3D12Device*)Unsafe.AsPointer(ref this), guid, DataSize, pData);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(5)]
public HResult SetPrivateDataInterface(Guid* guid, IUnknown* pData)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[5]))((ID3D12Device*)Unsafe.AsPointer(ref this), guid, pData);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(6)]
public HResult SetName(ushort* Name)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[6]))((ID3D12Device*)Unsafe.AsPointer(ref this), Name);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(7)]
public uint GetNodeCount()
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[7]))((ID3D12Device*)Unsafe.AsPointer(ref this));
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(8)]
public HResult CreateCommandQueue(CommandQueueDescription* pDesc, Guid* riid, void** ppCommandQueue)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[8]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, riid, ppCommandQueue);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(9)]
public HResult CreateCommandAllocator(CommandListType type, Guid* riid, void** ppCommandAllocator)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[9]))((ID3D12Device*)Unsafe.AsPointer(ref this), type, riid, ppCommandAllocator);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(10)]
public HResult CreateGraphicsPipelineState(GraphicsPipelineStateDescription* pDesc, Guid* riid, void** ppPipelineState)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[10]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, riid, ppPipelineState);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(11)]
public HResult CreateComputePipelineState(ComputePipelineStateDescription* pDesc, Guid* riid, void** ppPipelineState)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[11]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, riid, ppPipelineState);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(12)]
public HResult CreateCommandList(uint nodeMask, CommandListType type, ID3D12CommandAllocator* pCommandAllocator, ID3D12PipelineState* pInitialState, Guid* riid, void** ppCommandList)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[12]))((ID3D12Device*)Unsafe.AsPointer(ref this), nodeMask, type, pCommandAllocator, pInitialState, riid, ppCommandList);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(13)]
public HResult CheckFeatureSupport(Feature Feature, void* pFeatureSupportData, uint FeatureSupportDataSize)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[13]))((ID3D12Device*)Unsafe.AsPointer(ref this), Feature, pFeatureSupportData, FeatureSupportDataSize);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(14)]
public HResult CreateDescriptorHeap(DescriptorHeapDescription* pDescriptorHeapDesc, Guid* riid, void** ppvHeap)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[14]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDescriptorHeapDesc, riid, ppvHeap);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(15)]
public uint GetDescriptorHandleIncrementSize(DescriptorHeapType DescriptorHeapType)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[15]))((ID3D12Device*)Unsafe.AsPointer(ref this), DescriptorHeapType);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(16)]
public HResult CreateRootSignature(uint nodeMask, void* pBlobWithRootSignature, nuint blobLengthInBytes, Guid* riid, void** ppvRootSignature)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[16]))((ID3D12Device*)Unsafe.AsPointer(ref this), nodeMask, pBlobWithRootSignature, blobLengthInBytes, riid, ppvRootSignature);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(17)]
public void CreateConstantBufferView(ConstantBufferViewDescription* pDesc, CpuDescriptorHandle* DestDescriptor)
{
((delegate* unmanaged[Stdcall])(lpVtbl[17]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, DestDescriptor);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(18)]
public void CreateShaderResourceView(ID3D12Resource* pResource, ShaderResourceViewDescription* pDesc, CpuDescriptorHandle* DestDescriptor)
{
((delegate* unmanaged[Stdcall])(lpVtbl[18]))((ID3D12Device*)Unsafe.AsPointer(ref this), pResource, pDesc, DestDescriptor);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(19)]
public void CreateUnorderedAccessView(ID3D12Resource* pResource, ID3D12Resource* pCounterResource, UnorderedAccessViewDescription* pDesc, CpuDescriptorHandle* DestDescriptor)
{
((delegate* unmanaged[Stdcall])(lpVtbl[19]))((ID3D12Device*)Unsafe.AsPointer(ref this), pResource, pCounterResource, pDesc, DestDescriptor);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(20)]
public void CreateRenderTargetView(ID3D12Resource* pResource, RenderTargetViewDescription* pDesc, CpuDescriptorHandle* DestDescriptor)
{
((delegate* unmanaged[Stdcall])(lpVtbl[20]))((ID3D12Device*)Unsafe.AsPointer(ref this), pResource, pDesc, DestDescriptor);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(21)]
public void CreateDepthStencilView(ID3D12Resource* pResource, DepthStencilViewDescription* pDesc, CpuDescriptorHandle* DestDescriptor)
{
((delegate* unmanaged[Stdcall])(lpVtbl[21]))((ID3D12Device*)Unsafe.AsPointer(ref this), pResource, pDesc, DestDescriptor);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(22)]
public void CreateSampler(SamplerDescription* pDesc, CpuDescriptorHandle* DestDescriptor)
{
((delegate* unmanaged[Stdcall])(lpVtbl[22]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, DestDescriptor);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(23)]
public void CopyDescriptors(uint NumDestDescriptorRanges, CpuDescriptorHandle* pDestDescriptorRangeStarts, uint* pDestDescriptorRangeSizes, uint NumSrcDescriptorRanges, CpuDescriptorHandle* pSrcDescriptorRangeStarts, uint* pSrcDescriptorRangeSizes, DescriptorHeapType DescriptorHeapsType)
{
((delegate* unmanaged[Stdcall])(lpVtbl[23]))((ID3D12Device*)Unsafe.AsPointer(ref this), NumDestDescriptorRanges, pDestDescriptorRangeStarts, pDestDescriptorRangeSizes, NumSrcDescriptorRanges, pSrcDescriptorRangeStarts, pSrcDescriptorRangeSizes, DescriptorHeapsType);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(24)]
public void CopyDescriptorsSimple(uint NumDescriptors, CpuDescriptorHandle* DestDescriptorRangeStart, CpuDescriptorHandle* SrcDescriptorRangeStart, DescriptorHeapType DescriptorHeapsType)
{
((delegate* unmanaged[Stdcall])(lpVtbl[24]))((ID3D12Device*)Unsafe.AsPointer(ref this), NumDescriptors, DestDescriptorRangeStart, SrcDescriptorRangeStart, DescriptorHeapsType);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(25)]
public ResourceAllocationInfo GetResourceAllocationInfo(uint visibleMask, uint numResourceDescs, ResourceDescription* pResourceDescs)
{
ResourceAllocationInfo result;
return *((delegate* unmanaged[Stdcall])(lpVtbl[25]))((ID3D12Device*)Unsafe.AsPointer(ref this), &result, visibleMask, numResourceDescs, pResourceDescs);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(26)]
public HeapProperties GetCustomHeapProperties(uint nodeMask, HeapType heapType)
{
HeapProperties result;
return *((delegate* unmanaged[Stdcall])(lpVtbl[26]))((ID3D12Device*)Unsafe.AsPointer(ref this), &result, nodeMask, heapType);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(27)]
public HResult CreateCommittedResource(HeapProperties* pHeapProperties, HeapFlags HeapFlags, ResourceDescription* pDesc, ResourceStates InitialResourceState, ClearValue* pOptimizedClearValue, Guid* riidResource, void** ppvResource)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[27]))((ID3D12Device*)Unsafe.AsPointer(ref this), pHeapProperties, HeapFlags, pDesc, InitialResourceState, pOptimizedClearValue, riidResource, ppvResource);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(28)]
public HResult CreateHeap(HeapDescription* pDesc, Guid* riid, void** ppvHeap)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[28]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, riid, ppvHeap);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(29)]
public HResult CreatePlacedResource(ID3D12Heap* pHeap, ulong HeapOffset, ResourceDescription* pDesc, ResourceStates InitialState, ClearValue* pOptimizedClearValue, Guid* riid, void** ppvResource)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[29]))((ID3D12Device*)Unsafe.AsPointer(ref this), pHeap, HeapOffset, pDesc, InitialState, pOptimizedClearValue, riid, ppvResource);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(30)]
public HResult CreateReservedResource(ResourceDescription* pDesc, ResourceStates InitialState, ClearValue* pOptimizedClearValue, Guid* riid, void** ppvResource)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[30]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, InitialState, pOptimizedClearValue, riid, ppvResource);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(31)]
public HResult CreateSharedHandle(ID3D12DeviceChild* pObject, Security.SECURITY_ATTRIBUTES* pAttributes, uint Access, ushort* Name, Handle* pHandle)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[31]))((ID3D12Device*)Unsafe.AsPointer(ref this), pObject, pAttributes, Access, Name, pHandle);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(32)]
public HResult OpenSharedHandle(Handle NTHandle, Guid* riid, void** ppvObj)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[32]))((ID3D12Device*)Unsafe.AsPointer(ref this), NTHandle, riid, ppvObj);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(33)]
public HResult OpenSharedHandleByName(ushort* Name, uint Access, Handle* pNTHandle)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[33]))((ID3D12Device*)Unsafe.AsPointer(ref this), Name, Access, pNTHandle);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(34)]
public HResult MakeResident(uint NumObjects, ID3D12Pageable** ppObjects)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[34]))((ID3D12Device*)Unsafe.AsPointer(ref this), NumObjects, ppObjects);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(35)]
public HResult Evict(uint NumObjects, ID3D12Pageable** ppObjects)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[35]))((ID3D12Device*)Unsafe.AsPointer(ref this), NumObjects, ppObjects);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(36)]
public HResult CreateFence(ulong InitialValue, FenceFlags Flags, Guid* riid, void** ppFence)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[36]))((ID3D12Device*)Unsafe.AsPointer(ref this), InitialValue, Flags, riid, ppFence);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(37)]
public HResult GetDeviceRemovedReason()
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[37]))((ID3D12Device*)Unsafe.AsPointer(ref this));
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(38)]
public void GetCopyableFootprints(ResourceDescription* pResourceDesc, uint FirstSubresource, uint NumSubresources, ulong BaseOffset, PlacedSubresourceFootprint* pLayouts, uint* pNumRows, ulong* pRowSizeInBytes, ulong* pTotalBytes)
{
((delegate* unmanaged[Stdcall])(lpVtbl[38]))((ID3D12Device*)Unsafe.AsPointer(ref this), pResourceDesc, FirstSubresource, NumSubresources, BaseOffset, pLayouts, pNumRows, pRowSizeInBytes, pTotalBytes);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(39)]
public HResult CreateQueryHeap(QueryHeapDescription* pDesc, Guid* riid, void** ppvHeap)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[39]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, riid, ppvHeap);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(40)]
public HResult SetStablePowerState(Bool32 Enable)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[40]))((ID3D12Device*)Unsafe.AsPointer(ref this), Enable);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(41)]
public HResult CreateCommandSignature(CommandSignatureDescription* pDesc, ID3D12RootSignature* pRootSignature, Guid* riid, void** ppvCommandSignature)
{
return ((delegate* unmanaged[Stdcall])(lpVtbl[41]))((ID3D12Device*)Unsafe.AsPointer(ref this), pDesc, pRootSignature, riid, ppvCommandSignature);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(42)]
public void GetResourceTiling(ID3D12Resource* pTiledResource, uint* pNumTilesForEntireResource, PackedMipInfo* pPackedMipDesc, TileShape* pStandardTileShapeForNonPackedMips, uint* pNumSubresourceTilings, uint FirstSubresourceTilingToGet, SubresourceTiling* pSubresourceTilingsForNonPackedMips)
{
((delegate* unmanaged[Stdcall])(lpVtbl[42]))((ID3D12Device*)Unsafe.AsPointer(ref this), pTiledResource, pNumTilesForEntireResource, pPackedMipDesc, pStandardTileShapeForNonPackedMips, pNumSubresourceTilings, FirstSubresourceTilingToGet, pSubresourceTilingsForNonPackedMips);
}
///
[MethodImpl(MethodImplOptions.AggressiveInlining)]
[VtblIndex(43)]
public Luid GetAdapterLuid()
{
Luid result;
return *((delegate* unmanaged[Stdcall])(lpVtbl[43]))((ID3D12Device*)Unsafe.AsPointer(ref this), &result);
}
}