#version 150 core uniform sampler2D yTexture; // Y component passed as GL_LUMINANCE_ALPHA, in uyvy Y = a uniform sampler2D uvTexture; // UV component passed as RGBA macropixel, in uyvy U = r, V = b uniform mat4 colorMatrix; uniform float opacity; in vec2 qt_TexCoord; out vec4 fragColor; void main() { vec3 YUV = vec3(texture(yTexture, qt_TexCoord).a, texture2D(uvTexture, qt_TexCoord).rb); fragColor = colorMatrix * vec4(YUV, 1.0) * opacity; }