[Bf-blender-cvs] [a4b97390d97] blender2.8: Fix basic pose-mode select drawing

Campbell Barton noreply at git.blender.org
Thu Apr 27 08:53:21 CEST 2017


Commit: a4b97390d975e7bdd868a752485351f14106466b
Author: Campbell Barton
Date:   Thu Apr 27 16:57:11 2017 +1000
Branches: blender2.8
https://developer.blender.org/rBa4b97390d975e7bdd868a752485351f14106466b

Fix basic pose-mode select drawing

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

M	source/blender/draw/intern/draw_armature.c
M	source/blender/draw/modes/object_mode.c

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

diff --git a/source/blender/draw/intern/draw_armature.c b/source/blender/draw/intern/draw_armature.c
index 8e5a6dafb21..5353fb00be7 100644
--- a/source/blender/draw/intern/draw_armature.c
+++ b/source/blender/draw/intern/draw_armature.c
@@ -171,7 +171,7 @@ static const float *get_bone_solid_color(EditBone *eBone, bPoseChannel *UNUSED(p
 	return colorBoneSolid;
 }
 
-static const float *get_bone_wire_color(EditBone *eBone, bPoseChannel *UNUSED(pchan), bArmature *UNUSED(arm))
+static const float *get_bone_wire_color(EditBone *eBone, bPoseChannel *pchan, bArmature *arm)
 {
 	if (constColor)
 		return constColor;
@@ -180,6 +180,12 @@ static const float *get_bone_wire_color(EditBone *eBone, bPoseChannel *UNUSED(pc
 		if (eBone->flag & BONE_SELECTED)
 			return colorVertexSelect;
 	}
+	else {
+		if ((arm->flag & ARM_POSEMODE) && (pchan->bone->flag & BONE_SELECTED)) {
+			return colorVertexSelect;
+		}
+
+	}
 
 	return colorVertex;
 }
diff --git a/source/blender/draw/modes/object_mode.c b/source/blender/draw/modes/object_mode.c
index 771b9d583b7..efff11ce1ce 100644
--- a/source/blender/draw/modes/object_mode.c
+++ b/source/blender/draw/modes/object_mode.c
@@ -1174,6 +1174,7 @@ static void DRW_shgroup_object_center(OBJECT_StorageList *stl, Object *ob)
 
 static void OBJECT_cache_populate(void *vedata, Object *ob)
 {
+	OBJECT_PassList *psl = ((OBJECT_Data *)vedata)->psl;
 	OBJECT_StorageList *stl = ((OBJECT_Data *)vedata)->stl;
 	const DRWContextState *draw_ctx = DRW_context_state_get();
 	Scene *scene = draw_ctx->scene;
@@ -1242,11 +1243,16 @@ static void OBJECT_cache_populate(void *vedata, Object *ob)
 		{
 			bArmature *arm = ob->data;
 			if (arm->edbo == NULL) {
-				DRW_shgroup_armature_object(
-				        ob, sl,
-				        ((OBJECT_Data *)vedata)->psl->bone_solid,
-				        ((OBJECT_Data *)vedata)->psl->bone_wire,
-				        stl->g_data->relationship_lines);
+				if ((ob->mode & OB_MODE_POSE) && (ob == OBACT_NEW)) {
+					DRW_shgroup_armature_pose(
+					        ob, psl->bone_solid, psl->bone_wire,
+					        stl->g_data->relationship_lines);
+				}
+				else {
+					DRW_shgroup_armature_object(
+					        ob, sl, psl->bone_solid, psl->bone_wire,
+					        stl->g_data->relationship_lines);
+				}
 			}
 			break;
 		}




More information about the Bf-blender-cvs mailing list