Only use material callback when enabled

Vert/Face select in painting modes weren't drawing after recent changes.
This commit is contained in:
Campbell Barton 2015-07-18 05:39:01 +10:00
parent b45749727c
commit 7b30e2386b
2 changed files with 7 additions and 4 deletions

@ -1236,17 +1236,18 @@ void draw_mesh_paint_vcolor_faces(DerivedMesh *dm, const bool use_light,
void *facemask_cb, void *user_data,
const Mesh *me)
{
DMSetMaterial setMaterial = GPU_object_materials_check() ? GPU_enable_material : NULL;
if (use_light) {
draw_mesh_paint_light_begin();
}
if (me->mloopcol) {
dm->drawMappedFaces(dm, facemask_cb, GPU_enable_material, NULL, user_data,
DM_DRAW_USE_COLORS);
dm->drawMappedFaces(dm, facemask_cb, setMaterial, NULL, user_data, DM_DRAW_USE_COLORS);
}
else {
glColor3f(1.0f, 1.0f, 1.0f);
dm->drawMappedFaces(dm, facemask_cb, GPU_enable_material, NULL, user_data, 0);
dm->drawMappedFaces(dm, facemask_cb, setMaterial, NULL, user_data, 0);
}
if (use_light) {

@ -1407,7 +1407,9 @@ static struct GPUMaterialState {
GPUMaterialFixed (*matbuf);
GPUMaterialFixed matbuf_fixed[FIXEDMAT];
int totmat;
/* set when called inside GPU_begin_object_materials / GPU_end_object_materials */
/* set when called inside GPU_begin_object_materials / GPU_end_object_materials
* otherwise calling GPU_enable_material returns zero */
bool is_enabled;
Material **gmatbuf;