|
|
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.
|
Live UI-input recorder. Install one instance in EditorShell when the user passes --save-repro <path>; call snapshotFrame() once per editor frame (before any UI widgets have consumed input events. More...
#include <chrono>#include <filesystem>#include <functional>#include <optional>#include <string>#include <utility>#include "donner/editor/repro/ReproFile.h"Classes | |
| struct | donner::editor::repro::FrameContext |
| Additional per-frame state that is only available from the live editor, not from ImGui alone. More... | |
| struct | donner::editor::repro::ReproRecorderOptions |
| Options passed at construction. All fields populated from editor startup state; the recorder copies what it needs. More... | |
| class | donner::editor::repro::ReproRecorder |
| Records editor UI inputs frame-by-frame. Not thread-safe; must be invoked from the UI thread (where ImGui context is active). More... | |
Namespaces | |
| namespace | donner |
| Top-level Donner namespace, which is split into different sub-namespaces such as donner::svg and donner::css. | |
Live UI-input recorder. Install one instance in EditorShell when the user passes --save-repro <path>; call snapshotFrame() once per editor frame (before any UI widgets have consumed input events.
The recorder captures raw ImGui input state (mouse position, mouse button mask, modifier state, wheel deltas, discrete key/char events) plus enough metadata to re-instantiate the editor session. That's the input boundary BELOW menu / tool / compositor dispatch, so a replay exercises every stage of the stack: a recording of a bug you can see in the editor always reproduces that bug in playback, regardless of which layer owns it.