I think, I did not explain it correctly. What I wanna do with shaders is the same as this code does:
<code>
gl.glBegin(GL.GL_QUADS);
// Screen draw
gl.glMultiTexCoord2f(GL.GL_TEXTURE0, 0, texHeight);
gl.glMultiTexCoord2f (GL.GL_TEXTURE1, 0, texHeight / 2);
gl.glMultiTexCoord2f (GL.GL_TEXTURE2, 0, texHeight /2);
gl.glVertex2f(-2, -3/2);
gl.glMultiTexCoord2f(GL.GL_TEXTURE0, texWidth, texHeight);
gl.glMultiTexCoord2f(GL.GL_TEXTURE1, texWidth / 2 , texHeight / 2);
gl.glMultiTexCoord2f(GL.GL_TEXTURE2, texWidth / 2, texHeight / 2);
gl.glVertex2f(2, -3/2);
gl.glMultiTexCoord2f(GL.GL_TEXTURE0, texWidth, 0);
gl.glMultiTexCoord2f(GL.GL_TEXTURE1, texWidth /2, 0);
gl.glMultiTexCoord2f(GL.GL_TEXTURE2, texWidth / 2, 0);
gl.glVertex2f(2, 3/2);
gl.glMultiTexCoord2f (GL.GL_TEXTURE0, 0, 0 );
gl.glMultiTexCoord2f (GL.GL_TEXTURE1, 0, 0);
gl.glMultiTexCoord2f (GL.GL_TEXTURE2, 0, 0);
gl.glVertex2f(-2, 3/2);
gl.glEnd(); <\code>
Because, then in the fragment shaders a YUV to RGB pixel by pixel transformation is done.