mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-10-01 14:58:14 +00:00
Postshader: Don't save default setting values.
This way the defaults can change in the future without problems.
This commit is contained in:
1 parent
ff4971ff62
commit
f202029d0b
4 files changed
+24
-12
No files matched your search
@@ -174,12 +174,6 @@ void LoadPostShaderInfo(Draw::DrawContext *draw, const std::vector<Path> &direct
|
||||
section.Get(StringFromFormat("SettingMinValue%d", i + 1).c_str(), &setting.minValue, -1.0f);
|
||||
section.Get(StringFromFormat("SettingMaxValue%d", i + 1).c_str(), &setting.maxValue, 1.0f);
|
||||
section.Get(StringFromFormat("SettingStep%d", i + 1).c_str(), &setting.step, 0.01f);
|
||||
|
||||
// Populate the default setting value.
|
||||
std::string section = StringFromFormat("%sSettingValue%d", info.section.c_str(), i + 1);
|
||||
if (!setting.name.empty() && g_Config.mPostShaderSetting.find(section) == g_Config.mPostShaderSetting.end()) {
|
||||
g_Config.mPostShaderSetting.emplace(section, setting.value);
|
||||
}
|
||||
}
|
||||
|
||||
// Let's ignore shaders we can't support. TODO: Not a very good check
|
||||
|
||||
@@ -172,6 +172,14 @@ void PresentationCommon::GetCardboardSettings(CardboardSettings *cardboardSettin
|
||||
cardboardSettings->screenHeight = cardboardScreenHeight;
|
||||
}
|
||||
|
||||
static float GetShaderSettingValue(const ShaderInfo *shaderInfo, int i, const char *nameSuffix) {
|
||||
std::string key = shaderInfo->section + nameSuffix;
|
||||
auto it = g_Config.mPostShaderSetting.find(key);
|
||||
if (it != g_Config.mPostShaderSetting.end())
|
||||
return it->second;
|
||||
return shaderInfo->settings[i].value;
|
||||
}
|
||||
|
||||
void PresentationCommon::CalculatePostShaderUniforms(int bufferWidth, int bufferHeight, int targetWidth, int targetHeight, const ShaderInfo *shaderInfo, PostShaderUniforms *uniforms) const {
|
||||
float u_delta = 1.0f / bufferWidth;
|
||||
float v_delta = 1.0f / bufferHeight;
|
||||
@@ -196,10 +204,10 @@ void PresentationCommon::CalculatePostShaderUniforms(int bufferWidth, int buffer
|
||||
uniforms->gl_HalfPixel[0] = u_pixel_delta * 0.5f;
|
||||
uniforms->gl_HalfPixel[1] = v_pixel_delta * 0.5f;
|
||||
|
||||
uniforms->setting[0] = g_Config.mPostShaderSetting[shaderInfo->section + "SettingValue1"];
|
||||
uniforms->setting[1] = g_Config.mPostShaderSetting[shaderInfo->section + "SettingValue2"];
|
||||
uniforms->setting[2] = g_Config.mPostShaderSetting[shaderInfo->section + "SettingValue3"];
|
||||
uniforms->setting[3] = g_Config.mPostShaderSetting[shaderInfo->section + "SettingValue4"];
|
||||
uniforms->setting[0] = GetShaderSettingValue(shaderInfo, 0, "SettingValue1");
|
||||
uniforms->setting[1] = GetShaderSettingValue(shaderInfo, 1, "SettingValue2");
|
||||
uniforms->setting[2] = GetShaderSettingValue(shaderInfo, 2, "SettingValue3");
|
||||
uniforms->setting[3] = GetShaderSettingValue(shaderInfo, 3, "SettingValue4");
|
||||
}
|
||||
|
||||
static std::string ReadShaderSrc(const Path &filename) {
|
||||
|
||||
@@ -418,7 +418,12 @@ void DisplayLayoutScreen::CreateViews() {
|
||||
auto &setting = shaderInfo->settings[i];
|
||||
if (!setting.name.empty()) {
|
||||
// This map lookup will create the setting in the mPostShaderSetting map if it doesn't exist, with a default value of 0.0.
|
||||
auto &value = g_Config.mPostShaderSetting[StringFromFormat("%sSettingValue%d", shaderInfo->section.c_str(), i + 1)];
|
||||
std::string key = StringFromFormat("%sSettingValue%d", shaderInfo->section.c_str(), i + 1);
|
||||
bool keyExisted = g_Config.mPostShaderSetting.find(key) != g_Config.mPostShaderSetting.end();
|
||||
auto &value = g_Config.mPostShaderSetting[key];
|
||||
if (!keyExisted)
|
||||
value = setting.value;
|
||||
|
||||
if (duplicated) {
|
||||
auto sliderName = StringFromFormat("%s %s", ps->T(setting.name), ps->T("(duplicated setting, previous slider will be used)"));
|
||||
PopupSliderChoiceFloat *settingValue = settingContainer->Add(new PopupSliderChoiceFloat(&value, setting.minValue, setting.maxValue, sliderName, setting.step, screenManager()));
|
||||
|
||||
@@ -1817,7 +1817,12 @@ void DeveloperToolsScreen::CreateViews() {
|
||||
for (size_t i = 0; i < ARRAY_SIZE(shaderInfo->settings); ++i) {
|
||||
auto &setting = shaderInfo->settings[i];
|
||||
if (!setting.name.empty()) {
|
||||
auto &value = g_Config.mPostShaderSetting[StringFromFormat("%sSettingValue%d", shaderInfo->section.c_str(), i + 1)];
|
||||
std::string key = StringFromFormat("%sSettingValue%d", shaderInfo->section.c_str(), i + 1);
|
||||
bool keyExisted = g_Config.mPostShaderSetting.find(key) != g_Config.mPostShaderSetting.end();
|
||||
auto &value = g_Config.mPostShaderSetting[key];
|
||||
if (!keyExisted)
|
||||
value = setting.value;
|
||||
|
||||
PopupSliderChoiceFloat *settingValue = list->Add(new PopupSliderChoiceFloat(&value, setting.minValue, setting.maxValue, ps->T(setting.name), setting.step, screenManager()));
|
||||
settingValue->SetEnabledFunc([=] {
|
||||
return !g_Config.bSkipBufferEffects && enableStereo();
|
||||
|
||||
Reference in new issue
Block a user