DirectX

A DirectX (továbbiakban DX) a Microsoft cég egyik csomagja a Windows operációs rendszerhez. Tipikusan multimédiás alkalmazások használják: játékok, média lejátszók és ehhez hasonló programok. Népszerűségét többek között annak köszönheti, hogy már a Windows 95-től kezdődően a DX a Windows rendszer szerves része.

DirectX

FejlesztőMicrosoft
Legfrissebb stabil kiadás12 Ultimate (stabil verzió, 2021. október 5.)
Programozási nyelvHigh Level Shader Language
Operációs rendszerMicrosoft Windows
Kategóriaalkalmazásprogramozási felület
Licencvégfelhasználói licencszerződés

A programozó szempontjából a DX jelentősen megkönnyíti a munkát, hiszen nem csak hogy nem kell egy-egy programnál az alapoktól indulnia, hanem lehetőséget biztosít arra is, hogy hardverfüggetlen programot írjon.

Felépítése

A DX több ezer API függvényt definiál, amiket az alkotók kisebb modulokra bontottak aszerint, hogy mi a feladatuk. A rendszer a Microsoft COM techonológiáját alkalmazza.

  • DirectGraphics: A DX kilences verziójában egyesítették a rendszer két elemét:
    • DirectDraw: A kétdimenziós grafikáért felelős
    • Direct3D: A háromdimenziós megjelenítésért felelős
  • DirectInput: A bemeneti eszközöket kezeli: a billentyűzetet, egeret, gamepad-ot, és minden más elképzelhető perifériát is
  • DirectMusic: Zenelejátszás a dolga. Egy játékban például a háttérzenét a DirectMusic szolgáltatja
  • DirectSound: Hanglejátszás és felvétel a feladata
  • DirectPlay: A hálózati kommunikációt egyszerűsíti le. A nyolcas verzióban jelent meg
  • DirectShow: Multimédiás anyagok megjelenítését végzi, a legtöbb lejátszó program ezt használja
  • DirectSetup: A DirectX API összetevőinek telepítéséhez szükséges

Története

DxDiag a DirectX 6.1-ből (4.06.02.0436)
fut Windows 95 / DirectX 1.0 alatt

A kilencvenes évek közepén megjelent Windows 95 új korszakot nyitott a számítástechnika történetében. Hiába az újdonság, egy hatalmas problémával szembesültek a Microsoft fejlesztői. A probléma az volt, hogy míg a valós módban futó DOS lehetővé tette a hardver közvetlen elérését, és ezzel iszonyú gyors programok elkészítését, addig a védett módú Windows kernel kisajátította magának az erőforrások kezelését, és egy teljesen egységesített kezelőfelületet (Windows API) biztosított a felhasználói programok számára.

A Windows API tehát lehetővé tette, hogy hardverfüggetlen programokat lehessen írni, a gyakorlatban viszont hamarosan kiderült, hogy az egységesítés bizony jelentősen csökkenti a rendszer teljesítményét. A Microsoftnál így rájöttek, hogy a programozóknak szükségük van arra, hogy továbbra is közvetlenül hozzáférhessenek a hardverhez, de nem akarták feladni a védett mód előnyeit. Már csak pár hónap volt hátra a bemutatóig, amikor is megszületett a DX elődje, a Windows Games SDK.

A DirectX gyorsan fejlődött, és hamarosan megjelent a Direct3D. A fejlesztők így egy alternatívát kínáltak az addig a 3D-s grafikában egyedülálló OpenGL-nek. (A Windows NT már a kezdetektől támogatta az OGL-t). A DirectX és az OpenGL versenye egyébként a Microsoft üzletpolitikájának a tipikus példája. Az OpenGL egy több platformos gyűjtemény, a DX azonban csak Windows rendszereken fut.

A DX-nek volt egy hatalmas előnye nyílt társával szemben: az Open GL „csak” grafikai támogatást nyújt, a DirectX viszont a multimédia minden területén (A beviteltől a hangokon, és hálózaton át a megjelenítésig) támogatást nyújt.

Az első DirectX, amely támogatja pixel és vertex shadereket, a DirectX 8. A DirectX 9 támogatja a vertex és pixel shaderek második generációját, 2004-től pedig már a 3.x-es shadergeneráció is támogatva van (DirectX 9.c).

A DirectX az évek során többször is jelentős változásokon esett át.

  • DirectX 5 A DirectX lemaradásait igyekeztek pótolni vele, az OpenGL tükrében.
  • DirectX 6 Az első DirectX, amely támogatja a multitextúrázást.
  • DirectX 7 A DirectX 6 kibővített változata, melyben lehetőség van arra, hogy a fénykezelést és a transzformálást hardveresen gyorsíthassa a grafikus kártya (T&L).
  • DirectX 8 Az első DirectX, amely támogatja a shadereket.
  • DirectX 9 Ebben a verzióban egyesítették a programozók a korábban különálló DirectShow és Direct3D komponenseket. Ezek után a két egység feladatát a (kibővített) Direct3D látta el.
  • DirectX 10 Többek között a Windows Vista-ban megjelent új drivermodell miatt a DirectX maga is számos újítást hozott magával. Ezek nem csak új képességeket, de szerkezeti válzotásokat is jelentettek. XP-re nem jelent meg, ez a verzió nem terjedt el.
  • DirectX 11 A Windows 7-tel együtt jelent meg, a célja a DirectX 10 leváltása. Néhány modern, AAA kategóriás számítógépes játék használja. Széles körben idáig nem terjedt el, tekintve, hogy bonyolult, mert kizárólag shader alapokon vezérelhető, és nem támogatja az XP-t.
  • DirectX 12 A Windows 10-hez készült, de a játékfejlesztők lehetőséget kapnak DirectX 12 futtatásra Windows 7 környezetben is. A World of Warcraft: Battle for Azeroth volt az első játék Windows 7 alatt, ami DirectX 12-ben futott.

Verziói

Idővonal
Főbb kiadások
1995DirectX 1
1996DirectX 2
DirectX 3
1997DirectX 5
1998DirectX 6
1999DirectX 7
2000DirectX 8
2001
2002DirectX 9
2003
2004
2005
2006DirectX 10
2007
2008
2009DirectX 11
2010
2011
2012
2013
2014
2015DirectX 12
DirectX verzióVerziószámOperációs rendszerMegjelenési dátum
DirectX 1.04.02.0095 1995. szeptember 30.
DirectX 2.0?1996
DirectX 2.0a4.03.00.1096Windows 95 OSR2 és NT 4.01996. június 5.
DirectX 3.04.04.00.0068 1996. szeptember 15.
4.04.00.00691996
DirectX 3.0a4.04.00.0070Windows NT 4.0 SP3-tól
utolsó DirectX verzió, ami támogatja a Windows NT 4.0-t
1996. december
DirectX 3.0b4.04.00.00701996. december
DirectX 4.0sosem készült el 
DirectX 5.04.05.00.0155 (RC55)1997. július 16.
DirectX 5.24.05.01.1600 (RC00)DirectX 5.2 Windows 95-re1998. május 5.
4.05.01.1998 (RC0)Windows 98 exkluzív1998. június 25.
DirectX 6.04.06.00.0318 (RC3)Windows CE1998. augusztus 7.
DirectX 6.14.06.02.0436 (RC0) 1999. február 3.
DirectX 6.1a4.06.03.0518 (RC0)Windows 98 SE exkluzív1999. május 5.
DirectX 7.04.07.00.0700 (RC1) 1999. szeptember 22.
4.07.00.0700Windows 20002000. február 17.
DirectX 7.0a4.07.00.0716 (RC0) 2000. március 8.
4.07.00.0716 (RC1) 2000
DirectX 7.14.07.01.3000 (RC1)Windows Me exkluzív2000. szeptember 14.
DirectX 8.04.08.00.0400 (RC10) 2000. november 12.
DirectX 8.0a4.08.00.0400 (RC14)az utolsó verzió Windows 95 támogatással2001. február 5.
DirectX 8.14.08.01.0810Windows XP, Windows Server 2003 és Xbox exkluzív2001. október 25.
4.08.01.0881 (RC7)2001. november 8.
DirectX 8.1a4.08.01.0901 (RC?)ez a verzió tartalmaz egy frissítést a Direct3D-hez (D3d8.dll)2002
DirectX 8.1b4.08.01.0901 (RC7)Egy javítást tartalmaz a DirectShow-hoz Windows 2000 (Quartz.dll) alatt2002. június 25.
DirectX 8.24.08.02.0134 (RC0)Ugyanaz, mint a DirectX 8.1b, de tartalmazza a DirectPlay 8.2-t2002
DirectX 9.04.09.00.0900 (RC4) 2002. december 19.
DirectX 9.0a4.09.00.0901 (RC6) 2003. március 26.
DirectX 9.0b4.09.00.0902 (RC2) 2003. augusztus 13.
DirectX 9.0c4.09.00.0903Windows XP SP2 exkluzív 
4.09.00.0904 (RC0) 2004. augusztus 4.
4.09.00.0904Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 R2 és Xbox 3602004. augusztus 6.
DirectX 9.0c4.09.00.0904 (RC0) utolsó verzió: 2008. március
DirectX 106.00.6000.16386Windows Vista exkluzív2006. november 30.
DirectX 10.16.00.6001.18000Windows Vista SP1, Windows Server 20082008. február 4.
6.00.6002.18005Windows Vista SP2, Windows Server 2008 SP22009. április 28.
DirectX 116.00.6002.18107Windows Vista SP2, Windows Server 2008 SP2, Windows 7, Windows Server 2008 R22009. október 27.
6.01.7600.16385Windows 7, Windows Server 2008 R22009. október 22.
6.01.7601.17514Windows 7 SP1, Windows Server 2008 R2 SP12011. február 16.
DirectX 11.16.02.9200.16384Windows 8, Windows RT, Windows Server 20122012. október 26.
DirectX 11.26.03.9600.16384Windows 8.1, Windows RT, Windows Server 2012 R22013. október 18.
DirectX 12.010.00.10240.16384Windows 10, Xbox One2015. július 29.
10.00.15063.0000Windows 102017. március 20.
10.00.17763.0001Windows 102018. október 2.
10.00.18362.0116Windows 102019. május 19.
10.00.19041.0928Windows 10, Xbox Series X, Ultimate2020. november 10.
10.00.22000.1000Windows 112021. október 5.

Összetevői

Direct3D

A DX talán legismertebb eleme. Rengeteg Windows rendszerre írt játék ezt a 3D-s függvénykönyvtárat használja. A DirectX 10-től kezdve elhagyták a fixed-function felépítést, a grafika renderelése shadereken keresztül lehetséges, hasonlóan az OpenGL ES2-höz.

A Direct3D használata három alapvető lépésre bontható:

  1. Előkészítés
  2. Megjelenítés
    1. Transzformációk
    2. Renderelés
  3. Lezárás

Az első lépésben a program csatlakozik a Direct3D rendszerhez, beállítja a képernyő tulajdonságait és elvégzi az alkalmazásspecifikus feladatokat is. A második és a harmadik lépés általában egy ciklusban ismétlődik a program futása során.[1]

DirectShow

A DirectShow a DX multimédiás tartalmak megjelenítéséért felelős komponense. Működése hihetetlenül egyszerű. A rendszer egy ún. szűrő-gráfot (FilterGraph) épít fel, a lejátszás során pedig átbocsátja az adatokat ezen a struktúrán. Főleg videólejátszó programok használják, a helyét már átvették más technológiák.

DirectDraw

A DirectX kétdimenziós megjelenítését végezte, így a szövegek megjelenítését vagy a képek kirajzolását. A DirectX 8-tól kezdődően már nincs külön DirectDraw, integrálták a Direct 3D rendszerbe. Főleg régebbi 2D-s játékszoftverek használják.

DirectInput

A beviteli eszközök (billentyűzet, egér, játékvezérlők) kezeléséért felelős komponense. A DirectX 8 óta nem változott. Ritkán használják.

DirectPlay

Célja, hogy a számítógépes játékok hálózaton keresztüli kommunikációjához egyszerű interfészt nyújtson. Nem volt képes felvenni a versenyt a tradicionális, tcp/udp/socket alapú hálózatkezeléssel, így nem terjedt el.

Irodalom

  • Nyisztor Károly - Shaderprogramozás. Grafika és játékfejlesztés DirectX-szel[2]
  • Nyisztor Károly - Grafika és Játékprogramozás DirectX-szel - A DirectX-ről, és az arra történő fejlesztésről bővebben.[2]

Források

Kapcsolódó szócikkek

Jegyzetek

További információk