[Bf-blender-cvs] [1f1d5e1dd29] blender2.8: Object Mode: Make Flat object selectable in ortho view ...
Clément Foucault
noreply at git.blender.org
Fri Sep 14 18:32:14 CEST 2018
Commit: 1f1d5e1dd29a8f561e0ac11b750bc9cd308db031
Author: Clément Foucault
Date: Fri Sep 14 18:31:27 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB1f1d5e1dd29a8f561e0ac11b750bc9cd308db031
Object Mode: Make Flat object selectable in ortho view ...
... when wireframe is enabled
===================================================================
M source/blender/draw/engines/basic/basic_engine.c
===================================================================
diff --git a/source/blender/draw/engines/basic/basic_engine.c b/source/blender/draw/engines/basic/basic_engine.c
index 57553d98d5d..d7928a613be 100644
--- a/source/blender/draw/engines/basic/basic_engine.c
+++ b/source/blender/draw/engines/basic/basic_engine.c
@@ -137,6 +137,24 @@ static void basic_cache_populate(void *vedata, Object *ob)
}
}
+ /* Make flat object selectable in ortho view if wireframe is enabled. */
+ if ((draw_ctx->v3d->overlay.flag & V3D_OVERLAY_WIREFRAMES) ||
+ (ob->dtx & OB_DRAWWIRE) ||
+ (ob->dt == OB_WIRE))
+ {
+ int flat_axis = 0;
+ bool is_flat_object_viewed_from_side = (draw_ctx->rv3d->persp == RV3D_ORTHO) &&
+ DRW_object_is_flat(ob, &flat_axis) &&
+ DRW_object_axis_orthogonal_to_view(ob, flat_axis);
+
+ if (is_flat_object_viewed_from_side) {
+ /* Avoid loosing flat objects when in ortho views (see T56549) */
+ struct GPUBatch *geom = DRW_cache_object_wire_outline_get(ob);
+ DRW_shgroup_call_object_add(stl->g_data->depth_shgrp, geom, ob);
+ return;
+ }
+ }
+
struct GPUBatch *geom = DRW_cache_object_surface_get(ob);
if (geom) {
const bool do_cull = (draw_ctx->v3d && (draw_ctx->v3d->flag2 & V3D_BACKFACE_CULLING));
More information about the Bf-blender-cvs
mailing list