From 877666e237f570f4ce2ad98c2c85e0347f806162 Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 18 Aug 2014 11:28:16 -0700 Subject: [PATCH] Fixed UV texture coordinate scale when using GL_ARB_texture_non_power_of_two --- src/render/opengl/SDL_shaders_gl.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/render/opengl/SDL_shaders_gl.c b/src/render/opengl/SDL_shaders_gl.c index d8f60d4a07a50..a831890ca779b 100644 --- a/src/render/opengl/SDL_shaders_gl.c +++ b/src/render/opengl/SDL_shaders_gl.c @@ -150,7 +150,7 @@ static const char *shader_source[NUM_SHADERS][2] = " yuv.x = texture2D(tex0, tcoord).r;\n" "\n" " // Get the U and V values \n" -" tcoord *= 0.5;\n" +" tcoord *= UVCoordScale;\n" " yuv.y = texture2D(tex1, tcoord).r;\n" " yuv.z = texture2D(tex2, tcoord).r;\n" "\n" @@ -201,7 +201,7 @@ static const char *shader_source[NUM_SHADERS][2] = " yuv.x = texture2D(tex0, tcoord).r;\n" "\n" " // Get the U and V values \n" -" tcoord *= 0.5;\n" +" tcoord *= UVCoordScale;\n" " yuv.yz = texture2D(tex1, tcoord).ra;\n" "\n" " // Do the color transform \n" @@ -251,7 +251,7 @@ static const char *shader_source[NUM_SHADERS][2] = " yuv.x = texture2D(tex0, tcoord).r;\n" "\n" " // Get the U and V values \n" -" tcoord *= 0.5;\n" +" tcoord *= UVCoordScale;\n" " yuv.yz = texture2D(tex1, tcoord).ar;\n" "\n" " // Do the color transform \n" @@ -318,7 +318,11 @@ CompileShaderProgram(GL_ShaderContext *ctx, int index, GL_ShaderData *data) if (ctx->GL_ARB_texture_rectangle_supported) { frag_defines = "#define sampler2D sampler2DRect\n" -"#define texture2D texture2DRect\n"; +"#define texture2D texture2DRect\n" +"#define UVCoordScale 0.5\n"; + } else { + frag_defines = +"#define UVCoordScale 1.0\n"; } /* Create one program object to rule them all */