summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
diff options
context:
space:
mode:
authorScott Mansell <phiren@gmail.com>2015-11-04 14:35:23 +1300
committerScott Mansell <phiren@gmail.com>2015-11-04 14:35:23 +1300
commit05b06b7a21c5d442906fdc66f96945ecf4f5fc39 (patch)
treea57238c7c19c2e485456b47ce980ca44bd67b27f /Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
parente161e714c76e64d7dee98c93df6e143eae73b41e (diff)
parent39313152ba8fc0e8c30b56b40063a2ec3b5dd57b (diff)
Merge pull request #3227 from Tilka/sizeof
OGL: don't hardcode buffer sizes
Diffstat (limited to 'Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp')
-rw-r--r--Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp19
1 files changed, 7 insertions, 12 deletions
diff --git a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
index 93f6097f00..56eb0e1e60 100644
--- a/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
+++ b/Source/Core/VideoBackends/OGL/ProgramShaderCache.cpp
@@ -40,7 +40,7 @@ UidChecker<PixelShaderUid, ShaderCode> ProgramShaderCache::pixel_uid_checker;
UidChecker<VertexShaderUid, ShaderCode> ProgramShaderCache::vertex_uid_checker;
UidChecker<GeometryShaderUid, ShaderCode> ProgramShaderCache::geometry_uid_checker;
-static char s_glsl_header[1024] = "";
+static std::string s_glsl_header = "";
static std::string GetGLSLVersionString()
{
@@ -91,14 +91,10 @@ void SHADER::SetProgramVariables()
// Bind Texture Samplers
for (int a = 0; a <= 9; ++a)
{
- char name[10];
- if (a < 8)
- snprintf(name, 8, "samp[%d]", a);
- else
- snprintf(name, 8, "samp%d", a);
+ std::string name = StringFromFormat(a < 8 ? "samp[%d]" : "samp%d", a);
// Still need to get sampler locations since we aren't binding them statically in the shaders
- int loc = glGetUniformLocation(glprogid, name);
+ int loc = glGetUniformLocation(glprogid, name.c_str());
if (loc != -1)
glUniform1i(loc, a);
}
@@ -129,9 +125,8 @@ void SHADER::SetProgramBindings()
for (int i = 0; i < 8; i++)
{
- char attrib_name[8];
- snprintf(attrib_name, 8, "tex%d", i);
- glBindAttribLocation(glprogid, SHADER_TEXTURE0_ATTRIB+i, attrib_name);
+ std::string attrib_name = StringFromFormat("tex%d", i);
+ glBindAttribLocation(glprogid, SHADER_TEXTURE0_ATTRIB+i, attrib_name.c_str());
}
}
@@ -342,7 +337,7 @@ GLuint ProgramShaderCache::CompileSingleShader(GLuint type, const char* code)
{
GLuint result = glCreateShader(type);
- const char *src[] = {s_glsl_header, code};
+ const char *src[] = {s_glsl_header.c_str(), code};
glShaderSource(result, 2, src, nullptr);
glCompileShader(result);
@@ -558,7 +553,7 @@ void ProgramShaderCache::CreateHeader()
}
}
- snprintf(s_glsl_header, sizeof(s_glsl_header),
+ s_glsl_header = StringFromFormat(
"%s\n"
"%s\n" // ubo
"%s\n" // early-z