OP_INVERT and anti-aliasing don't play together
|Reported by:||Pete||Owned by:||stippi|
This is a long-standing glitch that I think ought to be looked into. I worked around it in my own software, but I see it shows up in e.g. ArtPaint, too.
In BeOS, the common and convenient way to draw 'rubber-band' lines, temporary outlines, and so on, was to draw with OP_INVERT: draw once and it it visible, draw again and it is erased. With everything being drawn anti-aliased, this no longer works. Things don't get erased properly, and garbage is left strewn everywhere.
When I found this happening in MusicWeaver, I wrote my own short Bresenham code to explicitly draw with single points (actually "InvertRect(BRect(x,y,x,y));") but it would be nicer to be able to use the kit's methods to draw lines, and especially other things. ArtPaint, for example, draws its temporary rectangles and ellipses with OP_INVERT.
Would it be reasonable to simply inhibit anti-aliasing if OP_INVERT is selected? It's probably the only situation in which that mode is used. Haven't looked at the code, but I suspect it wouldn't be hard to implement.
Change History (10)
comment:1 by , 8 years ago
|Status:||new → assigned|
|Version:||R1/alpha4.1 → R1/Development|