summaryrefslogtreecommitdiffstats
path: root/src/qtmultimediaquicktools/shaders
diff options
context:
space:
mode:
Diffstat (limited to 'src/qtmultimediaquicktools/shaders')
-rw-r--r--src/qtmultimediaquicktools/shaders/biplanaryuvvideo.frag14
-rw-r--r--src/qtmultimediaquicktools/shaders/biplanaryuvvideo.vert13
-rw-r--r--src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle.frag14
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo.frag8
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo.vert9
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo_padded.vert10
-rw-r--r--src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag8
-rw-r--r--src/qtmultimediaquicktools/shaders/triplanaryuvvideo.frag18
-rw-r--r--src/qtmultimediaquicktools/shaders/triplanaryuvvideo.vert16
9 files changed, 110 insertions, 0 deletions
diff --git a/src/qtmultimediaquicktools/shaders/biplanaryuvvideo.frag b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo.frag
new file mode 100644
index 000000000..2ede9108b
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo.frag
@@ -0,0 +1,14 @@
+uniform sampler2D plane1Texture;
+uniform sampler2D plane2Texture;
+uniform mediump mat4 colorMatrix;
+uniform lowp float opacity;
+varying highp vec2 plane1TexCoord;
+varying highp vec2 plane2TexCoord;
+
+void main()
+{
+ mediump float Y = texture2D(plane1Texture, plane1TexCoord).r;
+ mediump vec2 UV = texture2D(plane2Texture, plane2TexCoord).ra;
+ mediump vec4 color = vec4(Y, UV.x, UV.y, 1.);
+ gl_FragColor = colorMatrix * color * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/biplanaryuvvideo.vert b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo.vert
new file mode 100644
index 000000000..d01b69078
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo.vert
@@ -0,0 +1,13 @@
+uniform highp mat4 qt_Matrix;
+uniform highp float plane1Width;
+uniform highp float plane2Width;
+attribute highp vec4 qt_VertexPosition;
+attribute highp vec2 qt_VertexTexCoord;
+varying highp vec2 plane1TexCoord;
+varying highp vec2 plane2TexCoord;
+
+void main() {
+ plane1TexCoord = qt_VertexTexCoord * vec2(plane1Width, 1);
+ plane2TexCoord = qt_VertexTexCoord * vec2(plane2Width, 1);
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}
diff --git a/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle.frag b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle.frag
new file mode 100644
index 000000000..560a0d150
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/biplanaryuvvideo_swizzle.frag
@@ -0,0 +1,14 @@
+uniform sampler2D plane1Texture;
+uniform sampler2D plane2Texture;
+uniform mediump mat4 colorMatrix;
+uniform lowp float opacity;
+varying highp vec2 plane1TexCoord;
+varying highp vec2 plane2TexCoord;
+
+void main()
+{
+ mediump float Y = texture2D(plane1Texture, plane1TexCoord).r;
+ mediump vec2 UV = texture2D(plane2Texture, plane2TexCoord).ar;
+ mediump vec4 color = vec4(Y, UV.x, UV.y, 1.);
+ gl_FragColor = colorMatrix * color * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo.frag b/src/qtmultimediaquicktools/shaders/rgbvideo.frag
new file mode 100644
index 000000000..673eb4bf7
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo.frag
@@ -0,0 +1,8 @@
+uniform sampler2D rgbTexture;
+uniform lowp float opacity;
+varying highp vec2 qt_TexCoord;
+
+void main()
+{
+ gl_FragColor = texture2D(rgbTexture, qt_TexCoord) * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo.vert b/src/qtmultimediaquicktools/shaders/rgbvideo.vert
new file mode 100644
index 000000000..19915f2ff
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo.vert
@@ -0,0 +1,9 @@
+uniform highp mat4 qt_Matrix;
+attribute highp vec4 qt_VertexPosition;
+attribute highp vec2 qt_VertexTexCoord;
+varying highp vec2 qt_TexCoord;
+
+void main() {
+ qt_TexCoord = qt_VertexTexCoord;
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo_padded.vert b/src/qtmultimediaquicktools/shaders/rgbvideo_padded.vert
new file mode 100644
index 000000000..5c7c41d13
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo_padded.vert
@@ -0,0 +1,10 @@
+uniform highp mat4 qt_Matrix;
+uniform highp float width;
+attribute highp vec4 qt_VertexPosition;
+attribute highp vec2 qt_VertexTexCoord;
+varying highp vec2 qt_TexCoord;
+
+void main() {
+ qt_TexCoord = qt_VertexTexCoord * vec2(width, 1);
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}
diff --git a/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag b/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag
new file mode 100644
index 000000000..f01dc86a0
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/rgbvideo_swizzle.frag
@@ -0,0 +1,8 @@
+uniform sampler2D rgbTexture;
+uniform lowp float opacity;
+varying highp vec2 qt_TexCoord;
+
+void main()
+{
+ gl_FragColor = vec4(texture2D(rgbTexture, qt_TexCoord).bgr, 1.0) * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/triplanaryuvvideo.frag b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo.frag
new file mode 100644
index 000000000..dad8bb5a9
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo.frag
@@ -0,0 +1,18 @@
+uniform sampler2D plane1Texture;
+uniform sampler2D plane2Texture;
+uniform sampler2D plane3Texture;
+uniform mediump mat4 colorMatrix;
+uniform lowp float opacity;
+
+varying highp vec2 plane1TexCoord;
+varying highp vec2 plane2TexCoord;
+varying highp vec2 plane3TexCoord;
+
+void main()
+{
+ mediump float Y = texture2D(plane1Texture, plane1TexCoord).r;
+ mediump float U = texture2D(plane2Texture, plane2TexCoord).r;
+ mediump float V = texture2D(plane3Texture, plane3TexCoord).r;
+ mediump vec4 color = vec4(Y, U, V, 1.);
+ gl_FragColor = colorMatrix * color * opacity;
+}
diff --git a/src/qtmultimediaquicktools/shaders/triplanaryuvvideo.vert b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo.vert
new file mode 100644
index 000000000..d76b3f358
--- /dev/null
+++ b/src/qtmultimediaquicktools/shaders/triplanaryuvvideo.vert
@@ -0,0 +1,16 @@
+uniform highp mat4 qt_Matrix;
+uniform highp float plane1Width;
+uniform highp float plane2Width;
+uniform highp float plane3Width;
+attribute highp vec4 qt_VertexPosition;
+attribute highp vec2 qt_VertexTexCoord;
+varying highp vec2 plane1TexCoord;
+varying highp vec2 plane2TexCoord;
+varying highp vec2 plane3TexCoord;
+
+void main() {
+ plane1TexCoord = qt_VertexTexCoord * vec2(plane1Width, 1);
+ plane2TexCoord = qt_VertexTexCoord * vec2(plane2Width, 1);
+ plane3TexCoord = qt_VertexTexCoord * vec2(plane3Width, 1);
+ gl_Position = qt_Matrix * qt_VertexPosition;
+}