Trait windows::Win32::Graphics::Direct3D12::ID3D12Device_Impl

pub trait ID3D12Device_Impl: Sized + ID3D12Object_Impl {
Show 37 methods // Required methods fn GetNodeCount(&self) -> u32; fn CreateCommandQueue( &self, pdesc: *const D3D12_COMMAND_QUEUE_DESC, riid: *const GUID, ppcommandqueue: *mut *mut c_void, ) -> Result<()>; fn CreateCommandAllocator( &self, type: D3D12_COMMAND_LIST_TYPE, riid: *const GUID, ppcommandallocator: *mut *mut c_void, ) -> Result<()>; fn CreateGraphicsPipelineState( &self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC, riid: *const GUID, pppipelinestate: *mut *mut c_void, ) -> Result<()>; fn CreateComputePipelineState( &self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC, riid: *const GUID, pppipelinestate: *mut *mut c_void, ) -> Result<()>; fn CreateCommandList( &self, nodemask: u32, type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: Option<&ID3D12CommandAllocator>, pinitialstate: Option<&ID3D12PipelineState>, riid: *const GUID, ppcommandlist: *mut *mut c_void, ) -> Result<()>; fn CheckFeatureSupport( &self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut c_void, featuresupportdatasize: u32, ) -> Result<()>; fn CreateDescriptorHeap( &self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC, riid: *const GUID, ppvheap: *mut *mut c_void, ) -> Result<()>; fn GetDescriptorHandleIncrementSize( &self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE, ) -> u32; fn CreateRootSignature( &self, nodemask: u32, pblobwithrootsignature: *const c_void, bloblengthinbytes: usize, riid: *const GUID, ppvrootsignature: *mut *mut c_void, ) -> Result<()>; fn CreateConstantBufferView( &self, pdesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, ); fn CreateShaderResourceView( &self, presource: Option<&ID3D12Resource>, pdesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, ); fn CreateUnorderedAccessView( &self, presource: Option<&ID3D12Resource>, pcounterresource: Option<&ID3D12Resource>, pdesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, ); fn CreateRenderTargetView( &self, presource: Option<&ID3D12Resource>, pdesc: *const D3D12_RENDER_TARGET_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, ); fn CreateDepthStencilView( &self, presource: Option<&ID3D12Resource>, pdesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, ); fn CreateSampler( &self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, ); fn CopyDescriptors( &self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE, ); fn CopyDescriptorsSimple( &self, numdescriptors: u32, destdescriptorrangestart: &D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: &D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE, ); fn GetResourceAllocationInfo( &self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, ) -> D3D12_RESOURCE_ALLOCATION_INFO; fn GetCustomHeapProperties( &self, nodemask: u32, heaptype: D3D12_HEAP_TYPE, ) -> D3D12_HEAP_PROPERTIES; fn CreateCommittedResource( &self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riidresource: *const GUID, ppvresource: *mut *mut c_void, ) -> Result<()>; fn CreateHeap( &self, pdesc: *const D3D12_HEAP_DESC, riid: *const GUID, ppvheap: *mut *mut c_void, ) -> Result<()>; fn CreatePlacedResource( &self, pheap: Option<&ID3D12Heap>, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riid: *const GUID, ppvresource: *mut *mut c_void, ) -> Result<()>; fn CreateReservedResource( &self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riid: *const GUID, ppvresource: *mut *mut c_void, ) -> Result<()>; fn CreateSharedHandle( &self, pobject: Option<&ID3D12DeviceChild>, pattributes: *const SECURITY_ATTRIBUTES, access: u32, name: &PCWSTR, ) -> Result<HANDLE>; fn OpenSharedHandle( &self, nthandle: HANDLE, riid: *const GUID, ppvobj: *mut *mut c_void, ) -> Result<()>; fn OpenSharedHandleByName( &self, name: &PCWSTR, access: u32, ) -> Result<HANDLE>; fn MakeResident( &self, numobjects: u32, ppobjects: *const Option<ID3D12Pageable>, ) -> Result<()>; fn Evict( &self, numobjects: u32, ppobjects: *const Option<ID3D12Pageable>, ) -> Result<()>; fn CreateFence( &self, initialvalue: u64, flags: D3D12_FENCE_FLAGS, riid: *const GUID, ppfence: *mut *mut c_void, ) -> Result<()>; fn GetDeviceRemovedReason(&self) -> Result<()>; fn GetCopyableFootprints( &self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: *mut u64, ); fn CreateQueryHeap( &self, pdesc: *const D3D12_QUERY_HEAP_DESC, riid: *const GUID, ppvheap: *mut *mut c_void, ) -> Result<()>; fn SetStablePowerState(&self, enable: BOOL) -> Result<()>; fn CreateCommandSignature( &self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: Option<&ID3D12RootSignature>, riid: *const GUID, ppvcommandsignature: *mut *mut c_void, ) -> Result<()>; fn GetResourceTiling( &self, ptiledresource: Option<&ID3D12Resource>, pnumtilesforentireresource: *mut u32, ppackedmipdesc: *mut D3D12_PACKED_MIP_INFO, pstandardtileshapefornonpackedmips: *mut D3D12_TILE_SHAPE, pnumsubresourcetilings: *mut u32, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING, ); fn GetAdapterLuid(&self) -> LUID;
}

Required Methods§

fn GetNodeCount(&self) -> u32

fn CreateCommandQueue( &self, pdesc: *const D3D12_COMMAND_QUEUE_DESC, riid: *const GUID, ppcommandqueue: *mut *mut c_void, ) -> Result<()>

fn CreateCommandAllocator( &self, type: D3D12_COMMAND_LIST_TYPE, riid: *const GUID, ppcommandallocator: *mut *mut c_void, ) -> Result<()>

fn CreateGraphicsPipelineState( &self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC, riid: *const GUID, pppipelinestate: *mut *mut c_void, ) -> Result<()>

fn CreateComputePipelineState( &self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC, riid: *const GUID, pppipelinestate: *mut *mut c_void, ) -> Result<()>

fn CreateCommandList( &self, nodemask: u32, type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: Option<&ID3D12CommandAllocator>, pinitialstate: Option<&ID3D12PipelineState>, riid: *const GUID, ppcommandlist: *mut *mut c_void, ) -> Result<()>

fn CheckFeatureSupport( &self, feature: D3D12_FEATURE, pfeaturesupportdata: *mut c_void, featuresupportdatasize: u32, ) -> Result<()>

fn CreateDescriptorHeap( &self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC, riid: *const GUID, ppvheap: *mut *mut c_void, ) -> Result<()>

fn GetDescriptorHandleIncrementSize( &self, descriptorheaptype: D3D12_DESCRIPTOR_HEAP_TYPE, ) -> u32

fn CreateRootSignature( &self, nodemask: u32, pblobwithrootsignature: *const c_void, bloblengthinbytes: usize, riid: *const GUID, ppvrootsignature: *mut *mut c_void, ) -> Result<()>

fn CreateConstantBufferView( &self, pdesc: *const D3D12_CONSTANT_BUFFER_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, )

fn CreateShaderResourceView( &self, presource: Option<&ID3D12Resource>, pdesc: *const D3D12_SHADER_RESOURCE_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, )

fn CreateUnorderedAccessView( &self, presource: Option<&ID3D12Resource>, pcounterresource: Option<&ID3D12Resource>, pdesc: *const D3D12_UNORDERED_ACCESS_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, )

fn CreateRenderTargetView( &self, presource: Option<&ID3D12Resource>, pdesc: *const D3D12_RENDER_TARGET_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, )

fn CreateDepthStencilView( &self, presource: Option<&ID3D12Resource>, pdesc: *const D3D12_DEPTH_STENCIL_VIEW_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, )

fn CreateSampler( &self, pdesc: *const D3D12_SAMPLER_DESC, destdescriptor: &D3D12_CPU_DESCRIPTOR_HANDLE, )

fn CopyDescriptors( &self, numdestdescriptorranges: u32, pdestdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, pdestdescriptorrangesizes: *const u32, numsrcdescriptorranges: u32, psrcdescriptorrangestarts: *const D3D12_CPU_DESCRIPTOR_HANDLE, psrcdescriptorrangesizes: *const u32, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE, )

fn CopyDescriptorsSimple( &self, numdescriptors: u32, destdescriptorrangestart: &D3D12_CPU_DESCRIPTOR_HANDLE, srcdescriptorrangestart: &D3D12_CPU_DESCRIPTOR_HANDLE, descriptorheapstype: D3D12_DESCRIPTOR_HEAP_TYPE, )

fn GetResourceAllocationInfo( &self, visiblemask: u32, numresourcedescs: u32, presourcedescs: *const D3D12_RESOURCE_DESC, ) -> D3D12_RESOURCE_ALLOCATION_INFO

fn GetCustomHeapProperties( &self, nodemask: u32, heaptype: D3D12_HEAP_TYPE, ) -> D3D12_HEAP_PROPERTIES

fn CreateCommittedResource( &self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riidresource: *const GUID, ppvresource: *mut *mut c_void, ) -> Result<()>

fn CreateHeap( &self, pdesc: *const D3D12_HEAP_DESC, riid: *const GUID, ppvheap: *mut *mut c_void, ) -> Result<()>

fn CreatePlacedResource( &self, pheap: Option<&ID3D12Heap>, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riid: *const GUID, ppvresource: *mut *mut c_void, ) -> Result<()>

fn CreateReservedResource( &self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: *const D3D12_CLEAR_VALUE, riid: *const GUID, ppvresource: *mut *mut c_void, ) -> Result<()>

fn CreateSharedHandle( &self, pobject: Option<&ID3D12DeviceChild>, pattributes: *const SECURITY_ATTRIBUTES, access: u32, name: &PCWSTR, ) -> Result<HANDLE>

fn OpenSharedHandle( &self, nthandle: HANDLE, riid: *const GUID, ppvobj: *mut *mut c_void, ) -> Result<()>

fn OpenSharedHandleByName(&self, name: &PCWSTR, access: u32) -> Result<HANDLE>

fn MakeResident( &self, numobjects: u32, ppobjects: *const Option<ID3D12Pageable>, ) -> Result<()>

fn Evict( &self, numobjects: u32, ppobjects: *const Option<ID3D12Pageable>, ) -> Result<()>

fn CreateFence( &self, initialvalue: u64, flags: D3D12_FENCE_FLAGS, riid: *const GUID, ppfence: *mut *mut c_void, ) -> Result<()>

fn GetDeviceRemovedReason(&self) -> Result<()>

fn GetCopyableFootprints( &self, presourcedesc: *const D3D12_RESOURCE_DESC, firstsubresource: u32, numsubresources: u32, baseoffset: u64, playouts: *mut D3D12_PLACED_SUBRESOURCE_FOOTPRINT, pnumrows: *mut u32, prowsizeinbytes: *mut u64, ptotalbytes: *mut u64, )

fn CreateQueryHeap( &self, pdesc: *const D3D12_QUERY_HEAP_DESC, riid: *const GUID, ppvheap: *mut *mut c_void, ) -> Result<()>

fn SetStablePowerState(&self, enable: BOOL) -> Result<()>

fn CreateCommandSignature( &self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: Option<&ID3D12RootSignature>, riid: *const GUID, ppvcommandsignature: *mut *mut c_void, ) -> Result<()>

fn GetResourceTiling( &self, ptiledresource: Option<&ID3D12Resource>, pnumtilesforentireresource: *mut u32, ppackedmipdesc: *mut D3D12_PACKED_MIP_INFO, pstandardtileshapefornonpackedmips: *mut D3D12_TILE_SHAPE, pnumsubresourcetilings: *mut u32, firstsubresourcetilingtoget: u32, psubresourcetilingsfornonpackedmips: *mut D3D12_SUBRESOURCE_TILING, )

fn GetAdapterLuid(&self) -> LUID

Object Safety§

This trait is not object safe.

Implementors§