[Bf-committers] [Bf-blender-cvs] SVN commit: /data/svn/bf-blender [29650] trunk/blender/source/blender: Fix #21369: normals on extruded text and curve objects were flipped

Ralf Hölzemer r.hoelzemer at googlemail.com
Wed Jun 23 19:33:07 CEST 2010


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 <brecht at blender.org>:
> 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
> Bf-blender-cvs at blender.org
> http://lists.blender.org/mailman/listinfo/bf-blender-cvs
>


More information about the Bf-committers mailing list