diff options
| author | Jonathan Hamilton <jtrhamilton@gmail.com> | 2017-12-10 12:07:42 -0800 |
|---|---|---|
| committer | Jonathan Hamilton <jtrhamilton@gmail.com> | 2017-12-12 22:01:10 +0000 |
| commit | a38103afbf78bf30be3dd9ecf15637aefb8695a9 (patch) | |
| tree | b70e3d73e6305ad0312ebff1bcb165f6d71c6813 /Source/Core/VideoCommon/TextureConverterShaderGen.cpp | |
| parent | a70c03a1c0a6fce6724a323db3bdc41d8b905090 (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.cpp | 9 |
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; |
