Files
Vibe-HD-2D/engine/include/hd2d/DebugUI.h
Gabrieal Jimmy 83a1f16806 Sprite sheets, atlases, game UI, time of day, weather presets, headless captures
- BillboardInstance: per-instance uv sub-rect, feet anchor, turn, dithered alpha, flash;
  BillboardBatch::sharedTexture; Texture createEmpty/update/cellUV/cellAnchor/nearest
- SpriteAtlas: fixed-cell runtime atlas with gutters
- hd2d::ui: Octopath-style panels, fonts (Cinzel, EB Garamond), dialogue box with
  typewriter + portraits + choices, menus, nameplates, toasts, ImGui theme
- DayCycle (dawn/day/dusk/night keyframes, sun + moon arcs), Weather overcast/mist/
  lightning, night-aware presets, stars and moon in the sky
- Hidden-window offscreen captures (Window visible=false, Renderer output FBO,
  OffscreenTarget); --screenshot never opens a window
- Camera::worldToScreen; CMake usable via add_subdirectory (HD2D_BUILD_DEMO,
  HD2D_ENGINE_ASSET_DIR)
2026-10-02 15:05:23 -05:00

32 lines
846 B
C++

#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