DirectX, formerly known as the Game SDK, is a term given for a collection of Windows APIs (Application Protocol Interface) for easily handling tasks related to game programming on the Microsoft Windows Operating System. This set of development libraries for high performance games allows software developers "direct access" to the low-level functions of PC peripherals. DirectX access is the hardware abstraction layer in Windows.
The various components of DirectX are DirectX Graphics, DirectInput, DirectPlay, DirectSound, DirectMusic, DirectSetup, and DirectX Media Objects. The various components comprising DirectX are in the form of COM compliant objects.
DirectX Graphics consists of two APIs, DirectDraw and Direct3D (D3D).
- DirectDraw – DirectDraw allows direct access to the bits on the video card and helps in drawing raster graphics. DirectDraw comes with the ability to store surfaces directly on the video card thus providing some amazingly fast blits.
- Direct3D (D3D) – Direct3D allows drawing 3D graphics primitives. D3D has two main modes – Retained Mode and Immediate Mode. Retained Mode is a low level API in which the application retains the graphics data. Immediate Mode is also a low level API, but it helps the application to explicitly streams the data out to an execute buffer.
DirectInput allows one to process data from a joystick, mouse, keyword or any other game controllers.
DirectSound allows playback and recording of waveform sound. It also does some basic sound manipulations like volume, frequency, and pan. DirectSound3D (DS3D) – allows for the playback of 3D sounds.
DirectPlay allows multiplayer games to connect across LANs, modems, or other networks.
DirectMusic is used to playback soundtracks authored in DirectMusic Producer.
DirectX Media consists of DirectShow, DirectAnimation, and DirectX Transform. These are used for media streaming applications, animation, and interactivity respectively.
DirectX Media Objects
DirectX Media Objects provides support for streaming objects like encoders, decoder, and effects.
History of DirectX
The first version of DirectX was released in the late 1995 to encourage game developers develop games for the Microsoft Windows Operating System. Before the advent of DirectX, most computer games were written for MS-DOS, so as to redraw the screen quickly for real time animation. To obtain the desired speed for real time animation, manufacturers of sound cards and display adapters had to write drivers for various display adaptors, which was a real headache in the development field.
DirectX provides an interface to access the frame buffer and the advanced features of the display adapter. This made possibe significant performance enhamcements which were not provided in the standard Windows GDI graphics interface. When DirectX was introduced, display adapter vendors quickly developed DirectX drivers that exposed the low-level functions of their hardware to the application.
Though originally aimed at the computer game development industry, DirectX has become very popular in other software fields. Especially, Direct3D is becoming popular in the engineering sector owing to its ability to provide high performance 3D graphics with the newest 3D graphics hardware.
DirectX 10 is the new exclusive interactive binary processor that only comes with Windows Vista. As of this moment it is considered to be the next generation binary processor that will allow an enormous amount of graphic capabilities. Directx is used by software production industries to create computer games and graphical programs. It is competing against the lesser known OpenGL and SDL.
DirectX 10 also comes with many new features and upgrades to DirectX 9c. DirectX 10 no longer has support for hardware accelerated audio and nstead is going to render sound using the CPU. DirectInput, which controls devices such as the mouse and keyboard, is being upgraded to XInput. DirectMusic is most likely the only component not to be changed.
Direct3D is the API used for creating games on the Windows platform. Direct3D 10, commonly known simply as DirectX 10 or DirectX 10, is regarded as a major upgrade to the previous version of Direct3D. This will allow a major advance in terms of graphical capability and rendering. DirectX 10 is mainly used by computer game production companies and you will therefore need to have DirectX 10 in order to play games made for Windows Vista.
It is currently disputed whether Directx 9c – the previous generation – games work as well on DirectX 10. It is said that some bugs are still being worked out, but DirectX 10 should be able to run DirectX 9c games at optimum performance in the near future. This is going to be solved with Microsoft's Automatic Updates.
The new features for DirectX 10 include: Fixed pipelines, Paging, Virtualization, an upgraded model of Shader – Shader 4.0, Geometry shaders, Texture arrays, Predicated Rendering and Instancing 2.0.
The difference between graphics from DirectX 9 and DirectX 10 is astounding. Many comparisons have been made by IGN and GameSpot, and it was unanimously agreed that the difference is very noticeable.
Because DirectX 10 produces such high-end graphics, many of the average computers in a home may not be able to perform at optimum speeds. nVidia and ATI have recently come out with a new line of video cards that are DirectX 10 native, and are said to be able to handle all DirectX 10 games. Among these video cards is nVidia's 8800GTX and 8800GT, and ATI's R600. As Windows Vista slowly becomes more popular and developers start to concentrate and making more games native to DirectX 10, many gamers will be needing to upgrade their graphics card if they don't already have a high end card.