[go: up one dir, main page]

DirectX

Sammlung COM-basierter Programmierschnittstellen

DirectX [dɪˈrɛkt ɛks (AE) bzw. 'daɪrɛkt ɛks (BE)] ist eine Sammlung COM-basierter Programmierschnittstellen (englisch Application Programming Interface, kurz API) für multimediaintensive Anwendungen (besonders Spiele) auf der Windows-Plattform und kommt auch auf der Spielkonsole Xbox zum Einsatz.

QS-Informatik
Beteilige dich an der Diskussion!
Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)


Begründung: Überarbeitung notwendig, da nicht nur Belege fehlen, sondern auch wesentliche Aspekte der Geschichte, die zu DirectX führte.

Microsoft DirectX

Microsoft DirectX-Logo Schriftzug
Basisdaten

Entwickler Microsoft Corporation
Erscheinungsjahr 30. September 1995
Aktuelle Version 12.0 ULTIMATE (für Windows 10 2004)
(06.2020)
Betriebssystem Windows
Programmier­sprache High Level Shader Language, C++
Kategorie Programmierschnittstelle
Lizenz MS-EULA
Für Endbenutzer:
www.microsoft.com/de-de/download/details.aspx?id=35
Für Entwickler:
msdn.microsoft.com/directx/

Die DirectX-Sammlung von Software-Komponenten deckt nahezu den gesamten Multimediabereich ab. Vorrangig wird es bei der Darstellung komplexer 2D- und 3D-Grafik eingesetzt, bietet aber auch Unterstützung für Audio, diverse Eingabegeräte (zum Beispiel Maus, Joystick) und Netzwerkkommunikation.

Entwicklungsgeschichte

Bearbeiten

Vorgeschichte und MS-DOS

Bearbeiten

Nachdem sich seit Ende der 1980er Jahre der IBM (kompatible) PC mit dem Betriebssystem MS-DOS als „Computer für Jedermann“ durchgesetzt hatte, begann ein paar Jahre später auch der Siegeszug der grafischen Benutzeroberfläche Microsoft Windows. In den 1990ern wurden die verbreiteten Anwendungen zunehmend für Microsoft Windows portiert, und viele neue Anwendungen wurden exklusiv für Windows mithilfe der WinAPI entwickelt. Einzige Ausnahme blieben Computerspiele, die anfangs zwar vorwiegend auf den mit besseren Multimediafähigkeiten bestückten Heimcomputern erschienen, aber auch mehr und mehr auf dem PC Einzug hielten.

Windows bot zu diesem Zeitpunkt noch keine optimierten Programmier-Schnittstellen für schnelle Grafik- und Audio-Operationen, die aber für Spiele meist unabdingbar sind. Deshalb wurden Spiele meist nur für MS-DOS entwickelt. MS-DOS bot zwar auch keine speziell für Spiele entworfenen Schnittstellen, aber es erlaubte die völlige Kontrolle über den Prozessor und den ungehinderten Zugriff auf die gesamte angeschlossene Hardware. Vor allem konnte ein Programm unter MS-DOS sicher sein, nicht von anderen gleichzeitig auf demselben Rechner laufenden Programmen behindert zu werden, weil unter dem Single-Task-System MS-DOS immer nur ein einziges Programm laufen kann. Im Gegensatz dazu müssen Programme unter Multitasking-Systemen wie Windows auf andere Programme Rücksicht nehmen, die auf demselben Rechner simultan laufen. Microsoft schenkte der Entertainment-Branche und Unterhaltungsmedien wie Computerspielen zu diesem Zeitpunkt noch wenig Beachtung.

Siegeszug der 3D-Grafik

Bearbeiten

Nach dem einschlagenden Erfolg des Computerspiels Doom von der Firma id Software, die schon vorher mit Wolfenstein 3D gezeigt hatte, welches technische Potenzial in den eigentlich vorrangig für Büroarbeit verwendeten „IBM-kompatiblen PCs“ steckt, begann sich Microsoft für das Unterhaltungssegment zu interessieren. Dem System Windows 95 – das genau wie seine Vorgänger bei Erscheinen noch über keine Programmierschnittstelle für Spiele verfügte – wollte Microsoft nachträglich eine Schnittstelle hinzufügen, um den wachsenden Markt der PC-Spieler von MS-DOS wegzulocken und hin zu Windows 95. DOS wurde als bessere Plattform angesehen, weil es den direkten Zugriff auf Grafikkarten, Maus, Tastatur und Soundgeräte ermöglichte. Windows 95 schränkte den Zugang zu all diesen Komponenten aufgrund seines geschützten Speichermodells ein. Microsoft benötigte folglich einen Weg, um den Programmierern den gleichen Zugriff auf diese Geräte unter dem neuen Betriebssystem Windows 95 zu ermöglichen.[1] Diese erste Schnittstellen-Version nannte Microsoft „Game SDK“.[2] Sie bestand lediglich aus einer Handvoll Funktionen, mit denen Grafiken direkt in den Grafikspeicher geblittet werden konnten. Diese erste Schnittstellen-Version wurde von der Spieleindustrie, die jahrelang für MS-DOS entwickelt und dort Erfahrung gesammelt hatte, nicht weiter beachtet.

Parallel dazu entwickelte Microsoft WinG, eine Bibliothek mit gleichem Ansatz, jedoch bevorzugt für den 256-Farben-Modus. Diese Bibliothek kam zum Beispiel in „Lemmings for Windows“ zum Einsatz und war auch unter der Benutzeroberfläche Windows für Workgroups 3.11 verfügbar.

DirectX 1.0

Bearbeiten

Einen weiteren Anlauf unternahm Microsoft mit DirectX (Version 1.0 Codename Manhattan[3]), welche am 30. September 1995 veröffentlicht wurde. Microsoft konnte id Software dazu bewegen, eine Portierung ihres erfolgreichen Spiels „Doom“ mit dieser API für Windows 95 zu entwickeln. Diese Spiel-Portierung wurde von Microsoft auf einer Messe präsentiert, um Softwareentwickler dazu zu bringen, mit DirectX direkt für den De-facto-Standard Windows 95 zu entwickeln statt für MS-DOS.

Aber auch dieser Versuch scheiterte zunächst, da Microsoft den Aufwand weit unterschätzte, der für eine brauchbare Programmbibliothek mit auf Spiele optimierten Grafik- und Sound-Funktionen nötig war. Noch Jahre später kamen Spiele auf den Markt, die eigentlich durchgängig Protected-Mode-DOS-Spiele waren und höchstens ein paar zusätzliche Hilfsprogramme (z. B. Editoren) für Windows mitbrachten oder nur die Autoplay-Funktionalität von Windows nutzten.

DirectX 2.0

Bearbeiten

DirectX Version 2.0 (Codename Orion) wurde am 5. Juni 1996 veröffentlicht.[4][5] Nach Release von DirectX 2.0 wurde von Microsoft die Firma Rendermorphics gekauft, die sich um eine 3d Implementierung für DirectX kümmern sollte.

DirectX 3.0

Bearbeiten

DirectX Version 3.0 (Codename Orange) erschien am 15. September 1996 und wurde allmählich auch von Entwicklern ernst genommen. DirectX 3.0 war auch die erste Version, die mit der Komponente Direct3D[4] auch hardwarebeschleunigte 3D-Funktionalität mitbrachte. Mit DirectX 3.0 erschienen auch die ersten Spiele, die nur noch unter Windows mit DirectX und nicht mehr unter MS-DOS liefen, zum Beispiel Diablo.

DirectX 5.0

Bearbeiten

Während der Entwicklung von DirectX 4.0 (Codename Mustard) stellte sich heraus, dass viele Programmierer auf Funktionalitäten warteten, die erst für Version 5 vorgesehen waren. Also beschloss man, die wenigen Veränderungen von DirectX 4 nicht zu veröffentlichen, sondern direkt in die darauffolgende Version einzubauen.[6] DirectX 5 (Codename Diesel) erschien am 16. Juli 1997.[4] Neben einer Performancesteigerung wurde mit DirectX 5.0 eine neue Drawing-Primitive-API eingeführt, die eine einfachere Programmierung erlaubt. Bestehende DirectX 2.0 und 3.0 Anwendungen müssen aber angepasst und neu compiliert werden um davon zu profitieren. Dazu kam die Unterstützung von 3d Soundkarten, Force-Feedback Eingabegeräte und MMX. Mit letzterem wurden bei Bit blit Operationen eine Geschwindigkeitssteigerung um den Faktor 2 erreicht. Dazu kamen die Features Sort Independent Antialiasing, Range Based Fog, Anisotropic Texture Filtering und Bufferless Hidden Surface Elimination.[7]

DirectX 6.0

Bearbeiten

DirectX 6.0 (Codename Kool-Aid) unterstützte erstmals Multitexturing und Bumpmapping. Außerdem wurde der 3DNow! Befehlssatz von AMD CPUs unterstützt. Des Weiteren wurde die Performance verbessert. Gegenüber DirectX 5.0 brachte DirectX 6.0 laut Aussage von PC Professionell 8/98 einen Geschwindigkeitsvorteil von 14 % beim Riva 128 Chipsatz und 28 % beim Voodoo Graphics Chipsatz.[8] Laut Game Developers Conference war DirectX 6.0 damit für Spieleentwickler leistungsfähig genug, um auf Chip spezifische Programmierschnittstellen, wie bspw. die Glide API zu verzichten.[9] Die Aussage auf der Game Developers Conference über Glide bezog sich auf die Glide API für die Voodoo 1 und 2. Die Voodoo 3 und Voodoo 4 und 5 kamen erst nach DirectX 6.0 heraus und brachten in Glide weitere Features, wie bspw. die T-Buffer Technologie, Motion Blur und Depth of Field dazu, die DirectX 6.x und auch das spätere DirectX 7 noch nicht konnten.[10]

DirectX 6.1

Bearbeiten

In DirectX 6.1 kam die Unterstützung der ISSE Befehlssatzerweiterung des Pentium 3 hinzu.[11]

DirectX 7.0

Bearbeiten

Ab Version 7 gehören Transform and Lighting und Cubic Environment Mapping (CubeMaps) zum Funktionsumfang. Das T&L-Paket wurde in der darauffolgenden Version deutlich ausgebaut und um Funktionen wie Triangle Tessellation erweitert. Dazu kam die Unterstützung von herstellerspezifischen Extensions, die es bspw. erlaubte die frei programmierbaren Vertex- und Pixel-Shader diverser Grafikchips wie bspw. die Geforce 256 zu nutzen.[12][13][14] Aufgrund eines Bugs in DirectX 7.0 konnte die T&L Einheit der Geforce Karten in Windows 2000 nicht verwendet werden, so dass diese die Spiele, wie andere Karten, ohne T&L Support rendern mussten. Dieser Bug wurde erst mit Erscheinen von DirectX 8.0 in Windows 2000 behoben.[15]

DirectX 8.0

Bearbeiten

Die Anzahl an mitgelieferten APIs wurden auf fünf reduziert und Funktionalität in diesen vereint. Dies sind:

und

Direct Draw und Direct3d wurden in Direct Graphics zusammengefasst und somit eine gemeinsame Speicherverwaltung ermöglicht, die Leistungsvorteile versprachen.[16] Die Fähigkeiten von Direct3D wurden in DirectX 8.0 auf die neuen Fähigkeiten der damals neuen Grafikchips von 3DFX, ATI und Nvidia erweitert. Dazu gehört bspw. die Unterstützung von Pixel- und Vertexshader Version 1.1[17] und 3D-Texturen.[18] Außerdem wurde ein Großteil der 3d Funktionen von DirectX 8.0 auf den angekündigten NV20 von Nvidia optimiert, da die kommende XBOX von Microsoft als Grafikchip den NV2A von Nvidia bekam. Die Programmiersprache der Shader von DirectX 8.0 besteht aus 17 Basisbefehlen und ein Shader Programm kann bis zu 128 Befehle enthalten, das linear abgearbeitet werden muss, Kontrollstrukturen gibt es in DirectX 8.x nicht. Durch die Verwendung von Shadern anstatt der x87 FPU ergaben sich dadurch auf damaligen Karten Leistungssteigerungen um den Faktor größer als 100 gegenüber der x87 FPU. Die Einführung der Shader erlaubten neue Effekte wie bspw. Per-Pixel-Lightning, besseres Per-Pixel-Bump-Mapping, Spline Surfaces und volumetrische Nebel mit Hardwarebeschleunigung. Neben den Shadern wurde DirectX 8.0 auf die Unterstützung der Fähigkeiten von Full Scene Anti-Aliasing, Motion Blur, Depth of Field, Point Sprites und 3D-Texturen erweitert.

Bezüglich DirectX Audio wurden Direct Sound und Direct Music zusammengefasst, was die Synchronisation von WAVE-Dateien und MIDI-Dateien vereinfachte. DirectX Audio unterstützt im Zusammenspiel mit DirectX Play Sprachkommunikation. Der DirectX Music Synthesizer unterstützt nun den DLS2 Standard. Außerdem wurde mit DirectX Audio Skripting ermöglicht, das ein situationsbedingtes Abspielen von Musikstücken erlaubt.

Die Direct Play API wurde neu geschrieben und erlaubt eine einfachere Handhabung, dadurch wurde die Stabilität und Performance erhöht und eine höhere Flexibilität ermöglicht.

In DirectX Input wurde durch die Einführung von Action Mapping die Ansteuerung neuer Eingabegeräte verbessert.

In Direct Show wurden die Codecs erweitert. Hinzu kamen neue Formate, wie bspw. das Microsoft Windows Media Format.

DirectX 8.1

Bearbeiten

Mit DirectX 8.1 wurden die Pixel Shader Versionen 1.3 und 1.4 eingeführt und Soft edge dynamic shadows ermöglicht.[19]

DirectX 9.0

Bearbeiten

DirectX 9.0 erschien im Dezember 2002. Es bot als große Neuerung die „High Level Shading Language“ (HLSL), womit Entwickler leichter 3D-Grafiken und Effekte erstellen konnten. HLSL bot für Entwickler eine flexible und leicht zu bedienende Entwicklungsumgebung und war dabei zu allen DirectX-fähigen Grafikkarten kompatibel, um die Anpassung auf die Hardware-Eigenheiten zu vereinfachen. Eine weitere Neuerung war eine Bibliothek, die Patch-Meshes und herkömmliche Polygon-Meshes sowie verbesserte Echtzeit-Animationen bot. Alle Direct3D-APIs enthielten erweiterte Programmfähigkeiten bei Low-Level-Grafiken mit programmierbaren Vertex- und Pixel-Shader-2.0-Modellen. Dazu kam die Unterstützung von Displacement Mapping und das Rendering in 64 und 128 Bit Floating Point Genauigkeit.[20]

Vertex Shader Programme konnten nun 1024 Befehle lang sein, anstatt wie in DirectX 8.0 nur 128 Befehle lang. Dazu lassen sich nun 256 Konstanten speichern, anstatt nur 96 und der Befehlssatz wurde um weitere Befehle wie bspw. trigonometrische Funktionen wie Sinus- und Cosinus, sowie Logarithmus und Exponentialfunktionen erweitert.[21] Des Weiteren kamen Kontrollstrukturen wie Verzweigungen, Schleifen, Sprünge und Prozeduren dazu, was die Programmierung vereinfachte und die Abarbeitung schneller machte, da unnötige Programmschritte übersprungen werden konnten.

Bei den Pixel Shader sind nun Programmlängen bis zu 160 Befehle möglich. Das gleichzeitige einlesen von Texturen erhöhte sich von 6 auf 12 Texturen. Die Pixelshader bekamen keine Kontrollstrukturen.

Microsoft implementierte in DirectX 9.0 neue Assistenten zur Erzeugung von DirectX Media Objects (DMOs), für Audio-Effekte und für DirectMusic-Werkzeuge beim MIDI-Processing.

DirectX 9.0c

Bearbeiten

Die Version DirectX 9.0c wurde im August 2004 als aktualisierte Version veröffentlicht. Diese unterstützt die PixelShader Version 3.0.[22] Nach Aussage von Microsoft ist die Unterstützung für DirectX 9 für die nächsten Jahre in jedem Falle gesichert, auch wenn Windows Vista und DirectX 10/10.1 in der Praxis zum Einsatz kommen. Im Juni 2010 veröffentlichte Microsoft die aktualisierte Version 9.29, welche laut dxdiag aber weiterhin DirectX 9.0c entspricht.

DirectX 10

Bearbeiten

Die Version DirectX 10.0 erschien Anfang 2007. Anders als die Vorgänger läuft diese nur unter den Betriebssystemen Windows Vista und Windows 7. Zusätzlich muss im Computer eine für DirectX 10.0 taugliche Grafikkarte eingebaut sein.

Unter den Systemen Windows 98, Me, 2000, XP oder Server 2003 steht weiterhin nur DirectX 9.0c zur Verfügung.

Im April 2007 erschienen Meldungen, wonach die neuen Direct3D-10-Funktionen über eigene Bibliotheken auch auf anderen Windows-Versionen nutzbar seien.[23] Das Unternehmen hinter diesem Projekt hat das Vorhaben inzwischen aber eingestellt und den Quelltext veröffentlicht.[24]

Neu an Version 10 ist nur Direct3D 10, das das neue Windows Display Driver Model und Shader Model 4 benutzt, kombiniert mit strengeren Regeln für die Hersteller von Grafikkarten, die die Direct3D-10-Kompatibilität für sich in Anspruch nehmen möchten.

Ab Direct3D 10 werden bis auf wenige Ausnahmen keine cap-bits mehr verwendet, anhand derer Programme feststellen können, welche Funktionen die Hardware zur Verfügung stellt. Daher muss Direct3D 10 und jede folgende Version neue Funktionen immer in Form von Mindestanforderungen einführen. Damit kommt Microsoft den Spieleentwicklern entgegen, da diese die Hardware bisher auf eine Vielzahl an möglichen Funktionskombinationen abfragen mussten. Dagegen werden Hardwarehersteller nun dazu gezwungen, bestimmte Funktionen zu implementieren, um kompatibel mit der jeweiligen Direct3D-Version zu sein. Dadurch wird die Fähigkeit der Hardwareproduzenten eingeschränkt, sich durch optionale Komponenten von Wettbewerbern abzuheben.

Direct3D 10 unterscheidet sich von seinen Vorgängern weniger durch direkt sichtbare Eigenschaften als vielmehr durch Erweiterung, Modularisierung und Flexibilisierung der 3D-Funktionen.

DirectX 10.1

Bearbeiten

DirectX 10.1 wurde zusammen mit Windows Vista SP1 ausgeliefert und enthält gegenüber DirectX 10 folgende Änderungen, die die Direct3D-API betreffen:

  • Shader Model 4.1
  • vierfaches Antialiasing mit veränderbaren Subpixel-Mustern
  • Unterstützung für durchgängiges Rechnen mit 32-Bit-Gleitkommazahlen
  • dynamisch adressierbare Cubemap-Arrays
  • Rendern in blockkomprimierte Framebuffer

Falls eine Grafikkarte eine dieser Funktionen nicht beherrscht, kann sie keine Direct3D-10.1-Schnittstelle anbieten, und die Applikation muss auf Direct3D 10 zurückfallen.

Zusätzlich wird XAudio2 als Ersatz für DirectSound eingeführt.

DirectX 11

Bearbeiten

Microsoft hatte bereits auf der Messe Gamefest (22. bis 23. Juli 2008) in Seattle neue Details zu DirectX 11 offiziell enthüllt.[25]

Grundsätzlich sollen alle Grafikkarten, die mit DirectX 10.x kompatibel sind, auch unter DirectX 11 eine vollständige Kompatibilität erreichen (was neue Funktionen von DirectX 11 auf älterer Hardware ausschließt).

Wesentliche Neuerungen sind:

  • Shader Model 5, mit dem die sogenannten „Compute Shaders“ eingeführt werden, womit Microsoft die GPGPU-Programmierung vereinheitlichen möchte.
  • Grafikkartenseitige Unterteilung der von der CPU gelieferten Dreiecke in weitere Dreiecke (Tessellation), durch die der Detailgrad von 3D-Szenen ohne Belastung des restlichen Systems erhöht werden kann. Diese Technik wird von allen AMD-Grafikkarten ab der HD-5XXX Serie sowie von allen Nvidia-Grafikkarten ab der GeForce-GTX-4XX-Serie unterstützt.[26]
  • Thread-Unterstützung der Rendering-Pipeline verbessert, insbesondere in Hinblick auf effizientere GPGPU-Programmierung.

DirectX 11 ist als Teil von Windows 7 im vierten Quartal 2009 erschienen. Für Windows Vista startete Microsoft die Auslieferung von DirectX 11 am 28. Oktober 2009 zunächst per Windows Update.[27]

Der technische Entwicklungsleiter für den Grafikbereich bei AMD teilte in einer Rede in Reykjavík mit, dass schon im ersten Quartal 2009 die voraussichtlich erste DirectX-11-Grafikkarte auf den Markt kommen sollte.[28] Dies war allerdings erst mit dem Erscheinen der ATI-Radeon-HD-5000-Serie der Fall, die zu Anfang des vierten Quartals 2009 auf den Markt kam. Zudem wurden im DirectX SDK von November 2008 die ersten DirectX-11-Beispiele gezeigt.

Am 31. Januar 2013 erklärte Microsoft, dass DirectX (11) nicht weiterentwickelt wird.[29]

DirectX 12

Bearbeiten

Microsoft hat DirectX 12 auf der Game Developers Conference in San Francisco am 20. März 2014 vorgestellt. Ähnlich wie AMD Mantle bietet DirectX 12 über eine Low-Level-API die Möglichkeit zur hardwarenahen Programmierung.[30] Dadurch kann u. a. die CPU-Last („Overhead“) verringert werden. Eine Anforderung an DirectX 12 war die Kompatibilität mit DirectX-11-fähigen Grafikkarten sowie Mobilgeräten und der Xbox One. Die ersten Spiele mit DirectX-12-Unterstützung erschienen Ende 2015. DirectX 12 wird für Raytracing auf kompatiblen Nvidia-RTX-Grafikkarten benötigt.[31][32] Außerdem unterstützt DirectX die Pixel Shader Version 5.1.[33]

DirectX 12 Ultimate

Bearbeiten

Am 19. März 2020 wurde von Microsoft im DirectX Developer Blog mit DirectX 12 Ultimate eine neue DirectX-Entwicklungsstufe angekündigt. Unter DirectX 12 Ultimate fasst Microsoft im Grunde mehrere, teilweise bereits existierende, Techniken zusammen und macht die Unterstützung verpflichtend für Hersteller, die ihre Produkte mit dem neuen Standard bewerben möchten. Im Einzelnen sind dies DirectX Raytracing 1.1, Variable Rate Shading, Mesh Shaders und Sampler Feedback. Um alle neuen Features nutzen zu können, ist eine NVIDIA-Grafikkarte ab GeForce-20-Serie oder eine AMD-Grafikkarte basierend auf der RDNA-2-Architektur nötig. Die Xbox Series X ist die einzige Videospielkonsole, die DirectX 12 Ultimate unterstützt, Sonys PlayStation 5, die zwar auch auf AMD-Hardware, basierend auf RDNA-2-Architektur, setzt, fehlt es an softwareseitiger Unterstützung, da der japanische Hersteller andere Grafik-APIs einsetzen wird.[34][35]

Versionshistorie

Bearbeiten
DirectX-Version Versionsnummer Betriebssystem Veröffentlichung
Ältere Version; nicht mehr unterstützt: DirectX 1.0 4.02.0095 30. September 1995
Ältere Version; nicht mehr unterstützt: DirectX 2.0 wurde nur mit wenigen Drittanbieterprogrammen zusammen veröffentlicht 1996
Ältere Version; nicht mehr unterstützt: DirectX 2.0a 4.03.00.1096 Windows 95 OSR2 und NT 4.0 5. Juni 1996
Ältere Version; nicht mehr unterstützt: DirectX 3.0 4.04.00.0068 15. September 1996
4.04.00.0069 spätere Pakete von DirectX 3.0 enthielten Direct3D 4.04.00.0069 1996
Ältere Version; nicht mehr unterstützt: DirectX 3.0a 4.04.00.0070 Windows NT 4.0 SP3 (und darüber)
letzte unterstützte Version von DirectX für Windows NT 4.0 SP0
Dezember 1996
Ältere Version; nicht mehr unterstützt: DirectX 3.0b 4.04.00.0070 geringfügige Verbesserung gegenüber 3.0a, da nur ein kosmetisches Problem
in der japanischen Version korrigiert wurde
Dezember 1996
Ältere Version; nicht mehr unterstützt: DirectX 5.0 4.05.00.0155 (RC55) verfügbar als Beta für Windows NT 4.0 16. Juli 1997
Ältere Version; nicht mehr unterstützt: DirectX 5.2 4.05.01.1600 (RC00) DirectX 5.2 Veröffentlichung für Windows 95 5. Mai 1998
4.05.01.1998 (RC0) Windows 98 exklusiv 25. Juni 1998
Ältere Version; nicht mehr unterstützt: DirectX 6.0 4.06.00.0318 (RC3) Windows CE als Dreamcast-Implementierung 7. August 1998
Ältere Version; nicht mehr unterstützt: DirectX 6.1 4.06.02.0436 (RC0) 3. Februar 1999
Ältere Version; nicht mehr unterstützt: DirectX 6.1a 4.06.03.0518 (RC0) exklusiv für Windows 98 SE 5. Mai 1999
Ältere Version; nicht mehr unterstützt: DirectX 7.0 4.07.00.0700 (RC1) 22. September 1999
4.07.00.0700 Windows 2000 17. Februar 2000
Ältere Version; nicht mehr unterstützt: DirectX 7.0a 4.07.00.0716 (RC0) 8. März 2000
4.07.00.0716 (RC1) 2000
Ältere Version; nicht mehr unterstützt: DirectX 7.1 4.07.01.3000 (RC1) exklusiv für Windows Me 14. September 2000
Ältere Version; nicht mehr unterstützt: DirectX 8.0 4.08.00.0400 (RC10) 12. November 2000
Ältere Version; nicht mehr unterstützt: DirectX 8.0a 4.08.00.0400 (RC14) letzte Version für Windows 95 5. Februar 2001
Ältere Version; nicht mehr unterstützt: DirectX 8.1 4.08.01.0810 exklusiv für Windows XP, Windows Server 2003 und Xbox 25. Oktober 2001
4.08.01.0881 (RC7) Version für die älteren Betriebssysteme (Windows 98, Windows Me und Windows 2000) 8. November 2001
Ältere Version; nicht mehr unterstützt: DirectX 8.1a 4.08.01.0901 (RC?) Direct3D-Update (D3d8.dll) 2002
Ältere Version; nicht mehr unterstützt: DirectX 8.1b 4.08.01.0901 (RC7) DirectShow-Korrektur für Windows 2000 (Quartz.dll) 25. Juni 2002
Ältere Version; nicht mehr unterstützt: DirectX 8.2 4.08.02.0134 (RC0) identisch zu DirectX 8.1b, aber mit DirectPlay 8.2 2002
Ältere Version; nicht mehr unterstützt: DirectX 9.0 4.09.00.0900 (RC4) 19. Dezember 2002
Ältere Version; nicht mehr unterstützt: DirectX 9.0a 4.09.00.0901 (RC6) 26. März 2003
Ältere Version; nicht mehr unterstützt: DirectX 9.0b 4.09.00.0902 (RC2) 13. August 2003
Ältere Version; nicht mehr unterstützt: DirectX 9.0c 4.09.00.0903 ausschließlich für Service Pack 2 für Windows XP
4.09.00.0904 (RC0) 4. August 2004
4.09.00.0904 Windows XP SP2, Windows Server 2003 SP1, Windows Server 2003 R2 und Xbox 360 6. August 2004
Ältere Version; nicht mehr unterstützt: DirectX 9.0c
regelmäßige
Veröffentlichungen
4.09.00.0904 (RC0) Die letzte Version für Windows 98 und ME ist vom Dezember 2006.[36]
Die letzte Version für Windows 2000 ist vom Februar 2010.[37]
Die erste 64-Bit-fähige Version ist vom Februar 2005.[38]
von Oktober 2004 bis August 2007
zweimonatlich; anschließend
vierteljährlich; aktuelle Version: Juni 2010
Ältere Version; nicht mehr unterstützt: DirectX 9.29 4.09.0000.0904 ab Windows XP[39] 7. Juni 2010
Ältere Version; nicht mehr unterstützt: DirectX 10 6.00.6000.16386 Windows Vista, Windows 7 20. November 2006
Ältere Version; nicht mehr unterstützt: DirectX 10.1 6.00.6001.18000 Service Pack 1 für Windows Vista, Windows Server 2008
mit Direct3D 10.1
4. Februar 2008
Ältere Version; nicht mehr unterstützt: DirectX 11 6.01.7600.0000 Windows Vista SP2, Windows 7 22. Oktober 2009
Ältere Version; nicht mehr unterstützt: DirectX 11.1 6.02.9200 Windows 8, Windows 7 26. Oktober 2012
Ältere Version; nicht mehr unterstützt: DirectX 11.2 6.03.9600 Windows 8.1, Windows 8, Windows 7 SP1 18. Oktober 2013
Aktuelle Version: DirectX 12 10.00.17134.0001 Windows 7,[40] Windows 10,[41] Windows 11[42] 29. Juli 2015
Legende:
Alte Version
Ältere Version; noch unterstützt
Aktuelle Version
Aktuelle Vorabversion
Zukünftige Version

Anmerkungen:

  1. DirectX 4 wurde nie veröffentlicht. Raymond Chen erklärt in seinem Blog The Old New Thing und seinem gleichnamigen Buch, dass, nachdem DirectX 3 veröffentlicht worden war, Microsoft die Entwicklung von 4 und 5 parallel begann. Version 4 sollte eine kleinere Anpassung sein, 5 mit größeren Änderungen. Mangelndes Interesse von Seiten der Entwickler für die Neuheiten der Version 4 führten dazu, dass direkt Version 5 veröffentlicht wurde.[43][44]
  2. Die Versionsnummer, die von Microsofts DxDiag-Tool (Version 4.09.0000.0900 und höher) gezeigt wird, nutzt das Format „x.xx.xxxx.xxxx“ für Versionsnummern. Jedoch wird in der Registry das Format „x.xx.xx.xxxx“ verwendet. Es kann also sein, dass zu der oben gelisteten Version „4.09.00.0904“ in DxDiag als „4.09.0000.0904“ angezeigt wird.

Aufbau von DirectX

Bearbeiten

DirectX besteht aus folgenden Teilen:

DirectX Graphics

Bearbeiten

DirectX Graphics ist der am meisten genutzte Teil von DirectX. Er ermöglicht einen schnellen und direkten Zugriff auf die Grafikkarte, vorbei am Graphics Device Interface (GDI) und Display Device Interface (DDI), und unterstützt (mit „Direct2D“)[45][46] 2D- und (mit „Direct3D“) 3D-Grafik.

DirectX Graphics stellt sowohl eine Low-Level-API (Direct3D) als auch eine High-Level-API (Direct3DX) bereit. Die Low-Level-API Direct3D eignet sich für Anwendungen mit hoher Interaktionsrate oder Präsentationsfrequenz komplexer grafischer Szenen, wie beispielsweise bei 3D-Spielen. Bis zur Version 7 wurden bei der Low-Level-API zwischen 2D-Grafik (DirectDraw) und 3D-Grafik (Direct3D) unterschieden. Durch eine Überarbeitung des Grafikbereichs (in Version 8) wurden beide Teile unter einer einheitlichen API in Direct3D zusammengefasst. Die explizite, eigenständige Weiterentwicklung von DirectDraw wurde damit eingestellt.

Die High-Level-API Direct3DX ermöglicht es hingegen, mit vertretbarem Aufwand 3D-Anwendungen zu realisieren. Direct3DX setzt auf Direct3D auf, das heißt, es nutzt dessen Basisfunktionalität.

Außerdem emuliert die Funktionsgruppe nicht durch die Hardware unterstützte Funktionen. Dafür nutzt der Hardware Emulation Layer (HEL) die Möglichkeiten von MMX-Prozessoren zur Manipulation von Bildern und greift auf Funktionen des GDI zurück. Unterstützt werden unter anderem Seitenumschaltung (Flipping) (siehe Doppelpufferung), Blitting, Clipping, 3D-Z-Puffer, Overlays und direkte Steuerung des Datenflusses durch die Video-Port Hardware (Video-Port Manager).

DirectSetup

Bearbeiten

DirectSetup ermöglicht Programmierern, ihre Installationsroutine automatisch überprüfen zu lassen, ob die benötigte DirectX-Version bereits installiert ist, und diese andernfalls zu installieren.

XAudio2 basiert auf der Xbox-360-Sound-API und hat DirectSound abgelöst. Die programmierbaren DSP-Programme ermöglichen EAX-ähnliche Effekte auf allen Tonausgabe-Geräten (ugs. mitunter als „Sound-Karte“ bezeichnet, auch wenn es meist nur Bauteile auf der Hauptplatine sind); diese werden allerdings auf dem Hauptprozessor ausgeführt. Dies hat vor allem Kritik seitens des Herstellers Creative hervorgerufen, weil auf dessen Chips bzw. Karten solche DSP-Programme „in Hardware“ ausgeführt werden könnten, um Spielern somit einen Geschwindigkeitsvorteil zu bieten (durch Entlastung der CPU).

XInput ist der neue Standard für Eingabegeräte unter Windows XP und späterer Betriebssysteme sowie für die Xbox 360.[47] XInput ignoriert alle älteren DirectInput-Geräte, wodurch ältere Joysticks und Joypads nur durch Simulation über Wrapper-Programme in den verschiedenen Spielen und Anwendungen funktionieren können. Bislang ist keine Lösung für dieses Problem von Microsoft bekannt, weshalb angenommen werden kann, dass das Unternehmen kein Interesse an einer weiteren Unterstützung solcher Geräte hat. Möchte man mit einem DirectInput-Controller XInput-Spiele betreiben, empfiehlt es sich, einen entsprechenden Emulator zu verwenden. Ob Microsoft in Zukunft reine DirectInput-Geräte mit XInput unterstützen wird, ist fraglich.

Veraltet

Bearbeiten

Die folgenden Komponenten waren in der Vergangenheit Teil von DirectX, werden mittlerweile aber nicht mehr unterstützt.

DirectInput

Bearbeiten

Direct Input unterstützt Eingabegeräte, wie Tastatur, Maus, Joysticks usw. und ermöglicht Force-Feedback-Effekte (zum Beispiel das Vibrieren eines Gamepads oder Widerstand beim Bewegen eines Joysticks) und unterstützt den Zugriff auf analoge und digitale Eingabegeräte, welche ein absolutes Koordinatensystem verwenden. Ein Eingabegerät kann über bis zu sechs Bewegungsachsen und 32 Knöpfe verfügen. Der Zugriff über DirectInput umgeht das Windows Message System (das heißt Ereignis-, Melde- und Warteschlangen) und erfolgt direkt auf die Hardware; ein Geschwindigkeitsvorteil gegenüber der Win32-API. DirectInput erlaubt Anwendungen die Nutzung von möglichen Force-Feedback-Fähigkeiten der Eingabegeräte, um so Kraftrückkopplungseffekte zu erzeugen.

DirectMusic

Bearbeiten

Für die Wiedergabe von Musik (MIDI-Musik, allerdings keine komprimierte Musik wie MP3). DirectMusic liefert dazu einen Software-Synthesizer-Service. Verwendet wird ein DLS2-Synthesizer. Siehe DirectShow für die Wiedergabe von komprimierter Musik wie MP3 und Video (AVI, MPEG).

DirectPlay

Bearbeiten

DirectPlay dient zur Kommunikation von Multiplayerspielen untereinander, die auf mehreren Computern laufen (bei Netzwerkspielen oder Onlinespielen). Im Wesentlichen handelt es sich um ein Protokoll auf Anwendungsebene, und es ist somit unabhängig von konkret genutzten Protokollen der Transport- und Übertragungsebene (siehe dazu auch OSI-Modell). DirectPlay realisiert keine Mechanismen für das Zusammentreffen der Spieler (Matchmaking) oder das Abrechnen von Spielteilnahmen.

Den Kern bildet die Spielesitzung (DirectPlay Session), welche von einem „Host“ genannten Rechner erzeugt und moderiert wird. Spieler sind logische Objekte, von denen es pro Rechner mehrere geben kann, daher wird zwischen lokalen und entfernten Spielern unterschieden. Das Konzept von Spielergruppen wird unterstützt, jeder Spieler kann dabei gleichzeitig mehreren Gruppen angehören. Die Spieler können an andere Spieler Nachrichten versenden (Chat).

Hinweis: Für viele Spieleentwickler war die sehr hohe CPU-Last („Overhead“) von DirectPlay dafür entscheidend, es nicht zu verwenden und lieber einen eigenen effektiveren Netzwerk-Zugriff auf Basis von Winsock zu realisieren. Andere haben sich wegen der festen Bindung an Windows dagegen ausgesprochen, da zum Beispiel für speziell auf Windows-Systemen lauffähige First-Person-Shooter gerne auch eigene Linux-Server entwickelt werden.

DirectShow (ehemals „Direct Media“)

Bearbeiten

DirectShow oder ehemals ActiveMovie bzw. DirectX Media dient der Verarbeitung von Video- und Audio-Dateien, womit sich verschiedenste Arten von Video-Dateien (AVI, MPEG) und Ton-Dateien (z. B. MP3) wiedergeben oder erstellen lassen. Es wird auch Streaming unterstützt und ist durch DirectShow-Filter beliebig erweiterbar.

DirectShow wurde inzwischen aus dem DirectX SDK entfernt und ist in das Windows Plattform-SDK aufgenommen worden. Somit gehört DirectShow streng genommen nicht mehr zu DirectX, sondern ist jetzt ein Bestandteil der Windows-Plattform.

DirectSound

Bearbeiten

DirectSound wird zur Wiedergabe und Aufnahme von Toneffekten, z. B. Raumklangunterstützung (das heißt Positionierung der Klänge im 3D-Raum), verwendet. Die Daten aus mehreren Eingangspuffern (Secondary Sound Buffers) werden mit Effekten belegt und zusammen auf einen Ausgangpuffer (Primary Sound Buffer) gemischt. Eingangspuffer können in Software oder Hardware realisiert sein, statisch (zum Beispiel aus einer Datei) oder dynamisch (zum Beispiel Streaming von einem Mikrofoneingang) Daten liefern. Die Anzahl der Eingangspuffer, die gemischt werden können, ist ausschließlich durch die verfügbare Rechenleistung begrenzt. Es passt sich automatisch dem Leistungsspektrum der installierten Soundkarte an. Basiseffekte, wie Volume, Frequency Control, Panning bzw. Balance, zusätzliche Effekte, wie Reverb (Halleffekt), Chorus, Distortion, Equalization und 3D-Effekte, wie Rolloff, Amplitude Panning, Muffling, Arrival Offset und Doppler Shift Effekt stehen zur Verfügung. Da DirectSound durch XAudio2 abgelöst wurde, sind keine Samples mehr für DirectSound in den DirectX-SDK-Releases nach November 2007 enthalten.

DirectX Media Objects

Bearbeiten

DirectX Media Objects bietet Möglichkeiten, Audio- und Video-Ströme zu verändern, und kann auch zusammen mit DirectSound und DirectShow verwendet werden.

DirectX Video Acceleration

Bearbeiten

DirectX Video Acceleration ist eine von Microsoft entwickelte Programmierschnittstelle (API) für Windows und Xbox 360, mit der es ermöglicht wird, die Videodekodierung per Hardware zu beschleunigen, indem unter anderem der Zugriff auf die GPU ermöglicht wird. Die Version DXVA 1.0 wurde mit Windows 2000 eingeführt und ist auch für Windows 98 und spätere Plattformen verfügbar, die Version DXVA 2.0 wurde mit Microsoft Windows Vista eingeführt und in die Media Foundation integriert.

Funktionsweise

Bearbeiten

DirectX ermöglicht direkte Zugriffe auf die Hardware des Systems, ohne die Programme von der Hardware abhängig zu machen. So wird Spieleentwicklern eine Hardwareabstraktionsschicht (HAL von engl. hardware abstraction layer) für die Spieleprogrammierung zur Verfügung gestellt, mit der langsame Schnittstellen (zum Beispiel Win GDI) umgangen werden. Funktionen, die nicht von der Hardware und damit nicht von der HAL bereitgestellt werden können, werden in der Hardware-Emulations-Schicht (HEL von engl. hardware emulation layer) emuliert.

DirectX außerhalb von Windows

Bearbeiten

Neben der in aktuellen Windows-Versionen enthaltene DirectX-API von Microsoft gibt es auch Varianten für andere Betriebssysteme. Diese Nachbildungen dienen dazu, Windows-Anwendungsprogramme ohne Windows-Betriebssystem zu nutzen. Aus rechtlichen Gründen sind meist nicht alle Funktionen der originalen API vorhanden, was die Kompatibilität mit Anwendungsprogrammen einschränken kann. Da die wenigsten Anwendungsprogramme alle Funktionen der DirectX-API benötigen, sind viele aber trotzdem ohne Einschränkungen nutzbar. Grafische Funktionen werden dabei meist mittels OpenGL bereitgestellt. Beispiele von DirectX-Implementierungen:

  • Cedega: Eine kommerzielle Win32- und DirectX-Implementierung mit dem Ziel, Windows-Spiele unter Linux lauffähig zu machen.
  • Wine: Ein Open-Source-Projekt mit dem Ziel, eine vollständige Win32- und Win64-API und damit auch DirectX für Linux- und Unix-artige Betriebssysteme zu erstellen. Bei der DirectX-Implementierung von Wine handelt es sich nur um eine schlanke Abstraktionsschicht zum X-Server und OpenGL.[48]
  • CrossOver: Eine kommerzielle Erweiterung von Wine.
  • Darwine: Eine Wine-Portierung für macOS.
  • ReactOS: Verwendet einen Teil der Wine-Bibliotheken, darunter auch DirectX, um sich doppelte Entwicklungsarbeit zu sparen.[49]
  • Proton – eine von Valve entwickelte freie Software, welche auf Wine aufbaut

Alternativen zu DirectX

Bearbeiten

Neben DirectX sind auch freie APIs verfügbar, die im Gegensatz zu DirectX nicht auf die Windows-Plattform beschränkt sind. Allerdings sind diese APIs nicht so umfassend, können aber große Teile von DirectX ersetzen und ermöglichen die Entwicklung plattformübergreifender Software. Einige dieser Alternativen wie etwa OpenGL und OpenAL bieten ebenso wie DirectX Hardwarebeschleunigung.

Wichtige APIs:

  • OpenAL für (3D-)Sound, ersetzt DirectSound und DirectMusic
  • OpenCL als Ersatz für DirectX 11 Compute Shader
  • OpenGL für (3D-)Grafik, ersetzt Direct3D bzw. DirectX Graphics
  • OpenML für Multimedia-Verarbeitung, d. h. vor allem Video, ersetzt DirectShow bzw. DirectX Media
  • SFML, SDL, ClanLib oder Allegro für Aufgaben wie z. B. die Unterstützung von Eingabegeräten, 2D/3D-Grafik, plattformübergreifende Thread-Verwaltung und Netzwerk. Diese Bibliotheken setzen auf DirectX oder OpenGL auf.
  • Vulkan von der Khronos Group als Nachfolger von OpenGL, abgeleitet aus der eingestellten Schnittstelle AMD Mantle[50]

Weitere Informationen

Bearbeiten

Anwendungen für DirectX werden mit Hilfe des DirectX SDK erstellt.

Ein informatives Testprogramm ist das DirectX-Diagnoseprogramm. Es ist in Windows enthalten und kann über Start → Ausführen → dxdiag gestartet werden oder alternativ ab Windows Vista in das Suche-Fenster in der Startleiste eingegeben werden.

Bearbeiten
  • DirectX Developer Blog. In: devblogs.microsoft.com. (englisch, Neuigkeiten, Ankündigungen und aktuelle Entwicklungen zum Thema DirectX).
  • DirectX graphics and gaming. In: learn.microsoft.com. (englisch, Win32 API Guide).
  • DirectX 11 Tutorials. In: rastertek.com. (englisch).
  • Old Versions of DirectX for Windows. In: oldversion.com. (englisch, Ältere Versionen von DirectX).
  • DirectX World. Archiviert vom Original am 5. Februar 2017; (englisch, C++-Übungen für Spieleentwickler).

Einzelnachweise

Bearbeiten
  1. The History of DirectX. In: DirectX Tutorials. CodingUnit Programming Tutorials, abgerufen am 4. August 2023 (englisch): „DOS was seen as a better platform because DOS allowed direct access to video cards, mouse, keyboards and sound devices (and the rest of the system). Windows 95 restricted the access to all of these components because of its protected memory model. Microsoft needed a way to give the programmers the same access to these devices on the new operating system Windows 95.“
  2. The History of DirectX. In: DirectX Tutorials. CodingUnit Programming Tutorials, abgerufen am 4. August 2023 (englisch): „In September of 1995 the first version of DirectX was released. (They used the name “Windows games SDK” for that version).“
  3. https://devblogs.microsoft.com/oldnewthing/20190930-00/?p=102942 Where did DirectX code names come from? by Raymond Chen
  4. a b c https://web.archive.org/web/20080705082618/http://gadgetblog.theeislers.com/2006/02/directx_then_and_now_part_1.php
  5. Craig's Musings: DirectX Then and Now (Part 1). 20. Februar 2006, abgerufen am 31. März 2024.
  6. https://web.archive.org/web/20080321171619/http://blogs.msdn.com/oldnewthing/archive/2004/01/22/61647.aspx What happened to DirectX 4? by Raymond Chen
  7. "Microsoft Meltdown 97 Weggeschmolzen" PC Professionell 10/1997 S. 22
  8. "Multitalent DirectX 6.0" PC Professionell 08/1998 S. 18
  9. "3D-Funktionen aufgebohrt" PC Professionell 06/1999 S. 148
  10. "DirectX wird erwachsen" Abschnitt "DirectX 7 offen für Entwickler" PC Professionell 10/99 S. 254
  11. "David gegen Goliath" PC Professionell 03/1999 S. 126
  12. "3D-Funktionen aufgebohrt" PC Professionell 06/1999 S. 148
  13. "DirectX wird erwachsen" PC Professionell 10/99 S. 252
  14. "Trickstudio mit DirectX 8.0" Box DirectX oder OpenGL in der PC Professionell 03/2001 S.182
  15. "DirectX 8.0" PC Professionell 3/2001 S. 212
  16. "Trickstudio mit DirectX 8.0" PC Professionell 03/2001 S.180
  17. https://help.steampowered.com/de/faqs/view/5410-CA3F-662F-8750
  18. "DirectX 8.0" PC Professionell 01/2001 S.31
  19. https://help.steampowered.com/de/faqs/view/5410-CA3F-662F-8750
  20. "Neue Freiheiten in 3D" PC Professionell 11/2002 S.190
  21. "Technik Nvidia GeforceFX" ab Abschnitt DirectX 9.0 PC Professionell 02/2003 S.82
  22. https://help.steampowered.com/de/faqs/view/5410-CA3F-662F-8750
  23. Cody Brocious: Alky Project Blog. In: alkyproject.blogspot.com. 18. April 2007, archiviert vom Original am 20. April 2007; abgerufen am 2. Juni 2007 (englisch).
  24. Julius Stiebert: Entwicklung an DirectX-10-Wrapper für Windows XP eingestellt. In: golem.de. 8. Januar 2008, abgerufen am 7. Februar 2008.
  25. Peter Steinlechner: Microsoft bringt DirectX 11 und renoviert Spieledienste. In: golem.de. 23. Juli 2008, abgerufen am 23. Juli 2008.
  26. Nico Ernst: Tesselierte Froblins - Videos der AMD-Tech-Demos zur 4850. In: golem.de. 27. Juni 2008, abgerufen am 23. Juli 2008.
  27. Peter Steinlechner: DirectX-11 für Windows Vista verfügbar. In: golem.de. 28. Oktober 2009, abgerufen am 28. Oktober 2009.
  28. Theo Valich: AMD ditches Close-To-Metal, focuses on DX11 and OpenCL. In: tgdaily.com. TG Daily, 6. August 2008, archiviert vom Original am 9. August 2008; abgerufen am 8. August 2008 (englisch).
  29. Microsoft announces the end of XNA. 1. Februar 2013, abgerufen am 29. Mai 2024 (britisches Englisch).
  30. Christoph Liedtke: Alle Spiele mit DirectX 12 und Vulkan im Überblick. In: gamestar.de. 12. August 2019, abgerufen am 16. Januar 2024.
  31. Martin Fischer: Microsoft nimmt mit DirectX 12 Mobilgeräte ins Visier. In: Heise online. 6. März 2014. Abgerufen am 6. März 2014.
  32. Peter Steinlechner: Microsoft: DirectX-12 mit Unterstützung von AMD bis Qualcomm. In: golem.de. 6. März 2014, abgerufen am 6. März 2014.
  33. https://help.steampowered.com/de/faqs/view/5410-CA3F-662F-8750
  34. Shawn Hargreaves: Announcing DirectX 12 Ultimate. In: DirectX Developer Blog. 19. März 2020, abgerufen am 20. August 2021 (englisch).
  35. Microsoft stellt "DirectX 12 Ultimate" mit vier verpflichtenden "neuen" Grafik-Features vor. In: 3dcenter.org. 20. März 2020, abgerufen am 20. August 2021.
  36. DirectX 9.0c vom Dezember 2006
  37. DirectX 9.0c vom Februar 2010
  38. DirectX 9.0c Redistributable for Software Developers - Multilingual. In: microsoft.com. Microsoft, 9. Februar 2005, archiviert vom Original am 9. Mai 2006; abgerufen am 12. Juli 2008 (englisch).
  39. Offizielle DirectX 9.29-Referenz auf www.microsoft.com
  40. Panagiotis Kolokythas: Windows 7 erhält DirectX-12-Unterstützung, PC-WELT, 27. August 2019
  41. Frederik Niemeyer: DirectX 12: Microsoft zwingt Spieler zu Windows-Upgrade, CHIP, 14. November 2014
  42. Installieren der neuesten Version von DirectX - Microsoft-Support. Abgerufen am 7. April 2024.
  43. Raymond Chen: What happened to DirectX 4? 22. Januar 2004, abgerufen am 26. Januar 2011 (englisch).
  44. Raymond Chen: The Old New Thing. 1. Auflage. Pearson Education, 2006, ISBN 0-321-44030-7, S. 330.
  45. Windows 7 - Direct2D für 2D-Darstellung – Artikel bei der GameStar, vom 30. Oktober 2008
  46. https://learn.microsoft.com/en-us/archive/msdn-magazine/2009/june/introducing-direct2d Windows With C++ - Introducing Direct2D, Kenny Kerr, MSDN-Magazine, Ausgabe June 2009 (englisch)
  47. Microsoft: XInput and DirectInput Abgerufen am 11. August 2014
  48. Dmitry Timoshkov: DirectX. In: wiki.winehq.org. 10. November 2011, archiviert vom Original am 15. Februar 2012; abgerufen am 16. Februar 2012 (englisch).
  49. DirectX (englisch), ReactOS-Projekt, zugegriffen: 16. Februar 2012
  50. Martin Fischer: Neue 3D-Schnittstelle: AMD Mantle als DirectX-Konkurrenz. In: Heise online. 26. September 2013. Abgerufen am 24. Oktober 2023.