57 lines
1.3 KiB
C++
57 lines
1.3 KiB
C++
#pragma once
|
|
|
|
namespace pp::app {
|
|
|
|
struct AppInitialSurfacePlan {
|
|
float width = 960.0F;
|
|
float height = 540.0F;
|
|
};
|
|
|
|
struct AppFrameUpdatePlan {
|
|
bool update_frame = false;
|
|
bool update_layouts = false;
|
|
bool refresh_canvas_toolbar = false;
|
|
};
|
|
|
|
struct AppFrameDrawPlan {
|
|
bool draw_canvas_stroke = false;
|
|
bool draw_vr_ui = false;
|
|
bool draw_main_ui = true;
|
|
bool reset_redraw = true;
|
|
};
|
|
|
|
[[nodiscard]] constexpr AppInitialSurfacePlan plan_app_initial_surface() noexcept
|
|
{
|
|
return AppInitialSurfacePlan {
|
|
.width = 1920.0F / 2.0F,
|
|
.height = 1080.0F / 2.0F,
|
|
};
|
|
}
|
|
|
|
[[nodiscard]] constexpr AppFrameUpdatePlan plan_app_frame_update(bool redraw, bool animate) noexcept
|
|
{
|
|
const bool update_frame = redraw || animate;
|
|
return AppFrameUpdatePlan {
|
|
.update_frame = update_frame,
|
|
.update_layouts = update_frame,
|
|
.refresh_canvas_toolbar = update_frame,
|
|
};
|
|
}
|
|
|
|
[[nodiscard]] constexpr AppFrameDrawPlan plan_app_frame_draw(
|
|
bool has_canvas_node,
|
|
bool has_canvas_document,
|
|
bool vr_active,
|
|
bool ui_visible,
|
|
bool vr_only) noexcept
|
|
{
|
|
return AppFrameDrawPlan {
|
|
.draw_canvas_stroke = has_canvas_node && has_canvas_document,
|
|
.draw_vr_ui = vr_active && ui_visible,
|
|
.draw_main_ui = !vr_only,
|
|
.reset_redraw = true,
|
|
};
|
|
}
|
|
|
|
} // namespace pp::app
|