Inside DirectX aneb budeme si hrát...

Jsou knihy, kterých se u nás prodají tisíce, a jsou knihy, u kterých se počet prodaných kusů počítá na desítky neb...


Jsou knihy, kterých se u nás prodají tisíce, a jsou knihy, u kterých se počet
prodaných kusů počítá na desítky nebo na stovky. Asi se nespletu, když si
dovolím odhad, že zde recenzovaná publikace patří do oné druhé skupiny. A to i
přesto, že se jedná o jednu z nejzajímavějších knih, které se mi v poslední
době dostaly do ruky.
Objektem jejího zájmu je DirectX sada knihoven, která umožňuje programátorům
psát výkonné multimediální aplikace v prostředí MS Windows 95/98/NT. Zmíněné
téma je samozřejmě zajímavé jen pro relativně omezenou skupinu lidí, která se
vývojem tohoto typu aplikací zabývá. Myšlen je samozřejmě hluboký zájem
povrchní informace o DirectX jsou nepochybně přitažlivé i pro desítky hráčů her
nebo prostě jen počítačových nadšenců. Omezená skupina lidí s oním hlubokým
zájmem je prvním důvodem mého úvodního tvrzení. Druhým je potom skutečnost, že
kniha je dostupná pouze v angličtině.
Po trochu delším úvodu se konečně pojďme podívat, co nás čeká, začteme-li se do
zmíněné knihy. V úvodu se dozvíte nejen dnes už snad zřejmý fakt, že "DOS je
mrtev", ale seznámíte se také s aktivitami Microsoftu nasměrovanými k přitažení
vývojářů her (a posléze hráčů) na platformu Windows. V závěru této kapitoly pak
nechybí seznam komponent, ze kterých se DirectX skládá.
Druhá kapitola vám poskytne základy, které budete potřebovat při dalším čtení.
Dozvíte se tu, co znamená pojem COM (Component Object Model) a jak souvisí s
objekty DirectX. Jsou vám tu také poskytnuty rady, jak debugovat aplikace,
psané s použitím těchto knihoven.
Třetí kapitola se věnuje instalaci DirectX SDK (Software Development Kit) a
simulaci různých prostředí prostřednictvím jeho parametrů. Na tomto místě ještě
poznamenejme, že součástí knihy je i CD-ROM s SDK DirectX 5.2 a řadou příkladů
k textu. Třetí kapitolou také končí první část knihy a dál už se bude
programovat.
Druhá část knihy je věnována DirectDraw. Úvodem jsou vysvětleny různé
zobrazovací architektury a grafické režimy. Následuje popis vytvoření objektu
DirectDraw a použití souvisejících funkcí, např. pro zjištění vlastností
podporovaných grafickou kartou. Vysvětleno je tu pochopitelně i nastavení modu
exkluzivity. Mezi další probíraná témata patří přepínání grafických režimů,
surfaces (vytvoření, naplnění, přístup k nim, blitting), page flipping, palety,
overlays (mimochodem, podporované jedině tehdy, pokud je podporuje grafická
karta) nebo použití DirectDraw v okně.
Ve třetí části se autoři věnují DirectSoundu. V úvodu je čtenář zasvěcen do
základních pojmů (MIDI, audioformát, audiobuffer) a pak už se, podobně jako u
DirectDraw, vytvoří příslušný objekt DirectSound, nastaví formát dat a přehrává
se. Autoři se věnují i vytvoření věrohodného zvuku ve 3D.
Čtvrtá část popisuje DirectPlay, komponentu, jejíž význam není zřejmě na rozdíl
od těch předcházejících patrný již z názvu. Tedy DirectPlay zajišťuje podporu
hry pro více hráčů současně po nejrůznějších druzích sítí. Stejně jako v
předcházejících částech, ani tady nechybí příklad použití.
Následující část se věnuje komponentě nesoucí název DirectInput. Vedle
informací o způsobech získání dat od myši a klávesnice nepochybně zaujme
kapitola věnovaná joystickům právě v této oblasti totiž přináší 5. verze
DirectX markantní vylepšení oproti verzím předcházejícím. Vynechána není ani
podpora joysticků s "force feedback", tedy těch, které se mohou hýbat nebo
klást různý odpor podle situace, v jaké se hráč nachází.
Šestá část popisuje použití DirectSetupu určeného k instalaci DirectX na
počítač uživatele vašeho softwaru. V závěru knihy pak nechybí seznam doporučené
literatury a rejstřík.
Je nepochybně vhodné zdůraznit, že předkládaná kniha není učebnicí programování
ani kuchařkou pro psaní her. Od čtenáře se očekává, že mu není cizí jazyk C (i
když se dá DirectX použít i spolu s jinými jazyky, příklady jsou vesměs v
Céčku) a dokáže pracovat v nějakém vývojovém prostředí (např. Visual C++
Microsoftu).
Možná vás ještě napadá otázka, zda není lepší (a hlavně levnější) nastudovat
použití DirectX z příkladů, které jsou součástí jeho SDK. Tady mám jasnou
odpověď: Není. Snad vás přesvědčí následující důkazy. Tak např. v řadě příkladů
z SDK se používá ke zjištění úspěšného provedení funkce následující (nesprávné)
vyhodnocení její návratové hodnoty: if ( lpDDxxxx->GetXX( xx ) == DD_OK).
Autoři ale striktně doporučují využít makro FAILED. V budoucnu se totiž při
úspěšném provedení funkce počítá s větším počtem kladných návratových hodnot,
než jen s DD_OK. Další problémy vám může způsobit, necháte-li se jako slušný
programátor uvedenými příklady nalákat na navrácení původního grafického režimu
před opuštěním aplikace nejen, že to není nutné, ale je to dokonce nežádoucí.
Může to totiž způsobit rozhození pracovní plochy.
Z uvedeného vyplývá, že řada informací, které byste jinak museli lovit z (často
ne úplně správných, bohužel) příkladů, je vám tady přinesena na stříbrném
podnose. Kniha je přitom napsána čtivě a je také velmi přehledně uspořádána.
Při jejím čtení jsem narazil na jedinou drobnou chybu v popisu struktury
DDPIXELFORMAT na straně 66. Ovšem komentář je v pořádku, takže není problém se
s ní vypořádat.
Tuto chybu jsem zmínil z jediného důvodu nerad bych napsal recenzi bez jediné
výtky (byť v podstatě malicherné). Závěr tedy zní: tato kniha je jednoznačně
povinnou (a díky svému stylu jistě i dobrovolnou) četbou pro všechny, kdo
chtějí začít vyvíjet aplikace s DirectX.
(Bradley Bargen, Peter Donelly: Inside DirectX. Microsoft Press 1998,
distribuce v ČR: Computer Press. 545 stran, 1 701 Kč.)
8 1725 / pen









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.