Programování


 

 
 

 

DirectX

DirectX 7 a Delphi

nové 30.11. 2009 - Po umornem snazeni s DirectX bych dnes vsem doporucil OpenGL.

Na těchto stránkách se pokusím vám vysvětlit podstatu DirectX v Delphi a to pomocí příkladů. Na začátech bych chtěl uvést, že je dobré mít k dispozici MS SDK DirectX7 (Microsoft Software Development Kit), který můžete nalézt na stránkách Microsoftu. Má asi 126MB. 56k modemem jsem to začal stahovat v sobotu v 10 hod. ráno přes volný a Internet99 a ve 4 hod. odpoledne už to bylo u mě doma. Celková cena za připojení byla míň než stovka. A když ne celý SDK tak si alespoň stáhněte jeho help, který najdete někde na www.bigfoot.com/~ungerik. Všechno, co ke své práci potřebujete je Delphi (od 3 výše to funguje bez problémů), přeložené hlavičkové soubory (ty najdete také na výše uvedené adrese a nebo tady - 165kB) a hlavně řádně nainstalované DirectX7. Po rozbalení přeložených jednotek k nim musíte přidat cestu v Delphi (Tools - Environment - Library - Library Path a Browsing Path). Užitečná je i jednotka DDUtil.pas (2kB). Tu jednoduše přikopírujte k ostatním.

Jistý Arne Schäpers přeložil pomocné soubory k Direct3D. D3DUtil.zip (42kB) stačí rozbalit a zkopírovat k ostatním jednotkám pro DirectX. Pokud již náhodou nějaké stejnojmené jednotky máte, doporučuji je přepsat těmito, protože umí ještě něco navíc.

A můžeme se pustit do práce.

Podstata DirectX 7

Všechno to funguje pomocí rozhraní v Delphi (interface). Jedná se o něco jako objekt, který se napojuje na DLL knihovnu. Nějakou jednoduchou funkcí vyexportovanou DLL knihovnou si tento objekt vytvoříte a pak už manipulujete jen s ním. Z paměti se uvolní dost jednoduše, zkusíte jestli je ukazatel platný a přiřadíte do něj nil:
  if Assigned(DDSurface) then DDSurface := nil;
Celé DirectX se dělí na několik skupin fukcí a objektů podle zaměření.
  • DirectDraw - 2D grafika, základ pro Direct3D
  • Direct3D - 3D prostorová grafika, textury, světla...
  • DirectSound - produkce a záznam zvuku
  • DirectMusic - MIDI hudba
  • DirectPlay - síťové rozhraní
  • DirectInput - ovládání (myš, klávesnice, joystick...)

Zjistil jsem, že na nějaké podrobné vysvětlování nemám moc čas. Proto to uskutečním formou příkladů. Doporučuji si také přečíst help, co je u MS SDK-DirectX 7 (viz úvod této stránky). Příklady:

můžete jen stáhnout příklad, který tady rozeberu a vysvětlím. Je udělaný v Delphi 5, ale formulář je uložený textově, takže stačí ve starší verzi vytvořit nový form, zobrazit ho textově (View as text) a obsah nahradit textem v souboru DFM. Potom ho stačí uložit a výsledným DFM souborem nahradit DFM soubor z Delphi5.

 

 


Copyright © 2000 by Tramp. Optimalizováno pro 800x600, IE 5.0. Vaše dotazy a komentáře k těmto stránkám můžete zasílat na adresu
tramp@volny.cz