|This is retired content. This content is outdated and is no longer being maintained. It is provided as a courtesy for individuals who are still using these technologies. This content may contain URLs that were valid when originally published, but now link to sites or pages that no longer exist.|
The DirectDraw object is the heart of all DirectDraw applications. It is the first object you create and, through it, you create all other related objects. Typically, you create a DirectDraw object by calling the DirectDrawCreatefunction, which returns an IDirectDrawinterface. If you want to work with a different iteration of the interface (such as IDirectDraw4) to take advantage of new features it provides, you can query for it. (See Getting an IDirectDraw4 Interface.) Note that you can create multiple DirectDraw objects, one for each display device installed in a system.
The DirectDraw object represents the display device and makes use of hardware acceleration if the display device for which it was created supports hardware acceleration. Each unique DirectDraw object can manipulate the display device and create surfaces, palettes, and clipper objects that are dependent on (or are, "connected to") the object that created them. For example, to create surfaces, you call the IDirectDraw4::CreateSurfacemethod. Or, if you need a palette object to apply to a surface, call the IDirectDraw4::CreatePalettemethod. Additionally, the IDirectDraw4interface exposes similar methods to create clipper objects.
You can create more than one instance of a DirectDraw object at a time. The simplest example of this is using two monitors on a Windows 95 or Windows NT 4.0 and earlier system. Although these operating systems don't support dual monitors on their own, it is possible to write a DirectDraw HAL for each display device. The display device Windows and GDI recognize is the one that will be used when you create the instance of the default DirectDraw object. The display device that Windows and GDI do not recognize can be addressed by another, independent DirectDraw object that must be created by using the second display device's globally unique identifier (GUID). This GUID can be obtained by using the DirectDrawEnumeratefunction.
The DirectDraw object manages all of the objects it creates. It controls the default palette (if the primary surface is in 8-bits-per-pixel mode), the default color key, and the hardware display mode. It tracks what resources have been allocated and what resources remain to be allocated.
Last updated on Tuesday, May 18, 2004