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<(), CompatibilityError>> { ... } 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>
&mut self,
_: 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>>
&mut self,
_: &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>>>
&mut self,
_: &'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<(), CompatibilityError>>
&mut self,
_: &ConstVar,
_: &Self::Init
) -> Option<Result<(), CompatibilityError>>
Attempt to link with a global constant.
fn link_output(
&mut self,
_: &OutputVar,
_: &Self::Init
) -> Option<Result<ColorTargetDesc, Format>>
&mut self,
_: &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>>
&mut self,
_: &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>>
&mut self,
_: &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>
&mut self,
_: &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: ToInstanceRate + 'a> DataLink<'a> for VertexBufferCommon<T, I> type Init = I::Init;
impl<'a> DataLink<'a> for RawVertexBuffer type Init = (&'a [(&'a str, Element<Format>)], ElemStride, InstanceRate);
impl<'a, T: Structure<ConstFormat>> DataLink<'a> for ConstantBuffer<T> type Init = &'a str;
impl<'a> DataLink<'a> for RawConstantBuffer type Init = &'a str;
impl<'a, T: ToUniform + Default> DataLink<'a> for Global<T> type Init = &'a str;
impl<'a> DataLink<'a> for RawGlobal type Init = &'a str;
impl<'a, T> DataLink<'a> for ShaderResource<T> type Init = &'a str;
impl<'a> DataLink<'a> for RawShaderResource type Init = &'a str;
impl<'a, T> DataLink<'a> for UnorderedAccess<T> type Init = &'a str;
impl<'a> DataLink<'a> for Sampler type Init = &'a str;
impl<'a, T> DataLink<'a> for TextureSampler<T> type Init = &'a str;
impl<'a, T: RenderFormat> DataLink<'a> for RenderTarget<T> type Init = &'a str;
impl<'a, T: BlendFormat> DataLink<'a> for BlendTarget<T> type Init = (&'a str, ColorMask, Blend);
impl<'a> DataLink<'a> for RawRenderTarget type Init = (&'a str, Format, ColorMask, Option<Blend>);
impl<'a, T: DepthFormat> DataLink<'a> for DepthTarget<T> type Init = Depth;
impl<'a, T: StencilFormat> DataLink<'a> for StencilTarget<T> type Init = Stencil;
impl<'a, T: DepthStencilFormat> DataLink<'a> for DepthStencilTarget<T> type Init = (Depth, Stencil);
impl<'a> DataLink<'a> for Scissor type Init = ();
impl<'a> DataLink<'a> for BlendRef type Init = ();