|
|
Donner 0.5.1
Embeddable browser-grade SVG2 engine
|
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 — right after window_.beginFrame() / ImGui::NewFrame()). On process exit, call flush() to serialize the recording to the destination path. More...
#include <chrono>#include <filesystem>#include <string>#include "donner/editor/repro/ReproFile.h"Classes | |
| 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 — right after window_.beginFrame() / ImGui::NewFrame()). On process exit, call flush() to serialize the recording to the destination path.
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.