DirectX on Microsoftin Windows-käyttöjärjestelmälle ja Xbox-pelikonsoleille kehittämä, erityisesti peleihin tarkoitettu ohjelmointirajapintaPlaza – Katsaus DirectX 10 -rajapintaan 20.9.2007 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

Luokka:Ohjelmointirajapinnat Luokka:Windowsin komponentit Luokka:Seulonnan keskeiset artikkelit