DirectX

DirectX on Microsoftin Windows-käyttöjärjestelmälle ja Xbox-pelikonsoleille kehittämä, erityisesti peleihin tarkoitettu ohjelmointirajapinta tietokoneohjelman ja laitteiston välille. DirectX tarjoaa yhtenäisen rajapinnan mm. 3D-grafiikkaa, ääntä ja ohjauslaitteita varten.

Ohjelmointirajapinnat ohjaavat matalan tason toimintoja, jotka ovat yhteydessä laitteistoon tai korvaavat puuttuvia toimintoja emuloimalla niitä. Alun perin DirectX:n kehittivät kolme Microsoftilla työskennellyttä henkilöä: Craig Eisler, Alex St. John ja Eric Engstrom.

Tarve rajapinnan kehittämiseen oli se, että Windows 95 -käyttöjärjestelmässä suora pääsy laitteistoresursseihin oli suojattua, toisin kuin sitä edeltäneessä DOS-käyttöjärjestelmässä. Tarvittiin laitteistorajapinta (eng. hardware abstraction layer), jolla päästiin käyttämään laitteistoa matalammalla tasolla kuin mitä Windowsin perusfunktiot olisivat mahdollistaneet. Tämä oli tärkeää pelejä varten, jotta saatiin hyvä suorituskyky ja sulava pelikokemus.

Ennen DirectX:n kehitystä Microsoftilla oli WinG-rajapinta.

Komponentit 
DirectX koostuu useasta erillisestä komponentista:

 DirectX Graphics, joka koostuu kolmesta rajapinnasta:
 Direct2D – kaksiulotteisen grafiikan piirtäminen
 Direct3D (D3D) – kolmiulotteisen grafiikan piirtäminen
 DirectX Graphics Infrastructure – yksinkertainen kommunikointi Direct3D:n ja WDDM:n välillä
 DirectSetup – DirectX-komponenttien asentaminen
 DirectSound3D
 DirectX Media Objects – tuki mediavirtojen käsittelyyn (koodekit ja efektit)
 DirectShow
 DirectX plugins
 DirectX Video Acceleration
 DirectX Transform
 Direct3D Retained Mode
 DirectWrite – fonttien piirtäminen
 DirectCompute – laskenta näytönohjaimella

Käytöstä poistuneita rajapintoja:
 DirectInput – näppäimistön, hiiren ja muiden peliohjainten käsittely
 DirectPlay – pelien kommunikointi keskenään verkon välityksellä
 DirectSound – äänen soittaminen ja nauhoittaminen
 DirectMusic – musiikin soittaminen

Direct3D 
Merkittävä osa-alue kehityksestä suuntautuu 3D-grafiikkaan käytettävän Direct3D:n kehitykseen, etenkin tehokkuuden parantamiseen. Nykyään käytetään vain yleisempää termiä DirectX puhuttaessa Direct3D:stä.

Versio 11 Direct3D:stä paransi tehokkuutta lisäämällä tuen monisäikeistykselle ja lisäsi tuen nk. GPGPU-käytölle nimellä DirectCompute.

Uusin versio 12 julkaistiin vain Windows 10:lle.

DirectCompute 

DirectCompute on DirectX:n tuki GPGPU-käytölle eli grafiikkasuorittimen hyödyntämistä matematiikkasuorittimen tavoin puhtaasti laskentatehtäviin, kuten fysiikkamallinnukseen.
DirectCompute-ohjelma tehdään HLSL-kielellä.

Katso myös 
 Mantle
 Metal
 OpenAL
 OpenGL – laitteistoriippumaton grafiikkarajapinta
 Simple DirectMedia Layer
 Vulkan

Lähteet

Aiheesta muualla 
 Microsoftin DirectX-sivut
 Microsoftin MSDN dokumentaatio DirectX:lle

Ohjelmointirajapinnat
Windowsin komponentit
Seulonnan keskeiset artikkelit