Struct windows::Win32::Graphics::Direct3D12::ID3D12Device

pub struct ID3D12Device(/* private fields */);

Implementations§

§

impl ID3D12Device

pub unsafe fn GetNodeCount(&self) -> u32

pub unsafe fn CreateCommandQueue<T>( &self, pdesc: *const D3D12_COMMAND_QUEUE_DESC, ) -> Result<T>
where T: Interface,

pub unsafe fn CreateCommandAllocator<T>( &self, type: D3D12_COMMAND_LIST_TYPE, ) -> Result<T>
where T: Interface,

pub unsafe fn CreateGraphicsPipelineState<T>( &self, pdesc: *const D3D12_GRAPHICS_PIPELINE_STATE_DESC, ) -> Result<T>
where T: Interface,

pub unsafe fn CreateComputePipelineState<T>( &self, pdesc: *const D3D12_COMPUTE_PIPELINE_STATE_DESC, ) -> Result<T>
where T: Interface,

pub unsafe fn CreateCommandList<P0, P1, T>( &self, nodemask: u32, type: D3D12_COMMAND_LIST_TYPE, pcommandallocator: P0, pinitialstate: P1, ) -> Result<T>
where P0: Param<ID3D12CommandAllocator>, P1: Param<ID3D12PipelineState>, T: Interface,

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

pub unsafe fn CreateDescriptorHeap<T>( &self, pdescriptorheapdesc: *const D3D12_DESCRIPTOR_HEAP_DESC, ) -> Result<T>
where T: Interface,

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

pub unsafe fn CreateRootSignature<T>( &self, nodemask: u32, pblobwithrootsignature: &[u8], ) -> Result<T>
where T: Interface,

pub unsafe fn CreateConstantBufferView( &self, pdesc: Option<*const D3D12_CONSTANT_BUFFER_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE, )

pub unsafe fn CreateShaderResourceView<P0>( &self, presource: P0, pdesc: Option<*const D3D12_SHADER_RESOURCE_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE, )
where P0: Param<ID3D12Resource>,

pub unsafe fn CreateUnorderedAccessView<P0, P1>( &self, presource: P0, pcounterresource: P1, pdesc: Option<*const D3D12_UNORDERED_ACCESS_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE, )
where P0: Param<ID3D12Resource>, P1: Param<ID3D12Resource>,

pub unsafe fn CreateRenderTargetView<P0>( &self, presource: P0, pdesc: Option<*const D3D12_RENDER_TARGET_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE, )
where P0: Param<ID3D12Resource>,

pub unsafe fn CreateDepthStencilView<P0>( &self, presource: P0, pdesc: Option<*const D3D12_DEPTH_STENCIL_VIEW_DESC>, destdescriptor: D3D12_CPU_DESCRIPTOR_HANDLE, )
where P0: Param<ID3D12Resource>,

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

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

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

pub unsafe fn GetResourceAllocationInfo( &self, visiblemask: u32, presourcedescs: &[D3D12_RESOURCE_DESC], ) -> D3D12_RESOURCE_ALLOCATION_INFO

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

pub unsafe fn CreateCommittedResource<T>( &self, pheapproperties: *const D3D12_HEAP_PROPERTIES, heapflags: D3D12_HEAP_FLAGS, pdesc: *const D3D12_RESOURCE_DESC, initialresourcestate: D3D12_RESOURCE_STATES, poptimizedclearvalue: Option<*const D3D12_CLEAR_VALUE>, result__: *mut Option<T>, ) -> Result<()>
where T: Interface,

pub unsafe fn CreateHeap<T>( &self, pdesc: *const D3D12_HEAP_DESC, result__: *mut Option<T>, ) -> Result<()>
where T: Interface,

pub unsafe fn CreatePlacedResource<P0, T>( &self, pheap: P0, heapoffset: u64, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: Option<*const D3D12_CLEAR_VALUE>, result__: *mut Option<T>, ) -> Result<()>
where P0: Param<ID3D12Heap>, T: Interface,

pub unsafe fn CreateReservedResource<T>( &self, pdesc: *const D3D12_RESOURCE_DESC, initialstate: D3D12_RESOURCE_STATES, poptimizedclearvalue: Option<*const D3D12_CLEAR_VALUE>, result__: *mut Option<T>, ) -> Result<()>
where T: Interface,

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

pub unsafe fn OpenSharedHandle<P0, T>( &self, nthandle: P0, result__: *mut Option<T>, ) -> Result<()>
where P0: Param<HANDLE>, T: Interface,

pub unsafe fn OpenSharedHandleByName<P0>( &self, name: P0, access: u32, ) -> Result<HANDLE>
where P0: Param<PCWSTR>,

pub unsafe fn MakeResident( &self, ppobjects: &[Option<ID3D12Pageable>], ) -> Result<()>

pub unsafe fn Evict(&self, ppobjects: &[Option<ID3D12Pageable>]) -> Result<()>

pub unsafe fn CreateFence<T>( &self, initialvalue: u64, flags: D3D12_FENCE_FLAGS, ) -> Result<T>
where T: Interface,

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

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

pub unsafe fn CreateQueryHeap<T>( &self, pdesc: *const D3D12_QUERY_HEAP_DESC, result__: *mut Option<T>, ) -> Result<()>
where T: Interface,

pub unsafe fn SetStablePowerState<P0>(&self, enable: P0) -> Result<()>
where P0: Param<BOOL>,

pub unsafe fn CreateCommandSignature<P0, T>( &self, pdesc: *const D3D12_COMMAND_SIGNATURE_DESC, prootsignature: P0, result__: *mut Option<T>, ) -> Result<()>
where P0: Param<ID3D12RootSignature>, T: Interface,

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

pub unsafe fn GetAdapterLuid(&self) -> LUID

Methods from Deref<Target = ID3D12Object>§

pub unsafe fn GetPrivateData( &self, guid: *const GUID, pdatasize: *mut u32, pdata: Option<*mut c_void>, ) -> Result<()>

pub unsafe fn SetPrivateData( &self, guid: *const GUID, datasize: u32, pdata: Option<*const c_void>, ) -> Result<()>

pub unsafe fn SetPrivateDataInterface<P0>( &self, guid: *const GUID, pdata: P0, ) -> Result<()>
where P0: Param<IUnknown>,

pub unsafe fn SetName<P0>(&self, name: P0) -> Result<()>
where P0: Param<PCWSTR>,

Trait Implementations§

§

impl CanInto<ID3D12Device> for ID3D12Device1

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device10

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device11

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device12

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device13

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device14

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device2

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device3

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device4

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device5

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device6

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device7

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device8

§

const QUERY: bool = false

§

impl CanInto<ID3D12Device> for ID3D12Device9

§

const QUERY: bool = false

§

impl CanInto<ID3D12Object> for ID3D12Device

§

const QUERY: bool = false

§

impl CanInto<IUnknown> for ID3D12Device

§

const QUERY: bool = false

§

impl Clone for ID3D12Device

§

fn clone(&self) -> ID3D12Device

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
§

impl Debug for ID3D12Device

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
§

impl Deref for ID3D12Device

§

type Target = ID3D12Object

The resulting type after dereferencing.
§

fn deref(&self) -> &Self::Target

Dereferences the value.
§

impl From<&ID3D12Device> for &ID3D12Object

§

fn from(value: &ID3D12Device) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device> for &IUnknown

§

fn from(value: &ID3D12Device) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device1> for &ID3D12Device

§

fn from(value: &ID3D12Device1) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device10> for &ID3D12Device

§

fn from(value: &ID3D12Device10) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device11> for &ID3D12Device

§

fn from(value: &ID3D12Device11) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device12> for &ID3D12Device

§

fn from(value: &ID3D12Device12) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device13> for &ID3D12Device

§

fn from(value: &ID3D12Device13) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device14> for &ID3D12Device

§

fn from(value: &ID3D12Device14) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device2> for &ID3D12Device

§

fn from(value: &ID3D12Device2) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device3> for &ID3D12Device

§

fn from(value: &ID3D12Device3) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device4> for &ID3D12Device

§

fn from(value: &ID3D12Device4) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device5> for &ID3D12Device

§

fn from(value: &ID3D12Device5) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device6> for &ID3D12Device

§

fn from(value: &ID3D12Device6) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device7> for &ID3D12Device

§

fn from(value: &ID3D12Device7) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device8> for &ID3D12Device

§

fn from(value: &ID3D12Device8) -> Self

Converts to this type from the input type.
§

impl From<&ID3D12Device9> for &ID3D12Device

§

fn from(value: &ID3D12Device9) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device> for ID3D12Object

§

fn from(value: ID3D12Device) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device> for IUnknown

§

fn from(value: ID3D12Device) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device1> for ID3D12Device

§

fn from(value: ID3D12Device1) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device10> for ID3D12Device

§

fn from(value: ID3D12Device10) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device11> for ID3D12Device

§

fn from(value: ID3D12Device11) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device12> for ID3D12Device

§

fn from(value: ID3D12Device12) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device13> for ID3D12Device

§

fn from(value: ID3D12Device13) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device14> for ID3D12Device

§

fn from(value: ID3D12Device14) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device2> for ID3D12Device

§

fn from(value: ID3D12Device2) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device3> for ID3D12Device

§

fn from(value: ID3D12Device3) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device4> for ID3D12Device

§

fn from(value: ID3D12Device4) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device5> for ID3D12Device

§

fn from(value: ID3D12Device5) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device6> for ID3D12Device

§

fn from(value: ID3D12Device6) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device7> for ID3D12Device

§

fn from(value: ID3D12Device7) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device8> for ID3D12Device

§

fn from(value: ID3D12Device8) -> Self

Converts to this type from the input type.
§

impl From<ID3D12Device9> for ID3D12Device

§

fn from(value: ID3D12Device9) -> Self

Converts to this type from the input type.
§

impl Interface for ID3D12Device

§

const IID: GUID = _

The GUID associated with the interface.
§

fn as_raw(&self) -> *mut c_void

Returns the raw COM interface pointer. The resulting pointer continues to be owned by the Interface implementation.
§

fn into_raw(self) -> *mut c_void

Returns the raw COM interface pointer and releases ownership. It the caller’s responsibility to release the COM interface pointer.
§

unsafe fn from_raw(raw: *mut c_void) -> Self

Creates an Interface by taking ownership of the raw COM interface pointer. Read more
§

unsafe fn from_raw_borrowed(raw: &*mut c_void) -> Option<&Self>

Creates an Interface that is valid so long as the raw COM interface pointer is valid. Read more
§

fn cast<T>(&self) -> Result<T, Error>
where T: Interface,

Attempts to cast the current interface to another interface using QueryInterface. Read more
§

fn cast_to_any<T>(&self) -> Result<&(dyn Any + 'static), Error>
where T: ComObjectInner, <T as ComObjectInner>::Outer: Any + 'static + IUnknownImpl<Impl = T>,

This casts the given COM interface to [&dyn Any]. Read more
§

fn is_object<T>(&self) -> bool
where T: ComObjectInner, <T as ComObjectInner>::Outer: Any + 'static + IUnknownImpl<Impl = T>,

Returns true if the given COM interface refers to an implementation of T. Read more
§

fn cast_object_ref<T>(&self) -> Result<&<T as ComObjectInner>::Outer, Error>
where T: ComObjectInner, <T as ComObjectInner>::Outer: Any + 'static + IUnknownImpl<Impl = T>,

This casts the given COM interface to [&dyn Any]. It returns a reference to the “outer” object, e.g. &MyApp_Impl, not the inner &MyApp object. Read more
§

fn cast_object<T>(&self) -> Result<ComObject<T>, Error>
where T: ComObjectInner, <T as ComObjectInner>::Outer: Any + 'static + IUnknownImpl<Impl = T>,

This casts the given COM interface to [&dyn Any]. It returns a reference to the “outer” object, e.g. MyApp_Impl, not the inner MyApp object. Read more
§

fn downgrade(&self) -> Result<Weak<Self>, Error>

Attempts to create a [Weak] reference to this object.
§

unsafe fn query(&self, iid: *const GUID, interface: *mut *mut c_void) -> HRESULT

Call QueryInterface on this interface Read more
§

fn to_ref(&self) -> InterfaceRef<'_, Self>

Creates an InterfaceRef for this reference. The InterfaceRef tracks lifetimes statically, and eliminates the need for dynamic reference count adjustments (AddRef/Release).
§

impl PartialEq for ID3D12Device

§

fn eq(&self, other: &ID3D12Device) -> bool

This method tests for self and other values to be equal, and is used by ==.
1.0.0 · source§

fn ne(&self, other: &Rhs) -> bool

This method tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
§

impl Eq for ID3D12Device

§

impl Send for ID3D12Device

§

impl StructuralPartialEq for ID3D12Device

§

impl Sync for ID3D12Device

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> CloneToUninit for T
where T: Clone,

source§

default unsafe fn clone_to_uninit(&self, dst: *mut T)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dst. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.