diff options
Diffstat (limited to 'src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag')
-rw-r--r-- | src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag b/src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag new file mode 100644 index 000000000..010c4a5f2 --- /dev/null +++ b/src/qtmultimediaquicktools/shaders/yuyvvideo_core.frag @@ -0,0 +1,13 @@ +#version 150 core +uniform sampler2D yTexture; // Y component passed as GL_LUMINANCE_ALPHA, in yuyv Y = r +uniform sampler2D uvTexture; // UV component passed as RGBA macropixel, in uyvy U = g, V = a +uniform mat4 colorMatrix; +uniform float opacity; +in vec2 qt_TexCoord; +out vec4 fragColor; + +void main() +{ + vec3 YUV = vec3(texture(yTexture, qt_TexCoord).r, texture2D(uvTexture, qt_TexCoord).ga); + fragColor = colorMatrix * vec4(YUV, 1.0) * opacity; +} |