mirror of
https://github.com/Mr-Wiseguy/Zelda64Recomp.git
synced 2024-11-17 03:19:15 +01:00
23eb6b7eea
* 64 bit framebuffer for rt64 * Remove mention of motion blur cap from readme * Add graphics.json option to control high precision framebuffers, disable clamping alpha for accumulation blur when using high precision FBs * Increase dither noise strength at higher resolutions to make it more noticeable --------- Co-authored-by: Mr-Wiseguy <mrwiseguyromhacking@gmail.com>
87 lines
2.0 KiB
C++
87 lines
2.0 KiB
C++
#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
|
|
};
|
|
enum class HUDRatioMode {
|
|
Original,
|
|
Clamp16x9,
|
|
Full,
|
|
OptionCount
|
|
};
|
|
enum class GraphicsApi {
|
|
Auto,
|
|
D3D12,
|
|
Vulkan,
|
|
OptionCount
|
|
};
|
|
enum class HighPrecisionFramebuffer {
|
|
Auto,
|
|
On,
|
|
Off,
|
|
OptionCount
|
|
};
|
|
|
|
struct GraphicsConfig {
|
|
Resolution res_option;
|
|
WindowMode wm_option;
|
|
HUDRatioMode hr_option;
|
|
GraphicsApi api_option;
|
|
RT64::UserConfiguration::AspectRatio ar_option;
|
|
RT64::UserConfiguration::Antialiasing msaa_option;
|
|
RT64::UserConfiguration::RefreshRate rr_option;
|
|
HighPrecisionFramebuffer hpfb_option;
|
|
int rr_manual_value;
|
|
int ds_option;
|
|
bool developer_mode;
|
|
|
|
auto operator<=>(const GraphicsConfig& rhs) const = default;
|
|
};
|
|
|
|
void set_graphics_config(const GraphicsConfig& config);
|
|
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"}
|
|
});
|
|
|
|
NLOHMANN_JSON_SERIALIZE_ENUM(ultramodern::HUDRatioMode, {
|
|
{ultramodern::HUDRatioMode::Original, "Original"},
|
|
{ultramodern::HUDRatioMode::Clamp16x9, "Clamp16x9"},
|
|
{ultramodern::HUDRatioMode::Full, "Full"},
|
|
});
|
|
|
|
NLOHMANN_JSON_SERIALIZE_ENUM(ultramodern::GraphicsApi, {
|
|
{ultramodern::GraphicsApi::Auto, "Auto"},
|
|
{ultramodern::GraphicsApi::D3D12, "D3D12"},
|
|
{ultramodern::GraphicsApi::Vulkan, "Vulkan"},
|
|
});
|
|
|
|
NLOHMANN_JSON_SERIALIZE_ENUM(ultramodern::HighPrecisionFramebuffer, {
|
|
{ultramodern::HighPrecisionFramebuffer::Auto, "Auto"},
|
|
{ultramodern::HighPrecisionFramebuffer::On, "On"},
|
|
{ultramodern::HighPrecisionFramebuffer::Off, "Off"},
|
|
});
|
|
};
|
|
|
|
#endif
|