All Topics  
DirectX

 
DirectX

   Email Print
   Bookmark   Link






 

DirectX



 
 
Microsoft DirectX is a collection of application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
s (APIs) for handling tasks related to multimedia
Multimedia

Multimedia is media and content that utilizes a combination of different content format. The term can be used as a noun or as an adjective describing a medium as having multiple content forms....
, especially game programming
Game programming

Game programming, a subset of game development, is the programming of computer game, console game or arcade games. Though often engaged in by professional game programmers, many novices may program games as a hobby....
 and video, on Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 platforms. Originally, the names of these APIs all began with Direct, such as Direct3D
Direct3D

Direct3D is part of Microsoft's DirectX application programming interface. Direct3D is only available for Microsoft's various Microsoft Windows operating systems and is the base for the graphics API on the Xbox and Xbox 360 console systems....
, DirectDraw
DirectDraw

DirectDraw is part of Microsoft's DirectX application programming interface. DirectDraw is used to render Computer graphics in applications where top performance is important....
, DirectMusic
DirectMusic

DirectMusic is a deprecated component of the Microsoft DirectX API that allows music and sound effects to be composed and played and provides flexible interactive control over the way they are played....
, DirectPlay
DirectPlay

DirectPlay is part of Microsoft's DirectX API. DirectPlay is a network communication library intended for computer game development, although its general nature certainly allows it to be used for other purposes....
, DirectSound
DirectSound

DirectSound is a software component of the DirectX library, supplied by Microsoft, that resides on a computer with the Microsoft Windows operating system....
, and so forth. DirectX, then, was the generic term for all of these APIs and became the name of the collection. After the introduction of the Xbox
Xbox

The Xbox is a History of video games video game console produced by Microsoft. It was Microsoft's first foray into the gaming console market, and competed with Sony's PlayStation 2 and Nintendo's GameCube....
, Microsoft has also released multiplatform game development APIs such as XInput, which are designed to supplement or replace individual DirectX components.

Direct3D (the 3D graphics API within DirectX) is widely used in the development of video games for Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 Xbox
Xbox

The Xbox is a History of video games video game console produced by Microsoft. It was Microsoft's first foray into the gaming console market, and competed with Sony's PlayStation 2 and Nintendo's GameCube....
, and Microsoft Xbox 360
Xbox 360

The Xbox 360 is the second video game console produced by Microsoft, and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the History of video game consoles of video game consoles....
.






Discussion
Ask a question about 'DirectX'
Start a new discussion about 'DirectX'
Answer questions from other users
Full Discussion Forum



Encyclopedia


Microsoft DirectX is a collection of application programming interface
Application programming interface

An application programming interface is a set of subroutine, data structures, class and/or Protocol provided by library and/or operating system Service s in order to support the building of applications....
s (APIs) for handling tasks related to multimedia
Multimedia

Multimedia is media and content that utilizes a combination of different content format. The term can be used as a noun or as an adjective describing a medium as having multiple content forms....
, especially game programming
Game programming

Game programming, a subset of game development, is the programming of computer game, console game or arcade games. Though often engaged in by professional game programmers, many novices may program games as a hobby....
 and video, on Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 platforms. Originally, the names of these APIs all began with Direct, such as Direct3D
Direct3D

Direct3D is part of Microsoft's DirectX application programming interface. Direct3D is only available for Microsoft's various Microsoft Windows operating systems and is the base for the graphics API on the Xbox and Xbox 360 console systems....
, DirectDraw
DirectDraw

DirectDraw is part of Microsoft's DirectX application programming interface. DirectDraw is used to render Computer graphics in applications where top performance is important....
, DirectMusic
DirectMusic

DirectMusic is a deprecated component of the Microsoft DirectX API that allows music and sound effects to be composed and played and provides flexible interactive control over the way they are played....
, DirectPlay
DirectPlay

DirectPlay is part of Microsoft's DirectX API. DirectPlay is a network communication library intended for computer game development, although its general nature certainly allows it to be used for other purposes....
, DirectSound
DirectSound

DirectSound is a software component of the DirectX library, supplied by Microsoft, that resides on a computer with the Microsoft Windows operating system....
, and so forth. DirectX, then, was the generic term for all of these APIs and became the name of the collection. After the introduction of the Xbox
Xbox

The Xbox is a History of video games video game console produced by Microsoft. It was Microsoft's first foray into the gaming console market, and competed with Sony's PlayStation 2 and Nintendo's GameCube....
, Microsoft has also released multiplatform game development APIs such as XInput, which are designed to supplement or replace individual DirectX components.

Direct3D (the 3D graphics API within DirectX) is widely used in the development of video games for Microsoft Windows
Microsoft Windows

Microsoft Windows is a series of software operating systems and graphical user interfaces produced by Microsoft. Microsoft first introduced an operating environment named Windows in November 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces ....
, Microsoft
Microsoft

Microsoft Corporation is a multinational corporation computer technology corporation that develops, manufactures, licenses, and supports a wide range of computer software products for computing devices....
 Xbox
Xbox

The Xbox is a History of video games video game console produced by Microsoft. It was Microsoft's first foray into the gaming console market, and competed with Sony's PlayStation 2 and Nintendo's GameCube....
, and Microsoft Xbox 360
Xbox 360

The Xbox 360 is the second video game console produced by Microsoft, and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the History of video game consoles of video game consoles....
. Direct3D is also used by other software applications for visualization and graphics tasks such as CAD/CAM engineering. As Direct3D is the most widely publicized component of DirectX, it is common to see the names "DirectX" and "Direct3D" used interchangeably.

The DirectX software development kit (SDK)
Software development kit

A software development kit is typically a set of development tools that allows a software engineer to create application software for a certain software package, software framework, hardware platform, computer system, video game console, operating system, or similar platform....
 consists of runtime libraries
Runtime library

In computer programming, a runtime library is a special program library used by a compiler, to implement functions built into a programming language, during the runtime of a computer program....
 in redistributable binary form, along with accompanying documentation and headers
Header file

In computer programming, particularly in the C and C++ programming languages, a header file or include file is a computer file, usually in the form of source code, that a compiler automatically includes when processing another source file....
 for use in coding. Originally, the runtimes were only installed by games or explicitly by the user. Windows 95
Windows 95

Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Microsoft Windows products....
 did not launch with DirectX, but DirectX was included with Windows 95 OEM Service Release 2. Windows 98
Windows 98

Windows 98 is a graphical operating system released on 25 June 1998 by Microsoft and the successor to Windows 95. Like its predecessor, it is a hybrid 16-bit application/32-bit application monolithic product based on MS-DOS....
 and Windows NT 4.0
Windows NT 4.0

Windows NT 4.0 is a Preemption , Graphical user interface and business-oriented operating system designed to work with either uniprocessor or Symmetric multiprocessing computers....
 both shipped with DirectX, as has every version of Windows released since. The SDK is available as a free download. While the runtimes are proprietary, closed-source software, source code is provided for most of the SDK samples.

The latest versions of Direct3D, namely, Direct3D 10 and Direct3D 9Ex, are only officially available for Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
, because each of these new versions was built to depend upon the new Windows Display Driver Model
Windows Display Driver Model

Windows Display Driver Model is the graphic driver architecture for video card device driver running Microsoft Windows versions beginning with Windows Vista....
 that was introduced for Windows Vista. The new Vista/WDDM graphics architecture includes a new video memory manager that supports virtualizing graphics hardware to multiple applications and services such as the Desktop Window Manager
Desktop Window Manager

Desktop Window Manager is a compositing window manager, introduced with Windows Vista, that enables the Windows Aero graphical user interface and visual theme....


Components


The components of DirectX are
  • DirectX Graphics, which consists of several APIs:
    • DirectDraw
      DirectDraw

      DirectDraw is part of Microsoft's DirectX application programming interface. DirectDraw is used to render Computer graphics in applications where top performance is important....
      : for drawing 2D Graphics (raster graphics
      Raster graphics

      In computer graphics, a raster graphics image or bitmap, is a data structure representing a generally Rectangle grid of pixels, or points of color, viewable via a Computer display, paper, or other display medium....
      ). Now deprecated, though still in use by a number of games and as a video renderer in media applications.
    • Direct3D
      Direct3D

      Direct3D is part of Microsoft's DirectX application programming interface. Direct3D is only available for Microsoft's various Microsoft Windows operating systems and is the base for the graphics API on the Xbox and Xbox 360 console systems....
       (D3D): for drawing 3D graphics
      3D computer graphics

      3D computer graphics are graphics that use a Cartesian coordinate system#Three-dimensional coordinate system representation of geometric data that is stored in the computer for the purposes of performing calculations and rendering 2D images....
      .
    • DXGI
      DXGI

      DirectX Graphics Infrastructure is a user-mode component of Windows Vista which provides a mapping between particular graphics APIs such as Direct3D 10.0 and 10.1 and the graphics kernel, which in turn interfaces with the user-mode Windows Display Driver Model driver....
      : for enumerating adapters and monitors and managing swap chains for Direct3D 10 and up.
  • DirectInput
    DirectInput

    DirectInput is a Microsoft API for collecting input from the user, via list of input devices such the computer mouse, computer keyboard, joystick or other game controllers....
    : for interfacing with input devices including keyboards, mice, joystick
    Joystick

    A joystick is an input device consisting of a stick that pivots on a base and reports its angle or direction to the device it is controlling. Joysticks are often used to control video games, and usually have one or more push-buttons whose state can also be read by the computer....
    s, or other game controller
    Game controller

    A game controller is an input device used to control a video game. A controller is typically connected to a video game console or a personal computer....
    s. Deprecated after version 8 in favor of XInput for Xbox360 controllers or standard WM INPUT window message processing for keyboard and mouse input.
  • DirectPlay
    DirectPlay

    DirectPlay is part of Microsoft's DirectX API. DirectPlay is a network communication library intended for computer game development, although its general nature certainly allows it to be used for other purposes....
    : for communication over a local-area or wide-area network. Deprecated after version 8.
  • DirectSound
    DirectSound

    DirectSound is a software component of the DirectX library, supplied by Microsoft, that resides on a computer with the Microsoft Windows operating system....
    : for the playback and recording of waveform sounds.
    • DirectSound3D (DS3D): for the playback of 3D sounds
      3D audio effect

      3D audio effects are a group of sound effects that attempt to widen the stereoscopic image produced by two loudspeakers or stereo headphones, or to create the illusion of sound sources placed anywhere in 3 dimensional space, including behind, above or below the listener....
      .
  • DirectMusic
    DirectMusic

    DirectMusic is a deprecated component of the Microsoft DirectX API that allows music and sound effects to be composed and played and provides flexible interactive control over the way they are played....
    : for playback of soundtracks authored in DirectMusic Producer
    DirectMusic

    DirectMusic is a deprecated component of the Microsoft DirectX API that allows music and sound effects to be composed and played and provides flexible interactive control over the way they are played....
    .
  • DirectX Media
    DirectX Media

    DirectX Media is a set of multimedia-related APIs for Microsoft Windows complementing DirectX. It included DirectAnimation for 2D/3D web animation, DirectShow for multimedia playback and streaming media, DirectX Transform for web interactivity, and Direct3D Retained Mode for higher level 3D graphics....
    : comprising DirectAnimation for 2D/3D web animation, DirectShow
    DirectShow

    DirectShow , codename Quartz, is a multimedia framework and application programming interface produced by Microsoft for software developers to perform various operations with media files or streams....
     (soon to be deprecated for Media Foundation
    Media Foundation

    Microsoft Media Foundation is a Component Object Model multimedia framework pipeline and infrastructure platform for digital media in Windows Vista....
    ) for multimedia playback and streaming media
    Streaming media

    Streaming media is multimedia that is constantly received by, and normally presented to, an End-user while it is being delivered by a streaming provider ....
    , DirectX Transform for web interactivity, and Direct3D Retained Mode for higher level 3D graphics. DirectShow contains DirectX plugin
    DirectX plugin

    In computer music and professional audio creation, a DirectX plugin is a software processing component that can be loaded as a plugin into host applications to allow real-time processing, audio effects, mixing audio or act as Software synthesizer....
    s for audio signal processing
    Audio signal processing

    Audio signal processing, sometimes referred to as audio processing, is the intentional alteration of sound Signal , or sound. As audio signals may be electronically represented in either digital or analog signal format, signal processing may occur in either domain....
     and DirectX Video Acceleration
    DXVA

    DirectX Video Acceleration is a Microsoft API specification for the Microsoft Windows and Xbox 360 platforms that allows Digital video codec to be hardware accelerated....
     for accelerated video playback.


As of April 2005 DirectShow is no longer a part of the DirectX API. It now comes bundled along with the Platform SDK.

  • DirectX Media Objects
    DirectX Media Objects

    DirectX Media Objects are Component Object Model-based multimedia and data-streaming components. In some respects, DMOs are similar to DirectShow filters....
    : support for streaming objects such as encoders, decoders, and effects.
  • DirectSetup
    DirectSetup

    DirectSetup is an extremely simple library of functions for Installation ing DirectX on a machine. It also provides a way to check the version of DirectX that is present....
    : for the installation of DirectX components. Not a game API per se.


DirectX functionality is provided in the form of COM
Component Object Model

Component Object Model is an interface standard for software componentry introduced by Microsoft in 1993. It is used to enable interprocess communication and dynamic object creation in a large range of programming languages....
-style objects and interfaces. Additionally, while not DirectX components themselves, managed
Managed code

Managed code is Source code that executes under the management of a virtual machine, unlike unmanaged code, which is executed directly by the computer's Central processing unit....
 objects have been built on top of some parts of DirectX, such as managed Direct3D 9.and the XNA graphics library

DirectX 10


A major update to DirectX API, DirectX 10 ships with and is only available with Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
; previous versions of Windows such as Windows XP are not able to officially run DirectX 10-exclusive applications. There are unofficial ports of DirectX 10 to XP, however these do not always work reliably. Changes for DirectX 10 were extensive
Features new to Windows Vista

Windows Vista has many new features compared with previous Microsoft Windows versions, covering most aspects of the operating system.This article discusses the changes most likely to be of interest to non-technical users....
.

Many former parts of DirectX API were deprecated in the latest DirectX SDK and will be preserved for compatibility only: DirectInput
DirectInput

DirectInput is a Microsoft API for collecting input from the user, via list of input devices such the computer mouse, computer keyboard, joystick or other game controllers....
 was deprecated in favor of XInput, DirectSound
DirectSound

DirectSound is a software component of the DirectX library, supplied by Microsoft, that resides on a computer with the Microsoft Windows operating system....
 was deprecated in favor of XACT
XACT

XACT is an audio programming library and engine released by Microsoft as part of the DirectX SDK. It is a high-level audio library for authoring/playing audio that is written to use Xaudio on the Xbox, DirectSound on Windows XP, and the Technical features new to Windows Vista#Audio on Windows Vista....
 and lost support for hardware accelerated audio, since Vista audio stack
Technical features new to Windows Vista

Windows Vista has many significant new features compared with previous Microsoft Windows versions, covering most aspects of the operating system....
 renders sound in software on the CPU. The DirectPlay DPLAY.DLL was also removed and was replaced with dplayx.dll; games that rely on this DLL must duplicate it and rename it to dplay.dll.

In order to achieve backwards compatibility, DirectX in Windows Vista contains several versions of Direct3D:

  • Direct3D 9: emulates Direct3D 9 behavior as it was on Windows XP. Details and advantages of Vista's Windows Display Driver Model
    Windows Display Driver Model

    Windows Display Driver Model is the graphic driver architecture for video card device driver running Microsoft Windows versions beginning with Windows Vista....
     are hidden from the application if WDDM drivers are installed. This is the only API available if there are only XP graphic drivers (XPDM) installed, after an upgrade to Vista for example.
  • Direct3D 9Ex (known internally during Windows Vista development as 9.0L or 9.L, the L standing for Vista's codename: Longhorn): allows full access to the new capabilities of WDDM (if WDDM drivers are installed) while maintaining compatibility for existing Direct3D applications. The Windows Aero
    Windows Aero

    Windows Aero is the graphical user interface and the default theme in most editions of Windows Vista, an operating system released by Microsoft on 31 January 2007....
     user interface relies on D3D 9Ex.
  • Direct3D 10: Designed around the new driver model in Windows Vista and featuring a number of improvements to rendering capabilities and flexibility, including Shader Model 4
    High Level Shader Language

    The High Level Shader Language or High Level Shading Language is a proprietary shading language developed by Microsoft for use with the Microsoft Direct3D API....
    .


Direct3D 10.1 is an incremental update of Direct3D 10.0 which is shipped with, and requires, Windows Vista Service Pack 1. This release mainly sets a few more image quality standards for graphics vendors, while giving developers more control over image quality. It also adds support for parallel cube mapping and requires that the video card supports Shader Model 4.1 or higher and 32-bit floating-point operations. Direct3D 10.1 still fully supports Direct3D 10 hardware, but in order to utilize all of the new features, updated hardware is required. As of November 29, 2008, only ATI's HD4xxx and HD3xxx series and S3's chrome 4xx GTX series of GPUs are fully compliant, Nvidia has yet to release a DX10.1 compliant card. All future DX11 hardware will also support DX10.1 in order to be DX11 compliant.

Direct3D 11

Microsoft unveiled Direct3D 11 at the Gamefest 08 event in Seattle, with the major scheduled features including GPGPU
GPGPU

General-purpose computing on graphics processing units is the technique of using a graphics processing unit, which typically handles computation only for computer graphics, to perform computation in applications traditionally handled by the central processing unit....
 support, tessellation
Tessellation

A tessellation or tiling of the plane is a collection of plane figures that fills the plane with no overlaps and no gaps. One may also speak of tessellations of the parts of the plane or of other surfaces....
 support, and improved multi-threading support to assist video game developers in developing games that better utilize multi-core processors. Direct3D 11 will run on Windows Vista
Windows Vista

Windows Vista is one member in a family of operating systems developed by Microsoft for use on personal computers, including home and business Desktop computer, laptops, Tablet PCs, and media center PCs....
 and its successor Windows 7. Parts of the new API such as multi-threaded resource handling can be supported on Direct3D 9/10/10.1-class hardware. Hardware tessellation and Shader Model 5.0 will require Direct3D 11 supporting hardware. Microsoft has since released the Direct3D 11 Technical Preview. . DirectX 11 is scheduled to be released as part of the Windows 7 operating system. It is included in the Windows 7 beta (build 7000).

History

In late 1994 Microsoft was on the verge of releasing its next operating system
Operating system

An operating system is an interface between hardware and applications; it is responsible for the management and coordination of activities and the sharing of the limited resources of the computer....
, Windows 95
Windows 95

Windows 95 is a consumer-oriented graphical user interface-based operating system. It was released on August 24, 1995 by Microsoft, and was a significant progression from the company's previous Microsoft Windows products....
. The main factor that would determine the value consumers would place on their new operating system very much rested on what programs would be able to run on it. Three Microsoft employees – Craig Eisler, Alex St. John
Alex St. John

Alex St. John, along with Craig Eisler and Eric Engstrom, created the original Microsoft DirectX specification. Alex became a Windows game technology evangelist for DirectX through magazine articles and interviews on the newly created web....
, and Eric Engstrom – were concerned because programmers
Game programmer

A game programmer is a programmer who primarily develops video games or related software . Game programming has many specialized disciplines; practitioners of any may regard themselves as "game programmers"....
 tended to see Microsoft's previous operating system, MS-DOS
MS-DOS

MS-DOS is an operating system commercialized by Microsoft. It was the most commonly used member of the DOS family of operating systems and was the main operating system for personal computers during the 1980s....
, as a better platform for game programming, meaning few games would be developed for Windows 95 and the operating system would not be as much of a success. DOS allowed direct access to video cards, keyboards and mice, sound devices
Sound card

A sound card is a computer expansion card that facilitates the input and output of sound to/from a computer under control of computer programs....
, and all other parts of the system, while Windows 95, with its protected memory model, restricted access to all of these, working on a much more standardized model. Microsoft needed a way that would let programmers get what they wanted, and they needed it quickly; the operating system was only months away from being released. Eisler (development lead), St. John, and Engstrom (program manager) worked together to fix this problem, with a solution that they eventually named DirectX. The first version of DirectX was released in September 1995 as the Windows Games SDK. It was the Win32
Windows API

The Windows API, informally WinAPI, is Microsoft's core set of application programming interfaces available in the Microsoft Windows operating systems....
 replacement for the DCI and WinG
Wing

A wing is a surface used to produce Lift for flight through the Earth's atmosphere or another gaseous or fluid medium. The wing shape is usually an airfoil....
 APIs for Windows 3.1. Simply put, DirectX allowed all versions of Microsoft Windows, starting with Windows 95, to incorporate high-performance multimedia. Eisler wrote about the frenzy to build DirectX 1 through 5 in his blog.

The DirectX team faced the challenging task of testing each DirectX release against an array of hardware and software. A variety of different graphics cards, audio cards, motherboards, CPUs, input devices, games, and other multimedia applications were tested with each beta and final release. The DirectX team also built and distributed tests that allowed the hardware industry to confirm that new hardware designs and driver releases would be compatible with DirectX.

Prior to DirectX, Microsoft had included OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
 on their Windows NT
Windows NT

Windows NT is a family of operating systems produced by Microsoft, the first version of which was released in July 1993. It was originally designed to be a powerful high-level-language-based, processor-independent, multiprocessing, multiuser operating system with features comparable to Unix....
 platform. At the time, OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
 required "high-end" hardware and was focused on engineering
Engineering

Engineering is the discipline and profession of applying Technology and science knowledge and utilizing natural laws and physical resources in order to design and implement materials, structures, machines, devices, systems, and process that safely realize a desired objective and meet specified criteria....
 and CAD uses. Direct3D was intended to be a lightweight partner to OpenGL focused on game use. As 3D gaming grew, OpenGL evolved to include better support for programming techniques for interactive multimedia applications like games, giving developers choice between using OpenGL or Direct3D as the 3D graphics API for their applications. At that point a "battle" began between supporters of the cross-platform OpenGL and the Windows-only Direct3D, which many argued was another example of Microsoft's embrace, extend and extinguish
Embrace, extend and extinguish

"Embrace, extend and extinguish," also known as "Embrace, extend, and exterminate," is a phrase that the United States Department of Justice found was used internally by Microsoft to describe their strategy for entering product categories involving widely used standards, extending those standards with Proprietary software capabilities,...
 business tactic (see Fahrenheit
Fahrenheit graphics API

Fahrenheit was an effort to create a unified high-level API for 3D computer graphics to unify Direct3D and OpenGL. It was designed primarily by Microsoft and Silicon Graphics and also included work from an Hewlett-Packard-MS joint effort....
 or Direct3D vs. OpenGL). Interestingly, OpenGL was supported at Microsoft by the DirectX team. If a developer chose to use OpenGL 3D graphics API, the other APIs of DirectX are often combined with OpenGL in computer games
Computer Games

"Computer Games" is a single by New Zealand group, Mi-Sex released in 1981 . It was the single that launched the band, and was hugely popular, particularly in Australia and New Zealand....
 because OpenGL does not include all of DirectX's functionality (such as sound or joystick support). However, the combination of OpenGL and SDL
Simple DirectMedia Layer

Simple DirectMedia Layer is a cross-platform, free and open source software multimedia Library written in C that presents a simple interface to various platforms' computer graphics, sound, and input devices, allowing a developer to write a Personal computer game or other multimedia application that can run on many operating systems includi...
 for this purpose is becoming increasingly popular.

In a console-specific version, DirectX was used as a basis for Microsoft's Xbox
Xbox

The Xbox is a History of video games video game console produced by Microsoft. It was Microsoft's first foray into the gaming console market, and competed with Sony's PlayStation 2 and Nintendo's GameCube....
 and Xbox 360
Xbox 360

The Xbox 360 is the second video game console produced by Microsoft, and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the History of video game consoles of video game consoles....
 console
Video game console

A video game console is an game development that produces a video signal which can be used with a display device to display a video game. The term "video game console" is used to distinguish a machine designed for consumers to buy and use solely for playing video games from a personal computer, which has many other functions, or arcade machi...
 API. The API was developed jointly between Microsoft and Nvidia
NVIDIA

Nvidia is a multinational corporation specializing in the manufacture of graphics processing unit technologies for workstations, desktop computers, and mobile devices....
, who developed the custom graphics hardware used by the original Xbox. The Xbox API is similar to DirectX version 8.1, but is non-updateable like other console technologies. The Xbox was code named DirectXbox, but this was shortened to Xbox for its commercial name. In 2002 Microsoft released DirectX 9 with support for the use of much longer shader programs than before with pixel and vertex shader version 2.0. Microsoft has continued to update the DirectX suite since then, introducing shader model 3.0 in DirectX 9.0c, released in August 2004. As of April 2005, DirectShow
DirectShow

DirectShow , codename Quartz, is a multimedia framework and application programming interface produced by Microsoft for software developers to perform various operations with media files or streams....
 was removed from DirectX and moved to the Microsoft Platform SDK
Microsoft Platform SDK

The Microsoft Windows SDK is a software development kit from Microsoft that contains header files, Library , samples, documentation and tools utilizing the Application programming interface required to software development Application software for Microsoft Windows and the .NET Framework 3.0/.NET Framework 3.5....
 instead. The DirectX SDK is, however, still required to build the DirectShow samples.

Release history



Notes:

  1. DirectX 4 was never released. Raymond Chen
    Raymond Chen

    Raymond Chen is a well-known developer on the Microsoft Windows Windows Shell team at Microsoft. Since joining Microsoft in 1992, Chen has worked on OS/2, Windows 95, DirectX, and later versions of Windows....
     explained in his book, The Old New Thing, that after DirectX 3 was released, Microsoft began developing versions 4 and 5 at the same time. Version 4 was to be a shorter-term release with small features, whereas version 5 would be a more substantial release. The lack of interest from game developers in the features slated for DirectX 4 resulted in its being shelved, and the corpus of documents that already distinguished the two new versions resulted in Microsoft choosing to not re-use version 4 to describe features intended for version 5.
  2. The version number as reported by Microsoft's DxDiag
    DXDiag

    DxDiag is a utility designed to display the specifications of the user's hardware, as well as to test DirectX software, including sound and video....
     tool (version 4.09.0000.0900 and higher) use the x.xx.xxxx.xxxx format for version numbers. However, the DirectX and Windows XP MSDN
    Microsoft Developer Network

    The Microsoft Developer Network is the portion of Microsoft responsible for managing the firm's relationship with developers: hardware developers interested in the operating system , developers standing on the various OS platforms, developers leveraging the Application programming interface and scripting languages of Microsoft's many applica...
     page claims that the registry always has in the x.xx.xx.xxxx format. Put another way, when the above table lists a version as '4.09.00.0904' Microsoft's DxDiag
    DXDiag

    DxDiag is a utility designed to display the specifications of the user's hardware, as well as to test DirectX software, including sound and video....
     tool may have it as '4.09.0000.0904'.


History of DirectX logo

The logo originally resembled a deformed radiation warning symbol
Hazard symbol

Hazard symbols are easily recognizable symbols designed to warn about hazardous materials or locations. The use of hazard symbols is often regulated by law and directed by standards organizations....
. Controversially, the original name for the DirectX project was the "Manhattan Project", a reference to the US nuclear weapons initiative
Manhattan Project

The Manhattan Project was the project to develop the first atomic weapon during World War II; involving the United States, the United Kingdom, and Canada....
 and its ultimate outcome – the nuclear bombing of Japan
Atomic bombings of Hiroshima and Nagasaki

The atomic bombings of Hiroshima and Nagasaki were nuclear warfares near the end of World War II against the Empire of Japan by the United States at the executive order of President of the United States Harry S....
. Alex St. John
Alex St. John

Alex St. John, along with Craig Eisler and Eric Engstrom, created the original Microsoft DirectX specification. Alex became a Windows game technology evangelist for DirectX through magazine articles and interviews on the newly created web....
, the director of the DirectX project at its inception, claims that this connotation is intentional, and that DirectX and its sister project, the Xbox
Xbox

The Xbox is a History of video games video game console produced by Microsoft. It was Microsoft's first foray into the gaming console market, and competed with Sony's PlayStation 2 and Nintendo's GameCube....
 (which shares a similar logo), are meant to displace Japanese videogame makers from their dominance of the industry. However, this meaning is publicly denied by Microsoft, which instead claims that it is merely artistic design.

Image:DirectX 1 logo.png|DirectX 1.0–6.0 Image:Directx9.png|DirectX 9.0


Awards and accolades

On January 8, 2007, DirectX (specifically, Direct3D) earned a Technology & Engineering Emmy Award
Technology & Engineering Emmy Award

A Technology and Engineering Emmy Award is given by the National Academy of Television Arts and Sciences for outstanding achievement in technical or engineering development....
 for Microsoft and partners AMD and Nvidia Corporation "for pioneering work in near and real-time fully programmable shading via modern graphics processors."

In 2002, DirectX was the Game Developer Magazine Front Line Awards Hall of Fame award winner for Microsoft

On May 31, 2001, DirectX 8.0 was awarded a PC World World Class Award for Microsoft as the "Most Promising Software Newcomer"

On December 11, 2000, DirectX 8 - Direct3D was awarded a Game Developer Magazine Front Line Award for Microsoft in the category "Programming Library"

Compatibility

APIs such as Direct3D and DirectSound need to interact with hardware, and they do this through a device driver
Device driver

In computing, a device driver or software driver is a computer program allowing higher-level computer programs to interact with a hardware device....
. Hardware
Hardware

Hardware is a general term that refers to the physical cultural artifacts of a technology. It may also mean the physical components of a computer system, in the form of computer hardware....
 manufacturers have to write these drivers for a particular DirectX version's device driver interface (or DDI), and test each individual piece of hardware to make them DirectX compatible. Some hardware devices only have DirectX compatible drivers (in other words, one must install DirectX in order to use that hardware). Early versions of DirectX included an up-to-date library of all of the DirectX compatible drivers currently available. This practice was stopped however, in favor of the web-based Windows Update
Windows Update

Windows Update is a service provided by Microsoft that provides updates for the Microsoft Windows operating system and its installed components....
 driver-update system, which allowed users to download only the drivers relevant to their hardware, rather than the entire library.

Prior to DirectX 10, DirectX was designed to be backward compatible with older drivers, meaning that newer versions of the APIs were designed to interoperate with older drivers written against a previous version's DDI. For example, a game designed for and running on Direct3D 9 with a graphics adapter driver designed for Direct3D 6 would still work, albeit possibly with gracefully degraded functionality. However, as of Windows Vista, due to the significantly updated DDI for Windows Display Driver Model drivers, Direct3D 10 cannot run on older hardware drivers.

Various releases of Windows have included and supported various versions of DirectX, allowing newer versions of the operating system to continue running applications designed for earlier versions of DirectX until those versions can be gradually phased out in favor of newer APIs, drivers, and hardware.

.NET Framework

In 2002 Microsoft released a version of DirectX compatible with the Microsoft .NET Framework
.NET Framework

The Microsoft .NET Framework is a software framework that is available with several Microsoft Windows operating systems. It includes a large Library of coded solutions to prevent common programming problems and a virtual machine that manages the execution of programs written specifically for the Software framework....
, thus allowing programmers to take advantage of DirectX functionality from within .NET applications using compatible languages such as managed C++ or the use of the C# programming language. This API was known as "Managed DirectX
Managed DirectX

Managed DirectX is an API to DirectX programming under Microsoft .NET developed by Microsoft.MDX can be used from any language under the .NET runtime ....
" (or MDX for short), and claimed to operate at 98% of performance of the underlying native DirectX APIs. In December 2005, February 2006, April 2006, and August 2006, Microsoft released successive updates to this library, culminating in a beta version called Managed DirectX 2.0. While Managed DirectX 2.0 consolidated functionality that had previously been scattered over multiple assemblies into a single assembly, thus simplifying dependencies on it for software developers, development on this version has subsequently been discontinued, and it is no longer supported. The Managed DirectX 2.0 library expired on October 5, 2006.

During the GDC
Game Developers Conference

The Game Developers Conference is the largest annual gathering of professional video game developers, focusing on learning, inspiration, and networking....
 2006 Microsoft presented the XNA Framework
Microsoft XNA

Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates Video game game development and management....
, a new managed version of DirectX (similar but not identical to Managed DirectX) that is intended to assist development of games by making it easier to integrate DirectX, High Level Shader Language
High Level Shader Language

The High Level Shader Language or High Level Shading Language is a proprietary shading language developed by Microsoft for use with the Microsoft Direct3D API....
 (HLSL) and other tools in one package. It also supports the execution of managed code on the Xbox 360. The XNA Game Studio Express RTM was made available on December 11, 2006, as a free download for Windows XP. Unlike the DirectX runtime, Managed DirectX
Managed DirectX

Managed DirectX is an API to DirectX programming under Microsoft .NET developed by Microsoft.MDX can be used from any language under the .NET runtime ....
, XNA Framework
Microsoft XNA

Microsoft XNA is a set of tools with a managed runtime environment provided by Microsoft that facilitates Video game game development and management....
 or the Xbox 360
Xbox 360

The Xbox 360 is the second video game console produced by Microsoft, and the successor to the Xbox. The Xbox 360 competes with Sony's PlayStation 3 and Nintendo's Wii as part of the History of video game consoles of video game consoles....
 APIs (XInput, XACT etc) have not shipped as part of Windows. Developers are expected to redistribute the runtime components along with their games or applications.

No Microsoft product including the latest XNA releases provides DirectX 10 support for the .NET Framework.

The other approach for DirectX in managed languages is to use third-party libraries like for Direct3D, DirectInput (including Direct3D 10) and for DirectShow subset.

Alternatives

There are alternatives to the DirectX family of APIs, some more complete than others. While there is no unified solution that will do everything DirectX does, there are many other options with comparable features: SDL
Simple DirectMedia Layer

Simple DirectMedia Layer is a cross-platform, free and open source software multimedia Library written in C that presents a simple interface to various platforms' computer graphics, sound, and input devices, allowing a developer to write a Personal computer game or other multimedia application that can run on many operating systems includi...
, Allegro
Allegro library

Allegro is a free software and open source software software library for video game development.The functionality of the library includes support for basic 2D graphics, image manipulation, text output, audio output, midi music, input and timers, as well as additional routines for fixed-point and floating-point matrix arithmetic, unicode...
, OpenMAX
OpenMAX

OpenMAX is a royalty-free, cross-platform set of C programming interfaces that provides abstractions for routines especially useful for audio, video, and still images....
, OpenML
OpenML

Open Media Library is a free, cross-platform programming environment designed by the Khronos Group for capturing, transporting, processing, displaying, and synchronizing digital media ....
, OpenGL
OpenGL

OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
, OpenAL
OpenAL

OpenAL is a free software cross-platform audio Application programming interface. It is designed for efficient rendering of multichannel three dimensional positional audio....
, FMOD
FMOD

FMOD is a commercial audio Library made by Firelight Technologies that plays music files of diverse Audio file format on many different Platform ....
, etc. Many of these libraries are cross-platform or have open codebases.

There are also alternative implementations that aim to provide the same API, such as the one in Wine
Wine (software)

Wine is a free software software application that aims to allow Unix-like computer operating systems on the x86 architecture or x86-64 architecture to execute programs written for Microsoft Windows....
.

See also

  • OpenGL
    OpenGL

    OpenGL is a standard specification defining a cross-language cross-platform Application programming interface for writing applications that produce 2D computer graphics and 3D computer graphics....
  • Comparison of OpenGL and Direct3D
  • Graphics Device Interface
    Graphics Device Interface

    The Graphics Device Interface is a Microsoft Windows application programming interface and core operating system component that is responsible for representing graphical objects and transmitting them to output devices such as computer display and computer printer....
     (GDI)
  • Graphics pipeline
    Graphics pipeline

    In 3D computer graphics, the terms graphics pipeline or rendering pipeline most commonly refer to the current state of the art method of rasterization-based rendering as supported by commodity graphics hardware....
  • DxDiag
    DXDiag

    DxDiag is a utility designed to display the specifications of the user's hardware, as well as to test DirectX software, including sound and video....
  • DirectX plugin
    DirectX plugin

    In computer music and professional audio creation, a DirectX plugin is a software processing component that can be loaded as a plugin into host applications to allow real-time processing, audio effects, mixing audio or act as Software synthesizer....
  • ActiveX
    ActiveX

    ActiveX is a component Object Model developed by Microsoft for Microsoft Windows. By using the Component Object Model runtime, developers can create Component-based software engineering that perform a particular function or a set of functions....
  • List of games with DirectX 10 support
    List of games with DirectX 10 support

    This is a list of released and unreleased games that support DirectX 10 for Windows Vista and the upcoming Windows 7. Information regarding developer, publisher, date of release, and genre is provided where available....


External links