Vixen
02b45cc4
csharp
public enum BatchKind

What kind of work a batch is.

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

Remarks

⚠ A coarse stand-in for two of the four things that actually decide a pipeline. Vixen.Rendering already answers this question: a pipeline is keyed on the effect, the stage, the vertex layout and the render output, and its own remarks argue that those four are what makes the key complete rather than merely sufficient so far. Only two of them are a draw list's to know — which shader and which vertex format — because the stage carries blend, depth and raster state and the output carries attachment formats, and both belong to the compositor rather than to anything that walks an element tree.

So this is deliberately allowed to be wrong in one direction only: rectangles and borders are grouped on the argument that both are signed-distance quads, and a filled path is separated from a stroked one on the argument that tessellating an interior and tessellating an outline are different work. Both are claims about a shader that has not been written. What it must not do is grow to describe the other two — a draw list that decided its own blend state would be deciding something the pass it is drawn in already decided.

What is not a guess is everything the batcher does with these: batches are contiguous, they preserve order, and they are maximal. Those hold whatever the grouping turns out to be.

Fields and properties (6)

  • Geometry

    Rectangles and borders.

  • Text

    Glyph runs in one font.

  • Image

    Rectangles sampling one texture.

  • PathFill

    The inside of paths under one fill rule.

  • PathStroke

    Lines along paths.

  • Clip

    A clip pushed or popped. Always exactly one command.

Used by (10)

  • BatchTestsVixen.Ui.Tests
  • DrawBatchVixen.Ui
  • DrawBatcherVixen.Ui
  • IconAtlasTestsVixen.Ui.Tests
  • NineSliceImageTestsVixen.Ui.Tests
  • SoftwareUiRasterizerVixen.Ui.Testing
  • UiDrawVixen.Ui
  • UiGeometryBuilderVixen.Ui
  • UiGeometryTestsVixen.Ui.Tests
  • UiRendererVixen.Ui.Renderer