Die ganze Welt von DirectX 7.0
Danach liegt dem Visual-Basic-Programm die ganze Welt von DirectX 7.0 zu Füßen, die sich in Form sogenannter
COM-Schnittstellen bzw. COM-Objekte offenbart. DirectX stellt dazu eine komplette Hierarchie voneinander
abhängiger Objekte bereit, an dessen Spitze das DirectX7-Objekt steht. Dieses muss von jedem Visual-Basic-Programm
erzeugt (instanziert) werden, denn nur über dieses Objekt ist der Zugriff auf die Subkomponenten von DirectX möglich.
Denn das "X" in DirectX ist ein Platzhalter, der für Draw, Sound, 3D, Input bzw. Play steht.
DirectX ist also der Verbund der Programmierschnittstellen DirectDraw, DirectSound, Direct3D, DirectInput
und DirectPlay. Und hinter jedem dieser Begriffe verbirgt sich eine Programmierschnittstelle, die den hardwarenahen Zugriff
auf den Bildschirm (DirectDraw), die Soundkarte (DirectSound), den 3D-Beschleuniger (Direct3D), die Eingabegeräte
wie Joystick, Maus und Tastatur (DirectInput) und die Rechnerkopplung für Netzwerkspiele (DirectPlay) gestattet. Aufgrund der
Fülle dieser Schnittstellen können wir uns hier allerdings nur der DirectDraw- und der DirectSound-Schnittstelle widmen.
Die Mutter aller Objekte
Die "Mutter aller Objekte" innerhalb einer DirectX-Anwendung ist das DirextX7-Objekt. An ihm führt kein Weg vorbei, und
daher ist es das erste, das von einer Anwendung erzeugt wird:
Dim dx As New DirectX7
Durch Dimensionierung dieses Objektes über das New-Schlüsselwort steht es ohne weitere Vorkehrungen unmittelbar
nach Programmstart zur Verfügung. Ausgehend von ihm müssen weitere Objekte erzeugt werden - beispielsweise das DirectDraw7-Object,
das den Zugriff auf die DirectDraw-Schnittstelle erlaubt. Um es zu erstellen, muss die Methode CreateDirectDraw7
des DirectX7-Objekts aufgerufen werden. Der Parameter, den diese Methode erwartet, ist von eher "esoterischem" Wert
und in herkömmlichen VB-Anwendungen nur sehr, sehr selten von Belang. Deshalb kann hier der Leere-String übergeben werden:
Dim dd As DirectDraw7
Set dd = dx. _
DirectDrawCreate("")
Wurde das DirectDraw-Objekt erstellt, geht es an die Programmierung der Grafikanwendung.
Zunächst muss angegeben werden, ob die Anwendung in einem Fenster, also kooperativ mit anderen
Windows-Anwendungen, oder exklusiv als Vollbildanwendung ablaufen soll. Vollbildanwendungen sind
zwar deutlich schneller als DirectDraw-Anwendungen, die innerhalb eines Fensters ablaufen.
Allerdings sind Fensteranwendungen leichter zu debuggen, weil im Falle eines Fehlers eine MessageBox
auf dem
Desktop zu sehen ist, was bei Vollbildanwendungen nicht der Fall ist. Eine fehlerhafte Vollbildanwendung
lässt sich leider oft nur durch den Neustart des Rechners beenden. Daher erläutern wir zunächst die Programmierung
der etwas komplizierteren, für den Anfänger aber deutlich vorteilhafteren Fensteranwendungen.