SelfDXD von Martin Pyka
SelfDXD
Editorial
Was ist SelfDXD?
Vorwissen
Die DirectX-Header
Anmerkung zu der Befehlsrefernz
Danksagung

Was ist SelfDXD?

SelfDXD steht für Self DirectX für Delphi und ist für deutschsprachige Delphi-Entwickler gedacht, die möglichst schnell und effizient DirectX lernen wollen. Das Ziel des Projekts SelfDXD ist es, sämtliche Befehle und Techniken zu erklären und zu dokumentieren, die für das Verständnis von DirectX notwendig sind. Dabei liegt der Schwerpunkt ganz klar auf DirectXGraphics, also dem grafischen Teil von DirectX. Da ich nur in meiner Freizeit an SelfDXD arbeiten kann, sind die Fortschritte entsprechend klein. Das Erstellen dieser Dokumentation bringt mir keine finanziellen Vorteile oder dergleichen.

Es gibt nur sehr wenige DirectX-Tutorials, die für Delphiprogrammierer geschrieben wurden (die Zahl der deutschen Tutorials lässt sich sogar an einer Hand abzählen). Die SDK existiert nur in Englisch und obwohl sie DirectX umfassend erklärt, ist sie für den ersten Einstieg meines Erachtens nicht sehr geeignet. SelfDXD ist so konzipiert, dass jeder, der einigermassen sicher mit Delphi programmieren kann, problemlos den Einstieg in DirectX finden sollte. Ein weiteres Ziel dieser Dokumentation ist es, alle Themen so zu erklären, dass möglichst keine Fragen offen bleiben.

SelfDXD befindet sich noch in seiner Anfangsphase und wird in den nächsten Monaten noch stark anwachsen. Mit dem Know-How, das bisher in dieser Dokumentation implementiert ist, lässt sich allerdings schon eine Menge anfangen. Zu wichtigen Kapiteln gibt es zudem Samples, die Sie in Delphi kompilieren können, und die Ihnen die gelernten Themen in einer Beispielanwendung demonstrieren. Alle Beispiele finden Sie in dem Verzeichnis /demo/.


Vorwissen

Keine Angst, Sie müssen zunächst kein Experte in Sachen Delphi sein, um DirectX erlernen zu können. Doch es ist von Vorteil, wenn Sie bereits mit Zeigern / Pointern und OOP (objekt-orientiertes Programmieren) vertraut sind. Das heisst also, Sie können Klassen erstellen und mit deren Instanzen umgehen. Da wir in DirectX nicht mit der VCL arbeiten, brauchen Sie in dieser Hinsicht keine speziellen Kenntnisse. Im grossen und ganzen sollte Ihnen also einfach nur der Aufbau eines Delphiprogramms geläufig sein. Alles, was DirectX angeht, werden Sie von Grund auf lernen.


Die DirectX-Header

Alle DirectX-Befehle sind in DLL-Dateien ausgelagert. Um auf diese zugreifen zu können wurden sogenannte Header-Dateien geschrieben, die JEDI-Header. Die aktuellsten Header können Sie unter www.crazyentertainment.net downloaden. Kopieren Sie diese in das lib/-Unterverzeichnis des Delphi-Ordners. Welche Teile der Header wann in die Anwendung mit eingebunden werden müssen, wird in den einzelnen Kapiteln angekündigt.


Anmerkung zu der Befehlsreferenz

In der Direct3D Delphi Referenz und in der Direct3DX Delphi Referenz sind die Namen der Records an die der SDK angelehnt, um ein Nachschlagen im Software Development Kit zu erleichtern. In Delphi geht jedem Recordname ein T vorraus. Da dies, wie gesagt, in der SDK nicht der Fall ist, wurde das T in der Referenzliste einfach weggelassen.


Danksagung

Ohne die direkte und indirekte Mithilfe von vielen Programmierern, die ich über das Internet kennengelernt habe, wäre dieses Projekt nur schwer möglich gewesen. Besonderen Dank gilt dabei besonders:

Jan Michalowsky
Der mich nicht nur über zahlreiche Gespräche im Chat angetrieben hat, weiter zu schreiben, sondern bei der Übersetzung der Renderstates aktiv mitgeholfen hat.

Neo
für sein tolles Forum bei den Neobrothers, wo ich auf viele meiner speziellen Fragen, Antworten fand, die ich in SelfDXD einbauen konnte.

den vielen Leute aus dem Forum
Ich kann unmöglich alle Leute aufzählen, die ich aus diversen Foren her kenne, und Dir mir mit Rat und Tat zur Seite gestanden habe oder mein Projekt zumindest moralisch unterstützten ;-).

den Cappuccino-Herstellern
Was würde ich nur machen ohne den inspirativen Milchkaffe, mit dem ich mich täglich aufputschte, um die Rückenschmerzen, die roten Augen und meinen Hunger zu betäuben. ;-)