[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