From 261250f0748f9f33ebc2b48c518fe99811c9d2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Tue, 11 Jun 2013 00:53:22 +0200 Subject: [PATCH] Shaders: fix port of *Vector shaders to old GLSL. Texture layer binding was never set and there were various GLSL compilation errors. --- src/Shaders/DistanceFieldVector.cpp | 8 ++++++++ src/Shaders/DistanceFieldVector.frag | 5 +++-- src/Shaders/Vector.cpp | 4 +++- src/Shaders/Vector.frag | 5 +++-- 4 files changed, 17 insertions(+), 5 deletions(-) diff --git a/src/Shaders/DistanceFieldVector.cpp b/src/Shaders/DistanceFieldVector.cpp index da1e903da..506505f77 100644 --- a/src/Shaders/DistanceFieldVector.cpp +++ b/src/Shaders/DistanceFieldVector.cpp @@ -85,8 +85,16 @@ template DistanceFieldVector::DistanceFieldV #ifndef MAGNUM_TARGET_GLES if(!Context::current()->isExtensionSupported()) + #endif + { AbstractShaderProgram::setUniform(AbstractShaderProgram::uniformLocation("vectorTexture"), AbstractVector::VectorTextureLayer); + } + + /* Set defaults in OpenGL ES (for desktop they are set in shader code itself) */ + #ifdef MAGNUM_TARGET_GLES + setOutlineRange(0.5f, 1.0f); + setSmoothness(0.04f); #endif } diff --git a/src/Shaders/DistanceFieldVector.frag b/src/Shaders/DistanceFieldVector.frag index 1e0ae9f1f..1f525eca7 100644 --- a/src/Shaders/DistanceFieldVector.frag +++ b/src/Shaders/DistanceFieldVector.frag @@ -25,6 +25,7 @@ #ifndef NEW_GLSL #define in varying #define fragmentColor gl_FragColor +#define texture texture2D #endif #ifndef GL_ES @@ -52,10 +53,10 @@ layout(binding = 16) uniform sampler2D vectorTexture; uniform lowp sampler2D vectorTexture; #endif -in vec2 fragmentTextureCoordinates; +in mediump vec2 fragmentTextureCoordinates; #ifdef NEW_GLSL -out vec4 fragmentColor; +out lowp vec4 fragmentColor; #endif void main() { diff --git a/src/Shaders/Vector.cpp b/src/Shaders/Vector.cpp index c6cd27079..86181baa0 100644 --- a/src/Shaders/Vector.cpp +++ b/src/Shaders/Vector.cpp @@ -82,8 +82,10 @@ template Vector::Vector(): transformationPro #ifndef MAGNUM_TARGET_GLES if(!Context::current()->isExtensionSupported()) - AbstractShaderProgram::setUniform(AbstractShaderProgram::uniformLocation("vectorTexture"), AbstractVector::VectorTextureLayer); #endif + { + AbstractShaderProgram::setUniform(AbstractShaderProgram::uniformLocation("vectorTexture"), AbstractVector::VectorTextureLayer); + } } template class Vector<2>; diff --git a/src/Shaders/Vector.frag b/src/Shaders/Vector.frag index 8384499a7..8dd88fd4c 100644 --- a/src/Shaders/Vector.frag +++ b/src/Shaders/Vector.frag @@ -25,6 +25,7 @@ #ifndef NEW_GLSL #define in varying #define fragmentColor gl_FragColor +#define texture texture2D #endif #ifdef EXPLICIT_UNIFORM_LOCATION @@ -39,10 +40,10 @@ layout(binding = 16) uniform sampler2D vectorTexture; uniform lowp sampler2D vectorTexture; #endif -in vec2 fragmentTextureCoordinates; +in mediump vec2 fragmentTextureCoordinates; #ifdef NEW_GLSL -out vec4 fragmentColor; +out lowp vec4 fragmentColor; #endif void main() {