[Bf-blender-cvs] [ee6e02ccf38] master: 3D View: use dupli wire color for shaded wire drawing
Campbell Barton
noreply at git.blender.org
Fri Jan 11 05:05:40 CET 2019
Commit: ee6e02ccf38dd88204fed0adc573466a77924321
Author: Campbell Barton
Date: Fri Jan 11 14:12:55 2019 +1100
Branches: master
https://developer.blender.org/rBee6e02ccf38dd88204fed0adc573466a77924321
3D View: use dupli wire color for shaded wire drawing
Was only working for loose wire.
===================================================================
M source/blender/draw/modes/overlay_mode.c
===================================================================
diff --git a/source/blender/draw/modes/overlay_mode.c b/source/blender/draw/modes/overlay_mode.c
index ef1ef7936ef..0c3497121c2 100644
--- a/source/blender/draw/modes/overlay_mode.c
+++ b/source/blender/draw/modes/overlay_mode.c
@@ -246,13 +246,41 @@ static void overlay_cache_populate(void *vedata, Object *ob)
const int stencil_mask = (ob->dtx & OB_DRAWXRAY) ? 0x00 : 0xFF;
DRWShadingGroup *shgrp = NULL;
- float *rim_col = ts.colorWire;
- if (!is_edit_mode && !is_sculpt_mode && !has_edit_mesh_cage &&
- ((ob->base_flag & BASE_SELECTED) != 0))
+ const float *rim_col = NULL;
+ const float *wire_col = NULL;
+ if (UNLIKELY(ob->base_flag & BASE_FROMDUPLI)) {
+ if (ob->base_flag & BASE_SELECTED) {
+ if (G.moving & G_TRANSFORM_OBJ) {
+ rim_col = ts.colorTransform;
+ }
+ else {
+ rim_col = ts.colorDupliSelect;
+ }
+ }
+ else {
+ rim_col = ts.colorDupli;
+ }
+ wire_col = ts.colorDupli;
+ }
+ else if ((ob->base_flag & BASE_SELECTED) &&
+ (!is_edit_mode && !is_sculpt_mode && !has_edit_mesh_cage))
{
- rim_col = (ob == draw_ctx->obact) ? ts.colorActive : ts.colorSelect;
- rim_col = (G.moving & G_TRANSFORM_OBJ) ? ts.colorTransform : rim_col;
+ if (G.moving & G_TRANSFORM_OBJ) {
+ rim_col = ts.colorTransform;
+ }
+ else if (ob == draw_ctx->obact) {
+ rim_col = ts.colorActive;
+ }
+ else {
+ rim_col = ts.colorSelect;
+ }
+ wire_col = ts.colorWire;
+ }
+ else {
+ rim_col = ts.colorWire;
+ wire_col = ts.colorWire;
}
+ BLI_assert(rim_col && wire_col);
/* This fixes only the biggest case which is a plane in ortho view. */
int flat_axis = 0;
@@ -285,7 +313,7 @@ static void overlay_cache_populate(void *vedata, Object *ob)
if (!(DRW_state_is_select() || DRW_state_is_depth())) {
DRW_shgroup_stencil_mask(shgrp, stencil_mask);
- DRW_shgroup_uniform_vec3(shgrp, "wireColor", ts.colorWire, 1);
+ DRW_shgroup_uniform_vec3(shgrp, "wireColor", wire_col, 1);
DRW_shgroup_uniform_vec3(shgrp, "rimColor", rim_col, 1);
}
More information about the Bf-blender-cvs
mailing list