2024-01-01 05:09:14 +00:00
|
|
|
#ifndef __CONFIG_HPP__
|
|
|
|
#define __CONFIG_HPP__
|
|
|
|
|
|
|
|
#include "common/rt64_user_configuration.h"
|
|
|
|
|
|
|
|
namespace ultramodern {
|
|
|
|
enum class Resolution {
|
|
|
|
Original,
|
|
|
|
Original2x,
|
|
|
|
Auto,
|
|
|
|
OptionCount
|
|
|
|
};
|
|
|
|
enum class WindowMode {
|
|
|
|
Windowed,
|
|
|
|
Fullscreen,
|
|
|
|
OptionCount
|
|
|
|
};
|
|
|
|
|
|
|
|
struct GraphicsConfig {
|
|
|
|
Resolution res_option;
|
|
|
|
WindowMode wm_option;
|
|
|
|
RT64::UserConfiguration::AspectRatio ar_option;
|
|
|
|
RT64::UserConfiguration::Antialiasing msaa_option;
|
|
|
|
RT64::UserConfiguration::RefreshRate rr_option;
|
|
|
|
int rr_manual_value;
|
|
|
|
|
|
|
|
auto operator<=>(const GraphicsConfig& rhs) const = default;
|
|
|
|
};
|
|
|
|
|
2024-01-21 19:04:56 +00:00
|
|
|
void set_graphics_config(const GraphicsConfig& config);
|
2024-01-22 00:21:58 +00:00
|
|
|
GraphicsConfig get_graphics_config();
|
|
|
|
|
|
|
|
NLOHMANN_JSON_SERIALIZE_ENUM(ultramodern::Resolution, {
|
|
|
|
{ultramodern::Resolution::Original, "Original"},
|
|
|
|
{ultramodern::Resolution::Original2x, "Original2x"},
|
|
|
|
{ultramodern::Resolution::Auto, "Auto"},
|
|
|
|
});
|
|
|
|
|
|
|
|
NLOHMANN_JSON_SERIALIZE_ENUM(ultramodern::WindowMode, {
|
|
|
|
{ultramodern::WindowMode::Windowed, "Windowed"},
|
|
|
|
{ultramodern::WindowMode::Fullscreen, "Fullscreen"}
|
|
|
|
});
|
2024-01-01 05:09:14 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|