Table of Contents

Class OverlayDrawOptions

Namespace
EncDotNet.S100.Renderers.Skia.Scene
Assembly
EncDotNet.S100.Renderers.Skia.dll

Controls for the tiled subsystem's live label/symbol overlay pass, passed to RenderOnto(SKCanvas, VectorScene, Viewport, OverlayDrawOptions). The defaults reproduce the plain overlay behaviour: draw every point and label, with no declutter suppression and no anchor rotation.

public sealed class OverlayDrawOptions
Inheritance
OverlayDrawOptions
Inherited Members

Properties

AnchorRotationDegrees

Clockwise display rotation, in degrees: each point and text anchor is turned by it about (ScreenCenterX, ScreenCenterY), matching the rotated base plane, while labels and screen-relative symbols are drawn unrotated (upright) and north-relative symbols (Geographic) turn by it too. Zero (the default, north-up) leaves everything unrotated.

public double AnchorRotationDegrees { get; init; }

Property Value

double

DeviceScale

Device-pixel scale of the target canvas (its HiDPI back-buffer matrix scale), used to rasterise cached symbol sprites at the correct resolution for the symbol atlas (#332 lever c2). Defaults to 1.

public float DeviceScale { get; init; }

Property Value

float

DrawAreasAndLines

Whether to draw area fills, pattern fills and lines this pass. Defaults to true; a text-only pass (the upright labels of a rotated headless composite) turns it off.

public bool DrawAreasAndLines { get; init; }

Property Value

bool

DrawPoints

Whether to draw point symbols this pass. Defaults to true.

public bool DrawPoints { get; init; }

Property Value

bool

DrawText

Whether to draw text/labels this pass. Defaults to true.

public bool DrawText { get; init; }

Property Value

bool

PointCullBounds

Pixel-space rectangle outside which point/text ops are skipped, or null to derive it from the viewport plus PointCullMarginPx. The test is on the anchor after AnchorRotationDegrees is applied, so a pass that rotates anchors culls against the output as drawn; a pass that instead rotates the canvas must pass the rotated viewport's bounding box.

public SKRect? PointCullBounds { get; init; }

Property Value

SKRect?

ScreenCenterX

Screen-space X of the rotation centre for AnchorRotationDegrees.

public float ScreenCenterX { get; init; }

Property Value

float

ScreenCenterY

Screen-space Y of the rotation centre for AnchorRotationDegrees.

public float ScreenCenterY { get; init; }

Property Value

float

SuppressedText

Text ops to suppress this frame (the loser side of a declutter pass; see LabelDeclutterer), or null to draw all text. Suppression is by reference identity against the scene's ops.

public IReadOnlySet<TextPaintOp>? SuppressedText { get; init; }

Property Value

IReadOnlySet<TextPaintOp>

UseSymbolAtlas

Whether point symbols may be drawn from the render-thread symbol-sprite atlas (a once-rasterised SKImage blit) instead of replaying their vector SKPicture every frame (#332 lever c2). Defaults to true; set false to force the vector path (used for pixel-parity tests and as a safety fallback). Per-op-rotated symbols always use the vector path regardless.

public bool UseSymbolAtlas { get; init; }

Property Value

bool