PostProcessing: Move default pixel shader to PostProcessingShaderConfiguration.

Reduces code complexity and fixes a bug where the shader is not properly invalidated.
This commit is contained in:
Jules Blok
2015-01-25 23:08:49 +01:00
parent fc46d460f9
commit 5c4ee2f71e
2 changed files with 19 additions and 18 deletions

View File

@ -13,6 +13,8 @@
#include "VideoCommon/VideoConfig.h"
static const char s_default_shader[] = "void main() { SetOutput(Sample()); }\n";
PostProcessingShaderImplementation::PostProcessingShaderImplementation()
{
m_timer.Start();
@ -36,16 +38,23 @@ std::string PostProcessingShaderConfiguration::LoadShader(std::string shader)
std::string code;
std::string path = File::GetUserPath(D_SHADERS_IDX) + sub_dir + shader + ".glsl";
if (!File::Exists(path))
if (shader == "")
{
// Fallback to shared user dir
path = File::GetSysDirectory() + SHADERS_DIR DIR_SEP + sub_dir + shader + ".glsl";
code = s_default_shader;
}
if (!File::ReadFileToString(path, code))
else
{
ERROR_LOG(VIDEO, "Post-processing shader not found: %s", path.c_str());
return "";
if (!File::Exists(path))
{
// Fallback to shared user dir
path = File::GetSysDirectory() + SHADERS_DIR DIR_SEP + sub_dir + shader + ".glsl";
}
if (!File::ReadFileToString(path, code))
{
ERROR_LOG(VIDEO, "Post-processing shader not found: %s", path.c_str());
code = s_default_shader;
}
}
LoadOptions(code);