Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClément Foucault <foucault.clem@gmail.com>2018-09-14 19:31:27 +0300
committerClément Foucault <foucault.clem@gmail.com>2018-09-14 19:32:04 +0300
commit1f1d5e1dd29a8f561e0ac11b750bc9cd308db031 (patch)
tree0c9c647665d84c0881c79ab8b69352bfad475fe2 /source/blender/draw/engines/basic
parentb62d140be9319ecb1e8f38228f0f22926d7a8880 (diff)
Object Mode: Make Flat object selectable in ortho view ...
... when wireframe is enabled
Diffstat (limited to 'source/blender/draw/engines/basic')
-rw-r--r--source/blender/draw/engines/basic/basic_engine.c18
1 files changed, 18 insertions, 0 deletions
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));