From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@cse.psu.edu Subject: Re: [9fans] =?iso-8859-1?Q?R=E9f._:_Re:_[9fans]_Re:_moving_things_in_a_window?= In-Reply-To: Your message of "Fri, 29 Sep 2000 10:55:18 EDT." <20000929145519.BF8D9199E8@mail> References: <20000929145519.BF8D9199E8@mail> Date: Fri, 29 Sep 2000 20:06:19 +0100 From: Theo Honohan Message-Id: Topicbox-Message-UUID: 12efb1d4-eac9-11e9-9e20-41e7f4b1d025 In message <20000929145519.BF8D9199E8@mail>, "Russ Cox" writes: > guess you can go a ways with xor :) > > I think xor had little to do with it. You could > do it with the current draw about as easily. > It seems to have come out of the trick of looking at > the color of the pixels in your way to see if > you are going to hit anything, rather than > keeping higher-level objects. > > See http://research.microsoft.com/Users/luca/Papers/Crabs/Crabs.ps That's fun. It does mention that "Crab icons must be drawn in XOR mode, to be able to restore the background when the crab moves away." So the presence of XOR is crucial to the implementation -- if you can't cheat by using XOR, then you have to do your best to efficiently redisplay all the underlying objects. Doug's suggestion would be one way of doing that -- maybe that was his point. It's also interesting (maybe) to think how you might efficiently implement crabs "between" layers. Hardware acceleration aside, I like the idea of avoiding a complete redraw by keeping a "pre-blended" copy of each layer in backing store in the server. http://www.webcom.com/~haahr/montage/montage-usenix-s90.html I suppose that could be a new refresh method -- or maybe it's the kind of thing Refmesg is intended for. Can you implement it with Refmesg without breaking the "Laws" in the crabs paper?