X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=footer.frag;fp=footer.frag;h=8a55b01bbaa373a3a9d20d27d98ef2c80fcf1b0a;hp=339ef7bbb335887fd36f4d209f03d3dfb6247618;hb=aa1fce6c5356faa368758b15b3ad257c0f7bda0b;hpb=af438a8d5331bb1435494eaf377256deac74f408 diff --git a/footer.frag b/footer.frag index 339ef7b..8a55b01 100644 --- a/footer.frag +++ b/footer.frag @@ -9,6 +9,18 @@ #define YCBCR_OUTPUT_SPLIT_Y_AND_CBCR 0 #endif +#ifndef SECOND_YCBCR_OUTPUT_PLANAR +#define SECOND_YCBCR_OUTPUT_PLANAR 0 +#endif + +#ifndef SECOND_YCBCR_OUTPUT_SPLIT_Y_AND_CBCR +#define SECOND_YCBCR_OUTPUT_SPLIT_Y_AND_CBCR 0 +#endif + +#ifndef SECOND_YCBCR_OUTPUT_INTERLEAVED +#define SECOND_YCBCR_OUTPUT_INTERLEAVED 0 +#endif + #ifndef YCBCR_ALSO_OUTPUT_RGBA #define YCBCR_ALSO_OUTPUT_RGBA 0 #endif @@ -18,14 +30,19 @@ #endif #if YCBCR_OUTPUT_PLANAR -out vec4 Y; -out vec4 Cb; -out vec4 Cr; +out vec4 Y, Cb, Cr; #elif YCBCR_OUTPUT_SPLIT_Y_AND_CBCR -out vec4 Y; -out vec4 Chroma; +out vec4 Y, Chroma; #else -out vec4 FragColor; +out vec4 FragColor; // Y'CbCr or RGBA. +#endif + +#if SECOND_YCBCR_OUTPUT_PLANAR +out vec4 Y2, Cb2, Cr2; +#elif SECOND_YCBCR_OUTPUT_SPLIT_Y_AND_CBCR +out vec4 Y2, Chroma2; +#elif SECOND_YCBCR_OUTPUT_INTERLEAVED +out vec4 YCbCr2; #endif #if YCBCR_ALSO_OUTPUT_RGBA @@ -58,6 +75,19 @@ void main() FragColor = color0; #endif + // Exactly the same, just with other outputs. + // (GLSL does not allow arrays of outputs.) +#if SECOND_YCBCR_OUTPUT_PLANAR + Y2 = color0.rrra; + Cb2 = color0.ggga; + Cr2 = color0.bbba; +#elif SECOND_YCBCR_OUTPUT_SPLIT_Y_AND_CBCR + Y2 = color0.rrra; + Chroma2 = color0.gbba; +#elif SECOND_YCBCR_OUTPUT_INTERLEAVED + YCbCr2 = color0; +#endif + #if YCBCR_ALSO_OUTPUT_RGBA RGBA = color1; #endif