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!
This commit is contained in:
Sergey Sharybin 2013-04-18 10:39:53 +00:00
parent bde6a939e6
commit 3430068654
3 changed files with 6 additions and 1 deletions

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

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

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