Trait gfx::handle::Producer
[−]
[src]
pub trait Producer<R> where 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>, (u16, u16, u16, AaMode)) -> RawRenderTargetView<R>; fn make_dsv(&mut self, R::DepthStencilView, &RawTexture<R>, (u16, u16, u16, AaMode)) -> 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, 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 K: Fn(&mut T, &R::Fence) -> (), A: Fn(&mut T, &R::Buffer) -> (), I: Fn(&mut T, &R::DepthStencilView) -> (), F: Fn(&mut T, &R::ShaderResourceView) -> (), C: Fn(&mut T, &R::Program) -> (), H: Fn(&mut T, &R::RenderTargetView) -> (), E: Fn(&mut T, &R::Texture) -> (), G: Fn(&mut T, &R::UnorderedAccessView) -> (), J: Fn(&mut T, &R::Sampler) -> (), B: Fn(&mut T, &R::Shader) -> (), D: Fn(&mut T, &R::PipelineStateObject) -> (); }
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>, (u16, u16, u16, AaMode)) -> RawRenderTargetView<R>
fn make_dsv(&mut self, R::DepthStencilView, &RawTexture<R>, (u16, u16, u16, AaMode)) -> 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, 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 K: Fn(&mut T, &R::Fence) -> (), A: Fn(&mut T, &R::Buffer) -> (), I: Fn(&mut T, &R::DepthStencilView) -> (), F: Fn(&mut T, &R::ShaderResourceView) -> (), C: Fn(&mut T, &R::Program) -> (), H: Fn(&mut T, &R::RenderTargetView) -> (), E: Fn(&mut T, &R::Texture) -> (), G: Fn(&mut T, &R::UnorderedAccessView) -> (), J: Fn(&mut T, &R::Sampler) -> (), B: Fn(&mut T, &R::Shader) -> (), D: Fn(&mut T, &R::PipelineStateObject) -> ()
Walk through all the handles, keep ones that are reference elsewhere and call the provided delete function (resource-specific) for others