Optimize VAO/VBO usage for minimal state changes.
[movit] / ycbcr_conversion_effect.frag
index 6bc29b1..4ef3801 100644 (file)
@@ -1,8 +1,17 @@
+// See footer.frag for details about this if statement.
+#ifndef YCBCR_ALSO_OUTPUT_RGBA
+#define YCBCR_ALSO_OUTPUT_RGBA 0
+#endif
+
 uniform sampler2D PREFIX(tex_y);
 uniform sampler2D PREFIX(tex_cb);
 uniform sampler2D PREFIX(tex_cr);
 
+#if YCBCR_ALSO_OUTPUT_RGBA
+vec4[2] FUNCNAME(vec2 tc) {
+#else
 vec4 FUNCNAME(vec2 tc) {
+#endif
        vec4 rgba = INPUT(tc);
        vec4 ycbcr_a;
 
@@ -20,5 +29,10 @@ vec4 FUNCNAME(vec2 tc) {
 #endif
 
        ycbcr_a.a = rgba.a;
+
+#if YCBCR_ALSO_OUTPUT_RGBA
+       return vec4[2](ycbcr_a, rgba);
+#else
        return ycbcr_a;
+#endif
 }