Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/18/84 +MMDF+MULTI+2.11; site wcwvax.UUCP Path: utzoo!linus!philabs!cmcl2!seismo!mcvax!ukc!qtlon!wcwvax!ian From: ian@wcwvax.UUCP (Ian Kemmish) Newsgroups: net.micro Subject: Re: Re: What is "bitblt" ? (Really extending to colour) Message-ID: <605@wcwvax.UUCP> Date: Tue, 7-Jan-86 05:45:14 EST Article-I.D.: wcwvax.605 Posted: Tue Jan 7 05:45:14 1986 Date-Received: Fri, 10-Jan-86 06:57:44 EST Organization: Whitechapel Computer Works, London Lines: 34 There are only 16 functions of two Boolean variables, so it's easy to cater for all possible cases in monochrome. In addition, the fact that historically bitblt has often been done in hardware has meant that there was no extra cost involved in providing all sixteen. By the time we get to mainly-software implementations, history dictates what to implement! In colour, with 8, 16 or 24 bits/pixel, it's clearly ludicrous to try and cater for all eventualities. A lot of people implement their colour screens as multiple bitplanes, so they tend to just allow monochrome bitblts on each plane. This is why colour bitblt often appears to be a no-no. The trick is to define a sensible (but small) set of "useful" operations. Here at WCW, we have done: PAINT (overlay), HIGHLIGHT (invertible), MIX and UNMIX (complementary). Each of these rules can be applied direct between two rasters (except for HIGHLIGHT, which is a unary operation) or via a stencil. This set of rules seems to be enough to do most of the things people need to do with bitmap displays - we have implemented a brush graphics library with arbitrarily shaped, coloured and patterned brushes with no real trouble. We have also mapped these rules into the traditional Boolean functions for operating on monochrome rasters. Footnote: I don't think the Mac actually uses bitblt very much at all. I suspect that Quickdraw calculates the region to fill with a pattern and then fills that region. The reason for my suspicion is that an ellispe drawn with a rectangular brush actually comes out a slightly different shape from a Quickdraw outline oval! ++ You know whose trademarks I've been using ++