What's New in DirectX 5?

DirectX 5 provides more services—and more avenues for innovation—than did DirectX 3. (Note that there is no "DirectX 4"—the numbering jumps from version 3 to version 5.) Although this Programmer's Reference contains additional functions and services, all the applications you wrote with previous DirectX APIs will compile and run successfully without changes.

The purpose of this section is to help those of you who are familiar with DirectX 3 quickly identify several important areas of this Programmer's Reference that are significantly different. These differences are listed by component.

DirectDraw
(Windows 98 and Windows NT 5.0 only.) DirectDraw supports multiple monitors on systems running Windows 98 and Windows NT 5.0. For more information, see Multiple Monitor Systems.
DirectDraw has been extended with new video-port capabilities that allow applications to control the flow of data from a hardware video-port device to a DirectDraw surface in display memory. For an overview of the video-port extensions, see Video Ports.
Additionally, the DirectDraw HEL now exploits performance improvements made possible by the Pentium MMX processor. DirectDraw tests for the presence of an MMX processor the first time you create a surface in any process. On non-Pentium machines, this test can cause a benign first-chance exception ("Illegal Instruction") to be reported by the debugger. The exception will not affect your application's performance or stability.
DirectDraw now supports off-screen surfaces wider than the primary surface. You can create surfaces as wide as you need, permitting that the display hardware can support it.

For more information, see Creating Wide Surfaces.

DirectDraw now supports the Advanced Graphics Port (AGP) architecture. On AGP-equipped systems, you can create surfaces in non-local video memory. The DDSCAPS structure now supports flags to differentiate between standard (local) video memory and AGP (non-local) video memory. The DDCAPS structure now contains members that carry information about blit operations using non-local video memory surfaces. For more information, see Using Non-local Video Memory Surfaces.
DirectSound
DirectSound includes a new interface, IKsPropertySet, that enables it to support extended services offered by sound cards and their associated drivers. For more information, see DirectSound Property Sets.

Also new is DirectSoundCapture, a COM-based wrapper for the Win32 waveIn functions that will be extended in the future to work directly with the drivers.

DirectPlay
DirectPlay includes a new interface, IDirectPlay3, that is exactly the same as IDirectPlay2 with new methods. Similarly, IDirectPlayLobby2 is an extended version of IDirectPlayLobby.

New functionality in DirectPlay includes the ability for applications to suppress service provider dialogs by creating connection shortcuts, asynchronous EnumSessions to keep an up-to-date list of available sessions, implementation of the SetSessionDesc method, better support for password protected sessions, support for secure server connections and the ability to create multiple DirectPlay objects and to create them directly using CoCreateInstance.

For more information about these new features, see What's New in DirectPlay?

Direct3D
Direct3D Immediate Mode now supports drawing primitives without having to work directly with execute buffers. For more information, see The DrawPrimitive Methods. A set of extensions and helper functions has been implemented for C++ programmers; for more information, see D3D_OVERLOADS.

Direct3D Retained Mode now support interpolators that enable you to blend colors, move objects smoothly between positions, morph meshes, and perform many other transformations. Retained Mode also supports progressive meshes that allow you to begin with a coarse mesh and increasingly refine it; this can help you take the level of detail into account and can help with progressive downloads from remote locations. For more information, see the IDirect3DRMInterpolator Interface and the IDirect3DRMProgressiveMesh Interface

The Direct3D documentation has been updated for DirectX 5. The overview of Immediate Mode is more comprehensive, there is an Immediate-Mode tutorial, and there is a description of the .X file format.

DirectInput
(Windows 98 and Windows NT 5.0 only.) DirectInput supports input devices that use the Human Interface Device (HID) standard. For more information, see Human Interface Devices
DirectInput now provides COM interfaces for joysticks (a term that includes other input devices such as game pads and flight yokes) and for force feedback devices as well as for the mouse and keyboard.

The DirectInput documentation has been expanded to include reference material for the new functionality as well as new overviews and tutorials.

DirectSetup
DirectSetup now includes greater user interface customization capabilities. This is provided through a callback function that is passed to DirectSetup before it begins installing DirectX components and drivers. The callback function communicates the current installation status to your application's setup program. You can use this information to display the status through a user interface that is customized for your program.

In addition, DirectSetup now provides a way for multiplayer games that use DirectPlayLobby to remove their registration information from the registry.

AutoPlay
No changes for DirectX 5.