summaryrefslogtreecommitdiff
path: root/Source/Core/VideoCommon/TextureConverterShaderGen.cpp
diff options
context:
space:
mode:
authorJonathan Hamilton <jtrhamilton@gmail.com>2017-12-10 12:07:42 -0800
committerJonathan Hamilton <jtrhamilton@gmail.com>2017-12-12 22:01:10 +0000
commita38103afbf78bf30be3dd9ecf15637aefb8695a9 (patch)
treeb70e3d73e6305ad0312ebff1bcb165f6d71c6813 /Source/Core/VideoCommon/TextureConverterShaderGen.cpp
parenta70c03a1c0a6fce6724a323db3bdc41d8b905090 (diff)
Fix GLES GPU texture conversion shader
GLES doesn't support C-style array initialisers, so stuff like: Type var[2] = { VALUE_A, VALUE_B }; isn't supported in GLES (it was added in GL_ARB_shading_language_420pack). The texture conversion shader used this, so would fail to compile on GLES.
Diffstat (limited to 'Source/Core/VideoCommon/TextureConverterShaderGen.cpp')
-rw-r--r--Source/Core/VideoCommon/TextureConverterShaderGen.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp
index 5133555980..39141edb21 100644
--- a/Source/Core/VideoCommon/TextureConverterShaderGen.cpp
+++ b/Source/Core/VideoCommon/TextureConverterShaderGen.cpp
@@ -179,14 +179,13 @@ ShaderCode GenerateShader(APIType api_type, const UidData* uid_data)
color_mask[4] = color_mask[5] = color_mask[6] = color_mask[7] = 1.0f / 15.0f;
}
}
- out.Write(" const float4 colmat[7] = {\n");
+ out.Write(" float4 colmat[7];\n");
for (size_t i = 0; i < colmat.size() / 4; i++)
{
- out.Write(" float4(%f, %f, %f, %f)%s\n", colmat[i * 4 + 0], colmat[i * 4 + 1],
- colmat[i * 4 + 2], colmat[i * 4 + 3], i < 7 ? "," : "");
+ out.Write(" colmat[%zu] = float4(%f, %f, %f, %f);\n", i, colmat[i * 4 + 0],
+ colmat[i * 4 + 1], colmat[i * 4 + 2], colmat[i * 4 + 3]);
}
- out.Write(" };\n"
- " texcol = floor(texcol * colmat[5]) * colmat[6];\n"
+ out.Write(" texcol = floor(texcol * colmat[5]) * colmat[6];\n"
" ocol0 = float4(dot(texcol, colmat[0]), dot(texcol, colmat[1]), dot(texcol, "
"colmat[2]), dot(texcol, colmat[3])) + colmat[4];\n");
break;