Vixen
dd8b0a81
csharp
public sealed class DrawListBuilder

Turns a laid-out, styled tree into a list of things to draw.

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

Remarks

The last step of the chain this assembly exists to complete: the cascade said what applies, the bridge turned that into lengths, flexbox turned those into rectangles, and this turns the rectangles into commands. Nothing here decides anything — it reads.

Painting order is PaintOrder, parent before its children and siblings in the order they were added unless a z-index says otherwise. That is the same property hit testing walks in reverse, and the two have to agree: an element drawn on top must be the one a click lands on, and any rule that made them disagree would be a UI where things are not where they look. Neither of them having its own opinion is what guarantees it.

Fields and properties (2)

  • public bool Compositing

    Whether a translucent subtree is isolated into a group, or faded element by element.

  • public IReadOnlyList<SelectorDiagnostic> Diagnostics

    What this builder could not draw, and why.

Methods (5)

  • public DrawListBuilder(NameTable properties, NameTable values, NameTable keywords)

    Creates a builder over a style engine's name tables.

  • public DrawListBuilder(NameTable properties, NameTable values, NameTable keywords, SystemPalette? palette)

    Creates a builder that resolves and forces system colours against a palette.

  • public void ClearDiagnostics()

    Forgets every refusal recorded so far.

  • public bool Build(UiDocument document, DrawList into)

    Walks a document and fills a draw list.

  • public bool Build(UiDocument document, UiElement root, DrawList into)

    Walks one surface of a document and fills a draw list.

Used by (4)

  • DrawContextVixen.Ui
  • DrawListVixen.Ui
  • OverflowTestsVixen.Ui.Tests
  • UiDocumentVixen.Ui