aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/shadereffects/content/shaders/outline.frag
diff options
context:
space:
mode:
authorLaszlo Agocs <laszlo.agocs@qt.io>2016-06-28 17:12:09 +0200
committerLaszlo Agocs <laszlo.agocs@qt.io>2016-06-29 12:00:09 +0000
commit15849d78b7cca848b87badcfee33db1db70b8b52 (patch)
tree1f0055732564f36c0427176f5853c4375ac0b21d /examples/quick/shadereffects/content/shaders/outline.frag
parentf552d99f3d937ee9a8938673cd22246edbe70317 (diff)
Migrate shadereffects example to be cross-backend
...while demonstrating best practices like file selectors. Task-number: QTBUG-52914 Change-Id: Ibf7bca77b7b142f5ccb956e05efc5be974d53c79 Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'examples/quick/shadereffects/content/shaders/outline.frag')
-rw-r--r--examples/quick/shadereffects/content/shaders/outline.frag16
1 files changed, 16 insertions, 0 deletions
diff --git a/examples/quick/shadereffects/content/shaders/outline.frag b/examples/quick/shadereffects/content/shaders/outline.frag
new file mode 100644
index 0000000000..9b46719873
--- /dev/null
+++ b/examples/quick/shadereffects/content/shaders/outline.frag
@@ -0,0 +1,16 @@
+uniform sampler2D source;
+uniform highp vec2 delta;
+uniform highp float qt_Opacity;
+
+varying highp vec2 qt_TexCoord0;
+
+void main() {
+ lowp vec4 tl = texture2D(source, qt_TexCoord0 - delta);
+ lowp vec4 tr = texture2D(source, qt_TexCoord0 + vec2(delta.x, -delta.y));
+ lowp vec4 bl = texture2D(source, qt_TexCoord0 - vec2(delta.x, -delta.y));
+ lowp vec4 br = texture2D(source, qt_TexCoord0 + delta);
+ mediump vec4 gx = (tl + bl) - (tr + br);
+ mediump vec4 gy = (tl + tr) - (bl + br);
+ gl_FragColor.xyz = vec3(0.);
+ gl_FragColor.w = clamp(dot(sqrt(gx * gx + gy * gy), vec4(1.)), 0., 1.) * qt_Opacity;
+}