summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2015-12-26 16:00:23 -0500
committerLioncash <mathew1800@gmail.com>2015-12-26 17:01:54 -0500
commit8ce3a4aa7014c378d4121979f3fd10b9886d38bc (patch)
tree2b5221c8457b0ce489f165cb4cc926901ad32705 /Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
parentbe8410dcade41f4e1d69cbdbfc46dfce9635287f (diff)
ShaderGeneration: Get rid of static buffers
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp14
1 files changed, 7 insertions, 7 deletions
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
index 904f1aff06..fe43a1db38 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
@@ -230,7 +230,7 @@ SHADER* ProgramShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode, u32 primitive_
filename = StringFromFormat("%sps_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++);
SaveData(filename, pcode.GetBuffer());
- if (gcode.GetBuffer() != nullptr)
+ if (!gcode.GetBuffer().empty())
{
filename = StringFromFormat("%sgs_%04i.txt", File::GetUserPath(D_DUMP_IDX).c_str(), counter++);
SaveData(filename, gcode.GetBuffer());
@@ -252,17 +252,17 @@ SHADER* ProgramShaderCache::SetShader(DSTALPHA_MODE dstAlphaMode, u32 primitive_
return &last_entry->shader;
}
-bool ProgramShaderCache::CompileShader(SHADER& shader, const char* vcode, const char* pcode, const char* gcode)
+bool ProgramShaderCache::CompileShader(SHADER& shader, const std::string& vcode, const std::string& pcode, const std::string& gcode)
{
GLuint vsid = CompileSingleShader(GL_VERTEX_SHADER, vcode);
GLuint psid = CompileSingleShader(GL_FRAGMENT_SHADER, pcode);
// Optional geometry shader
GLuint gsid = 0;
- if (gcode)
+ if (!gcode.empty())
gsid = CompileSingleShader(GL_GEOMETRY_SHADER, gcode);
- if (!vsid || !psid || (gcode && !gsid))
+ if (!vsid || !psid || (!gcode.empty() && !gsid))
{
glDeleteShader(vsid);
glDeleteShader(psid);
@@ -304,7 +304,7 @@ bool ProgramShaderCache::CompileShader(SHADER& shader, const char* vcode, const
std::ofstream file;
OpenFStream(file, filename, std::ios_base::out);
file << s_glsl_header << vcode << s_glsl_header << pcode;
- if (gcode)
+ if (!gcode.empty())
file << s_glsl_header << gcode;
file << infoLog;
file.close();
@@ -334,11 +334,11 @@ bool ProgramShaderCache::CompileShader(SHADER& shader, const char* vcode, const
return true;
}
-GLuint ProgramShaderCache::CompileSingleShader(GLuint type, const char* code)
+GLuint ProgramShaderCache::CompileSingleShader(GLuint type, const std::string& code)
{
GLuint result = glCreateShader(type);
- const char *src[] = {s_glsl_header.c_str(), code};
+ const char *src[] = {s_glsl_header.c_str(), code.c_str()};
glShaderSource(result, 2, src, nullptr);
glCompileShader(result);