cconvYV12.c revision 64082f4699f276693cf5b1ec5886ac12234af115
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync#extension GL_ARB_texture_rectangle : enable
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncuniform sampler2DRect uSrcTex;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncuniform sampler2DRect uVTex;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncuniform sampler2DRect uUTex;
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncfloat vboxSplitBGRA(vec4 color, float coord);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsyncvoid vboxCConvApplyAYUV(vec4 color);
e64031e20c39650a7bc902a3e1aba613b9415deevboxsyncvoid vboxCConv(int srcI)
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync{
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vec2 coordY = vec2(gl_TexCoord[srcI]);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vec2 coordV = vec2(gl_TexCoord[srcI+1]);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vec2 coordU = vec2(gl_TexCoord[srcI+2]);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vec4 clrY = texture2DRect(uSrcTex, vec2(coordY));
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vec4 clrV = texture2DRect(uVTex, vec2(coordV));
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vec4 clrU = texture2DRect(uUTex, vec2(coordU));
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync float y = vboxSplitBGRA(clrY, coordY.x);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync float v = vboxSplitBGRA(clrV, coordV.x);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync float u = vboxSplitBGRA(clrU, coordU.x);
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync vboxCConvApplyAYUV(vec4(u, y, 0.0, v));
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync}
e0e0c19eefceaf5d4ec40f9466b58a771f50e799vboxsync