svn merge ^/trunk/blender -r42742:42757
authorCampbell Barton <ideasman42@gmail.com>
Tue, 20 Dec 2011 08:09:46 +0000 (08:09 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 20 Dec 2011 08:09:46 +0000 (08:09 +0000)
1  2 
source/blender/blenkernel/intern/DerivedMesh.c
source/blender/blenloader/intern/readfile.c
source/blender/editors/screen/screen_ops.c
source/blender/makesrna/intern/rna_scene.c
source/gameengine/Converter/BL_BlenderDataConversion.cpp

index e47c197cfa0d9d452c63c2fd35b2a080dfd3f311,d0ef517e2ae88ccb71673aa9ad2e72f52c4d7fd7..20688151c1174223ab22e744b77219690bba5f3e
@@@ -994,25 -757,19 +998,25 @@@ static unsigned char *calc_weightpaint_
  static void add_weight_mcol_dm(Object *ob, DerivedMesh *dm, int const draw_flag)
  {
        ColorBand *coba= stored_cb;     /* warning, not a local var */
 -
 -      Mesh *me = ob->data;
        unsigned char *wtcol_v = calc_weightpaint_vert_array(ob, draw_flag, coba);
 -      unsigned char *wtcol_f = MEM_mallocN (sizeof(unsigned char) * me->totface*4*4, "weightmap_f");
 -
 -      MFace *mf = me->mface;
 -      int i;
 -
 -      for (i=0; i<me->totface; i++, mf++) {
 +      unsigned char *wtcol_f;
 +      unsigned char(*wtcol_l)[4] = NULL;
 +      BLI_array_declare(wtcol_l);
 +      MFace *mf = dm->getTessFaceArray(dm);
 +      MLoop *mloop = dm->getLoopArray(dm), *ml;
 +      MPoly *mp = dm->getPolyArray(dm);
 +      int i, j, totface=dm->getNumTessFaces(dm), totloop;
 +      int *origIndex = dm->getVertDataArray(dm, CD_ORIGINDEX);
 +
 +      wtcol_f = MEM_mallocN(sizeof (unsigned char) * totface*4*4, "weightmap_f");
 +
 +      /*first add colors to the tesselation faces*/
 +      for (i=0; i<totface; i++, mf++) {
 +              /*origindex being NULL means we're operating on original mesh data*/
                unsigned int fidx= mf->v4 ? 3:2;
                do {
-               copy_v4_v4_char((char *)&wtcol_f[(4 * i + fidx) * 4],
-                                               (char *)&wtcol_v[4 * (*(&mf->v1 + fidx))]);
+                       copy_v4_v4_char((char *)&wtcol_f[(4 * i + fidx) * 4],
+                                       (char *)&wtcol_v[4 * (*(&mf->v1 + fidx))]);
                } while (fidx--);
        }