Fix for bug #29046, the factor buffer input was not used correctly in curve nodes.
authorLukas Toenne <lukas.toenne@googlemail.com>
Sun, 6 Nov 2011 15:40:00 +0000 (15:40 +0000)
committerLukas Toenne <lukas.toenne@googlemail.com>
Sun, 6 Nov 2011 15:40:00 +0000 (15:40 +0000)
Curve Map exec function (for RGB curves) used a broken test condition for constant factor=1.0f eval. This must take the factor buffer into account, checking the factor vec for default value is not sufficient. These kinds of test should use a function interface, there are probably a lot more bugs like this hidden in the code.

source/blender/nodes/composite/nodes/node_composite_curves.c

index 675710942fbfccdade6f2be2643726253a18a425..7faf10138ad09287d091342dafab93b7e71de459 100644 (file)
@@ -175,7 +175,7 @@ static void node_composit_exec_curve_rgb(void *UNUSED(data), bNode *node, bNodeS
                
                curvemapping_set_black_white(node->storage, in[2]->vec, in[3]->vec);
                
-               if(in[0]->vec[0] == 1.0)
+               if(in[0]->data==NULL && in[0]->vec[0] == 1.0)
                        composit1_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, do_curves, CB_RGBA);
                else
                        composit2_pixel_processor(node, stackbuf, in[1]->data, in[1]->vec, in[0]->data, in[0]->vec, do_curves_fac, CB_RGBA, CB_VAL);