Fix for bug #4393: initial vertex colors were not created from shaded
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Wed, 21 Jun 2006 15:14:44 +0000 (15:14 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Wed, 21 Jun 2006 15:14:44 +0000 (15:14 +0000)
mode colors anymore, which also affected python scripts that depend on
this feature. Restored that now.

source/blender/blenkernel/BKE_displist.h
source/blender/blenkernel/BKE_modifier.h
source/blender/blenkernel/intern/displist.c
source/blender/src/vpaint.c

index 42e1576d13761fff3d26ed6cc68422c7f6583395..0bb74ca94b53fe5bbce67f774cf953947b974fcf 100644 (file)
@@ -146,6 +146,7 @@ extern void makeDispListSurf(struct Object *ob, struct ListBase *dispbase, int f
 extern void makeDispListCurveTypes(struct Object *ob, int forOrco);
 extern void makeDispListMBall(struct Object *ob);
 extern void shadeDispList(struct Base *base);
+extern void shadeMeshMCol(struct Object *ob, struct Mesh *me);
 
 void imagestodisplist(void);
 void reshadeall_displist(void);
index ecbfeed157a645a76787d5bdc609d275a98ec65e..9afefbfc5a9343350ceabf52fd194395cc1aac2e 100644 (file)
@@ -38,6 +38,7 @@ struct DagForest;
 struct DagNode;
 struct Object;
 struct ListBase;
+struct bArmature;
 
 typedef enum {
                /* Should not be used, only for None modifier type */
index cc5012aa83c0b625a811e121bcf75f8a939d1cab..2930203e0dae76d6bbda5fd9202a14d269ab37a7 100644 (file)
@@ -627,6 +627,12 @@ static void mesh_create_shadedColors(Render *re, Object *ob, int onlyForMesh, un
        end_fastshade_for_ob(ob);
 }
 
+void shadeMeshMCol(Object *ob, Mesh *me)
+{
+       Render *re= fastshade_get_render();
+       mesh_create_shadedColors(re, ob, 1, (unsigned int**)&me->mcol, NULL);
+}
+
 /* has base pointer, to check for layer */
 /* called from drawobject.c */
 void shadeDispList(Base *base)
index 22ad81ee0e376aac5a9b976028e91ee56fe781c1..6d04fc9104ec84030f09ef1125597634074337d9 100644 (file)
@@ -217,7 +217,6 @@ void make_vertexcol()       /* single ob */
 {
        Object *ob;
        Mesh *me;
-       int i;
 
        /*
         * Always copies from shadedisplist to mcol.
@@ -235,13 +234,8 @@ void make_vertexcol()      /* single ob */
        if(me==0) return;
 
        if(me->mcol) MEM_freeN(me->mcol);
-       me->mcol = MEM_callocN(sizeof(int)*me->totface*4, "me->mcol");
-       // mesh_create_shadedColors(ob, 1, (unsigned int**) &me->mcol, NULL);
-
-       for (i=0; i<me->totface*4; i++) {
-               me->mcol[i].a = 255;
-       }
-               
+       shadeMeshMCol(ob, me);
+       
        if(me->tface) mcol_to_tface(me, 1);
        
        DAG_object_flush_update(G.scene, ob, OB_RECALC_DATA);
@@ -251,7 +245,6 @@ void make_vertexcol()       /* single ob */
 }
 
 
-
 void copy_vpaint_undo(unsigned int *mcol, int tot)
 {
        if(vpaintundobuf) MEM_freeN(vpaintundobuf);
@@ -374,7 +367,7 @@ void clear_wpaint_selectedfaces()
        Object *ob;
        int index, vgroup;
        MDeformWeight *dw, *uw;
-       unsigned int faceverts[5]={NULL,NULL,NULL,NULL,NULL};
+       unsigned int faceverts[5]={0,0,0,0,0};
        unsigned char i;
        int vgroup_mirror= -1;