Microsoft's goal in developing DirectX was to provide developers with a common set of instructions and components, giving them confidence that their multimedia applications would run on any Windows-based PC, no matter what the hardware. At the same time, developers can be sure that their products take full advantage of high-performance hardware capabilities to achieve the best possible performance.
DirectX provides developers with new opportunities for creativity and innovation by allowing them to focus on building unique features for their application without having to worry about which display adapter, sound card, or 3-D accelerator chip is installed in your PC. And because DirectX was designed to support future innovations in software and hardware, developers and consumers can be confident that they will continue to get the best possible performance from their applications as technology advances.
DirectX gives developers a single set of APIs (application programming interfaces) that provides them with improved access to the advanced features of high-performance hardware such as 3-D graphics acceleration chips and sound cards. These APIs control the "low-level functions," including 2-D graphics acceleration; support for input devices such as joysticks, keyboards, and mice; and control of sound mixing and sound output. Low-level functions are supported by the components that make up the DirectX: Microsoft DirectDraw®, Microsoft Direct3D®, Microsoft DirectInput®, Microsoft DirectSound®, Microsoft DirectPlay®, DirectShow®, and Microsoft DirectMusic®.
Before DirectX, developers creating multimedia applications for Windows machines had to customize their products so that they would work well on an enormous variety of hardware devices and configurations. DirectX provides a "hardware abstraction layer" (HAL), which uses software drivers to communicate between game software and computer hardware. As a result, developers can use DirectX to write a single version of their product without worrying about the wide range of hardware devices and configurations in existence.
DirectX also provides developers with tools that help you get the best possible performance from the machine you're using. It automatically determines the hardware capabilities of your computer and then sets the application's parameters to match. With DirectX, you can even run multimedia applications that require support for features your system doesn't have by simulating certain hardware devices through a "hardware emulation layer" (HEL), which provides software-based drivers that act like hardware. For example, a DirectX game that makes use of 3-D imagery can run on a machine that doesn't have a 3-D acceleration card because DirectX simulates the services of a 3-D card.
The components that make up DirectX also provide hardware makers with a uniquely flexible platform. Because DirectX accesses a computer's hardware through software drivers, hardware developers can create special DirectX drivers that ensure you get the most out of advances in hardware technology -- now and in the future.
For getting information about DirectX for Win32, see the
Official Direct X Site
For Direct3D information, see the NVidia Developer Site where a lot of samples code is provided.
For OpenGL development, see the www.opengl.org site