Donner SVG 0.8.0
0.8.0 ยท ebf353960.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
donner::svg::RetainedSpanKey Struct Reference

Everything a captured blit sequence depends on, besides the shape's geometry. More...

#include "donner/svg/renderer/RetainedSpans.h"

Public Attributes

Transform2d deviceFromLocal
 Local-to-device transform the coverage was scan converted with.
tiny_skia::Paint paint
 Paint the draw was handed. The coverage itself carries no color, but the paint decides antialiasing, and a draw may derive its blitter's paint from this one (a hairline stroke folds its coverage into the shader opacity, and a transformed draw transforms the shader), so a replay is only sound while this input is unchanged.
tiny_skia::Stroke stroke
 Stroke configuration, unused by a fill pass.
std::uint64_t clipEpoch = 0
 Identity of the clip mask in effect, or zero for no clip.
tiny_skia::IntSize surfaceSize
 Surface the coverage was recorded against. Recorded runs are device-space rectangles that nothing re-clips, so a differently sized surface cannot receive them.
FillRule fillRule = FillRule::NonZero
 Fill rule, unused by a stroke pass.
bool openDashSeam = false
 Whether the stroke pass replaced closed contours with explicit closing lines, which the zero-length-gap dash case does and which changes the outline the stroker expands.

Friends

bool operator== (const RetainedSpanKey &lhs, const RetainedSpanKey &rhs)
 Compare keys for retained-span reuse.

Detailed Description

Everything a captured blit sequence depends on, besides the shape's geometry.

Geometry is deliberately absent: it is tracked by removing a shape's whole retained entry when its resolved path changes, which costs nothing per frame, rather than by re-comparing point arrays on every draw. Everything else is small enough to compare directly, so the renderer never has to reason about which mutation hooks mark which property.

◆ operator==

bool operator== ( const RetainedSpanKey & lhs,
const RetainedSpanKey & rhs )
friend

Compare keys for retained-span reuse.

Parameters
lhsValue to compare.
rhsValue to compare.

Member Data Documentation

◆ clipEpoch

std::uint64_t donner::svg::RetainedSpanKey::clipEpoch = 0

Identity of the clip mask in effect, or zero for no clip.

See also
RendererTinySkia's clip epoch assignment: equal epochs mean byte-equal masks.

The documentation for this struct was generated from the following file: