Vixen
02b45cc4
csharp
public sealed class FullScreenRenderer

One effect over the whole screen: the node every post-process pass is made of.

No guide page documents this yet — the page shows what the code says about itself.

Remarks

The edge between "the compositor can express a bloom chain" and "the compositor has one". Everything else in the tree draws objects — a stage's sorted list, a shadow cascade's casters — and no post effect has any. This draws three vertices and nothing else.

A triangle, and no vertex buffer at all. The positions come out of SV_VertexID in Library/PostFx/Fullscreen.rvn, so there is nothing to bind and nothing to allocate. A triangle rather than a quad because two triangles meeting across the screen have a diagonal seam where the interpolators are least accurate, and because six vertices to cover a rectangle is two more than are needed.

It declares its own pass, like every other node that needs graph resources. A post effect is one effect into one target reading a handful of others, which is a pass — putting several into one RenderPassRenderer would mean each reading what the one before it wrote inside a pass that cannot barrier between them.

The pipeline cache is its own, and not PipelineCache. Three of that key's four parts are degenerate here: there is no vertex layout, no stage list, and the "stage" is the node. What is left is the effect, the output's formats and the blend — which is exactly what this is keyed by.

Fields and properties (19)

  • public required string ShaderName

    The shader to run.

  • public ParameterCollection Parameters

    Its permutations, and the values its uniform block is filled from.

  • public IReadOnlyList<ParameterKey> PermutationKeys

    Which permutation keys the shader's variants are selected by.

  • public IList<string> ColourTargets

    The names of the colour attachments it writes.

  • public IList<string> Reads

    The names of the textures it samples.

  • public IList<string> BufferReads

    The names of the buffers it reads.

  • public LoadAction Load

    What happens to the colour attachments at the start of the pass.

  • public Color4 ClearColour

    What to clear the attachments to, when Load clears.

  • public BlendState Blend

    How its output combines with what is already there.

  • public Viewport? Viewport

    The viewport, or null for the whole target.

  • public ShaderComposition Composition

    What fills the shader's compose slots, for a pass that has any.

  • public DescriptorBindings Descriptors

    The set it binds: its source textures, its samplers, its uniform block.

  • public SceneConstants? SceneConstants

    The frame's set 0, for a pass whose shader declares anything per-frame.

  • public uint? ConstantBinding

    Where the uniform block goes, or null for an effect that has none.

  • public EffectPipelineDescriber? Modules

    Where shader modules come from. Set before the first frame that builds.

  • public SamplerCache? Samplers

    Where a described sampler comes from, for a binding that names one by value.

  • public IGraphicsDevice? Device

    The device its pipelines and its uniform block are created on.

  • public int PipelineCount

    How many distinct pipelines this node has compiled.

  • public int UploadCount

    How many times its uniform block has gone to the GPU.

Methods (2)

  • protected internal override void Build(GraphicsCompositor compositor, CompositorFrame frame)

    Declares this node's render-graph passes.

  • public void Dispose()

    Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.

Used by (21)

  • AutoExposureTestsVixen.Rendering.PostFx.Tests
  • BloomRendererVixen.Rendering.PostFx
  • BloomTestsVixen.Rendering.PostFx.Tests
  • CompositorAssetTestsVixen.Rendering.Tests
  • CompositorBuilderVixen.Rendering
  • CompositorImageTestsVixen.Graphics.Golden.Tests
  • DistanceFieldAoImageTestsVixen.Graphics.Golden.Tests
  • DistanceFieldAoRendererVixen.Rendering.PostFx
  • HarnessVixen.Rendering.PostFx.Tests
  • HarnessVixen.Rendering.Tests
  • HarnessVixen.Rendering.PostFx.Tests
  • IndirectDiffuseImageTestsVixen.Graphics.Golden.Tests
  • IndirectDiffuseRendererVixen.Rendering.PostFx
  • LensFlareRendererVixen.Rendering.PostFx
  • LocalExposureRendererVixen.Rendering.PostFx
  • PostEffectRendererVixen.Rendering.PostFx
  • PostEffectTestsVixen.Rendering.PostFx.Tests
  • PostProcessTestsVixen.Rendering.Tests
  • ScreenProbeGatherImageTestsVixen.Graphics.Golden.Tests
  • ScreenProbeUpsampleImageTestsVixen.Graphics.Golden.Tests
  • ScreenProbeUpsampleRendererVixen.Rendering.PostFx