[FIX] Halo Invalidation Tweak
arning at charm.net
Mon Dec 18 18:08:11 UTC 2000
On Mon, 18 Dec 2000 12:49:44 -0500 Doug Way <dway at riskmetrics.com> wrote:
>Bob Arning wrote:
>> The big damage rectangle is the HaloMorph itself (the thing that the handles are submorphs of). It could be argued that, since this guy is transparent, he doesn't need to report damage, but then you would need to be sure to report the damage for all the individual parts (handles and name). Which would be faster would depend a lot on what was on the screen.
>Ah, that makes sense. Probably it mostly just depends on the size of the morph... for large morphs it would be faster to report damage for the individual parts, but for small morphs the opposite. I suppose you could have a threshold size with which it decides between the two options.
>Related to that, at some point it might be interesting to put a fancier algorithm in DamageRecorder>>recordInvalidRect: which determines whether damage rectangles should be combined together based on how large they are, how far apart they are, etc.
It's probably even more complicated than that. A single, large rectangle may end up causing more morphs to redraw, while many, smaller rectangles may end up causing one morph to draw many times. Depends on what's beneath the damage rectangles. Pondering improved redraw logic is fun, but I haven't found the perfect solution yet. ;-)
More information about the Squeak-dev