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>
&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>
&mut self,
_: R::ShaderResourceView,
_: &RawBuffer<R>
) -> RawShaderResourceView<R>
fn make_texture_srv(
&mut self,
_: R::ShaderResourceView,
_: &RawTexture<R>
) -> RawShaderResourceView<R>
&mut self,
_: R::ShaderResourceView,
_: &RawTexture<R>
) -> RawShaderResourceView<R>
fn make_buffer_uav(
&mut self,
_: R::UnorderedAccessView,
_: &RawBuffer<R>
) -> RawUnorderedAccessView<R>
&mut self,
_: R::UnorderedAccessView,
_: &RawBuffer<R>
) -> RawUnorderedAccessView<R>
fn make_texture_uav(
&mut self,
_: R::UnorderedAccessView,
_: &RawTexture<R>
) -> RawUnorderedAccessView<R>
&mut self,
_: R::UnorderedAccessView,
_: &RawTexture<R>
) -> RawUnorderedAccessView<R>
fn make_rtv(
&mut self,
_: R::RenderTargetView,
_: &RawTexture<R>,
_: Dimensions
) -> RawRenderTargetView<R>
&mut self,
_: R::RenderTargetView,
_: &RawTexture<R>,
_: Dimensions
) -> RawRenderTargetView<R>
fn make_dsv(
&mut self,
_: R::DepthStencilView,
_: &RawTexture<R>,
_: Dimensions
) -> RawDepthStencilView<R>
&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
)
&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