Vixen
02b45cc4
csharp
public abstract class RootRenderFeature

One kind of renderable: meshes, sprites, particles, UI.

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

Remarks

A root feature owns extraction and drawing for its kind of object. There is one per kind and they do not know about each other — a scene with meshes and particles runs two, over one shared RenderObjectStore, and each walks only the objects whose FeatureIndex is its own.

What varies between kinds is not what varies between features of a kind. A mesh and a sprite are drawn differently, so they are different root features. A skinned mesh and a static one are drawn the same way with different data, so skinning is a SubRenderFeature of the mesh feature rather than a second root — which is the distinction that keeps the root feature count in single digits.

Fields and properties (4)

  • public abstract string Name

    The feature's name, for logging and profiling.

  • public int Index

    The index objects of this kind carry, assigned when the feature is added.

  • public RenderSystem? System

    The system this feature belongs to, once it has been added to one.

  • public IReadOnlyList<SubRenderFeature> SubFeatures

    The sub-features contributing data to this one.

Methods (7)

  • public void Add(SubRenderFeature subFeature)

    Adds a sub-feature, which registers its own per-object data.

  • protected internal virtual void Initialize(RenderSystem system)

    Registers this feature's own per-object data. Called once, when it is added.

  • protected internal virtual void Extract(RenderSystem system)

    Pulls this frame's state out of the scene and into the store.

  • protected internal virtual void Prepare(RenderSystem system)

    Fills per-object data for the objects that survived culling, before anything is sorted.

  • protected internal virtual void Draw(RenderSystem system, RenderDrawContext context, ReadOnlySpan<RenderNode> nodes)

    Records this feature's share of one stage's work into a command list.

  • protected internal virtual uint SortGroupOf(RenderSystem system, RenderObjectId id, RenderStage stage)

    The sort group for one object, which the key puts above depth.

  • public override string ToString()

    Returns a string that represents the current object.

Used by (58, showing 40)

  • VirtualGeometryGameVirtualGeometry
  • BindlessFrameTestsVixen.Rendering.Tests
  • ClusteredLightingTestsVixen.Rendering.Tests
  • ClusteredShadingDeviceTestsVixen.Graphics.Golden.Tests
  • CompositorAssetTestsVixen.Rendering.Tests
  • CompositorBuilderVixen.Rendering
  • CompositorImageTestsVixen.Graphics.Golden.Tests
  • CountingFeatureVixen.Engine.Renderer.Tests
  • CountingFeatureVixen.Rendering.Tests
  • DepthPrepassTestsVixen.Rendering.Tests
  • DescriptorBindingTestsVixen.Rendering.Tests
  • DrawCompactionTestsVixen.Rendering.Tests
  • ForwardFrameTestsVixen.Rendering.Tests
  • ForwardLightingRenderFeatureVixen.Rendering
  • ForwardLightingTestsVixen.Rendering.Tests
  • GpuCullingRendererVixen.Rendering
  • GpuDrivenCompositorTestsVixen.Rendering.Tests
  • GpuVisibilityGroupTestsVixen.Rendering.Tests
  • GraphicsCompositorTestsVixen.Rendering.Tests
  • IrradianceBounceDeviceTestsVixen.Graphics.Golden.Tests
  • IrradianceShadingDeviceTestsVixen.Graphics.Golden.Tests
  • LodRenderFeatureVixen.Rendering
  • LodTestsVixen.Rendering.Tests
  • MaterialBindingTestsVixen.Rendering.Tests
  • MaterialRecordBufferTestsVixen.Rendering.Tests
  • MaterialRenderFeatureVixen.Rendering
  • MaterialTextureIndexTestsVixen.Rendering.Tests
  • MeshExtractionSystemVixen.Rendering
  • MeshExtractionTestsVixen.Rendering.Tests
  • MeshRenderFeatureVixen.Rendering
  • MeshRenderFeatureTestsVixen.Rendering.Tests
  • MotionVectorTestsVixen.Rendering.Tests
  • ObjectRecordTestsVixen.Rendering.Tests
  • ParticleRenderFeatureVixen.Rendering
  • ParticleRenderFeatureTestsVixen.Rendering.Tests
  • ParticleSpriteDeviceTestsVixen.Graphics.Golden.Tests
  • PunctualShadowTestsVixen.Rendering.Tests
  • RecordingTestsVixen.Rendering.Tests
  • RenderSystemVixen.Rendering
  • RenderSystemTestsVixen.Rendering.Tests