From 34300686545643be2747c8e1d9a5bd42e2525a36 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Thu, 18 Apr 2013 10:39:53 +0000 Subject: [PATCH] Fix #34970: in glsl mode the vertex paint face mask is not visible Added face selection code to GLSL draw. We do this for Cycles already, shall behave expected now. Checked by Ton, thanks! --- source/blender/editors/space_view3d/drawmesh.c | 2 +- source/blender/editors/space_view3d/drawobject.c | 3 +++ source/blender/editors/space_view3d/view3d_intern.h | 2 ++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/source/blender/editors/space_view3d/drawmesh.c b/source/blender/editors/space_view3d/drawmesh.c index f1111abf860..05099d14b12 100644 --- a/source/blender/editors/space_view3d/drawmesh.c +++ b/source/blender/editors/space_view3d/drawmesh.c @@ -180,7 +180,7 @@ static DMDrawOption draw_mesh_face_select__drawFaceOptsInv(void *userData, int i return DM_DRAW_OPTION_SKIP; } -static void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm) +void draw_mesh_face_select(RegionView3D *rv3d, Mesh *me, DerivedMesh *dm) { drawMeshFaceSelect_userData data; diff --git a/source/blender/editors/space_view3d/drawobject.c b/source/blender/editors/space_view3d/drawobject.c index bb2a18ed6c2..703e375281a 100644 --- a/source/blender/editors/space_view3d/drawobject.c +++ b/source/blender/editors/space_view3d/drawobject.c @@ -3262,6 +3262,9 @@ static void draw_mesh_fancy(Scene *scene, ARegion *ar, View3D *v3d, RegionView3D GPU_disable_material(); glFrontFace(GL_CCW); + + if (draw_flags & DRAW_FACE_SELECT) + draw_mesh_face_select(rv3d, me, dm); } else { draw_mesh_textured(scene, v3d, rv3d, ob, dm, draw_flags); diff --git a/source/blender/editors/space_view3d/view3d_intern.h b/source/blender/editors/space_view3d/view3d_intern.h index 3e79696f209..f5ffd10c272 100644 --- a/source/blender/editors/space_view3d/view3d_intern.h +++ b/source/blender/editors/space_view3d/view3d_intern.h @@ -47,6 +47,7 @@ struct bContext; struct bMotionPath; struct bPoseChannel; struct bScreen; +struct Mesh; struct wmNDOFMotionData; struct wmOperatorType; struct wmWindowManager; @@ -148,6 +149,7 @@ bool draw_armature(Scene *scene, View3D *v3d, ARegion *ar, Base *base, /* drawmesh.c */ void draw_mesh_textured(Scene *scene, View3D *v3d, RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, const int draw_flags); +void draw_mesh_face_select(struct RegionView3D *rv3d, struct Mesh *me, struct DerivedMesh *dm); void draw_mesh_paint(View3D *v3d, RegionView3D *rv3d, struct Object *ob, struct DerivedMesh *dm, const int draw_flags);