#pragma once namespace hd2d { class Window; struct RenderSettings; struct Scene; class Weather; class DayCycle; // Dear ImGui integration plus a ready-made tuning panel for the renderer. class DebugUI { public: bool init(Window& window); void shutdown(); void beginFrame(); void endFrame(); bool wantsMouse() const; bool wantsKeyboard() const; // Tweak panel for every look parameter (sun, sky, fog, AO, water, post). static void renderSettingsPanel(RenderSettings& settings, Scene& scene, float gpuMs); // Rain / overcast / fog / lightning, transition time and the weather // presets; with `hour` an hour slider, with `day` its keyframes. static void weatherPanel(Weather& weather, DayCycle* day = nullptr, float* hour = nullptr); private: bool initialized_ = false; }; } // namespace hd2d