DirectX

Krátký úvod
Jak je už z názvu zřejmé, budu vás v této rubrice postupně seznamovat se základy programování pomocí DirectX 8.0(dále jen DX). Pro ty zkušenější zde časem popíšu i složitější témata (jako jsou stíny, tweening...). Ještě bych měl možná upozornit, že DX je celé založeno na technologii COM, tak doporučuji nastudovat, bude pak pro vás jednodušší pochopít práci s DX... Určitě stojí za zmíňku, že programování pod DX8 je docela složitá záležitost a k jeho zvládnutí je zapotřebí poměrně dost vědomostí.

Proč používat DirectX(resp. Direct3D)?
Začnu pěkně od začátku, a to důvodem, proč byl vůbec DX vytvořen. Vše to začlo vydáním OS Windows 95. Aby nám jeho tvůrci zjednodušili psaní programů, zavedli rozhraní GDI (Graphics Device Interface). To spolu s kontextem zařízení (Device Context - DC) tvořilo(a dodnes stále tvoří) základní grafický interface Windows. Jeho výhoda spočívá v nezávislosti na konkrétním výstupním hardware(Jde o způsob používání funkcí API, například funkcí TextOut můžeme poslat řetězec jak na grafickou kartu, tak třeba i na tiskárnu - stačí použít DC pro tiskárnu). Takto "přátelské" rozhraní si vyžádalo jistou daň na výkonu, a to inženýři od Microsoftu moc dobře věděli. Vytvořili tedy DX - velké množství efektivních nízkoúrovňových funkcí pro práci s grafikou. DX má možnost "obejít" rozhraní GDI a přistupovat tak přímo na hardware, přesněji pomocí vrstvy HAL(Hardware Abstraction Layer)
Princip komunikace DX s hardware zobrazuje následující obrázek:

vrstvy grafickeho rozhrani
Co je to HAL?
Na obrázku je zřetelné, že D3D komunikuje s hardwarem prostřednictvím vrstvy HAL, takže bych měl vysvětlit, proč to tak je. HAL může být součástí grafické karty, nebo je odděleno v DLL knihovnách, které pak komunikují s hardware pomocí soukromého rozhraní. Tato vrstva je záwislá na zařízení, z čehož plyne že musí být dodána od výrobce daného hardware(většinou jako ovladače). Direct3D poté komunikuje především s touto vrstvou. Může tak využívat všech možností grafické karty a vycucat z ní maximum výkonu.
Pokud použijete v programu funkci, která není hardwarově podporována, DirectX přepne z režimu HAL na softwarovou emulaci REF.

Součásti DirectX 8.0
DX zažil od svého vývoje spoustu změn a úprav, a proto se nebudu věnovat nižším verzím(kdo by programoval např. pod DX7 když máme k dispozici už verzi 8.1).
Nejnovější verze se tedy skládá z následujících komponent:

• DirectX Graphics podporuje práci s 3D grafikou (nově od verze 8.0, vzniklo po integraci DirectDraw s Direct3D)
• DirectInput ovladače pro práci s jakýmkoliv vstupním zařízení, od myši po různé feedbacky a volanty
• DirectPlay pro vytváření multiplayeru u her, pro různé síťové programy atd...
• DirectX Audio přehrávání zvuků i s možností jejich míchání (nově od verze 8.0,vzniklo po integraci DirectMusic s DirectSound)
• DirectShow vytvořen pro podporu multimediálních videoklipů, jejich přehrávání a vytváření...
• DirectSetup pomůže vaší aplikaci nainstalovat DirectX, pokud není na konkrétním systému už nainstalovaný


Podrobněji se podíváme na první dva (DirectX Audio a DirectPlay ještě moc prozkoumané nemam, proto vám tu popíšu ještě jednu alternativu k modulu DirectX Audio, a tou je FireMOD).
Online Poker texas hold em strategy. Three online poker games. The free poker tournaments in our freeroll schedule are open to all players .