diff options
Diffstat (limited to 'src/quick/scenegraph/shaders/smoothtexture_core.vert')
-rw-r--r-- | src/quick/scenegraph/shaders/smoothtexture_core.vert | 57 |
1 files changed, 0 insertions, 57 deletions
diff --git a/src/quick/scenegraph/shaders/smoothtexture_core.vert b/src/quick/scenegraph/shaders/smoothtexture_core.vert deleted file mode 100644 index 6821398e57..0000000000 --- a/src/quick/scenegraph/shaders/smoothtexture_core.vert +++ /dev/null @@ -1,57 +0,0 @@ -#version 150 core - -in vec4 vertex; -in vec2 multiTexCoord; -in vec2 vertexOffset; -in vec2 texCoordOffset; - -out vec2 texCoord; -out float vertexOpacity; - -uniform vec2 pixelSize; -uniform mat4 qt_Matrix; -uniform float opacity; - -void main() -{ - vec4 pos = qt_Matrix * vertex; - gl_Position = pos; - texCoord = multiTexCoord; - - if (vertexOffset.x != 0.) { - vec4 delta = qt_Matrix[0] * vertexOffset.x; - vec2 dir = delta.xy * pos.w - pos.xy * delta.w; - vec2 ndir = .5 * pixelSize * normalize(dir / pixelSize); - dir -= ndir * delta.w * pos.w; - float numerator = dot(dir, ndir * pos.w * pos.w); - float scale = 0.0; - if (numerator < 0.0) - scale = 1.0; - else - scale = min(1.0, numerator / dot(dir, dir)); - gl_Position += scale * delta; - texCoord.x += scale * texCoordOffset.x; - } - - if (vertexOffset.y != 0.) { - vec4 delta = qt_Matrix[1] * vertexOffset.y; - vec2 dir = delta.xy * pos.w - pos.xy * delta.w; - vec2 ndir = .5 * pixelSize * normalize(dir / pixelSize); - dir -= ndir * delta.w * pos.w; - float numerator = dot(dir, ndir * pos.w * pos.w); - float scale = 0.0; - if (numerator < 0.0) - scale = 1.0; - else - scale = min(1.0, numerator / dot(dir, dir)); - gl_Position += scale * delta; - texCoord.y += scale * texCoordOffset.y; - } - - bool onEdge = any(notEqual(vertexOffset, vec2(0.))); - bool outerEdge = all(equal(texCoordOffset, vec2(0.))); - if (onEdge && outerEdge) - vertexOpacity = 0.; - else - vertexOpacity = opacity; -} |