Revision: 20654
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=20654
Author:   yukishiro
Date:     2009-06-05 17:48:07 +0200 (Fri, 05 Jun 2009)

Log Message:
-----------
fix multiple objects update and object seelction with modifiers with an awkward 
change in cdDM_drawMappedFaces

Modified Paths:
--------------
    branches/soc-2009-yukishiro/source/blender/blenkernel/intern/cdderivedmesh.c
    
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c
    branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
    
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/view3d_draw.c

Modified: 
branches/soc-2009-yukishiro/source/blender/blenkernel/intern/cdderivedmesh.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/blenkernel/intern/cdderivedmesh.c    
    2009-06-05 15:19:13 UTC (rev 20653)
+++ 
branches/soc-2009-yukishiro/source/blender/blenkernel/intern/cdderivedmesh.c    
    2009-06-05 15:48:07 UTC (rev 20654)
@@ -484,7 +484,7 @@
        MFace *mf = cddm->mface;
        MCol *mc;
        float *nors= dm->getFaceDataArray(dm, CD_NORMAL);
-       int i, orig, *index = DM_get_face_data_layer(dm, CD_ORIGINDEX);
+       int i, orig, *index=0;// TODO = DM_get_face_data_layer(dm, 
CD_ORIGINDEX);
 
        mc = DM_get_face_data_layer(dm, CD_WEIGHT_MCOL);
        if(!mc)

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c   
    2009-06-05 15:19:13 UTC (rev 20653)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/sculpt_paint/paint_light.c   
    2009-06-05 15:48:07 UTC (rev 20654)
@@ -435,6 +435,9 @@
                case MOUSEMOVE: 
                 {
                        Mesh *me= ob->data;
+                        DerivedMesh *dm = mesh_get_derived_final(scene, ob, 
vc->v3d->customdata_mask);
+                        int totface = dm->getNumFaces(dm);
+                       MFace *mface = dm->getFaceArray(dm);
                        float mat[4][4];
                        int *indexar= pop->indexar;
                         int totindex, index;
@@ -450,17 +453,16 @@
                        mval[0]= event->x - vc->ar->winrct.xmin;
                        mval[1]= event->y - vc->ar->winrct.ymin;
 
-                        totindex= sample_backbuf_area(vc, indexar, 
me->totface, mval[0], mval[1], lp->brush->size);
+                        totindex= sample_backbuf_area(vc, indexar, totface, 
mval[0], mval[1], lp->brush->size);
                         ps->ob = ob;
                        
                        for(index=0; index<totindex; index++) {
-                               if(indexar[index] && 
indexar[index]<=me->totface) {
-                                       MFace *mface= ((MFace *)me->mface) + 
(indexar[index]-1);
-                                        DerivedMesh *dm = 
mesh_get_derived_final(scene, ob, vc->v3d->customdata_mask);
+                               if(indexar[index] && indexar[index]<=totface) {
+                                       MFace *mf= mface + (indexar[index]-1);
                                         unsigned char *shcol= 
DM_get_face_data_layer(dm, CD_SH_MCOL);
                                         unsigned int *mcol= (unsigned 
int*)shcol + 4*(indexar[index]-1);
 
-                                        add_face_vertices(ps, mface);
+                                        add_face_vertices(ps, mf);
 
                                         // TODO: blend it using alpha
                                         *mcol = pop->paintcol;

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c    
    2009-06-05 15:19:13 UTC (rev 20653)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c    
    2009-06-05 15:48:07 UTC (rev 20654)
@@ -2497,7 +2497,6 @@
 
                                         if (rv3d->rflag & RV3D_RECALCMCOL) {
                                                 calc_sh_color(scene, ob, dm, 
shcol);
-                                                rv3d->rflag &= 
~RV3D_RECALCMCOL;
                                         }
 
                                         dm->drawFacesColored(dm, me->flag, 
shcol, NULL);

Modified: 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/view3d_draw.c   
    2009-06-05 15:19:13 UTC (rev 20653)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/view3d_draw.c   
    2009-06-05 15:48:07 UTC (rev 20654)
@@ -2088,6 +2088,9 @@
                //      addafterqueue(ar->win, BACKBUFDRAW, 1);
                //}
        }
+
+        if (rv3d->rflag & RV3D_RECALCMCOL)
+                rv3d->rflag &= ~RV3D_RECALCMCOL;
        
 #ifndef DISABLE_PYTHON
        /* XXX here was scriptlink */


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to