This makes fast Gaussian crash instantly.. seems to me that there's *very low* testing of this hacks before committing!
Daniel Salazar patazstudio.com On Wed, May 2, 2012 at 8:29 AM, Bastien Montagne <[email protected]> wrote: > Revision: 46193 > > http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=46193 > Author: mont29 > Date: 2012-05-02 14:29:12 +0000 (Wed, 02 May 2012) > Log Message: > ----------- > Small enhancement to Fast Gaussian compo blur node: do not compute when size > is below 0.001! > > (Was already checked/done for other blur algos, can be annoying when you > animate the blur size to apply it only on a few frames.) > > Modified Paths: > -------------- > trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c > > Modified: > trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c > =================================================================== > --- trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c > 2012-05-02 14:23:00 UTC (rev 46192) > +++ trunk/blender/source/blender/nodes/composite/nodes/node_composite_blur.c > 2012-05-02 14:29:12 UTC (rev 46193) > @@ -605,36 +605,40 @@ > out[0]->data= new; > } > else if (nbd->filtertype == R_FILTER_FAST_GAUSS) { > - CompBuf *new, *img = in[0]->data; > - // TODO: can this be mapped with reference, too? > - const float sx = ((float)nbd->sizex*in[1]->vec[0])/2.0f, sy = > ((float)nbd->sizey*in[1]->vec[0])/2.0f; > - int c; > + if (in[1]->vec[0] < 0.001f) { /* time node inputs can be a > tiny value */ > + new = pass_on_compbuf(img); > + } > + else { > + CompBuf *new, *img = in[0]->data; > + // TODO: can this be mapped with reference, too? > + const float sx = > ((float)nbd->sizex*in[1]->vec[0])/2.0f, sy = > ((float)nbd->sizey*in[1]->vec[0])/2.0f; > + int c; > > - if ((img==NULL) || (out[0]->hasoutput==0)) return; > + if ((img==NULL) || (out[0]->hasoutput==0)) return; > > - if (img->type == CB_VEC2) > - new = typecheck_compbuf(img, CB_VAL); > - else if (img->type == CB_VEC3) > - new = typecheck_compbuf(img, CB_RGBA); > - else > - new = dupalloc_compbuf(img); > + if (img->type == CB_VEC2) > + new = typecheck_compbuf(img, CB_VAL); > + else if (img->type == CB_VEC3) > + new = typecheck_compbuf(img, CB_RGBA); > + else > + new = dupalloc_compbuf(img); > > - if ((sx == sy) && (sx > 0.f)) { > - for (c=0; c<new->type; ++c) > - IIR_gauss(new, sx, c, 3); > - } > - else { > - if (sx > 0.f) { > + if ((sx == sy) && (sx > 0.f)) { > for (c=0; c<new->type; ++c) > - IIR_gauss(new, sx, c, 1); > + IIR_gauss(new, sx, c, 3); > } > - if (sy > 0.f) { > - for (c=0; c<new->type; ++c) > - IIR_gauss(new, sy, c, 2); > + else { > + if (sx > 0.f) { > + for (c=0; c<new->type; ++c) > + IIR_gauss(new, sx, c, 1); > + } > + if (sy > 0.f) { > + for (c=0; c<new->type; ++c) > + IIR_gauss(new, sy, c, 2); > + } > } > } > out[0]->data = new; > - > } > else { > /* All non fast gauss blur methods */ > > _______________________________________________ > Bf-blender-cvs mailing list > [email protected] > http://lists.blender.org/mailman/listinfo/bf-blender-cvs _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
