[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