|
|
Donner 0.8.0-pre
Embeddable browser-grade SVG2 engine
|
OverlayRenderer draws editor chrome (currently selection path outlines) directly into the renderer's existing framebuffer using the canvas primitives RendererInterface already exposes. It is not a separate compositing layer and not a fabricated SVG subtree — chrome and document share one render target so there is no subpixel drift between them. More...
#include <array>#include <optional>#include <span>#include <vector>#include "donner/base/Box.h"#include "donner/base/Path.h"#include "donner/base/Transform.h"#include "donner/svg/SVGElement.h"Classes | |
| struct | donner::editor::SelectionChromeBoundsPreview |
| Active transform bounds chrome. Used while rotating to draw the gesture-start selection box transformed into the current document space. More... | |
| struct | donner::editor::SelectionChromeSnapshot |
| Frozen view of everything OverlayRenderer::drawChromeWithTransform would normally read off the live registry: per-element path splines transformed into document space, per-element AABBs in document space, and the optional marquee rect. More... | |
| struct | donner::editor::SelectionChromeSnapshot::OrientedBox |
| Four document-space corners of an oriented selection box. More... | |
| struct | donner::editor::SelectionChromeSnapshot::PathItem |
| One entry per renderable geometry leaf in the selection (groups are expanded into their geometry descendants, same as the live path). Empty when nothing's selected. More... | |
| class | donner::editor::OverlayRenderer |
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. | |
Enumerations | |
| enum class | donner::editor::SelectionChromeDetail { Full , CombinedBoundsOnly } |
| Detail level used when capturing selection chrome. More... | |
OverlayRenderer draws editor chrome (currently selection path outlines) directly into the renderer's existing framebuffer using the canvas primitives RendererInterface already exposes. It is not a separate compositing layer and not a fabricated SVG subtree — chrome and document share one render target so there is no subpixel drift between them.
See docs/design_docs/editor.md "OverlayRenderer uses direct canvas- style Renderer calls" for the architectural rationale and the primitive policy.
Usage:
Must be called after Renderer::draw(document) (which has its own internal beginFrame / endFrame cycle) and before Renderer::takeSnapshot(). The renderer's frame pixmap survives across endFrame so additional canvas commands compose onto it directly.
| struct donner::editor::SelectionChromeSnapshot::OrientedBox |
| struct donner::editor::SelectionChromeSnapshot::PathItem |
One entry per renderable geometry leaf in the selection (groups are expanded into their geometry descendants, same as the live path). Empty when nothing's selected.
| Class Members | ||
|---|---|---|
| bool | displayNone = false | True when the selected element is hidden by display:none. The path outline still renders as an editable placeholder, but uses a dimmer stroke than visible selections. |
| Path | pathDoc | Document-space path data sampled at capture time. Keeping the path in document space lets chrome stroke width depend only on viewport scale, not on the selected element's own scale/rotation transform. |
|
strong |