Duckstation/src/core/settings.h

55 lines
1.2 KiB
C
Raw Normal View History

#pragma once
#include "types.h"
#include <optional>
struct Settings
{
enum class GPURenderer
{
HardwareD3D11,
HardwareOpenGL,
2019-11-07 13:52:19 +00:00
Software,
Count
};
Settings();
2019-10-27 11:22:33 +00:00
bool start_paused = false;
2019-11-07 13:52:19 +00:00
bool speed_limiter_enabled = true;
2019-10-27 11:22:33 +00:00
GPURenderer gpu_renderer = GPURenderer::Software;
u32 gpu_resolution_scale = 1;
u32 max_gpu_resolution_scale = 1;
bool gpu_vsync = true;
2019-11-01 14:31:25 +00:00
bool gpu_true_color = false;
bool display_linear_filtering = true;
2019-11-07 13:52:19 +00:00
bool display_fullscreen = false;
struct DebugSettings
{
bool show_gpu_state = false;
bool show_vram = false;
bool dump_cpu_to_vram_copies = false;
bool dump_vram_to_cpu_copies = false;
bool show_cdrom_state = false;
bool show_spu_state = false;
bool show_timers_state = false;
bool show_mdec_state = false;
} debugging;
// TODO: Controllers, memory cards, etc.
2019-10-27 06:45:23 +00:00
std::string bios_path;
2019-11-07 13:52:19 +00:00
std::string memory_card_a_path;
std::string memory_card_b_path;
void SetDefaults();
void Load(const char* filename);
bool Save(const char* filename) const;
static std::optional<GPURenderer> ParseRendererName(const char* str);
static const char* GetRendererName(GPURenderer renderer);
2019-11-07 13:52:19 +00:00
static const char* GetRendererDisplayName(GPURenderer renderer);
};