DirectX
A Wikipédiából, a szabad enciklopédiából.
A DirectX (Továbiakban 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 annak köszönheti, hogy már a Windows 95-től kezdődően a DX a Windows rendszer szerves része.
A programozó szemponjá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.
Tartalomjegyzék |
[szerkesztés] Felépítése
A DX több ezer API függvényt definiál, amiket az alkotók kisebb modulokra bondottak aszerint, hogy mi a feladatuk. A renszer 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 billenyű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
[szerkesztés] Története
A Windows 95 egy merőben új rendszer volt. A Microsoftnál rájöttek arra, ha nem figyelnek a játékosokra, akkor nem lesz majd olyan sikeres. A probléma oka egyszerű volt: a valós módban futó DOS lehetővé tette a hardver közvetlen manipulálását, a védett módú Windows kernel azonban már nem, többek között azért, mert egy általánosított felületet biztosított a programok számára.
A Microsoftnál 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 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: tartalmazta a játékkészítés minden elemét. Megjelenítés, vezérlés és hangok. Az OpenGL "csak" egy grafikai függvény-könyvtár.
2002-ben a DX 9-től már támogatottak a pixel és vertex shader-ek is (1.x, 2.x), 2004-től pedig már a 3.x-es shaderek is.
[szerkesztés] Verziói
| 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 and 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 |
[szerkesztés] Összetevői
[szerkesztés] Direct3D
A DX talán legismertebb eleme. Szinte minden Windows rendszerre írt játék ezt a 3D-s függvénykönyvtárat használja.
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ás specifikus feladatokat is. A második és aharmadik lépés általában egy ciklusban ismétlődik a program futása során. A negyedik lépés igazából nem létfontosságú, de a rendszer stabil és megbízható működéséhez nélkülözhetetlen.
Bővebben (angolul):
[szerkesztés] 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.
[szerkesztés] Könyvajánló
A DirectX-ről, és az arra történő fejlesztésről bővebben Nyisztor Károly: Grafika és Játékprogramozás DirectX-szel c. könyvében olvashatsz: [1] Kép:Http://nkari.uw.hu/directx.jpg


