Hi Brecht, this commit broke building trunk with opencollada enabled. There's another call to filldisplist in "source/blender/collada/DocumentImporter.cpp" , line 1546
Cheers, Ralf 2010/6/23 Brecht Van Lommel <[email protected]>: > Revision: 29650 > > http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=29650 > Author: blendix > Date: 2010-06-23 15:18:50 +0200 (Wed, 23 Jun 2010) > > Log Message: > ----------- > Fix #21369: normals on extruded text and curve objects were flipped > for the backside, giving problems with e.g. boolean operations. > > Modified Paths: > -------------- > trunk/blender/source/blender/blenkernel/BKE_displist.h > trunk/blender/source/blender/blenkernel/intern/displist.c > trunk/blender/source/blender/editors/mesh/editmesh_mods.c > trunk/blender/source/blender/python/generic/geometry.c > > Modified: trunk/blender/source/blender/blenkernel/BKE_displist.h > =================================================================== > --- trunk/blender/source/blender/blenkernel/BKE_displist.h 2010-06-23 > 12:53:27 UTC (rev 29649) > +++ trunk/blender/source/blender/blenkernel/BKE_displist.h 2010-06-23 > 13:18:50 UTC (rev 29650) > @@ -99,7 +99,7 @@ > int surfindex_displist(DispList *dl, int a, int *b, int *p1, int *p2, int > *p3, int *p4); > void imagestodisplist(void); > void reshadeall_displist(struct Scene *scene); > -void filldisplist(struct ListBase *dispbase, struct ListBase *to); > +void filldisplist(struct ListBase *dispbase, struct ListBase *to, int > flipnormal); > > void fastshade_free_render(void); > > > Modified: trunk/blender/source/blender/blenkernel/intern/displist.c > =================================================================== > --- trunk/blender/source/blender/blenkernel/intern/displist.c 2010-06-23 > 12:53:27 UTC (rev 29649) > +++ trunk/blender/source/blender/blenkernel/intern/displist.c 2010-06-23 > 13:18:50 UTC (rev 29650) > @@ -925,7 +925,7 @@ > } > > > -void filldisplist(ListBase *dispbase, ListBase *to) > +void filldisplist(ListBase *dispbase, ListBase *to, int flipnormal) > { > EditVert *eve, *v1, *vlast; > EditFace *efa; > @@ -1019,6 +1019,9 @@ > index[0]= (intptr_t)efa->v1->tmp.l; > index[1]= (intptr_t)efa->v2->tmp.l; > index[2]= (intptr_t)efa->v3->tmp.l; > + > + if(flipnormal) > + SWAP(int, index[0], index[2]); > > index+= 3; > efa= efa->next; > @@ -1095,13 +1098,13 @@ > dl= dl->next; > } > > - filldisplist(&front, dispbase); > - filldisplist(&back, dispbase); > + filldisplist(&front, dispbase, 1); > + filldisplist(&back, dispbase, 0); > > freedisplist(&front); > freedisplist(&back); > > - filldisplist(dispbase, dispbase); > + filldisplist(dispbase, dispbase, 0); > > } > > @@ -1113,7 +1116,7 @@ > bevels_to_filledpoly(cu, dispbase); > } > else { > - filldisplist(dispbase, dispbase); > + filldisplist(dispbase, dispbase, 0); > } > } > > @@ -1315,7 +1318,7 @@ > ModifierData *preTesselatePoint; > Curve *cu= ob->data; > ListBase *nurb= cu->editnurb?cu->editnurb:&cu->nurb; > - int required_mode, totvert; > + int required_mode, totvert = 0; > int editmode = (!forRender && cu->editnurb); > DerivedMesh *dm= NULL, *ndm; > float (*vertCos)[3] = NULL; > > Modified: trunk/blender/source/blender/editors/mesh/editmesh_mods.c > =================================================================== > --- trunk/blender/source/blender/editors/mesh/editmesh_mods.c 2010-06-23 > 12:53:27 UTC (rev 29649) > +++ trunk/blender/source/blender/editors/mesh/editmesh_mods.c 2010-06-23 > 13:18:50 UTC (rev 29650) > @@ -186,7 +186,7 @@ > } > > /* do the fill */ > - filldisplist(&lb, &lb); > + filldisplist(&lb, &lb, 0); > > /* do the draw */ > dl= lb.first; /* filldisplist adds in head of list */ > > Modified: trunk/blender/source/blender/python/generic/geometry.c > =================================================================== > --- trunk/blender/source/blender/python/generic/geometry.c 2010-06-23 > 12:53:27 UTC (rev 29649) > +++ trunk/blender/source/blender/python/generic/geometry.c 2010-06-23 > 13:18:50 UTC (rev 29650) > @@ -419,7 +419,7 @@ > } > else if (totpoints) { > /* now make the list to return */ > - filldisplist(&dispbase, &dispbase); > + filldisplist(&dispbase, &dispbase, 0); > > /* The faces are stored in a new DisplayList > thats added to the head of the listbase */ > > > _______________________________________________ > 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
