X-Git-Url: https://git.sesse.net/?p=movit;a=blobdiff_plain;f=footer.comp;h=16197a63200019396c20661bc0edbb8128fad206;hp=3ece901eb00e8de9fe4f1200101a19162b2b08fc;hb=1c44926155efb721da02916f82af87d186a7fb57;hpb=5e771df1523ea3f7926c0b5a115c29d134c53f11 diff --git a/footer.comp b/footer.comp index 3ece901..16197a6 100644 --- a/footer.comp +++ b/footer.comp @@ -1,3 +1,10 @@ +// GLSL is pickier than the C++ preprocessor in if-testing for undefined +// tokens; do some fixups here to keep it happy. + +#ifndef SQUARE_ROOT_TRANSFORMATION +#define SQUARE_ROOT_TRANSFORMATION 0 +#endif + void main() { INPUT(); @@ -10,10 +17,14 @@ vec4 tex2D(sampler2D s, vec2 coord) void cs_output(uvec2 coord, vec4 val) { - imageStore(outbuf, ivec2(coord), val); + cs_output(ivec2(coord), val); } void cs_output(ivec2 coord, vec4 val) { +#if SQUARE_ROOT_TRANSFORMATION + // Make sure we don't give negative values to sqrt. + val.rgb = sqrt(max(val.rgb, 0.0)); +#endif imageStore(outbuf, coord, val); }