aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/shadereffects/content/shaders/genie.vert
diff options
context:
space:
mode:
Diffstat (limited to 'examples/quick/shadereffects/content/shaders/genie.vert')
-rw-r--r--examples/quick/shadereffects/content/shaders/genie.vert38
1 files changed, 23 insertions, 15 deletions
diff --git a/examples/quick/shadereffects/content/shaders/genie.vert b/examples/quick/shadereffects/content/shaders/genie.vert
index 3ce371819f..2cb1e71046 100644
--- a/examples/quick/shadereffects/content/shaders/genie.vert
+++ b/examples/quick/shadereffects/content/shaders/genie.vert
@@ -1,21 +1,29 @@
-attribute highp vec4 qt_Vertex;
-attribute highp vec2 qt_MultiTexCoord0;
+#version 440
-uniform highp mat4 qt_Matrix;
-uniform highp float bend;
-uniform highp float minimize;
-uniform highp float side;
-uniform highp float width;
-uniform highp float height;
+layout(location = 0) in vec4 qt_Vertex;
+layout(location = 1) in vec2 qt_MultiTexCoord0;
-varying highp vec2 qt_TexCoord0;
+layout(location = 0) out vec2 qt_TexCoord0;
-void main() {
+layout(std140, binding = 0) uniform buf {
+ mat4 qt_Matrix;
+ float qt_Opacity;
+ float bend;
+ float minimize;
+ float side;
+ float width;
+ float height;
+} ubuf;
+
+out gl_PerVertex { vec4 gl_Position; };
+
+void main()
+{
qt_TexCoord0 = qt_MultiTexCoord0;
- highp vec4 pos = qt_Vertex;
- pos.y = mix(qt_Vertex.y, height, minimize);
- highp float t = pos.y / height;
+ vec4 pos = qt_Vertex;
+ pos.y = mix(qt_Vertex.y, ubuf.height, ubuf.minimize);
+ float t = pos.y / ubuf.height;
t = (3. - 2. * t) * t * t;
- pos.x = mix(qt_Vertex.x, side * width, t * bend);
- gl_Position = qt_Matrix * pos;
+ pos.x = mix(qt_Vertex.x, ubuf.side * ubuf.width, t * ubuf.bend);
+ gl_Position = ubuf.qt_Matrix * pos;
}