galaxy 1.0.0
Real-Time C++23 Game Programming Framework. Built on data-driven design principles and agile software engineering.
Loading...
Searching...
No Matches
Settings.hpp
Go to the documentation of this file.
1
7
8#ifndef GALAXY_CORE_SETTINGS_HPP_
9#define GALAXY_CORE_SETTINGS_HPP_
10
11#include <filesystem>
12
13namespace galaxy
14{
18 struct Settings
19 {
20 public:
24 static auto set_config_to_default() -> void;
25
29 static auto set_settings_from_config() -> void;
30
36 [[nodiscard]]
37 static auto log_dir() noexcept -> const std::string&;
38
44 [[nodiscard]]
45 static auto window_width() noexcept -> int;
46
52 [[nodiscard]]
53 static auto window_height() noexcept -> int;
54
60 [[nodiscard]]
61 static auto title() noexcept -> const std::string&;
62
68 [[nodiscard]]
69 static auto vsync() noexcept -> bool;
70
76 [[nodiscard]]
77 static auto window_resizable() noexcept -> bool;
78
84 [[nodiscard]]
85 static auto decoration() noexcept -> bool;
86
92 [[nodiscard]]
93 static auto fullscreen() noexcept -> bool;
94
102 [[nodiscard]]
103 static auto maximized() noexcept -> bool;
104
112 [[nodiscard]]
113 static auto minimized() noexcept -> bool;
114
120 [[nodiscard]]
121 static auto borderless_fullscreen() noexcept -> bool;
122
128 [[nodiscard]]
129 static auto window_icon() noexcept -> const std::string&;
130
136 [[nodiscard]]
137 static auto ontop() noexcept -> bool;
138
144 [[nodiscard]]
145 static auto root_dir() noexcept -> std::filesystem::path;
146
152 [[nodiscard]]
153 static auto assets_dir() noexcept -> std::filesystem::path;
159 [[nodiscard]]
160 static auto asset_pack() noexcept -> const std::string&;
161
167 [[nodiscard]]
168 static auto use_loose_assets() noexcept -> bool;
169
175 [[nodiscard]]
176 static auto assets_dir_music() noexcept -> const std::string&;
177
183 [[nodiscard]]
184 static auto assets_dir_sfx() noexcept -> const std::string&;
185
191 [[nodiscard]]
192 static auto assets_dir_voice() noexcept -> const std::string&;
193
199 [[nodiscard]]
200 static auto assets_dir_font() noexcept -> const std::string&;
201
207 [[nodiscard]]
208 static auto assets_dir_script() noexcept -> const std::string&;
209
215 [[nodiscard]]
216 static auto assets_dir_shaders() noexcept -> const std::string&;
217
223 [[nodiscard]]
224 static auto assets_dir_animation() noexcept -> const std::string&;
225
231 [[nodiscard]]
232 static auto assets_dir_texture() noexcept -> const std::string&;
233
239 [[nodiscard]]
240 static auto assets_dir_prefabs() noexcept -> const std::string&;
241
247 [[nodiscard]]
248 static auto assets_dir_maps() noexcept -> const std::string&;
249
255 [[nodiscard]]
256 static auto assets_dir_video() noexcept -> const std::string&;
257
263 [[nodiscard]]
264 static auto assets_dir_ui() noexcept -> const std::string&;
265
271 [[nodiscard]]
272 static auto cursor_locked() noexcept -> bool;
273
279 [[nodiscard]]
280 static auto cursor_show() noexcept -> bool;
281
282 private:
283 inline static int s_window_width;
284 inline static int s_window_height;
285 inline static std::string s_title;
286 inline static bool s_vsync;
287 inline static bool s_resizable;
288 inline static bool s_decoration;
289 inline static bool s_fullscreen;
290 inline static bool s_maximized;
291 inline static bool s_minimized;
292 inline static bool s_borderless;
293 inline static std::string s_window_icon;
294 inline static bool s_ontop;
295
296 inline static std::filesystem::path s_assets_dir;
297 inline static std::string s_asset_pack;
298 inline static bool s_use_loose_assets;
299 inline static std::string s_assets_music;
300 inline static std::string s_assets_sfx;
301 inline static std::string s_assets_voice;
302 inline static std::string s_assets_font;
303 inline static std::string s_assets_script;
304 inline static std::string s_assets_shaders;
305 inline static std::string s_assets_animation;
306 inline static std::string s_assets_texture;
307 inline static std::string s_assets_prefabs;
308 inline static std::string s_assets_maps;
309 inline static std::string s_assets_video;
310 inline static std::string s_assets_ui;
311
312 inline static bool s_cursor_locked;
313 inline static bool s_cursor_show;
314 };
315} // namespace galaxy
316
317/*
318*
324 [[nodiscard]]
325 static auto cursor_icon() noexcept -> const std::string&;
326
332 [[nodiscard]]
333 static auto cursor_hotspot() noexcept -> const glm::ivec2&;
334
340 [[nodiscard]]
341 static auto audio_freq() noexcept -> int;
342
348 [[nodiscard]]
349 static auto ansiotrophy() noexcept -> int;
350
356 [[nodiscard]]
357 static auto mipmap() noexcept -> bool;
358
364 [[nodiscard]]
365 static auto texture_filter() noexcept -> GLTextureFilter;
366
372 [[nodiscard]]
373 static auto max_quads() noexcept -> int;
374
375
376
382 [[nodiscard]]
383 static auto version() noexcept -> const std::string&;
384
390 [[nodiscard]]
391 static auto identifier() noexcept -> const std::string&;
392
398 [[nodiscard]]
399 static auto creator() noexcept -> const std::string&;
400
406 [[nodiscard]]
407 static auto copyright() noexcept -> const std::string&;
408
414 [[nodiscard]]
415 static auto website() noexcept -> const std::string&;
416
417
418
419
420
426 [[nodiscard]]
427 static auto editor_dir() noexcept -> std::filesystem::path;
428
429*/
430
431/*
432
433
434
435
436
437
438
439 inline static std::string s_cursor_icon;
440 inline static glm::ivec2 s_cursor_hotspot;
441
442 inline static int s_audio_freq;
443
444 inline static int s_ansio;
445 inline static bool s_mipmap;
446 inline static GLTextureFilter s_filtering;
447 inline static int s_max_quads;
448
449
450
451 inline static std::string s_version;
452 inline static std::string s_identifier;
453 inline static std::string s_creator;
454 inline static std::string s_copyright;
455 inline static std::string s_website;
456 inline static std::filesystem::path s_editor_dir;
457
458
459*/
460
461/*
462// config.restore<int>("flag_bitset_count", 8, "misc");
463
464// config.restore<float>("world_to_box2d", 0.01f, "physics");
465// config.restore<float>("box2d_to_world", 100.0f, "physics");
466// config.restore<int>("flag_bitset_count", 8, "misc");
467
468// config.restore<float>("world_to_box2d", 0.01f, "physics");
469// config.restore<float>("box2d_to_world", 100.0f, "physics");
470
471// config.restore<int>("ansiotrophic_filtering", 16, "window");
472// config.restore<bool>("highdpi", false, "window");
473// s_flag_bitset_count = config.get<int>("flag_bitset_count", "misc");
474config.restore<int>("window_width", 1920, "window");
475config.restore<int>("window_height", 1080, "window");
476config.restore<int>("frame_width", 640, "window");
477config.restore<int>("frame_height", 360, "window");
478
479// s_world_to_box2d = config.get<float>("world_to_box2d", "physics");
480// s_box2d_to_world = config.get<float>("box2d_to_world", "physics");
481// s_ansio_filtering = config.get<int>("ansiotrophic_filtering", "window");
482// s_highdpi = config.get<bool>("highdpi", "window");
486//[[nodiscard]]
487// static auto flag_bitset_count() noexcept -> int;
488
492//[[nodiscard]]
493// static auto world_to_box2d() noexcept -> float;
494
498//[[nodiscard]]
499// static auto box2d_to_world() noexcept -> float;
500
501
502
506//[[nodiscard]]
507// static auto highdpi() noexcept -> bool;
508
509// inline static int s_flag_bitset_count;
510
511// inline static float s_world_to_box2d;
512// inline static float s_box2d_to_world;
513
514// inline static bool s_highdpi;
515
516config.restore<float>("ui_font_size", 14.0f);
517config.restore<std::string>("default_lang", "en_au");
518
519config.restore<float>("sfx_volume", 1.0f, "audio");
520config.restore<float>("music_volume", 1.0f, "audio");
521config.restore<float>("dialogue_volume", 1.0f, "audio");
522config.restore<int>("listener_count", 1, "audio");
523
524
525config.restore<bool>("smaa", false, "graphics.effects");
526config.restore<bool>("sharpen", false, "graphics.effects");
527config.restore<bool>("gamma_correction", false, "graphics.effects");
528config.restore<bool>("chromatic_abberation", false, "graphics.effects");
529config.restore<bool>("gaussian_blur", false, "graphics.effects");
530config.restore<bool>("film_grain", false, "graphics.effects");
531
532config.restore<int>("camera_foward", input::key_to_int(input::Keys::KEY_W), "input");
533config.restore<int>("camera_backward", input::key_to_int(input::Keys::KEY_S), "input");
534config.restore<int>("camera_left", input::key_to_int(input::Keys::KEY_A), "input");
535config.restore<int>("camera_right", input::key_to_int(input::Keys::KEY_D), "input");
536config.restore<int>("camera_rotate_left", input::key_to_int(input::Keys::KEY_Q), "input");
537config.restore<int>("camera_rotate_right", input::key_to_int(input::Keys::KEY_E), "input");
538
542// #define GALAXY_ENTITY_SIZE std::uint64_t
543*/
544
545#endif
Application.hpp galaxy.
Helper class to encapsulate our global settings we want to quickly access across app.
Definition Settings.hpp:19
static bool s_vsync
Definition Settings.hpp:286
static auto window_icon() noexcept -> const std::string &
Window icon file in vfs.
Definition Settings.cpp:193
static std::string s_asset_pack
Definition Settings.hpp:297
static auto root_dir() noexcept -> std::filesystem::path
Current root directory of application, unless it has been changed.
Definition Settings.cpp:203
static std::string s_title
Definition Settings.hpp:285
static std::string s_assets_video
Definition Settings.hpp:309
static std::string s_assets_prefabs
Definition Settings.hpp:307
static std::string s_assets_music
Definition Settings.hpp:299
static auto window_height() noexcept -> int
Window creation height.
Definition Settings.cpp:148
static auto log_dir() noexcept -> const std::string &
Current root directory of application, unless it has been changed.
Definition Settings.cpp:137
static auto fullscreen() noexcept -> bool
Is window started fullscreen.
Definition Settings.cpp:173
static auto assets_dir_prefabs() noexcept -> const std::string &
Prefab asset location.
Definition Settings.cpp:263
static auto assets_dir_texture() noexcept -> const std::string &
Textures asset location.
Definition Settings.cpp:258
static auto vsync() noexcept -> bool
Vsync control.
Definition Settings.cpp:158
static auto minimized() noexcept -> bool
Is window started minimized?
Definition Settings.cpp:183
static auto assets_dir_voice() noexcept -> const std::string &
Voice asset location.
Definition Settings.cpp:233
static auto cursor_locked() noexcept -> bool
Is the cursor grabbed.
Definition Settings.cpp:283
static int s_window_height
Definition Settings.hpp:284
static auto window_width() noexcept -> int
Window creation width.
Definition Settings.cpp:143
static bool s_use_loose_assets
Definition Settings.hpp:298
static auto assets_dir_shaders() noexcept -> const std::string &
Shaders asset location.
Definition Settings.cpp:248
static std::string s_assets_sfx
Definition Settings.hpp:300
static bool s_borderless
Definition Settings.hpp:292
static bool s_cursor_locked
Definition Settings.hpp:312
static std::string s_assets_script
Definition Settings.hpp:303
static auto assets_dir_ui() noexcept -> const std::string &
UI asset location.
Definition Settings.cpp:278
static auto set_settings_from_config() -> void
Set all our settings using the provided config file.
Definition Settings.cpp:80
static auto use_loose_assets() noexcept -> bool
Should asset data be read from pack or assets dir.
Definition Settings.cpp:218
static std::string s_assets_texture
Definition Settings.hpp:306
static bool s_resizable
Definition Settings.hpp:287
static auto assets_dir_animation() noexcept -> const std::string &
Animation data location.
Definition Settings.cpp:253
static auto assets_dir_script() noexcept -> const std::string &
Scripts asset location.
Definition Settings.cpp:243
static auto assets_dir_music() noexcept -> const std::string &
Music asset location.
Definition Settings.cpp:223
static bool s_decoration
Definition Settings.hpp:288
static int s_window_width
Definition Settings.hpp:283
static auto window_resizable() noexcept -> bool
Is the window resizable.
Definition Settings.cpp:163
static bool s_fullscreen
Definition Settings.hpp:289
static auto maximized() noexcept -> bool
Is window started maximized?
Definition Settings.cpp:178
static auto title() noexcept -> const std::string &
Game title.
Definition Settings.cpp:153
static std::string s_assets_voice
Definition Settings.hpp:301
static auto cursor_show() noexcept -> bool
Is the mouse cursor visible or not.
Definition Settings.cpp:288
static auto assets_dir() noexcept -> std::filesystem::path
Main data directory.
Definition Settings.cpp:208
static auto ontop() noexcept -> bool
Should the window always be on top.
Definition Settings.cpp:198
static auto asset_pack() noexcept -> const std::string &
Name of packed assets file.
Definition Settings.cpp:213
static std::filesystem::path s_assets_dir
Definition Settings.hpp:296
static auto borderless_fullscreen() noexcept -> bool
Is window in borderless fullscreen?
Definition Settings.cpp:188
static std::string s_assets_maps
Definition Settings.hpp:308
static auto assets_dir_sfx() noexcept -> const std::string &
SFX asset location.
Definition Settings.cpp:228
static auto assets_dir_maps() noexcept -> const std::string &
Maps asset location.
Definition Settings.cpp:268
static bool s_maximized
Definition Settings.hpp:290
static std::string s_assets_shaders
Definition Settings.hpp:304
static bool s_cursor_show
Definition Settings.hpp:313
static std::string s_assets_animation
Definition Settings.hpp:305
static auto set_config_to_default() -> void
Restore all config settings to default.
Definition Settings.cpp:23
static std::string s_assets_font
Definition Settings.hpp:302
static std::string s_assets_ui
Definition Settings.hpp:310
static auto assets_dir_video() noexcept -> const std::string &
Video asset location.
Definition Settings.cpp:273
static bool s_minimized
Definition Settings.hpp:291
static bool s_ontop
Definition Settings.hpp:294
static auto assets_dir_font() noexcept -> const std::string &
Font asset location.
Definition Settings.cpp:238
static auto decoration() noexcept -> bool
Controls if a window has a border around it (including titlebar).
Definition Settings.cpp:168
static std::string s_window_icon
Definition Settings.hpp:293