[Bf-blender-cvs] [6276726] master: Fix T47652: Texture shading mode fails to update material colors

Campbell Barton noreply at git.blender.org
Fri May 13 14:09:18 CEST 2016


Commit: 6276726bc4594f61753e51b8e877cf3c5018c808
Author: Campbell Barton
Date:   Fri May 13 22:03:18 2016 +1000
Branches: master
https://developer.blender.org/rB6276726bc4594f61753e51b8e877cf3c5018c808

Fix T47652: Texture shading mode fails to update material colors

===================================================================

M	source/blender/editors/space_view3d/drawmesh.c

===================================================================

diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c
index 345e479..a73a055 100644
--- a/source/blender/editors/space_view3d/drawmesh.c
+++ b/source/blender/editors/space_view3d/drawmesh.c
@@ -713,6 +713,8 @@ static void update_tface_color_layer(DerivedMesh *dm, bool use_mcol)
 			}
 		}
 	}
+
+	dm->dirty |= DM_DIRTY_MCOL_UPDATE_DRAW;
 }
 
 static DMDrawOption draw_tface_mapped__set_draw(void *userData, int origindex, int UNUSED(mat_nr))
@@ -999,7 +1001,16 @@ static void draw_mesh_textured_old(Scene *scene, View3D *v3d, RegionView3D *rv3d
 		else {
 			userData.me = NULL;
 
-			update_tface_color_layer(dm, !(ob->mode & OB_MODE_TEXTURE_PAINT));
+			if ((ob->mode & OB_MODE_ALL_PAINT) == 0) {
+
+				/* Note: this isn't efficient and runs on every redraw,
+				 * its needed so material colors are used for vertex colors.
+				 * In the future we will likely remove 'texface' so, just avoid running this where possible,
+				 * (when vertex paint or weight paint are used). */
+
+				update_tface_color_layer(dm, !(ob->mode & OB_MODE_TEXTURE_PAINT));
+			}
+
 			dm->drawFacesTex(
 			        dm, draw_tface__set_draw, compareDrawOptions,
 			        &userData, dm_draw_flag);




More information about the Bf-blender-cvs mailing list