Zurück zur Gesamtübersicht "Physik mit Direct3D"


Physik mit Direct3D

Wie erzeuge ich ein Direct3D-Device im eigenen Projekt?

Ein Direct3D-Device anfordern - und wieder freigeben

Um mit Direct3D Grafiken erzeugen zu können, muss eine Programmiererin oder ein Programmierer von DirectX eine Direct3D-Device anfordern.

Auch hierfür hat der Wahlkurs einige Lösungen erarbeitet. Beispielsweise bietet die Klasse Control3D diese Möglichkeit, ein Direct3D-Device anzufordern bzw. freizugeben.

Die Klasse Control3D ist in der Header-Datei 3DAnwendung.h definiert.

Diese Header-Datei lässt sich hier herunterladen: info_d3d_anwendung.zip.

Im eigenen Projekt muss dann die Header-Datei 3DAnwendung.h eingebunden werden, und zwar als zusätzlicher Include-Befehl direkt nach dem Include-Befehl für das Einstellungsfenster:

Ein Direct3D-Device anfordern

Der Konstruktor der Klasse Control3D fordert automatisch ein Direct3D-Device an.

Hierbei kannst Du als Parameter ein Objekt der Klasse Direct3DParameters und einen Zeiger auf ein Bildschirm-Fenster übergeben.

Unser eigenes, neues Projekt benötigt einen globalen Zeiger auf ein Control3D-Objekt. Beispielsweise könnte man diesen unterhalb des Fensterzeigers des Projekt-Hauptfensters deklarieren:

Eine komplette Initialisierung und Anforderung eines Direct3D-Devices in der Methode FormCreate könnte dann so aussehen:


Vorsicht!

Noch würde ich das Beispiel nicht starten. Denn ein Control3D-Objekt, das mit new erzeugt wurde, muss vor Programmende natürlich auch wieder mit delete vernichtet werden.

Außerdem gibt erst der Control3D-Destruktor das angeforderte Direct3D-Device auch wieder frei:


Das Control3D-Objekt vor Programmende unbedingt zerstören

Dies kann zum Beispiel in der Methode des Projekthauptfensters FormDestroy geschehen:

Auf diese Weise wird ein Direct3D-Device auch korrekt wieder abgebaut.

Das gesamte Projekt sollte jetzt fehlerfrei kompiliert und gestartet werden können.

Nicht nur das Starten, sondern auch das Beenden des eigenen Projekts muss einwandfrei klappen. Es dürfen sich keinerlei Fehler, "Exceptions" oder Abstürze ergeben.

Zwar ist noch nichts "Dreidimensionales" oder andere Grafik sichtbar - aber etwas Wesentliches ist auf jeden Fall geschafft: Das Direct3D-Device wird bereits auf- und wieder abgebaut!


Alt+F4 beendet ein Programm.

Wenn Du das Programm testest und dabei den Vollbildschirm-Modus wählst, so stellt Direct3D Deine 3D-Szene direkt am Bildschirm dar - somit gibt es keinerlei Fenster mehr am Bildschirm, auch keinen Schließknopf zum Beenden Deines Programms.

Dein Programm lässt sich aber trotzdem jederzeit mit der Tastaturkombination Alt+F4 abbrechen.


Weiter zu "Objekte anzeigen (I)"
Zurück zur Gesamtübersicht "Physik mit Direct3D"