[][src]Trait dxplr::d3d12::IDevice

pub trait IDevice: IObject {
    fn check_feature_support<T: CheckFeatureSupport>(
        &self,
        args: T::Args
    ) -> Result<T, HResult>;
unsafe fn copy_descriptors(
        &self,
        dest_descriptor_range_starts: &[CPUDescriptorHandle],
        dest_descriptor_range_sizes: &[u32],
        src_descriptor_range_start: &[CPUDescriptorHandle],
        src_descriptor_range_sizes: &[u32],
        descriptor_heaps_type: DescriptorHeapType
    );
unsafe fn copy_descriptors_simple(
        &self,
        num_descriptors: u32,
        dest_descriptor_range_starts: &CPUDescriptorHandle,
        src_descriptor_range_starts: &CPUDescriptorHandle,
        descriptor_heaps_type: DescriptorHeapType
    );
fn create_command_allocator<T: ICommandAllocator>(
        &self,
        ty: CommandListType
    ) -> Result<T, HResult>;
fn create_command_list<T: ICommandList>(
        &self,
        node_mask: u32,
        ty: CommandListType,
        command_allocator: &CommandAllocator,
        initial_state: Option<&PipelineState>
    ) -> Result<T, HResult>;
fn create_command_queue<T: ICommandQueue>(
        &self,
        desc: &CommandQueueDesc<CommandListType>
    ) -> Result<T, HResult>;
fn create_command_signature<T: ICommandSignature>(
        &self,
        desc: &CommandSignatureDesc,
        root_signature: &RootSignature
    ) -> Result<T, HResult>;
fn create_committed_resource<T: IResource>(
        &self,
        heap_properties: &HeapProperties<HeapType>,
        heap_flags: Option<HeapFlags>,
        desc: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
        initial_resource_state: ResourceStates,
        optimized_clear_value: Option<&ClearValue>
    ) -> Result<T, HResult>;
fn create_compute_pipeline_state<T: IPipelineState>(
        &self,
        desc: &ComputePipelineStateDesc
    ) -> Result<T, HResult>;
unsafe fn create_constant_buffer_view(
        &self,
        desc: &ConstantBufferViewDesc,
        dest_descriptor: CPUDescriptorHandle
    );
unsafe fn create_depth_stencil_view(
        &self,
        resource: Option<&Resource>,
        desc: Option<&DepthStencilViewDesc>,
        dest_descriptor: CPUDescriptorHandle
    );
fn create_descriptor_heap<T: IDescriptorHeap>(
        &self,
        desc: &DescriptorHeapDesc<DescriptorHeapType, u32>
    ) -> Result<T, HResult>;
fn create_fence<T: IFence>(
        &self,
        initial_value: u64,
        flags: Option<FenceFlags>
    ) -> Result<T, HResult>;
fn create_graphics_pipeline_state<T: IPipelineState>(
        &self,
        desc: &GraphicsPipelineStateDesc<InputLayoutDesc, &[Format], Format>
    ) -> Result<T, HResult>;
fn create_heap<T: IHeap>(&self, desc: HeapDesc) -> Result<T, HResult>;
fn create_placed_resource<T: IResource>(
        &self,
        heap: &Heap,
        heap_offset: u64,
        desc: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
        initial_state: ResourceStates,
        optimized_clear_value: Option<ClearValue>
    ) -> Result<T, HResult>;
fn create_query_heap<T: IQueryHeap>(
        &self,
        desc: QueryHeapDesc
    ) -> Result<T, HResult>;
unsafe fn create_render_target_view(
        &self,
        resource: Option<&Resource>,
        desc: Option<&RenderTargetViewDesc>,
        dest_descriptor: CPUDescriptorHandle
    );
fn create_reserved_resource<T: IResource>(
        &self,
        desc: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
        initial_state: ResourceStates,
        optimized_clear_value: Option<ClearValue>
    ) -> Result<T, HResult>;
fn create_root_signature<T: IRootSignature>(
        &self,
        node_mask: u32,
        data: &[u8]
    ) -> Result<T, HResult>;
fn create_sampler(
        &self,
        desc: &SamplerDesc<Filter>,
        dest_descriptor: CPUDescriptorHandle
    );
unsafe fn create_shader_resource_view(
        &self,
        resource: Option<&Resource>,
        desc: Option<&ShaderResourceViewDesc>,
        dest_dsecriptor: CPUDescriptorHandle
    );
fn create_shared_handle<T: Interface>(
        &self,
        object: &T,
        attributes: Option<&SECURITY_ATTRIBUTES>,
        access: u32,
        name: &str
    ) -> Result<HANDLE, HResult>;
unsafe fn create_unordered_access_view(
        &self,
        resource: Option<&Resource>,
        counter_resource: Option<&Resource>,
        desc: Option<&UnorderedAccessViewDesc>,
        dest_descriptor: CPUDescriptorHandle
    );
fn evict(&self, objects: &[&impl IPageable]) -> Result<(), HResult>;
fn get_adapter_luid(&self) -> Luid;
fn get_copyable_footprints(
        &self,
        resource: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
        first_subresource: u32,
        num_subresources: u32,
        base_offset: u64
    ) -> GetCopyableFootprintsResult;
fn get_custom_heap_properties(
        &self,
        node_mask: u32,
        heap_type: HeapType
    ) -> HeapProperties<HeapType>;
fn get_descriptor_handle_increment_size(
        &self,
        descriptor_heaps_type: DescriptorHeapType
    ) -> u32;
fn get_device_removed_reason(&self) -> HResult;
fn get_node_count(&self) -> u32;
fn get_resource_allocation_info(
        &self,
        visible_mask: u32,
        descs: &[&ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>]
    ) -> ResourceAllocationInfo;
fn get_resource_tiling(
        &self,
        resource: &Resource,
        num_subresource_tiling: u32,
        first_subresource_tiling_to_get: u32
    ) -> GetResourceTilingResult;
fn make_resident(&self, objects: &[&impl IPageable]) -> Result<(), HResult>;
fn open_shared_handle<T: Interface>(
        &self,
        nt_handle: HANDLE
    ) -> Result<T, HResult>;
fn open_shared_handle_by_name(
        &self,
        name: &str,
        access: u32
    ) -> Result<HANDLE, HResult>;
fn set_stable_power_state(&self, enable: bool) -> Result<(), HResult>; }

Required methods

fn check_feature_support<T: CheckFeatureSupport>(
    &self,
    args: T::Args
) -> Result<T, HResult>

unsafe fn copy_descriptors(
    &self,
    dest_descriptor_range_starts: &[CPUDescriptorHandle],
    dest_descriptor_range_sizes: &[u32],
    src_descriptor_range_start: &[CPUDescriptorHandle],
    src_descriptor_range_sizes: &[u32],
    descriptor_heaps_type: DescriptorHeapType
)

unsafe fn copy_descriptors_simple(
    &self,
    num_descriptors: u32,
    dest_descriptor_range_starts: &CPUDescriptorHandle,
    src_descriptor_range_starts: &CPUDescriptorHandle,
    descriptor_heaps_type: DescriptorHeapType
)

fn create_command_allocator<T: ICommandAllocator>(
    &self,
    ty: CommandListType
) -> Result<T, HResult>

fn create_command_list<T: ICommandList>(
    &self,
    node_mask: u32,
    ty: CommandListType,
    command_allocator: &CommandAllocator,
    initial_state: Option<&PipelineState>
) -> Result<T, HResult>

fn create_command_queue<T: ICommandQueue>(
    &self,
    desc: &CommandQueueDesc<CommandListType>
) -> Result<T, HResult>

fn create_command_signature<T: ICommandSignature>(
    &self,
    desc: &CommandSignatureDesc,
    root_signature: &RootSignature
) -> Result<T, HResult>

fn create_committed_resource<T: IResource>(
    &self,
    heap_properties: &HeapProperties<HeapType>,
    heap_flags: Option<HeapFlags>,
    desc: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
    initial_resource_state: ResourceStates,
    optimized_clear_value: Option<&ClearValue>
) -> Result<T, HResult>

fn create_compute_pipeline_state<T: IPipelineState>(
    &self,
    desc: &ComputePipelineStateDesc
) -> Result<T, HResult>

unsafe fn create_constant_buffer_view(
    &self,
    desc: &ConstantBufferViewDesc,
    dest_descriptor: CPUDescriptorHandle
)

unsafe fn create_depth_stencil_view(
    &self,
    resource: Option<&Resource>,
    desc: Option<&DepthStencilViewDesc>,
    dest_descriptor: CPUDescriptorHandle
)

fn create_descriptor_heap<T: IDescriptorHeap>(
    &self,
    desc: &DescriptorHeapDesc<DescriptorHeapType, u32>
) -> Result<T, HResult>

fn create_fence<T: IFence>(
    &self,
    initial_value: u64,
    flags: Option<FenceFlags>
) -> Result<T, HResult>

fn create_graphics_pipeline_state<T: IPipelineState>(
    &self,
    desc: &GraphicsPipelineStateDesc<InputLayoutDesc, &[Format], Format>
) -> Result<T, HResult>

fn create_heap<T: IHeap>(&self, desc: HeapDesc) -> Result<T, HResult>

fn create_placed_resource<T: IResource>(
    &self,
    heap: &Heap,
    heap_offset: u64,
    desc: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
    initial_state: ResourceStates,
    optimized_clear_value: Option<ClearValue>
) -> Result<T, HResult>

fn create_query_heap<T: IQueryHeap>(
    &self,
    desc: QueryHeapDesc
) -> Result<T, HResult>

unsafe fn create_render_target_view(
    &self,
    resource: Option<&Resource>,
    desc: Option<&RenderTargetViewDesc>,
    dest_descriptor: CPUDescriptorHandle
)

fn create_reserved_resource<T: IResource>(
    &self,
    desc: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
    initial_state: ResourceStates,
    optimized_clear_value: Option<ClearValue>
) -> Result<T, HResult>

fn create_root_signature<T: IRootSignature>(
    &self,
    node_mask: u32,
    data: &[u8]
) -> Result<T, HResult>

fn create_sampler(
    &self,
    desc: &SamplerDesc<Filter>,
    dest_descriptor: CPUDescriptorHandle
)

unsafe fn create_shader_resource_view(
    &self,
    resource: Option<&Resource>,
    desc: Option<&ShaderResourceViewDesc>,
    dest_dsecriptor: CPUDescriptorHandle
)

fn create_shared_handle<T: Interface>(
    &self,
    object: &T,
    attributes: Option<&SECURITY_ATTRIBUTES>,
    access: u32,
    name: &str
) -> Result<HANDLE, HResult>

unsafe fn create_unordered_access_view(
    &self,
    resource: Option<&Resource>,
    counter_resource: Option<&Resource>,
    desc: Option<&UnorderedAccessViewDesc>,
    dest_descriptor: CPUDescriptorHandle
)

fn evict(&self, objects: &[&impl IPageable]) -> Result<(), HResult>

fn get_adapter_luid(&self) -> Luid

fn get_copyable_footprints(
    &self,
    resource: &ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>,
    first_subresource: u32,
    num_subresources: u32,
    base_offset: u64
) -> GetCopyableFootprintsResult

fn get_custom_heap_properties(
    &self,
    node_mask: u32,
    heap_type: HeapType
) -> HeapProperties<HeapType>

fn get_descriptor_handle_increment_size(
    &self,
    descriptor_heaps_type: DescriptorHeapType
) -> u32

fn get_device_removed_reason(&self) -> HResult

fn get_node_count(&self) -> u32

fn get_resource_allocation_info(
    &self,
    visible_mask: u32,
    descs: &[&ResourceDesc<ResourceDimension, u64, u32, Format, TextureLayout>]
) -> ResourceAllocationInfo

fn get_resource_tiling(
    &self,
    resource: &Resource,
    num_subresource_tiling: u32,
    first_subresource_tiling_to_get: u32
) -> GetResourceTilingResult

fn make_resident(&self, objects: &[&impl IPageable]) -> Result<(), HResult>

fn open_shared_handle<T: Interface>(
    &self,
    nt_handle: HANDLE
) -> Result<T, HResult>

fn open_shared_handle_by_name(
    &self,
    name: &str,
    access: u32
) -> Result<HANDLE, HResult>

fn set_stable_power_state(&self, enable: bool) -> Result<(), HResult>

Loading content...

Implementors

impl IDevice for Device[src]

impl IDevice for Device1[src]

impl IDevice for Device2[src]

Loading content...