Trait gfx::pso::DataLink
[−]
[src]
pub trait DataLink<'a>: Sized { type Init: 'a; fn new() -> Self; fn is_active(&self) -> bool; fn link_vertex_buffer(&mut self,
_: BufferIndex,
_: &Self::Init)
-> Option<VertexBufferDesc> { ... } fn link_input(&mut self,
_: &AttributeVar,
_: &Self::Init)
-> Option<Result<AttributeDesc, Format>> { ... } fn link_constant_buffer<'b>(&mut self,
_: &'b ConstantBufferVar,
_: &Self::Init)
-> Option<Result<ConstantBufferDesc, ElementError<&'b str>>> { ... } fn link_global_constant(&mut self,
_: &ConstVar,
_: &Self::Init)
-> Option<Result<(), UniformValue>> { ... } fn link_output(&mut self,
_: &OutputVar,
_: &Self::Init)
-> Option<Result<ColorTargetDesc, Format>> { ... } fn link_depth_stencil(&mut self, _: &Self::Init) -> Option<DepthStencilDesc> { ... } fn link_resource_view(&mut self,
_: &TextureVar,
_: &Self::Init)
-> Option<Result<ResourceViewDesc, Format>> { ... } fn link_unordered_view(&mut self,
_: &UnorderedVar,
_: &Self::Init)
-> Option<Result<UnorderedViewDesc, Format>> { ... } fn link_sampler(&mut self,
_: &SamplerVar,
_: &Self::Init)
-> Option<SamplerDesc> { ... } fn link_scissor(&mut self) -> bool { ... } }
The "link" logic portion of a PSO component. Defines the input data for the component.
Associated Types
type Init: 'a
The assotiated "init" type - a member of the PSO "init" struct.
Required Methods
fn new() -> Self
Create a new empty data link.
fn is_active(&self) -> bool
Check if this link is actually used by the shader.
Provided Methods
fn link_vertex_buffer(&mut self,
_: BufferIndex,
_: &Self::Init)
-> Option<VertexBufferDesc>
_: BufferIndex,
_: &Self::Init)
-> Option<VertexBufferDesc>
Attempt to link with a vertex buffer containing multiple attributes.
fn link_input(&mut self,
_: &AttributeVar,
_: &Self::Init)
-> Option<Result<AttributeDesc, Format>>
_: &AttributeVar,
_: &Self::Init)
-> Option<Result<AttributeDesc, Format>>
Attempt to link with a vertex attribute.
fn link_constant_buffer<'b>(&mut self,
_: &'b ConstantBufferVar,
_: &Self::Init)
-> Option<Result<ConstantBufferDesc, ElementError<&'b str>>>
_: &'b ConstantBufferVar,
_: &Self::Init)
-> Option<Result<ConstantBufferDesc, ElementError<&'b str>>>
Attempt to link with a constant buffer.
fn link_global_constant(&mut self,
_: &ConstVar,
_: &Self::Init)
-> Option<Result<(), UniformValue>>
_: &ConstVar,
_: &Self::Init)
-> Option<Result<(), UniformValue>>
Attempt to link with a global constant.
fn link_output(&mut self,
_: &OutputVar,
_: &Self::Init)
-> Option<Result<ColorTargetDesc, Format>>
_: &OutputVar,
_: &Self::Init)
-> Option<Result<ColorTargetDesc, Format>>
Attempt to link with an output render target (RTV).
fn link_depth_stencil(&mut self, _: &Self::Init) -> Option<DepthStencilDesc>
Attempt to link with a depth-stencil target (DSV).
fn link_resource_view(&mut self,
_: &TextureVar,
_: &Self::Init)
-> Option<Result<ResourceViewDesc, Format>>
_: &TextureVar,
_: &Self::Init)
-> Option<Result<ResourceViewDesc, Format>>
Attempt to link with a shader resource (SRV).
fn link_unordered_view(&mut self,
_: &UnorderedVar,
_: &Self::Init)
-> Option<Result<UnorderedViewDesc, Format>>
_: &UnorderedVar,
_: &Self::Init)
-> Option<Result<UnorderedViewDesc, Format>>
Attempt to link with an unordered access (UAV).
fn link_sampler(&mut self,
_: &SamplerVar,
_: &Self::Init)
-> Option<SamplerDesc>
_: &SamplerVar,
_: &Self::Init)
-> Option<SamplerDesc>
Attempt to link with a sampler.
fn link_scissor(&mut self) -> bool
Attempt to enable scissor test.
Implementors
impl<'a, T: Structure<Format>, I: AsRef<[()]> + Default> DataLink<'a> for VertexBufferCommon<T, I>
impl<'a> DataLink<'a> for RawVertexBuffer
impl<'a, T: Structure<ConstFormat>> DataLink<'a> for ConstantBuffer<T>
impl<'a> DataLink<'a> for RawConstantBuffer
impl<'a, T: ToUniform> DataLink<'a> for Global<T>
impl<'a, T> DataLink<'a> for ShaderResource<T>
impl<'a> DataLink<'a> for RawShaderResource
impl<'a, T> DataLink<'a> for UnorderedAccess<T>
impl<'a> DataLink<'a> for Sampler
impl<'a, T> DataLink<'a> for TextureSampler<T>
impl<'a, T: RenderFormat> DataLink<'a> for RenderTarget<T>
impl<'a, T: BlendFormat> DataLink<'a> for BlendTarget<T>
impl<'a> DataLink<'a> for RawRenderTarget
impl<'a, T: DepthFormat> DataLink<'a> for DepthTarget<T>
impl<'a, T: StencilFormat> DataLink<'a> for StencilTarget<T>
impl<'a, T: DepthStencilFormat> DataLink<'a> for DepthStencilTarget<T>
impl<'a> DataLink<'a> for Scissor
impl<'a> DataLink<'a> for BlendRef