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