[Bf-blender-cvs] [b7871351f65] custom-manipulators: Limit only face-map option to active-pose armature

Campbell Barton noreply at git.blender.org
Tue May 30 11:13:35 CEST 2017


Commit: b7871351f657fc9786c58f69988d2754cf3eb8ee
Author: Campbell Barton
Date:   Tue May 30 19:13:19 2017 +1000
Branches: custom-manipulators
https://developer.blender.org/rBb7871351f657fc9786c58f69988d2754cf3eb8ee

Limit only face-map option to active-pose armature

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

M	source/blender/draw/intern/draw_armature.c
M	source/blender/draw/intern/draw_common.h
M	source/blender/draw/modes/pose_mode.c

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

diff --git a/source/blender/draw/intern/draw_armature.c b/source/blender/draw/intern/draw_armature.c
index 865aaaf6bfa..22917eb55d4 100644
--- a/source/blender/draw/intern/draw_armature.c
+++ b/source/blender/draw/intern/draw_armature.c
@@ -1283,7 +1283,7 @@ static void draw_armature_edit(Object *ob)
 }
 
 /* if const_color is NULL do pose mode coloring */
-static void draw_armature_pose(Object *ob, const float const_color[4])
+static void draw_armature_pose(Object *ob, const float const_color[4], bool is_active)
 {
 	bArmature *arm = ob->data;
 	bPoseChannel *pchan;
@@ -1298,7 +1298,7 @@ static void draw_armature_pose(Object *ob, const float const_color[4])
 	}
 
 	// if (!(base->flag & OB_FROMDUPLI)) // TODO
-	{
+	if (is_active) {
 		if (ob->mode & OB_MODE_POSE) {
 			arm->flag |= ARM_POSEMODE;
 		}
@@ -1430,15 +1430,15 @@ void DRW_shgroup_armature_object(
 	DRW_object_wire_theme_get(ob, sl, &color);
 
 	DRW_shgroup_armature(ob, pass_bone_solid, pass_bone_wire, NULL, shgrp_relationship_lines);
-	draw_armature_pose(ob, color);
+	draw_armature_pose(ob, color, false);
 }
 
 void DRW_shgroup_armature_pose(
-        Object *ob, DRWPass *pass_bone_solid, DRWPass *pass_bone_wire, DRWPass *pass_bone_envelope,
+        Object *ob, SceneLayer *sl, DRWPass *pass_bone_solid, DRWPass *pass_bone_wire, DRWPass *pass_bone_envelope,
         DRWShadingGroup *shgrp_relationship_lines)
 {
 	DRW_shgroup_armature(ob, pass_bone_solid, pass_bone_wire, pass_bone_envelope, shgrp_relationship_lines);
-	draw_armature_pose(ob, NULL);
+	draw_armature_pose(ob, NULL, OBACT_NEW == ob);
 }
 
 void DRW_shgroup_armature_edit(
diff --git a/source/blender/draw/intern/draw_common.h b/source/blender/draw/intern/draw_common.h
index 2c597a175ff..1ee3a51ccd0 100644
--- a/source/blender/draw/intern/draw_common.h
+++ b/source/blender/draw/intern/draw_common.h
@@ -115,7 +115,7 @@ void DRW_shgroup_armature_object(
         struct DRWShadingGroup *shgrp_relationship_lines);
 
 void DRW_shgroup_armature_pose(
-        struct Object *ob,
+        struct Object *ob, SceneLayer *sl,
         struct DRWPass *pass_bone_solid, struct DRWPass *pass_bone_wire, struct DRWPass *pass_bone_envelope,
         struct DRWShadingGroup *shgrp_relationship_lines);
 
diff --git a/source/blender/draw/modes/pose_mode.c b/source/blender/draw/modes/pose_mode.c
index d3233d713a1..d5c100e8636 100644
--- a/source/blender/draw/modes/pose_mode.c
+++ b/source/blender/draw/modes/pose_mode.c
@@ -123,7 +123,7 @@ static void POSE_cache_populate(void *vedata, Object *ob)
 	if (ob->type == OB_ARMATURE) {
 		if (DRW_pose_mode_armature(ob, draw_ctx->obact)) {
 			DRW_shgroup_armature_pose(
-			        ob, psl->bone_solid, psl->bone_wire, psl->bone_envelope,
+			        ob, draw_ctx->sl, psl->bone_solid, psl->bone_wire, psl->bone_envelope,
 			        stl->g_data->relationship_lines);
 		}
 	}




More information about the Bf-blender-cvs mailing list