Step 7: Process All Calls

Even if your display adapter has acceleration code, you must still be able to process all calls (except Enable, Disable, ReEnable, SetPalette, and GetPalette) as if they went to the DIB engine. This is because the DIB engine can draw directly on the display surface when the user sets the Graphics Performance setting to "None". In this case, the system will never call the driver's drawing functions. Instead it will call the DIB engine directly to draw onto the display surface. For this reason, all physical objects (brushes, pens, bitmaps, and the PDEVICE structure) must be complete and in the format defined for the DIB engine. For more information about the DIB engine, see About the Device Independent Bitmap Engine.