Page MenuHome

Manipulator handles drawn incorrectly by depth
Closed, ResolvedPublic

Description

Windows7 x64 and Linux x64, 9600GT

Occurs at least since 2.59, did not try further back.

Handles on Scale and Translate manipulators are not rendered correctly by their depth.

Green handle always overdraws the blue and red handles, even when located 'behind' them.
Similarly, the red handle always overdraws the blue, and the blue handle is always overdrawn.

Oddly, it is only the handles that overlap incorrectly, the tails are correct and draw 'under' the handles when they should correctly.

see: http://www.blender.org/forum/viewtopic.php?p=102898

Details

Type
Bug

Event Timeline

I tracked it back to the 2.4x versions even. Old code here :) Nevertheless, something fun to check on at least.

I also noticed that even when red draws over blue, on click the blue one works. That's even worse.

Oh, I didnt notice Ton was on this now...
Anyways, I had a go at it and came up with the attached patch. This only adresses the order of drawing axis, cones(translate), and boxes(scaling). It does not handle clicks etc. Also: boxes/cones will still draw over axes, no matter if in front or not. I can look into this more (and improve logic of depth-ordering), just wanted to check if Ton already has something better...

Grreetz
Philipp

applied Philipp's patch r54923. with some changes.

Thanx Campbell, its always a great resource to see how its done properly :)

actually there was still something wrong: for translation the axis were still drawing in wrong order (cones draw OK, but axis not)

attaching a patch that solves this. this also makes it a little more consistent/readable (at least for me :S) in that zero is now always X, 1 is Y, 2 is Z.
[or did you have something else in mind when you made the order configurable in the first place, Campbell? "int axis_order[3] = {2, 0, 1}"?]

Anyways, have a nice one
Philipp