Donner 0.5.1
Embeddable browser-grade SVG2 engine
Loading...
Searching...
No Matches
FrameInspector.h File Reference

Headless frame inspection: decode a sandbox wire stream into an indexed list of commands with human-readable summaries, and replay any prefix of those commands into a real backend. This is the engine that S4's eventual ImGui frame inspector panel will sit on top of; keeping it UI-free means we can test it now and reuse it from non-editor contexts (bug reports, .rnr replay CLIs, structural diffs). More...

#include <cstddef>
#include <cstdint>
#include <optional>
#include <span>
#include <string>
#include <vector>
#include "donner/editor/sandbox/ReplayingRenderer.h"
#include "donner/editor/sandbox/Wire.h"
#include "donner/svg/renderer/RendererInterface.h"
Include dependency graph for FrameInspector.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  donner::editor::sandbox::DecodedCommand
 One message in the decoded stream. The summary is meant for UI display (ImGui command-list rows, text dumps, structural diffs) — it is intentionally terse and not round-trippable. More...
struct  donner::editor::sandbox::InspectionResult
 Outcome of FrameInspector::Decode. streamValid is true iff the entire wire stream parsed without error — a false value means commands contains whatever the inspector was able to decode before the first failure, and error describes why it stopped. More...
class  donner::editor::sandbox::FrameInspector
 All static helpers — inspector instances are stateless beyond the inputs each call is given. More...

Namespaces

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

Detailed Description

Headless frame inspection: decode a sandbox wire stream into an indexed list of commands with human-readable summaries, and replay any prefix of those commands into a real backend. This is the engine that S4's eventual ImGui frame inspector panel will sit on top of; keeping it UI-free means we can test it now and reuse it from non-editor contexts (bug reports, .rnr replay CLIs, structural diffs).

The inspector never rasterizes on its own — rasterization is always delegated to a caller-provided RendererInterface. Decoding, on the other hand, is fully self-contained and deterministic.