|
|
Donner SVG 0.8.0-pre
SVG editor and embeddable C++20 engine.
|
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) |
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.
| std::uint64_t donner::svg::RetainedSpanKey::clipEpoch = 0 |
Identity of the clip mask in effect, or zero for no clip.