Trait gfx_core::handle::Producer [] [src]

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

A service trait to be used by the device implementation

Required Methods

fn make_buffer(&mut self, R::Buffer, BufferInfo) -> RawBuffer<R>

fn make_shader(&mut self, R::Shader) -> Shader<R>

fn make_program(&mut self, R::Program, ProgramInfo) -> Program<R>

fn make_pso(&mut self, R::PipelineStateObject, &Program<R>) -> RawPipelineState<R>

fn make_texture(&mut self, R::Texture, Descriptor) -> RawTexture<R>

fn make_buffer_srv(&mut self, R::ShaderResourceView, &RawBuffer<R>) -> RawShaderResourceView<R>

fn make_texture_srv(&mut self, R::ShaderResourceView, &RawTexture<R>) -> RawShaderResourceView<R>

fn make_buffer_uav(&mut self, R::UnorderedAccessView, &RawBuffer<R>) -> RawUnorderedAccessView<R>

fn make_texture_uav(&mut self, R::UnorderedAccessView, &RawTexture<R>) -> RawUnorderedAccessView<R>

fn make_rtv(&mut self, R::RenderTargetView, &RawTexture<R>, Dimensions) -> RawRenderTargetView<R>

fn make_dsv(&mut self, R::DepthStencilView, &RawTexture<R>, Dimensions) -> RawDepthStencilView<R>

fn make_sampler(&mut self, R::Sampler, SamplerInfo) -> Sampler<R>

fn make_fence(&mut self, name: R::Fence) -> Fence<R>

fn clean_with<T, A: Fn(&mut T, &R::Buffer), B: Fn(&mut T, &R::Shader), C: Fn(&mut T, &R::Program), D: Fn(&mut T, &R::PipelineStateObject), E: Fn(&mut T, &R::Texture), F: Fn(&mut T, &R::ShaderResourceView), G: Fn(&mut T, &R::UnorderedAccessView), H: Fn(&mut T, &R::RenderTargetView), I: Fn(&mut T, &R::DepthStencilView), J: Fn(&mut T, &R::Sampler), K: Fn(&mut T, &R::Fence)>(&mut self, &mut T, A, B, C, D, E, F, G, H, I, J, K)

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

Implementors