Bit BLIT (which stands for bit-block [image] transfer but is pronounced bit blit) is a computer graphics operation in which several bitmaps are combined into one using a raster operator.
The operation involves at least two bitmaps, a source and destination, and possibly a third that is often called the "mask". The pixels of each are combined bitwise according to the specified raster operation (ROP) and the result is then written to the destination. The ROP is essentially a boolean formula. The most obvious ROP overwrites the destination with the source. Other ROPs may involve AND, OR, XOR, and NOT operations. The Commodore Amiga's graphics chipset could combine three bitmaps according to any of 256 logic functions of three variables.
Modern graphics hardware and software has almost completely replaced bitwise operations with mathematical operations such as alpha compositing. This is because bitwise operations on color displays do not produce results that resemble the physical combination of lights or inks. Some software still uses XOR to draw interactive highlight rectangles; when this is done to color images the unusual resulting colors are easily seen.
The name derives from the BitBLT routine for the Xerox Alto computer, standing for bit block transfer. This operation was created by Dan Ingalls, Larry Tesler, Bob Sproull, and Diana Merry at Xerox PARC in November 1975 for the Smalltalk-72 system. For the Smalltalk-74 system, Dan Ingalls later implemented a redesigned version in microcode.
The development of fast methods for various bit blit operations was key in the evolution of computer displays from using character graphics, to using bitmap graphics for everything. Machines that rely heavily on the performance of 2D graphics (such as video game consoles) often have special-purpose circuitry called a blitter.
Example of a Masked blit implementation
A classic use for blitting is to render transparent sprites onto a background. In this example a background image, a sprite, and a 1-bit mask are used. As the mask is 1-bit, there is no possibility for partial transparency via alpha blending.
Full article ▸