Class OverscaleCurtainRenderer
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
-
ISkiaStyleRendererIStyleRenderer
- 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
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
canvasSKCanvasSKCanvas for drawing.
viewportViewportActive viewport for this drawing operation.
layerILayerLayer that contains feature.
featureIFeatureFeature to draw.
styleIStyleStyle to draw.
renderServiceRenderServiceRenderService to provide caches and such.
iterationlong