ui: Ambient Occlusion settings row
This commit is contained in:
parent
2cab1be8eb
commit
7f6a5b5b7c
2 changed files with 28 additions and 2 deletions
|
|
@ -115,6 +115,7 @@ class SimpleSettingsDialog final : public ImGuiDialog {
|
|||
char gamertag_buf_[32] = {};
|
||||
// Live setting values (hot cvars, applied and saved on change).
|
||||
bool renderer_native_ = true;
|
||||
bool ssao_ = true;
|
||||
bool mode_indicator_ = true;
|
||||
bool fps_counter_ = false;
|
||||
bool audio_mute_ = false;
|
||||
|
|
|
|||
|
|
@ -53,11 +53,12 @@ constexpr std::array<std::string_view, 7> kCoreSimpleSettingsCvars = {
|
|||
// Optional cvars persisted when the host defines them (HasCvar-gated: app
|
||||
// cvars like the native-renderer knobs don't exist in every embedder, and
|
||||
// backend/platform cvars don't exist in every build).
|
||||
constexpr std::array<std::string_view, 13> kOptionalSimpleSettingsCvars = {
|
||||
constexpr std::array<std::string_view, 14> kOptionalSimpleSettingsCvars = {
|
||||
"skate3_native_render_scene",
|
||||
"skate3_native_render_scene_msaa",
|
||||
"skate3_native_render_scene_shadows",
|
||||
"skate3_native_render_scene_shadow_tile",
|
||||
"skate3_native_render_scene_ssao",
|
||||
"skate3_native_render_mode_indicator",
|
||||
"show_fps_counter",
|
||||
"monitor",
|
||||
|
|
@ -867,6 +868,8 @@ void SimpleSettingsDialog::LoadSettingsFromCvars() {
|
|||
mnk_capture_mouse_ = rex::cvar::Query<bool>("mnk_capture_mouse");
|
||||
renderer_native_ =
|
||||
HasCvar("skate3_native_render_scene") && rex::cvar::Query<bool>("skate3_native_render_scene");
|
||||
ssao_ = HasCvar("skate3_native_render_scene_ssao") &&
|
||||
rex::cvar::Query<bool>("skate3_native_render_scene_ssao");
|
||||
mode_indicator_ = HasCvar("skate3_native_render_mode_indicator") &&
|
||||
rex::cvar::Query<bool>("skate3_native_render_mode_indicator");
|
||||
fps_counter_ = HasCvar("show_fps_counter") && rex::cvar::Query<bool>("show_fps_counter");
|
||||
|
|
@ -1203,7 +1206,8 @@ void SimpleSettingsDialog::BuildRows(std::vector<RowSpec>& rows, int category) {
|
|||
row.reset = [this] { tearing_ = TearingDefault(); };
|
||||
rows.push_back(std::move(row));
|
||||
}
|
||||
if (HasRendererChoice() || HasMsaaCvar() || HasShadowQualityCvars()) {
|
||||
if (HasRendererChoice() || HasMsaaCvar() || HasShadowQualityCvars() ||
|
||||
HasCvar("skate3_native_render_scene_ssao")) {
|
||||
header("Quality");
|
||||
}
|
||||
if (HasRendererChoice()) {
|
||||
|
|
@ -1276,6 +1280,27 @@ void SimpleSettingsDialog::BuildRows(std::vector<RowSpec>& rows, int category) {
|
|||
};
|
||||
rows.push_back(std::move(row));
|
||||
}
|
||||
if (HasCvar("skate3_native_render_scene_ssao")) {
|
||||
RowSpec row;
|
||||
row.kind = RowSpec::kEnum;
|
||||
row.label = "Ambient Occlusion";
|
||||
row.desc =
|
||||
"Soft contact shading where surfaces meet (under ledges, rails, "
|
||||
"vehicles, the skater). Native renderer only; applies "
|
||||
"immediately.";
|
||||
row.options = {"Off", "On"};
|
||||
row.flag = &ssao_;
|
||||
row.on_enum_change = [this](int value) {
|
||||
SetBoolCvar("skate3_native_render_scene_ssao", value != 0);
|
||||
SaveSimpleSettingsConfig(config_path_);
|
||||
};
|
||||
row.reset = [this] {
|
||||
ssao_ = CvarDefaultBool("skate3_native_render_scene_ssao", true);
|
||||
SetBoolCvar("skate3_native_render_scene_ssao", ssao_);
|
||||
SaveSimpleSettingsConfig(config_path_);
|
||||
};
|
||||
rows.push_back(std::move(row));
|
||||
}
|
||||
if (HasFieldOfViewCvar()) {
|
||||
header("Gameplay");
|
||||
RowSpec row;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue