From ad3c04cdac94403a2e569c1a1ff077e97fc4cd1a Mon Sep 17 00:00:00 2001 From: Fabian Renn-Giles Date: Thu, 2 Apr 2015 17:43:12 +0100 Subject: [PATCH] Remove colour swizzle to fix inverted colour bug on Samsung phones --- .../opengl/juce_OpenGLGraphicsContext.cpp | 32 +++++++------------ 1 file changed, 12 insertions(+), 20 deletions(-) diff --git a/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp b/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp index 6aa593679d..d697b1692b 100644 --- a/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp +++ b/modules/juce_opengl/opengl/juce_OpenGLGraphicsContext.cpp @@ -453,12 +453,6 @@ public: {} }; - #if JUCE_ANDROID - #define JUCE_DECLARE_SWIZZLE_FUNCTION "\n" JUCE_MEDIUMP " vec4 swizzleRGBOrder (in " JUCE_MEDIUMP " vec4 c) { return vec4 (c.b, c.g, c.r, c.a); }\n" - #else - #define JUCE_DECLARE_SWIZZLE_FUNCTION "\n" JUCE_MEDIUMP " vec4 swizzleRGBOrder (in " JUCE_MEDIUMP " vec4 c) { return c; }\n" - #endif - #define JUCE_DECLARE_MASK_UNIFORMS "uniform sampler2D maskTexture;" \ "uniform ivec4 maskBounds;" #define JUCE_FRAGCOORD_TO_MASK_POS "vec2 ((pixelPos.x - float (maskBounds.x)) / float (maskBounds.z)," \ @@ -503,13 +497,13 @@ public: #define JUCE_DECLARE_RADIAL_UNIFORMS "uniform sampler2D gradientTexture;" JUCE_DECLARE_MATRIX_UNIFORM #define JUCE_MATRIX_TIMES_FRAGCOORD "(mat2 (matrix[0], matrix[3], matrix[1], matrix[4]) * pixelPos" \ " + vec2 (matrix[2], matrix[5]))" - #define JUCE_GET_TEXTURE_COLOUR "(frontColour.a * swizzleRGBOrder (texture2D (gradientTexture, vec2 (gradientPos, 0.5))))" + #define JUCE_GET_TEXTURE_COLOUR "(frontColour.a * texture2D (gradientTexture, vec2 (gradientPos, 0.5)))" struct RadialGradientProgram : public ShaderBase { RadialGradientProgram (OpenGLContext& context) : ShaderBase (context, JUCE_DECLARE_VARYING_PIXELPOS - JUCE_DECLARE_RADIAL_UNIFORMS JUCE_DECLARE_VARYING_COLOUR JUCE_DECLARE_SWIZZLE_FUNCTION + JUCE_DECLARE_RADIAL_UNIFORMS JUCE_DECLARE_VARYING_COLOUR "void main()" "{" JUCE_MEDIUMP " float gradientPos = length (" JUCE_MATRIX_TIMES_FRAGCOORD ");" @@ -526,7 +520,7 @@ public: RadialGradientMaskedProgram (OpenGLContext& context) : ShaderBase (context, JUCE_DECLARE_VARYING_PIXELPOS JUCE_DECLARE_RADIAL_UNIFORMS JUCE_DECLARE_VARYING_COLOUR - JUCE_DECLARE_MASK_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + JUCE_DECLARE_MASK_UNIFORMS "void main()" "{" JUCE_MEDIUMP " float gradientPos = length (" JUCE_MATRIX_TIMES_FRAGCOORD ");" @@ -561,7 +555,6 @@ public: { LinearGradient1Program (OpenGLContext& context) : ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (y2 - y1) / (x2 - x1), w = length - JUCE_DECLARE_SWIZZLE_FUNCTION "void main()" "{" JUCE_CALC_LINEAR_GRAD_POS1 @@ -577,7 +570,7 @@ public: { LinearGradient1MaskedProgram (OpenGLContext& context) : ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (y2 - y1) / (x2 - x1), w = length - JUCE_DECLARE_MASK_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + JUCE_DECLARE_MASK_UNIFORMS "void main()" "{" JUCE_CALC_LINEAR_GRAD_POS1 @@ -595,7 +588,6 @@ public: { LinearGradient2Program (OpenGLContext& context) : ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (x2 - x1) / (y2 - y1), y = y1, w = length - JUCE_DECLARE_SWIZZLE_FUNCTION "void main()" "{" JUCE_CALC_LINEAR_GRAD_POS2 @@ -611,7 +603,7 @@ public: { LinearGradient2MaskedProgram (OpenGLContext& context) : ShaderBase (context, JUCE_DECLARE_LINEAR_UNIFORMS // gradientInfo: x = x1, y = y1, z = (x2 - x1) / (y2 - y1), y = y1, w = length - JUCE_DECLARE_MASK_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + JUCE_DECLARE_MASK_UNIFORMS "void main()" "{" JUCE_CALC_LINEAR_GRAD_POS2 @@ -672,14 +664,14 @@ public: #define JUCE_DECLARE_IMAGE_UNIFORMS "uniform sampler2D imageTexture;" \ "uniform " JUCE_MEDIUMP " vec2 imageLimits;" \ JUCE_DECLARE_MATRIX_UNIFORM JUCE_DECLARE_VARYING_COLOUR JUCE_DECLARE_VARYING_PIXELPOS - #define JUCE_GET_IMAGE_PIXEL "swizzleRGBOrder (texture2D (imageTexture, vec2 (texturePos.x, 1.0 - texturePos.y)))" + #define JUCE_GET_IMAGE_PIXEL "texture2D (imageTexture, vec2 (texturePos.x, 1.0 - texturePos.y))" #define JUCE_CLAMP_TEXTURE_COORD JUCE_HIGHP " vec2 texturePos = clamp (" JUCE_MATRIX_TIMES_FRAGCOORD ", vec2 (0, 0), imageLimits);" #define JUCE_MOD_TEXTURE_COORD JUCE_HIGHP " vec2 texturePos = mod (" JUCE_MATRIX_TIMES_FRAGCOORD ", imageLimits);" struct ImageProgram : public ShaderBase { ImageProgram (OpenGLContext& context) - : ShaderBase (context, JUCE_DECLARE_VARYING_COLOUR JUCE_DECLARE_SWIZZLE_FUNCTION + : ShaderBase (context, JUCE_DECLARE_VARYING_COLOUR "uniform sampler2D imageTexture;" "varying " JUCE_HIGHP " vec2 texturePos;" "void main()" @@ -711,7 +703,7 @@ public: struct ImageMaskedProgram : public ShaderBase { ImageMaskedProgram (OpenGLContext& context) - : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_MASK_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_MASK_UNIFORMS "void main()" "{" JUCE_CLAMP_TEXTURE_COORD @@ -728,7 +720,7 @@ public: struct TiledImageProgram : public ShaderBase { TiledImageProgram (OpenGLContext& context) - : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS "void main()" "{" JUCE_MOD_TEXTURE_COORD @@ -743,7 +735,7 @@ public: struct TiledImageMaskedProgram : public ShaderBase { TiledImageMaskedProgram (OpenGLContext& context) - : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_MASK_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_MASK_UNIFORMS "void main()" "{" JUCE_MOD_TEXTURE_COORD @@ -760,7 +752,7 @@ public: struct CopyTextureProgram : public ShaderBase { CopyTextureProgram (OpenGLContext& context) - : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS "void main()" "{" JUCE_MOD_TEXTURE_COORD @@ -775,7 +767,7 @@ public: struct MaskTextureProgram : public ShaderBase { MaskTextureProgram (OpenGLContext& context) - : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS JUCE_DECLARE_SWIZZLE_FUNCTION + : ShaderBase (context, JUCE_DECLARE_IMAGE_UNIFORMS "void main()" "{" JUCE_HIGHP " vec2 texturePos = " JUCE_MATRIX_TIMES_FRAGCOORD ";"