This is one of two chapters that are probably the reason you bought this book. You are probably working with a graphics library and then ran into a little bind in which there did not seem to be a software library function available with that special needed functionality. Your schedules are sliding, nerves are wrecked, and paranoia is beginning to set in as you believe that your project lead or manager is beginning to doubt your abilities and that pink slip is only about a week away. Out of desperation you have escaped to your refuge, that favorite technical bookstore that has rescued you so many times in the past. You find lots of graphics books but not what you are looking for. There are a few assembly books that you have seen over the years , but they have always been targeted for beginners , but you have bought them anyway for your personal library as another resource book. (I have always been impressed with someone who has multiple large bookcases with multitudes of dog-eared books in their office. There is a fine art to making brand new books look well used.) And then you see this book. You flip through it and this chapter catches your gleaming eye and then you whisper in euphoria to yourself, "This book will save my butt!" At that point you look around and see everyone in the bookstore staring at you as you skulk toward the sales clerk.
Of course, there are other code samples in my Vector Game Math Processors book so do not forget to buy that book as well.
For those of you C programmers out there, this chapter is very similar to those heavily used functions memset () and memcpy (). They are used in almost every application for a large variety of purposes, but their behavior typically is not that useful or fast enough in the clearing or blitting of graphic images. Some of you are probably thinking "Why isn't this guy using the hardware blitter on a graphics card?" Well, in some cases, the blitter is hidden from you in the bowels of drivers such as Direct Draw but that's all it is, a blitter a hardware device designed to move video card memory to video card memory and you only have 64 to 256 MB to play with. Okay, okay, that is much better than a couple years ago when you only had 2 to 8 MB. What we are trying to do here is learn the optimal method of moving memory around the computer system and from system memory to video memory. Also, just where did those images come from? Whose file format, and what compression type? How did they get loaded? Where do you get the driver, etc? There is also more to life than displaying video games ! What about streaming media such as MPEG-4 and DivX, video analysis, scientific research, speech recognition, stereoscopic vision, etc.? The list is endless and new reasons are being invented all the time. Now that I am off my soap- box we can continue.