For displaying our main game map during the game play we needed a fast engine. The
default technique most programmers employ to display bitmaps (or DIBs) is the famous
BitBlt function. BitBlt is very powerful, however, since it's part of the GDI, it must use
the GDI objects (palettes, regions, clipping etc.). This power of BitBlt is very handy but
it effects its performance considerably.
Another technique, created especially for game-oriented applications is the DirectDraw
library. This library, being part of DirectX, supports optimized access to the graphics
hardware and promises top performance. The library is best suited to deal with full screen
applications. Since ours is a windowed (dialog-based) application, we found DirectDraw to
be an overkill for our needs.
Finally, we settled somewhere in between the GDI's BitBlt and DirectDraw.
We stumbled upon the DrawDIB libraries.
This library is not new - it's been around since the Windows 3.1 days (uses for VFW -
Video for Windows). It has a low overhead and it is especially designed for fast DIB
drawing to the screen, without using the GDI (faster).
Major features of DrawDIB