- 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)
32 lines
846 B
C++
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
|