PixelBullet  0.0.1
A C++ game engine
Loading...
Searching...
No Matches
imgui_appearance_policy_internal.h
1#pragma once
2
3#include "pixelbullet/application/imgui/imgui_layer.h"
4#include "pixelbullet/math/validation.h"
5
6namespace pixelbullet::application_internal
7{
8inline constexpr float k_default_imgui_style_scale = 1.0f;
9inline constexpr float k_default_imgui_font_size_pixels = 13.0f;
10
11[[nodiscard]] inline float sanitize_imgui_positive_scale(const float value, const float fallback) noexcept
12{
13 return math::is_finite(value) && value > 0.0f ? value : fallback;
14}
15
16[[nodiscard]] inline ImGuiAppearanceConfig sanitize_imgui_appearance_config(const ImGuiAppearanceConfig& appearance) noexcept
17{
18 ImGuiAppearanceConfig sanitized = appearance;
19 sanitized.style_scale = sanitize_imgui_positive_scale(sanitized.style_scale, k_default_imgui_style_scale);
20 sanitized.font_size_pixels = sanitize_imgui_positive_scale(sanitized.font_size_pixels, k_default_imgui_font_size_pixels);
21 sanitized.icon_font_size_pixels = sanitize_imgui_positive_scale(sanitized.icon_font_size_pixels, k_default_imgui_font_size_pixels);
22 sanitized.mono_font_size_pixels = sanitize_imgui_positive_scale(sanitized.mono_font_size_pixels, k_default_imgui_font_size_pixels);
23 return sanitized;
24}
25} // namespace pixelbullet::application_internal