|
|
Donner SVG Editor & Engine
SVG-native editor and embeddable SVG2 + CSS3 engine in C++20, with GPU (WebGPU) and compact CPU renderers, built for correctness, security, and performance.
|
#include <entt/entity/entity.hpp>#include <optional>#include "donner/base/Length.h"#include "donner/base/Path.h"#include "donner/base/RcString.h"#include "donner/base/SmallVector.h"#include "donner/svg/components/RenderingInstanceComponent.h"#include "donner/svg/core/DominantBaseline.h"#include "donner/svg/core/FontStretch.h"#include "donner/svg/core/FontStyle.h"#include "donner/svg/core/FontVariant.h"#include "donner/svg/core/LengthAdjust.h"#include "donner/svg/core/PaintOrder.h"#include "donner/svg/core/Stroke.h"#include "donner/svg/core/TextAnchor.h"#include "donner/svg/core/TextDecoration.h"#include "donner/svg/core/Visibility.h"Classes | |
| struct | donner::svg::components::ComputedTextComponent |
| Pre-computed layout information for a text subtree. More... | |
| struct | donner::svg::components::ComputedTextComponent::TextSpan |
| A contiguous slice of text with fully resolved layout attributes. More... | |
| struct | donner::svg::components::ComputedTextComponent::TextSpan::AncestorShift |
| Unresolved baseline-shift values from ancestor tspan elements. Each entry is the ancestor's (baseline-shift keyword, baseline-shift Lengthd, font-size in pixels). Layout engines resolve each entry using font OS/2 metrics for sub/super or toPixels() for explicit lengths, then sum to get the total ancestor shift. More... | |
Namespaces | |
| namespace | donner |
| Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css. | |
| namespace | donner::svg |
| Donner SVG library, which can load, manipulate and render SVG files. | |
| namespace | donner::svg::components |
| Contains the implementation of the Donner ECS,. | |
| struct donner::svg::components::ComputedTextComponent |
Pre-computed layout information for a text subtree.
A ComputedTextComponent is attached by the layout system to the root <text> element after all <text>, <tspan>, and <textPath> descendants have been resolved. It stores the final, absolute positions for each contiguous slice of text, allowing the renderer to iterate quickly without re-evaluating attribute vectors on every frame.
The component contains a single public field, spans, which is the computed list of text spans.
| Class Members | ||
|---|---|---|
| SmallVector< TextSpan, 1 > | spans | |
| struct donner::svg::components::ComputedTextComponent::TextSpan::AncestorShift |
Unresolved baseline-shift values from ancestor tspan elements. Each entry is the ancestor's (baseline-shift keyword, baseline-shift Lengthd, font-size in pixels). Layout engines resolve each entry using font OS/2 metrics for sub/super or toPixels() for explicit lengths, then sum to get the total ancestor shift.
| Class Members | ||
|---|---|---|
| double | fontSizePx | |
| BaselineShiftKeyword | keyword | |
| Lengthd | shift | |