From mboxrd@z Thu Jan 1 00:00:00 1970 To: 9fans@cse.psu.edu Subject: Re: [9fans] Re: moving things in a window In-Reply-To: Your message of "Tue, 26 Sep 2000 11:15:16 MDT." References: Date: Tue, 26 Sep 2000 19:00:39 +0100 From: Theo Honohan Message-Id: Topicbox-Message-UUID: 0f315020-eac9-11e9-9e20-41e7f4b1d025 In message , and rey mirtchovski writes: > > We start with a black square. > Then we draw a white circle where the old circle was. > Then we draw a black circle where the new circle will be. > > The result is a black image with a sliver of white corresponding to > the area of the old circle that is outside the new circle. > > Interpreted as a mask, black is transparent; white opaque. > So the mask says ``only draw where the old circle was > but the new circle is not''. > The final draw puts white down in those places. > --- end paste -- > That matches my reading of Russ's code. I left the masking with the "old circle" out, in order to keep things simple. As far as I can see, it's really an optimisation, rather than part of the semantics of the operation (unless switching "trails" on and off on the fly is important to you; in general, I guessed that it wasn't). > the explanation may be a bit too high level for you though :) Well, I was trying to reason about a more general case, with full RGBA objects. (Though I guess bringing the semantics of draw() into the argument was lowering the *tone* a bit, groan)