diff options
Diffstat (limited to 'examples/quick/shadereffects/content/shaders/genie.vert')
-rw-r--r-- | examples/quick/shadereffects/content/shaders/genie.vert | 38 |
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; } |