Generated reference › API — ICoreEssentials/UI/Backends/WinUI/Media
kind: generated#api#icoreessentials-ui-backends-winui-media

API — ICoreEssentials/UI/Backends/WinUI/Media

The public contract of 1 header(s) under ICoreEssentials/UI/Backends/WinUI/Media — 1 class/struct definition(s), 0 declaration(s). Each section shows the header's banner and its public (and protected-virtual) surface exactly as the file writes it.

HeaderDefinesDeclarationsBases
ICoreWinUISvgPainter.hICoreWinUISvgDrawStats0—

ICoreWinUISvgPainter.h#

ICoreEssentials/UI/Backends/WinUI/Media/ICoreWinUISvgPainter.h

Draws a resolved SVG render list through the Direct2D painter: the WinUI backend's half of the in-house SVG reader.

The reader RESOLVES and never draws -- the cascade, <style> classes, <use> expansion, gradient plumbing and unit conversion happen once, portably, for every backend. This file is the other side of that seam and does the easy part in this backend's own terms. It is the whole of the seam: there is no second place where an SVG decision and a painting decision meet.

⚠ THE GEOMETRY IS MAPPED HERE, NOT SET ON THE PAINTER, for the reason the scene bridge gives: the painter exposes translate / rotate / scale and no general 2x3 setter, and decomposing an affine into those three is exact only without shear. Each outline is mapped through its own composed matrix and handed over in target coordinates, which is exact for every transform an SVG

ICoreWinUISvgDrawStats#

ICoreWinUISvgPainter.h:34 · struct · 0 declaration(s)

What a draw actually did.

struct ICoreWinUISvgDrawStats {
public:
    int entries = 0;            // entries in the list
    int drawn = 0;              // entries that put something on the target
    int fills = 0;
    int strokes = 0;
    int gradientFills = 0;

    // ⚠ Entries whose STROKE asked for a gradient. Direct2D can stroke with one;
    // this backend's pen takes a colour, so the gradient is collapsed to its
    // midpoint. Counted so the approximation is visible rather than assumed.
    int gradientStrokesFlattened = 0;

    // ⚠ Entries this adapter DECLINED to draw because they are text runs, not
    // shapes. Counted separately from `empty` on purpose: folding them together
    // would make "there was nothing to draw" indistinguishable from "there was
    // something and I do not draw it yet", which is the silent-absorption
    // failure this struct exists to avoid.
    //
    // The division of labour, since neither side can cover the other: the render
    // list's `warnings` say what the READER could not resolve, and this says
    // what the ADAPTER declined to render.
    int textEntriesSkipped = 0;

    // Entries with neither fill nor stroke. A real state -- a group carrier, or
    // a shape whose paint resolved to none -- and not an error.
    int empty = 0;
};
};