Revision: 21205
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21205
Author:   yukishiro
Date:     2009-06-28 03:38:28 +0200 (Sun, 28 Jun 2009)

Log Message:
-----------
fix light paint display when mesh objects are changed by modifiers

Modified Paths:
--------------
    branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c
    branches/soc-2009-yukishiro/source/blender/makesdna/DNA_view3d_types.h
    branches/soc-2009-yukishiro/source/blender/sh/intern/compute.c

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-27 23:54:20 UTC (rev 21204)
+++ 
branches/soc-2009-yukishiro/source/blender/editors/space_view3d/drawobject.c    
    2009-06-28 01:38:28 UTC (rev 21205)
@@ -2348,10 +2348,9 @@
        
        shcol = MEM_callocN (sizeof (unsigned char) * totface * 4 * 4, "sh 
color");
        calc_sh_color(scene, ob, dm, shcol);
-       return CustomData_add_layer(&dm->faceData, CD_SH_MCOL, CD_ASSIGN, 
shcol, dm->numFaceData);
+       return CustomData_add_layer(&dm->faceData, CD_SH_MCOL, CD_ASSIGN, 
shcol, totface);
 }
 
-
 static void draw_mesh_fancy(Scene *scene, View3D *v3d, RegionView3D *rv3d, 
Base *base, int dt, int flag)
 {
        Object *ob= base->object;
@@ -2442,7 +2441,7 @@
                        }
                        if (scene->flag & SCE_SH_RESULT) {
                                shcol= DM_get_face_data_layer(dm, CD_SH_MCOL);
-                               
+
                                if (rv3d->rflag & RV3D_RECALCMCOL) {
                                        calc_sh_color(scene, ob, dm, shcol);
                                }

Modified: branches/soc-2009-yukishiro/source/blender/makesdna/DNA_view3d_types.h
===================================================================
--- branches/soc-2009-yukishiro/source/blender/makesdna/DNA_view3d_types.h      
2009-06-27 23:54:20 UTC (rev 21204)
+++ branches/soc-2009-yukishiro/source/blender/makesdna/DNA_view3d_types.h      
2009-06-28 01:38:28 UTC (rev 21205)
@@ -205,8 +205,8 @@
 /* RegionView3d->rflag */
 #define RV3D_FLYMODE           2
 #define RV3D_CLIPPING          4
-#define RV3D_RECALCMCOL                8
-#define RV3D_SHRESULT          16
+#define RV3D_SHRESULT          8
+#define RV3D_RECALCMCOL                16
 
 /* RegionView3d->viewlock */
 #define RV3D_LOCKED            1

Modified: branches/soc-2009-yukishiro/source/blender/sh/intern/compute.c
===================================================================
--- branches/soc-2009-yukishiro/source/blender/sh/intern/compute.c      
2009-06-27 23:54:20 UTC (rev 21204)
+++ branches/soc-2009-yukishiro/source/blender/sh/intern/compute.c      
2009-06-28 01:38:28 UTC (rev 21205)
@@ -588,8 +588,15 @@
                coeffs= CustomData_get_layer(&me->vdata, CD_MSHCOEFFS);
                if (coeffs != NULL && !recompute) continue;
 
-               if (coeffs == NULL)
-                       coeffs= CustomData_add_layer(&me->vdata, CD_MSHCOEFFS, 
CD_CALLOC, NULL, num_verts);
+               if (coeffs == NULL) {
+                       coeffs= MEM_callocN(sizeof(MShCoeffs) * num_verts, "sh 
coeffs");
+                       CustomData_add_layer(&me->vdata, CD_MSHCOEFFS, 
CD_ASSIGN, coeffs, num_verts);
+               }
+               else if (recompute) {
+                       MEM_freeN(coeffs);
+                       coeffs= MEM_callocN(sizeof(MShCoeffs) * num_verts, "sh 
coeffs");
+                       CustomData_set_layer(&me->vdata, CD_MSHCOEFFS, coeffs);
+               }
 
                 for (i = 0; i < num_verts; i++) {
                         for (k = 0; k < NUM_SAMPLES; k++) {


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

Reply via email to