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ás | 12 Ultimate (stabil verzió, 2021. október 5.) |
Programozási nyelv |
|
Operációs rendszer | Microsoft Windows |
Kategória | alkalmazásprogramozási felület |
Licenc | vé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
szerkesztésA 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
szerkesztésA 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
szerkesztés1995 | DirectX 1 |
---|---|
1996 | DirectX 2 |
DirectX 3 | |
1997 | DirectX 5 |
1998 | DirectX 6 |
1999 | DirectX 7 |
2000 | DirectX 8 |
2001 | |
2002 | DirectX 9 |
2003 | |
2004 | |
2005 | |
2006 | DirectX 10 |
2007 | |
2008 | |
2009 | DirectX 11 |
2010 | |
2011 | |
2012 | |
2013 | |
2014 | |
2015 | DirectX 12 |
DirectX verzió | Verziószám | Operációs rendszer | Megjelenési dátum |
---|---|---|---|
DirectX 1.0 | 4.02.0095 | 1995. szeptember 30. | |
DirectX 2.0 | ? | 1996 | |
DirectX 2.0a | 4.03.00.1096 | Windows 95 OSR2 és NT 4.0 | 1996. június 5. |
DirectX 3.0 | 4.04.00.0068 | 1996. szeptember 15. | |
4.04.00.0069 | 1996 | ||
DirectX 3.0a | 4.04.00.0070 | Windows NT 4.0 SP3-tól utolsó DirectX verzió, ami támogatja a Windows NT 4.0-t |
1996. december |
DirectX 3.0b | 4.04.00.0070 | 1996. december | |
DirectX 4.0 | sosem készült el | ||
DirectX 5.0 | 4.05.00.0155 (RC55) | 1997. július 16. | |
DirectX 5.2 | 4.05.01.1600 (RC00) | DirectX 5.2 Windows 95-re | 1998. május 5. |
4.05.01.1998 (RC0) | Windows 98 exkluzív | 1998. június 25. | |
DirectX 6.0 | 4.06.00.0318 (RC3) | Windows CE | 1998. augusztus 7. |
DirectX 6.1 | 4.06.02.0436 (RC0) | 1999. február 3. | |
DirectX 6.1a | 4.06.03.0518 (RC0) | Windows 98 SE exkluzív | 1999. május 5. |
DirectX 7.0 | 4.07.00.0700 (RC1) | 1999. szeptember 22. | |
4.07.00.0700 | Windows 2000 | 2000. február 17. | |
DirectX 7.0a | 4.07.00.0716 (RC0) | 2000. március 8. | |
4.07.00.0716 (RC1) | 2000 | ||
DirectX 7.1 | 4.07.01.3000 (RC1) | Windows Me exkluzív | 2000. szeptember 14. |
DirectX 8.0 | 4.08.00.0400 (RC10) | 2000. november 12. | |
DirectX 8.0a | 4.08.00.0400 (RC14) | az utolsó verzió Windows 95 támogatással | 2001. február 5. |
DirectX 8.1 | 4.08.01.0810 | Windows XP, Windows Server 2003 és Xbox exkluzív | 2001. október 25. |
4.08.01.0881 (RC7) | 2001. november 8. | ||
DirectX 8.1a | 4.08.01.0901 (RC?) | ez a verzió tartalmaz egy frissítést a Direct3D-hez (D3d8.dll) | 2002 |
DirectX 8.1b | 4.08.01.0901 (RC7) | Egy javítást tartalmaz a DirectShow-hoz Windows 2000 (Quartz.dll) alatt | 2002. június 25. |
DirectX 8.2 | 4.08.02.0134 (RC0) | Ugyanaz, mint a DirectX 8.1b, de tartalmazza a DirectPlay 8.2-t | 2002 |
DirectX 9.0 | 4.09.00.0900 (RC4) | 2002. december 19. | |
DirectX 9.0a | 4.09.00.0901 (RC6) | 2003. március 26. | |
DirectX 9.0b | 4.09.00.0902 (RC2) | 2003. augusztus 13. | |
DirectX 9.0c | 4.09.00.0903 | Windows XP SP2 exkluzív | |
4.09.00.0904 (RC0) | 2004. augusztus 4. | ||
4.09.00.0904 | Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 R2 és Xbox 360 | 2004. augusztus 6. | |
DirectX 9.0c | 4.09.00.0904 (RC0) | utolsó verzió: 2008. március | |
DirectX 10 | 6.00.6000.16386 | Windows Vista exkluzív | 2006. november 30. |
DirectX 10.1 | 6.00.6001.18000 | Windows Vista SP1, Windows Server 2008 | 2008. február 4. |
6.00.6002.18005 | Windows Vista SP2, Windows Server 2008 SP2 | 2009. április 28. | |
DirectX 11 | 6.00.6002.18107 | Windows Vista SP2, Windows Server 2008 SP2, Windows 7, Windows Server 2008 R2 | 2009. október 27. |
6.01.7600.16385 | Windows 7, Windows Server 2008 R2 | 2009. október 22. | |
6.01.7601.17514 | Windows 7 SP1, Windows Server 2008 R2 SP1 | 2011. február 16. | |
DirectX 11.1 | 6.02.9200.16384 | Windows 8, Windows RT, Windows Server 2012 | 2012. október 26. |
DirectX 11.2 | 6.03.9600.16384 | Windows 8.1, Windows RT, Windows Server 2012 R2 | 2013. október 18. |
DirectX 12.0 | 10.00.10240.16384 | Windows 10, Xbox One | 2015. július 29. |
10.00.15063.0000 | Windows 10 | 2017. március 20. | |
10.00.17763.0000 | Windows 10 | 2019. november 20. | |
DirectX 12.1 | 10.00.17763.0001 | Windows 10, DirectX Raytracing támogatás hozzáadva | 2018. október 2. |
10.00.18362.0116 | Windows 10, Variable Rate Shading (VRS) támogatás hozzáadva | 2019. május 19. | |
DirectX 12.2 | 10.00.19041.0928 | Windows 10, Ultimate | 2020. november 10. |
10.00.22000.1000 | Windows 11 | 2021. október 5. |
Összetevői
szerkesztésDirect3D
szerkesztésA 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ó:
- Előkészítés
- Megjelenítés
- Transzformációk
- Renderelés
- 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
szerkesztésA 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
szerkesztésA 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
szerkesztésA 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
szerkesztésCé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
szerkesztésForrások
szerkesztésKapcsolódó szócikkek
szerkesztésJegyzetek
szerkesztés- ↑ msdn2.microsoft.com
- ↑ a b www.nyisztorkaroly.org. [2010. szeptember 4-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. szeptember 15.)