diff options
Diffstat (limited to 'src/qtmultimediaquicktools/shaders')
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; +} |