Donner SVG 0.8.0
0.8.0 ยท ebf353960.8.0 main
SVG editor and embeddable C⁠+⁠+⁠20 engine.
Loading...
Searching...
No Matches
RendererDriver.h File Reference
#include <cstdint>
#include <functional>
#include <memory>
#include <optional>
#include <span>
#include <unordered_map>
#include <unordered_set>
#include <vector>
#include "donner/svg/SVGDocument.h"
#include "donner/svg/components/FontResourceGraph.h"
#include "donner/svg/components/filter/FilterGraph.h"
#include "donner/svg/components/shape/ComputedPathComponent.h"
#include "donner/svg/components/style/ComputedStyleComponent.h"
#include "donner/svg/core/MarkerOrient.h"
#include "donner/svg/core/PreserveAspectRatio.h"
#include "donner/svg/renderer/RenderSnapshot.h"
#include "donner/svg/renderer/RendererInterface.h"
#include "donner/svg/renderer/common/RenderingInstanceView.h"
Include dependency graph for RendererDriver.h:

Classes

class  donner::svg::RendererDriver
 Backend-agnostic renderer driver that prepares documents for rendering and emits drawing commands through a RendererInterface implementation. More...
struct  donner::svg::RendererDriver::SecurityStats
 Optional diagnostics for structured fuzzers and embedders auditing rejected preparation. More...
struct  donner::svg::RendererDriver::TextPreparationStats
 CPU preparation work performed by this driver, for text-effect regression tests. More...
struct  donner::svg::RendererDriver::EntityRangeBoundsOptions
 Controls visibility and transform handling when computing an entity range's bounds. 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,.

Class Documentation

◆ donner::svg::RendererDriver::SecurityStats

struct donner::svg::RendererDriver::SecurityStats

Optional diagnostics for structured fuzzers and embedders auditing rejected preparation.

Class Members
bool clipGeometryCopyRejected = false
size_t clipGeometryPathsPreflighted = 0
size_t filterPreparationAttempts = 0
bool filterPreparationRejected = false
Stats nestedFontResources
size_t preparedFilterGraphs = 0
uint64_t preparedFilterImageBytes = 0
uint64_t preparedFilterMaterializationBytes = 0
size_t preparedFilterNodes = 0
uint64_t preparedFilterPayloadBytes = 0
size_t preparedFilterShadowEntities = 0

◆ donner::svg::RendererDriver::TextPreparationStats

struct donner::svg::RendererDriver::TextPreparationStats

CPU preparation work performed by this driver, for text-effect regression tests.

Class Members
size_t fullElementStylePasses = 0 Full text-root layout/style preparations across rendered frames.
size_t spanStyleVisits = 0 Span entries visited while resolving renderer-facing paints and decoration.

◆ donner::svg::RendererDriver::EntityRangeBoundsOptions

struct donner::svg::RendererDriver::EntityRangeBoundsOptions

Controls visibility and transform handling when computing an entity range's bounds.

Class Members
bool allowMaskSuperset = false A mask can remove source pixels but cannot expand their geometric extent. When enabled, accumulate the unmasked geometry as a conservative upper bound instead of giving up.
bool clipToCanvas = true Ordinary scene tiles are bounded by the current raster viewport. A selected drag tile may retain geometry outside it so those pixels can move into view without another raster pass.