Vixen
feb85697
csharp
public readonly record struct UiGeometry

A frame's worth of interface geometry.

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

Remarks

⚠ Thirty-two-bit indices, and not because a frame is expected to need them. Almost none do: sixteen bits reach 65 535 vertices, which is sixteen thousand quads, and a dense editor window is a few thousand. The reason is what happens to the one frame that does — an index that wraps draws geometry from the top of the frame in the middle of it, silently, and the picture is wrong rather than absent. Emitting the wider index costs two bytes per index on about an eighth of the frame's bytes, and buys never having to reason about the ceiling again.

Fields and properties (10)

  • public IReadOnlyList<UiVertex> Vertices

    Every vertex, in painting order.

  • public IReadOnlyList<uint> Indices

    Triangles into .

  • public IReadOnlyList<UiDraw> Draws

    What to draw, in painting order.

  • public IReadOnlyList<UiShape> Shapes

    One record per box, indexed by its vertices' Shape.X.

  • public IReadOnlyList<UiLayer> Layers

    The composited groups, innermost last, or empty on a frame with none.

  • public IReadOnlyList<UiMask> Masks

    Every masked group's mask list, back to back, named by MaskFirst.

  • public float WhiteLevel

    What the white in Color is worth, in the target's units.

  • public float Tolerance

    The Tolerance the curves in this frame were flattened to, or zero when nothing says.

  • public float Fringe

    The Fringe this frame's paths were feathered by, or zero for none.

  • public int Generation

    Which build of a UiGeometryBuilder this is, or zero when none stamped it.

Methods (1)

  • public UiGeometry(IReadOnlyList<UiVertex> Vertices, IReadOnlyList<uint> Indices, IReadOnlyList<UiDraw> Draws, IReadOnlyList<UiShape> Shapes)

    A frame's worth of interface geometry.

Used by (54, showing 40)

  • BackdropFilterTestsVixen.Ui.Controls.Tests
  • FillRuleTestsVixen.Ui.Testing.Tests
  • FilterBlurTestsVixen.Ui.Controls.Tests
  • FilterColourTestsVixen.Ui.Controls.Tests
  • FilterDropShadowTestsVixen.Ui.Controls.Tests
  • FlatteningScaleTestsVixen.Ui.Tests
  • FrameVixen.Ui.Testing
  • GroupOpacityTestsVixen.Ui.Controls.Tests
  • HudLuminanceDeviceTestsVixen.Graphics.Golden.Tests
  • HudLuminanceTestsVixen.Ui.Controls.Tests
  • IconAtlasTestsVixen.Ui.Tests
  • IdleFrameUploadTestsVixen.Ui.Desktop.Tests
  • IdleFrameWorkTestsVixen.Ui.Tests
  • InterfaceComposedAfterTheSceneTestsVixen.Engine.Renderer.Tests
  • InterfaceInAWorldTestsVixen.Engine.Renderer.Tests
  • InterfaceOverASceneDeviceTestsVixen.Graphics.Golden.Tests
  • LevelIndicatorImageTestsVixen.Graphics.Golden.Tests
  • MaskGradientTestsVixen.Ui.Controls.Tests
  • MixBlendModeLuminanceTestsVixen.Ui.Controls.Tests
  • MixBlendModeTestsVixen.Ui.Controls.Tests
  • NineSliceImageTestsVixen.Ui.Tests
  • PathTessellationCacheTestsVixen.Ui.Tests
  • ProjectiveCompositeTestsVixen.Ui.Controls.Tests
  • RecordBeforeUploadTestsVixen.Ui.Desktop.Tests
  • SoftwareUiRasterizerVixen.Ui.Testing
  • TextDecorationPixelTestsVixen.Ui.Controls.Tests
  • TransformPaintTestsVixen.Ui.Controls.Tests
  • UiApplicationVixen.Ui.Desktop
  • UiBlendDeviceTestsVixen.Graphics.Golden.Tests
  • UiBoxAgreementTestsVixen.Graphics.Golden.Tests
  • UiCompositeWhiteLevelDeviceTestsVixen.Graphics.Golden.Tests
  • UiCompositingTestsVixen.Graphics.Golden.Tests
  • UiFrameLifetimeTestsVixen.Graphics.Golden.Tests
  • UiGamutTestsVixen.Ui.Tests
  • UiGeometryBuilderVixen.Ui
  • UiGeometryTestsVixen.Ui.Tests
  • UiImageTestsVixen.Graphics.Golden.Tests
  • UiImageViewTestsVixen.Graphics.Golden.Tests
  • UiInterfaceVixen.Ui.Renderer
  • UiRavenAgreementTestsVixen.Graphics.Golden.Tests