Page MenuHome

Edge hidden by constraint drawing (2.8x)
Open, Needs Triage by DeveloperPublic

Description

Short description of error
In new versions, when moving or extruding along the axes, a line that shows which axis the action will be performed overlaps the orthogonal view of the edges. It is very uncomfortable.

Exact steps for others to reproduce the error


This i extrude axes Z.

This good job in 2.79.

Details

Type
Bug

Event Timeline

Vyacheslav (Ghostil) renamed this task from Overlapping the axes of the mesh in 2.80 and 2.8 to Overlapping the axes of the mesh in 2.80 and 2.81.Sat, Nov 23, 7:38 PM
Vyacheslav (Ghostil) created this task.
Germano Cavalcante (mano-wii) renamed this task from Overlapping the axes of the mesh in 2.80 and 2.81 to Edge hidden by constraint drawing (2.8x).Tue, Nov 26, 4:51 PM
Germano Cavalcante (mano-wii) updated the task description. (Show Details)

This is something to consider.
I don't know however if it should be confirmed as a bug.

One solution would be to move the contraint drawing to a REGION_DRAW_PRE_VIEW callback:

diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index f3d26f85471..166362ac4b8 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -1992,7 +1992,6 @@ static void drawTransformView(const struct bContext *C, ARegion *ar, void *arg)
 
   GPU_line_width(1.0f);
 
-  drawConstraint(t);
   drawPropCircle(C, t);
   drawSnapping(C, t);
 
@@ -2772,7 +2771,7 @@ void transformApply(bContext *C, TransInfo *t)
   t->context = NULL;
 }
 
-static void drawTransformApply(const bContext *C, ARegion *UNUSED(ar), void *arg)
+static void drawTransformApply(const bContext *C, ARegion *ar, void *arg)
 {
   TransInfo *t = arg;
 
@@ -2780,6 +2779,14 @@ static void drawTransformApply(const bContext *C, ARegion *UNUSED(ar), void *arg
     t->redraw |= TREDRAW_HARD;
     transformApply((bContext *)C, t);
   }
+
+  if (!transinfo_show_overlay(C, t, ar)) {
+    return;
+  }
+
+  GPU_line_width(1.0f);
+
+  drawConstraint(t);
 }
 
 int transformEnd(bContext *C, TransInfo *t)

But this solution would confuse the code since these callbacks have specific uses.