Fix T47652: Texture shading mode fails to update material colors

This commit is contained in:
Campbell Barton
2016-05-13 22:03:18 +10:00
parent 029ccca0fe
commit 6276726bc4

View File

@@ -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);