chiark / gitweb /
Fix antialiasing artifacts around edges of Bridges islands.
authorSimon Tatham <anakin@pobox.com>
Tue, 7 Oct 2014 21:22:53 +0000 (21:22 +0000)
committerSimon Tatham <anakin@pobox.com>
Tue, 7 Oct 2014 21:22:53 +0000 (21:22 +0000)
commitb1158d4dcf76aebf2a4dbac0734095a5a4ece6c0
treeb2ac79236637411125b26135d48896b03601c8ee
parent1ba20eddba58f435bb42d1b2396c0cecb09e8a88
Fix antialiasing artifacts around edges of Bridges islands.

When an island changes colour (because it becomes locked or
highlighted, or goes back to plain COL_FOREGROUND from one of those
states), we were just redrawing a filled circle over the previous one,
which only really worked before antialiasing was introduced.

Fixed by reworking the entire drawing edifice to be grid-square based,
so that every grid square is either redrawn in full or left alone.
Grid squares come in two types - island and bridge - but a bridge
square can have neighbouring islands overlap into it, and the bridges
entering an island overlap the island square too, so we end up with
quite a large collection of bitfields describing each square's
contents, and some care must be taken to draw each square in the right
order.

[originally from svn r10282]
bridges.c