[][src]Trait gfx::pso::DataLink

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.

Loading content...

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.

Loading content...

Provided methods

Attempt to link with a vertex buffer containing multiple attributes.

Attempt to link with a vertex attribute.

Attempt to link with a constant buffer.

Attempt to link with a global constant.

Attempt to link with an output render target (RTV).

Attempt to link with a depth-stencil target (DSV).

Attempt to link with a shader resource (SRV).

Attempt to link with an unordered access (UAV).

Attempt to link with a sampler.

Attempt to enable scissor test.

Loading content...

Implementors

impl<'a> DataLink<'a> for RawConstantBuffer[src]

type Init = &'a str

impl<'a> DataLink<'a> for RawGlobal[src]

type Init = &'a str

impl<'a> DataLink<'a> for RawVertexBuffer[src]

type Init = (&'a [(&'a str, Element<Format>)], ElemStride, InstanceRate)

impl<'a> DataLink<'a> for RawShaderResource[src]

type Init = &'a str

impl<'a> DataLink<'a> for Sampler[src]

type Init = &'a str

impl<'a> DataLink<'a> for BlendRef[src]

type Init = ()

impl<'a> DataLink<'a> for RawRenderTarget[src]

type Init = (&'a str, Format, ColorMask, Option<Blend>)

impl<'a> DataLink<'a> for Scissor[src]

type Init = ()

impl<'a, T> DataLink<'a> for ShaderResource<T>[src]

type Init = &'a str

impl<'a, T> DataLink<'a> for TextureSampler<T>[src]

type Init = &'a str

impl<'a, T> DataLink<'a> for UnorderedAccess<T>[src]

type Init = &'a str

impl<'a, T: BlendFormat> DataLink<'a> for BlendTarget<T>[src]

type Init = (&'a str, ColorMask, Blend)

impl<'a, T: DepthFormat> DataLink<'a> for DepthTarget<T>[src]

type Init = Depth

impl<'a, T: DepthStencilFormat> DataLink<'a> for DepthStencilTarget<T>[src]

type Init = (Depth, Stencil)

impl<'a, T: RenderFormat> DataLink<'a> for RenderTarget<T>[src]

type Init = &'a str

impl<'a, T: StencilFormat> DataLink<'a> for StencilTarget<T>[src]

type Init = Stencil

impl<'a, T: Structure<Format>, I: ToInstanceRate + 'a> DataLink<'a> for VertexBufferCommon<T, I>[src]

type Init = I::Init

impl<'a, T: Structure<ConstFormat>> DataLink<'a> for ConstantBuffer<T>[src]

type Init = &'a str

impl<'a, T: ToUniform + Default> DataLink<'a> for Global<T>[src]

type Init = &'a str

Loading content...