diff options
| author | Markus Wick <degasus@users.noreply.github.com> | 2015-12-28 10:09:11 +0100 |
|---|---|---|
| committer | Markus Wick <degasus@users.noreply.github.com> | 2015-12-28 10:09:11 +0100 |
| commit | 281860eafa65d7f65b02cc449ac94397d0f111f4 (patch) | |
| tree | 23cfbe61f97089c1806eeb1e1d249d0b43fa622a /Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp | |
| parent | cec1a759769bea2d7a224f99d6ee34ad9a602bed (diff) | |
| parent | c5f123a70b2bb9db5721383b07a7343b78693883 (diff) | |
Merge pull request #3400 from lioncash/shadergen
ShaderGen: Get rid of static buffers
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp')
| -rw-r--r-- | Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp | 14 |
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); |
