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.
Loading...
Searching...
No Matches
EditorShell.h File Reference
#include <cstddef>
#include <cstdint>
#include <deque>
#include <future>
#include <memory>
#include <optional>
#include <string>
#include <string_view>
#include <vector>
#include "donner/editor/CanvasScrollbars.h"
#include "donner/editor/ClipboardInterface.h"
#include "donner/editor/CompositorDebugPanel.h"
#include "donner/editor/DialogPresenter.h"
#include "donner/editor/DocumentSyncController.h"
#include "donner/editor/EditorApp.h"
#include "donner/editor/EditorInputBridge.h"
#include "donner/editor/EditorShellLayout.h"
#include "donner/editor/FrameCostBreakdown.h"
#include "donner/editor/GlTextureCache.h"
#include "donner/editor/ImGuiIncludes.h"
#include "donner/editor/LayerInspectorDiagnostics.h"
#include "donner/editor/LayersPanel.h"
#include "donner/editor/MenuBarPresenter.h"
#include "donner/editor/NativeDialogCoordinator.h"
#include "donner/editor/PenTool.h"
#include "donner/editor/RenderCoordinator.h"
#include "donner/editor/RenderPanePresenter.h"
#include "donner/editor/RotateCursorSet.h"
#include "donner/editor/SamplePickerPresenter.h"
#include "donner/editor/SelectTool.h"
#include "donner/editor/SidebarPresenter.h"
#include "donner/editor/SourceDiagnosticsPanel.h"
#include "donner/editor/SourceStructuralMove.h"
#include "donner/editor/StyleSourceAnnotations.h"
#include "donner/editor/TextEditor.h"
#include "donner/editor/TextFormatBarPresenter.h"
#include "donner/editor/TextInspectorPanel.h"
#include "donner/editor/TextTool.h"
#include "donner/editor/ViewportInteractionController.h"
#include "donner/svg/SVGDocumentHandle.h"
#include "donner/svg/renderer/Renderer.h"
#include "donner/svg/renderer/RendererTinySkia.h"
#include "donner/svg/resources/FontCatalog.h"
Include dependency graph for EditorShell.h:

Classes

struct  donner::editor::EditorShellOptions
struct  donner::editor::EditorShellDocumentReplayInput
 Document-space replay input consumed by the editor shell test harness. More...
struct  donner::editor::LayerInspectorStatusReadback
 Layer-inspector freshness status exposed to replay/readback harnesses. More...
struct  donner::editor::LayerInspectorStatusReadback::Tile
 One paint-order composited tile exposed to replay diagnostics. More...
struct  donner::editor::LayerInspectorStatusReadback::RowThumbnail
 One Layers-panel row thumbnail exposed to replay diagnostics. More...
struct  donner::editor::LayerInspectorStatusReadback::ThumbnailRefreshStats
 Layers-panel thumbnail refresh diagnostics. More...
class  donner::editor::EditorShell
 Stateful advanced editor frontend shell. Owns all long-lived GUI/editor orchestration state. More...

Namespaces

namespace  donner
 Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css.

Class Documentation

◆ donner::editor::LayerInspectorStatusReadback::Tile

struct donner::editor::LayerInspectorStatusReadback::Tile

One paint-order composited tile exposed to replay diagnostics.

Class Members
Vector2d bitmapDimsDoc = Vector2d::Zero() Tile dimensions in document/canvas units.
Vector2i bitmapDimsPx = Vector2i::Zero() Texture dimensions in pixels.
Vector2d canvasOffsetDoc = Vector2d::Zero() Tile origin in document/canvas coordinates.
Transform2d documentFromCachedDocument = Transform2d() Affine transform represented by the presented tile.
Vector2d dragTranslationDoc = Vector2d::Zero() Drag translation represented by the presented tile.
uint64_t generation = 0 Raster payload generation.
string id Stable texture-cache tile id.
bool isDragTarget = false True when this tile represents the active drag target.
Kind kind = RenderResult::CompositedTile::Kind::Segment Segment/layer tile kind.
bool metadataOnly = false True when the tile reused an existing texture with metadata-only geometry.
Transform2d presentedDocumentFromCachedDocument = Transform2d() Effective affine transform used by the render-pane presenter this frame.
Vector2d presentedDragTranslationDoc = Vector2d::Zero() Effective drag translation used by the render-pane presenter this frame.
Vector2i rasterCanvasSize = Vector2i::Zero() Raster canvas size that produced the texture payload.
uint64_t textureHandle = 0 Backend texture/view handle, represented as an integer for diagnostics.
shared_ptr< const RendererTextureSnapshot > textureSnapshot Renderer-owned texture snapshot retained by the presentation cache, if any.

◆ donner::editor::LayerInspectorStatusReadback::RowThumbnail

struct donner::editor::LayerInspectorStatusReadback::RowThumbnail

One Layers-panel row thumbnail exposed to replay diagnostics.

Class Members
Vector2i bitmapDimsPx = Vector2i::Zero() Cached thumbnail bitmap dimensions, or zero when the row has no raster thumbnail.
string displayName Visible row label.
uint64_t stableId = 0 Stable row id used for thumbnail texture cache keys.

◆ donner::editor::LayerInspectorStatusReadback::ThumbnailRefreshStats

struct donner::editor::LayerInspectorStatusReadback::ThumbnailRefreshStats

Layers-panel thumbnail refresh diagnostics.

Class Members
uint64_t documentFrameVersion = 0 Document frame version observed during the refresh.
size_t renderedCount = 0 Number of row thumbnails rasterized through Donner during this refresh.
double renderMs = 0.0 Wall time spent in thumbnail rasterization work.
size_t reusedCount = 0 Number of cached row thumbnails reused during this refresh.
size_t rowCount = 0 Visible row count after refreshing the model.
size_t skippedForCanvasInvalidationCount = 0 Number of rows skipped because the canvas render tree had pending invalidation.