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
GlRnrReplay.h File Reference
#include <cstdint>
#include <filesystem>
#include <optional>
#include <set>
#include <string>
#include <string_view>
#include <vector>
#include "donner/base/Vector2.h"
#include "donner/editor/AsyncRenderer.h"
#include "donner/editor/FrameCostBreakdown.h"
#include "donner/editor/GlTextureCache.h"
#include "donner/editor/LayerInspectorDiagnostics.h"
#include "donner/editor/SelectTool.h"
Include dependency graph for GlRnrReplay.h:

Classes

struct  donner::editor::repro::GlRnrReplayOptions
 Options for replaying an .rnr file through the real OpenGL editor shell. More...
struct  donner::editor::repro::GlRnrReplayCapture
 One PNG written by RunGlRnrReplay. More...
struct  donner::editor::repro::GlRnrReplayTileDiagnostics
 Per-frame texture tile diagnostics captured during GL replay. More...
struct  donner::editor::repro::GlRnrReplayFrameDiagnostics
 Per-frame diagnostics captured during GL replay. More...
struct  donner::editor::repro::GlRnrReplayFrameDiagnostics::RowThumbnail
 One Layers-panel row thumbnail exposed to replay diagnostics. More...
struct  donner::editor::repro::GlRnrReplayFrameDiagnostics::ThumbnailRefreshStats
 Layers-panel thumbnail refresh diagnostics. More...
struct  donner::editor::repro::GlRnrReplayResult
 Result of a GL replay run. More...

Namespaces

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

Enumerations

enum class  donner::editor::repro::GlRnrReplayWorkerScheduling {
  Realtime ,
  DrainEachFrame ,
  HoldFramesBehind
}
 Worker scheduling mode for deterministic GL replay tests. More...
enum class  donner::editor::repro::GlRnrReplayCropMode {
  Full ,
  RenderPane ,
  DocumentCanvas
}
 Output crop mode for GL framebuffer replay captures. More...

Functions

std::optional< GlRnrReplayCropModedonner::editor::repro::ParseGlRnrReplayCropMode (std::string_view value)
 Parse a CLI/MCP crop-mode string.
std::string_view donner::editor::repro::GlRnrReplayCropModeSuffix (GlRnrReplayCropMode cropMode)
 File suffix for a crop mode.
bool donner::editor::repro::RunGlRnrReplay (const GlRnrReplayOptions &options, GlRnrReplayResult *result, std::string *error)
 Replay an .rnr recording through EditorShell, capture the OpenGL framebuffer, and write requested frames as PNGs.

Class Documentation

◆ donner::editor::repro::GlRnrReplayFrameDiagnostics::RowThumbnail

struct donner::editor::repro::GlRnrReplayFrameDiagnostics::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::repro::GlRnrReplayFrameDiagnostics::ThumbnailRefreshStats

struct donner::editor::repro::GlRnrReplayFrameDiagnostics::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.

Enumeration Type Documentation

◆ GlRnrReplayCropMode

Output crop mode for GL framebuffer replay captures.

Enumerator
Full 

Capture the entire editor framebuffer.

RenderPane 

Capture the render-pane rectangle.

DocumentCanvas 

Capture the visible document canvas clipped to the render pane.

◆ GlRnrReplayWorkerScheduling

Worker scheduling mode for deterministic GL replay tests.

Enumerator
Realtime 

Preserve normal wall-clock worker scheduling.

DrainEachFrame 

Wait for active worker renders before each frame poll.

HoldFramesBehind 

Hold completed results for a fixed number of frame polls.

Function Documentation

◆ GlRnrReplayCropModeSuffix()

std::string_view donner::editor::repro::GlRnrReplayCropModeSuffix ( GlRnrReplayCropMode cropMode)
nodiscard

File suffix for a crop mode.

Parameters
cropModeOutput crop mode.

◆ ParseGlRnrReplayCropMode()

std::optional< GlRnrReplayCropMode > donner::editor::repro::ParseGlRnrReplayCropMode ( std::string_view value)
nodiscard

Parse a CLI/MCP crop-mode string.

Parameters
valueString value such as full, render-pane, or document-canvas.

◆ RunGlRnrReplay()

bool donner::editor::repro::RunGlRnrReplay ( const GlRnrReplayOptions & options,
GlRnrReplayResult * result,
std::string * error )
nodiscard

Replay an .rnr recording through EditorShell, capture the OpenGL framebuffer, and write requested frames as PNGs.

Parameters
optionsReplay and capture options.
resultOutput capture list.
errorHuman-readable error on failure.