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 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.