diff options
Diffstat (limited to 'src/quick/items')
-rw-r--r-- | src/quick/items/items.pri | 8 | ||||
-rw-r--r-- | src/quick/items/items.qrc | 6 | ||||
-rw-r--r-- | src/quick/items/shaders/shadereffect_core.frag | 13 | ||||
-rw-r--r-- | src/quick/items/shaders/shadereffect_core.vert | 14 | ||||
-rw-r--r-- | src/quick/items/shaders/shadereffectfallback_core.frag | 8 | ||||
-rw-r--r-- | src/quick/items/shaders/shadereffectfallback_core.vert | 10 | ||||
-rw-r--r-- | src/quick/items/shaders/sprite_core.frag | 16 | ||||
-rw-r--r-- | src/quick/items/shaders/sprite_core.vert | 24 |
8 files changed, 98 insertions, 1 deletions
diff --git a/src/quick/items/items.pri b/src/quick/items/items.pri index d0ebbcfcdb..3996512f9d 100644 --- a/src/quick/items/items.pri +++ b/src/quick/items/items.pri @@ -145,7 +145,13 @@ OTHER_FILES += \ $$PWD/shaders/shadereffect.vert \ $$PWD/shaders/shadereffect.frag \ $$PWD/shaders/shadereffectfallback.vert \ - $$PWD/shaders/shadereffectfallback.frag + $$PWD/shaders/shadereffectfallback.frag \ + $$PWD/shaders/sprite_core.vert \ + $$PWD/shaders/sprite_core.frag \ + $$PWD/shaders/shadereffect_core.vert \ + $$PWD/shaders/shadereffect_core.frag \ + $$PWD/shaders/shadereffectfallback_core.vert \ + $$PWD/shaders/shadereffectfallback_core.frag RESOURCES += \ $$PWD/items.qrc diff --git a/src/quick/items/items.qrc b/src/quick/items/items.qrc index 837cffb65a..671d8acdbb 100644 --- a/src/quick/items/items.qrc +++ b/src/quick/items/items.qrc @@ -6,5 +6,11 @@ <file>shaders/shadereffect.frag</file> <file>shaders/shadereffectfallback.frag</file> <file>shaders/shadereffectfallback.vert</file> + <file>shaders/shadereffect_core.frag</file> + <file>shaders/shadereffect_core.vert</file> + <file>shaders/shadereffectfallback_core.frag</file> + <file>shaders/shadereffectfallback_core.vert</file> + <file>shaders/sprite_core.frag</file> + <file>shaders/sprite_core.vert</file> </qresource> </RCC> diff --git a/src/quick/items/shaders/shadereffect_core.frag b/src/quick/items/shaders/shadereffect_core.frag new file mode 100644 index 0000000000..2163753edc --- /dev/null +++ b/src/quick/items/shaders/shadereffect_core.frag @@ -0,0 +1,13 @@ +#version 150 core + +in vec2 qt_TexCoord0; + +out vec4 fragColor; + +uniform sampler2D source; +uniform float qt_Opacity; + +void main() +{ + fragColor = texture(source, qt_TexCoord0) * qt_Opacity; +}
\ No newline at end of file diff --git a/src/quick/items/shaders/shadereffect_core.vert b/src/quick/items/shaders/shadereffect_core.vert new file mode 100644 index 0000000000..2ed2d47b5f --- /dev/null +++ b/src/quick/items/shaders/shadereffect_core.vert @@ -0,0 +1,14 @@ +#version 150 core + +in vec4 qt_Vertex; +in vec2 qt_MultiTexCoord0; + +out vec2 qt_TexCoord0; + +uniform mat4 qt_Matrix; + +void main() +{ + qt_TexCoord0 = qt_MultiTexCoord0; + gl_Position = qt_Matrix * qt_Vertex; +}
\ No newline at end of file diff --git a/src/quick/items/shaders/shadereffectfallback_core.frag b/src/quick/items/shaders/shadereffectfallback_core.frag new file mode 100644 index 0000000000..4abf124737 --- /dev/null +++ b/src/quick/items/shaders/shadereffectfallback_core.frag @@ -0,0 +1,8 @@ +#version 150 core + +out vec4 fragColor; + +void main() +{ + fragColor = vec4(1., 0., 1., 1.); +}
\ No newline at end of file diff --git a/src/quick/items/shaders/shadereffectfallback_core.vert b/src/quick/items/shaders/shadereffectfallback_core.vert new file mode 100644 index 0000000000..b1ca84cc6d --- /dev/null +++ b/src/quick/items/shaders/shadereffectfallback_core.vert @@ -0,0 +1,10 @@ +#version 150 core + +in vec4 v; + +uniform mat4 qt_Matrix; + +void main() +{ + gl_Position = qt_Matrix * v; +}
\ No newline at end of file diff --git a/src/quick/items/shaders/sprite_core.frag b/src/quick/items/shaders/sprite_core.frag new file mode 100644 index 0000000000..c1087a8754 --- /dev/null +++ b/src/quick/items/shaders/sprite_core.frag @@ -0,0 +1,16 @@ +#version 150 core + +in vec4 fTexS; +in float progress; + +out vec4 fragColor; + +uniform sampler2D _qt_texture; +uniform float qt_Opacity; + +void main() +{ + fragColor = mix(texture(_qt_texture, fTexS.xy), + texture(_qt_texture, fTexS.zw), + progress) * qt_Opacity; +}
\ No newline at end of file diff --git a/src/quick/items/shaders/sprite_core.vert b/src/quick/items/shaders/sprite_core.vert new file mode 100644 index 0000000000..5027bf03fc --- /dev/null +++ b/src/quick/items/shaders/sprite_core.vert @@ -0,0 +1,24 @@ +#version 150 core + +in vec2 vPos; +in vec2 vTex; + +out vec4 fTexS; +out float progress; + +uniform vec3 animData; // w,h(premultiplied of anim), interpolation progress +uniform vec4 animPos; // x,y, x,y (two frames for interpolation) +uniform mat4 qt_Matrix; + +void main() +{ + progress = animData.z; + + // Calculate frame location in texture + fTexS.xy = animPos.xy + vTex.xy * animData.xy; + + // Next frame is also passed, for interpolation + fTexS.zw = animPos.zw + vTex.xy * animData.xy; + + gl_Position = qt_Matrix * vec4(vPos.x, vPos.y, 0, 1); +}
\ No newline at end of file |