Exemplarische Vorgehensweise: Portieren einer einfachen Direct3D 9-App zu DirectX 11 und zum Windows Store

Applies to Windows and Windows Phone

In dieser Portierungsübung wird veranschaulicht, wie Sie ein einfaches Renderingframework von Direct3D 9 auf Direct3D 11 und den Windows Store umstellen.

Inhalt dieses Abschnitts

ThemaBeschreibung

Initialisieren von Direct3D 11

Hier wird veranschaulicht, wie Sie Direct3D 9-Initialisierungscode in Direct3D 11 konvertieren, und Sie erfahren, wie Sie Handles zum Direct3D-Gerät und zum Gerätekontext abrufen und DXGI zum Einrichten einer Swapkette verwenden.

Konvertieren des Renderingframeworks

Hier wird veranschaulicht, wie Sie ein einfaches Renderingframework von Direct3D 9 in Direct3D 11 konvertieren. Sie erfahren, wie Sie Geometriepuffer portieren, HLSL-Shaderprogramme kompilieren und laden und die Renderkette in Direct3D 11 implementieren.

Portieren der Spielschleife

In diesem Thema wird veranschaulicht, wie Sie ein Fenster für ein Windows Store- oder Windows Phone-Spiel implementieren und die Spielschleife übertragen. Außerdem wird die Erstellung eines IFrameworkView-Elements zum Steuern eines CoreWindow-Vollbilds erläutert.

 

Es werden zwei Codepfade durchgegangen, mit denen jeweils die gleiche grundlegende Grafikaufgabe durchgeführt wird: das Anzeigen eines sich drehenden Würfels mit Vertexschattierung. In beiden Fällen wird mit dem Code der folgende Prozess abgedeckt:

  1. Erstellen eines Direct3D-Geräts und einer Swapkette
  2. Erstellen eines Vertexpuffers und eines Indexpuffers zum Darstellen eines farbigen Würfelgitters
  3. Erstellen eines Vertex-Shaders, mit dem Scheitelpunkte in Bildschirmbereiche umgewandelt werden, eines Pixelshaders, mit dem Farbwerte vermischt werden, Kompilieren der Shader und Laden der Shader als Direct3D-Ressourcen
  4. Implementieren der Renderkette und Darstellen des gezeichneten Würfels auf dem Bildschirm
  5. Erstellen eines Fensters, Starten einer Hauptschleife und Durchführen der Verarbeitung von Bildschirmmeldungen

Nach der Durcharbeitung dieser exemplarischen Vorgehensweise sollten Ihnen die folgenden grundlegenden Unterschiede zwischen Direct3D 9 und Direct3D 11 bekannt sein:

  • Trennung von Gerät, Gerätekontext und Grafikinfrastruktur
  • Kompilierungsprozess für Shader und Laden von Shader-Bytecode zur Laufzeit
  • Konfigurieren von Daten pro Vertex für die Eingabeassembler (IA)-Phase
  • Verwenden eines IFrameworkView-Elements zum Erstellen einer CoreWindow-Ansicht

Beachten Sie, dass in dieser exemplarischen Vorgehensweise der Einfachheit halber CoreWindow verwendet wird. Die XAML-Interoperabilität wird nicht behandelt.

Voraussetzungen

Führen Sie die Schritte unter Vorbereiten der Entwicklungsumgebung für die Entwicklung von Windows Store-DirectX-Spielen aus. Sie müssen noch keine Vorlage laden, aber Sie benötigen Microsoft Visual Studio 2013, um die Codebeispiele für diese exemplarische Vorgehensweise zu laden.

Laden Sie das Beispiel unter Einfaches Beispiel für das Portieren von Direct3D 9 zu DirectX 11 Windows Store herunter. Dieses Beispiel enthält die Codepfade für Direct3D 9 und Windows Store, die in dieser exemplarischen Vorgehensweise verwendet werden. In diesem Beispiel wird eine Windows Store-App verwendet, aber die beschriebenen Portierungskonzepte gelten auch für Windows Phone-Apps.

Lesen Sie sich die Informationen unter Konzepte und Aspekte der Portierung durch, um ein besseres Verständnis der verwendeten Programmierungskonzepte für DirectX 11 und Windows Store zu entwickeln.

Verwandte Themen

Direct3D
Entwickeln für unterschiedliche Direct3D-Featureebenen
Schreiben von HLSL-Shadern in Direct3D 9
Erstellen eines neuen DirectX 11-Projekts für den Windows Store
Windows Store
Microsoft::WRL::ComPtr
Handle to Object Operator (^)

 

 

Anzeigen:
© 2014 Microsoft