Sorry about that… I did test, but made a last change just before commit, which should not have created any problem - except that there was a strange stuff in pre-existing code which made it fail!
As usual! hope it'll teach me to *always* do final checks... :/ Le jeu. 03 mai 2012 06:16:21 CEST, Daniel Salazar - 3Developer.com a écrit : > 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 _______________________________________________ Bf-committers mailing list [email protected] http://lists.blender.org/mailman/listinfo/bf-committers
