Table of Contents

Class OverscaleCurtainRenderer

Namespace
EncDotNet.S100.Renderers.Mapsui
Assembly
EncDotNet.S100.Renderers.Mapsui.dll

Renders OverscaleCurtainStyle by drawing evenly spaced vertical lines, anchored to a fixed world origin, clipped to the styled polygon — the S-52 / S-101 overscale "curtain" (issue #441, AP(OVERSC01) Form A).

public sealed class OverscaleCurtainRenderer : ISkiaStyleRenderer, IStyleRenderer
Inheritance
OverscaleCurtainRenderer
Implements
ISkiaStyleRenderer
IStyleRenderer
Inherited Members

Remarks

The lines are drawn directly as stroked segments rather than by stamping a repeating SKPicture tile. Direct strokes keep the pattern crisp at any zoom and on HiDPI surfaces, cost only a few hundred draw operations per frame (one per visible line, not one per lattice cell), and — crucially — do not nest a picture inside the offscreen picture-recording canvas used when the host captures a full-window screenshot, which a per-tile DrawPicture loop can drive into a deep, crashing recursion in Skia.

The line lattice is anchored to world origin (0,0) projected to screen space so the curtain moves seamlessly with the chart during panning and stays phase-consistent across adjacent overscaled cells.

Properties

Instance

Singleton instance for registration.

public static OverscaleCurtainRenderer Instance { get; }

Property Value

OverscaleCurtainRenderer

Methods

Draw(SKCanvas, Viewport, ILayer, IFeature, IStyle, RenderService, long)

Drawing function for special styles

public bool Draw(SKCanvas canvas, Viewport viewport, ILayer layer, IFeature feature, IStyle style, RenderService renderService, long iteration)

Parameters

canvas SKCanvas

SKCanvas for drawing.

viewport Viewport

Active viewport for this drawing operation.

layer ILayer

Layer that contains feature.

feature IFeature

Feature to draw.

style IStyle

Style to draw.

renderService RenderService

RenderService to provide caches and such.

iteration long

Returns

bool