#pragma once #include #include #include namespace faset::editor { // Optional developer diagnostics. This module never edits authoring or runtime state. class DebugOverlay { public: DebugOverlay(); ~DebugOverlay(); DebugOverlay(const DebugOverlay&) = delete; DebugOverlay& operator=(const DebugOverlay&) = delete; bool visible() const; void set_visible(bool); // F12 toggles the overlay; events captured by its widgets are removed for this frame. std::vector process_events(std::span); void append(render::Snapshot&, const render::Renderer&, float delta_seconds); private: struct Impl; std::unique_ptr impl_; }; } // namespace faset::editor