Trait gfx::handle::Producer [] [src]

pub trait Producer<R> where
    R: Resources
{ fn make_buffer(
        &mut self,
        <R as Resources>::Buffer,
        BufferInfo
    ) -> RawBuffer<R>;
fn make_shader(&mut self, <R as Resources>::Shader) -> Shader<R>;
fn make_program(
        &mut self,
        <R as Resources>::Program,
        ProgramInfo
    ) -> Program<R>;
fn make_pso(
        &mut self,
        <R as Resources>::PipelineStateObject,
        &Program<R>
    ) -> RawPipelineState<R>;
fn make_texture(
        &mut self,
        <R as Resources>::Texture,
        Descriptor
    ) -> RawTexture<R>;
fn make_buffer_srv(
        &mut self,
        <R as Resources>::ShaderResourceView,
        &RawBuffer<R>
    ) -> RawShaderResourceView<R>;
fn make_texture_srv(
        &mut self,
        <R as Resources>::ShaderResourceView,
        &RawTexture<R>
    ) -> RawShaderResourceView<R>;
fn make_buffer_uav(
        &mut self,
        <R as Resources>::UnorderedAccessView,
        &RawBuffer<R>
    ) -> RawUnorderedAccessView<R>;
fn make_texture_uav(
        &mut self,
        <R as Resources>::UnorderedAccessView,
        &RawTexture<R>
    ) -> RawUnorderedAccessView<R>;
fn make_rtv(
        &mut self,
        <R as Resources>::RenderTargetView,
        &RawTexture<R>,
        (u16, u16, u16, AaMode)
    ) -> RawRenderTargetView<R>;
fn make_dsv(
        &mut self,
        <R as Resources>::DepthStencilView,
        &RawTexture<R>,
        (u16, u16, u16, AaMode)
    ) -> RawDepthStencilView<R>;
fn make_sampler(
        &mut self,
        <R as Resources>::Sampler,
        SamplerInfo
    ) -> Sampler<R>;
fn make_fence(&mut self, name: <R as Resources>::Fence) -> Fence<R>;
fn clean_with<T, A, B, C, D, E, F, G, H, I, J, K>(
        &mut self,
        &mut T,
        A,
        B,
        C,
        D,
        E,
        F,
        G,
        H,
        I,
        J,
        K
    )
    where
        A: Fn(&mut T, &<R as Resources>::Buffer),
        B: Fn(&mut T, &<R as Resources>::Shader),
        C: Fn(&mut T, &<R as Resources>::Program),
        D: Fn(&mut T, &<R as Resources>::PipelineStateObject),
        E: Fn(&mut T, &<R as Resources>::Texture),
        F: Fn(&mut T, &<R as Resources>::ShaderResourceView),
        G: Fn(&mut T, &<R as Resources>::UnorderedAccessView),
        H: Fn(&mut T, &<R as Resources>::RenderTargetView),
        I: Fn(&mut T, &<R as Resources>::DepthStencilView),
        J: Fn(&mut T, &<R as Resources>::Sampler),
        K: Fn(&mut T, &<R as Resources>::Fence)
; }

A service trait to be used by the device implementation

Required Methods

Walk through all the handles, keep ones that are reference elsewhere and call the provided delete function (resource-specific) for others

Implementors