GL_EXT_YUV_target#

Valid APIs#

OpenGL ES 3.1+

Description#

This extension adds support for three new YUV related items: first rendering to YUV images, second sampling from YUV images while keeping the data in YUV space, third it defines a new built in function that does conversion from RGB to YUV with controls to choose ITU-R BT.601-7, ITU-R BT.601-7 Full range (JFIF images), or ITU-R BT.709-5 standard.

Example#

uniform __samplerExternal2DY2YEXT   u_sTexture;
layout (yuv) out vec4 color;
void main()
{
    vec4 yuvTex = texture(u_sTexture, texcoord);
    //decode yuv texture according to standard
    vec3 rgbTex = yuv_2_rgb(yuvTex.xyz, itu_601); //yuv standards (could be itu_601_full_range, itu_709 as well)
    //do some colour operations in RGB
    //...
    //convert back to yuv
    yuvTex.xyz = rgb_2_yuv (rgbTex, itu_601);
    //write out in yuv format
    color = yuvTex;
}