|Component of Microsoft Windows|
|Introduced in||Windows 95|
Microsoft DirectX is a collection of APIs for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms.
Originally all API names started with "Direct" in their names (Direct3D, DirectDraw, etc.), thus the name DirectX was coined as a shorthand term for all of these APIs (the X standing in for the particular API names) and soon became the official name of the collection.
WinG & DCI[edit | edit source]
The first true attempt to bring fast video performance to Windows came in the Virtual Flat Framebuffer Driver (also known as VFLATD, or DVA.386 - Direct Video Access), which shipped as part of Video for Windows, enabling the DrawDib functions to circumvent GDI and write decompressed video frames directly into VRAM. While it had some limitations to the size of framebuffer it could support, it did allow for much faster framebuffer access.
Windows NT 3.50 added the CreateDIBSection API call to GDI, which allowed one to create an HBITMAP backed by a device-independent-bitmap in user-accessible memory (prior to this, the only method to display a DIB using GDI was via API calls such as SetDIBits, which converted a DIB to a DDB, which was a slow process). As such, one could both use GDI calls to draw onto the DIB and draw the DIB onto the screen using speedy functions such as BitBlt. Windows 95 (then known as Chicago) also added this API call, in conjunction with the introduction of the DIB engine. The DIB engine allowed GDI to treat the entire screen as one big GDI bitmap - one big DIB, and many drivers used VFLATD for this, but many drivers also used DCI, or the Display Control Interface, which was an alternative to VFLATD which was also part of the VfW technology wave. DCI lifted many of VFLATD's limitations, and also added support for multiple offscreen surfaces.
WinG was a port of an early version of the Chicago DIB engine to Windows 3.1x, and most of its functions are parallels to GDI calls added in Windows 95 / NT 3.50. Many early Windows 95 games, such as WinDoom, use WinG, but it was soon discontinued in DirectX's favor.
One well-known application using WinG acceleration is Microsoft Bob.
DCI was also discontinued in favor of DirectX, but some small parts of its API were subsumed into DirectX. When a DirectDraw driver is unavailable on a Windows 9x operating system, it can fall back to use DCI if available (and then it will fall back to the DIB engine as a last resort).
Components[edit | edit source]
DirectX is composed of multiple APIs, the most commonly known ones as follows:
- Direct3D (D3D): Real-time 3D rendering API.
- Direct2D: Current 2D graphics API.
- DirectDraw: Deprecated 2D graphics API.
- DirectSound: Deprecated Audio API (replaced by XAudio2 and XACT3).
- DirectX Diagnostics (DxDiag): A tool for diagnosing and generating reports on components related to DirectX, such as audio, video, and input drivers.
- DirectX Media for Audio/Video acceleration (deprecated).
- DirectWrite, a Text rendering API.
- DirectInput, an input API for interfacing with keyboards, mice, joysticks, and game controllers (deprecated).
- DirectPlay, a network API for communication over a local-area or wide-area network (deprecated).
- DirectX Ray Tracing (DXR): Light ray-tracing API.
Versions[edit | edit source]
DirectX 4 was never released. Raymond Chen of Microsoft explained that after DirectX 3 was released, Microsoft began developing versions 4 and 5 in parallel. Version 4 was planned as a short-termed release with minor changes, whereas version 5 would've been a bigger release. Due to the lack of interest from game developers in the DirectX 4 features it was soon canceled, and the large amount 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.
- DirectX 1 (Q4 1995; 1.0 shipped with Windows 95 RTM)
- DirectX 2 (Q2 1996; 2.0a shipped with Windows NT 4.0 and then Windows 95 OSR2)
- DirectX 3 (Q3 1996; 3.0a shipped with Windows NT 4.0 SP3; last release for Windows NT 4.0)
- DirectX 5 (Q3 1997; 5.2 shipped with Windows 98)
- DirectX 6 (Q3 1998; 6.1a shipped with Windows 98 SE)
- DirectX 7 (Q4 1999; 7.0 shipped with Windows 2000; 7.1 shipped with Windows Me; last release for PCs with 486 processors and last version to have built-in RGB software rendering support)
- DirectX 8 (Q4 2000; 8.0a shipped with the August 2001 Update for Windows 95 OSR2.5; 8.1 shipped with Windows XP and Windows Server 2003; last release for Windows 95 and last version to have software rendering support in DxDiag)
- DirectX 9 (Q4 2002; 9.0b shipped with the Windows Security Update CD for Windows 98 build 1998A, Windows 98 SE build 2222B and Windows Me build 3000A from February 2004; 9.0c shipped with Windows XP SP2, Windows Server 2003 SP1 and R2; last version for all Windows versions below Vista and Server 2008; Windows 98 and Windows Me support already removed after the December 2006 revision)
- DirectX 10 (Q4 2006; 10.0 introduced alongside Windows Vista and Windows Server 2008)
- DirectX 11 (Q4 2009; 11.0 introduced alongside Windows 7 and Windows Server 2008 R2 and then backported to Windows Vista and Windows Server 2008 with the Platform Update; last version for Windows Vista and Server 2008; 11.1 introduced alongside Windows 8 and Windows Server 2012 and partially backported to Windows 7 and Windows Server 2008 R2 with the Platform Update; 11.2 introduced alongside Windows 8.1 and Windows Server 2012 R2)
- DirectX 12 (Q3 2015; 12.0 introduced alongside Windows 10 and Windows Server 2016, followed by DX12 Ultimate in 2020, which shipped with Windows 11)