DirectX besteht aus folgenden Teilen:
DirectX Graphics - Unterstützung von 2D- und 3D-Grafik
Dies ist der am meisten genutzte Teil von DirectX. Er ermöglicht einen schnellen Direktzugriff auf die Grafikkarte.
DirectX Graphics stellt eine low-level-API (Direct3D) und eine high-level API (Direct3DX) bereit.
Die low-level-API Direct3D eignet sich für Anwendungen mit hoher Interaktionsrate und/oder Präsentationsfrequenz komplexer grafischer Szenen (wie z. B. 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, mit vertretbarem Aufwand 3D-Anwendungen zu realisieren. Direct3DX setzt auf Direct3D auf, d. h. es nutzt dessen Basisfunktionalität.
DirectX Graphics bietet direkten Zugriff auf die Grafikhardware, vorbei am Graphics Device Interface (GDI) und Display Device Interface (DDI). Nicht durch die Hardware unterstützte Funktionen werden durch DirectX emuliert. 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 Backbuffer), Blitting, Clipping, 3D Z-Puffer, Overlays und direkte Steuerung des Datenflusses durch die Video-Port Hardware (Video-Port Manager).
DirectSound - Zur Wiedergabe und Aufnahme von Soundeffekten, unterstützt Raumklang (d. h. Positionierung der Klänge im 3D-Raum)
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 (z. B. aus einer Datei) oder dynamisch (z. B. Streaming von einem Mikrofoneingang) Daten liefern. Die Anzahl der Eingangspuffer, die gemischt werden können, ist ausschließlich durch die verfügbare Rechenleistung limitiert.
DirectSound passt sich automatisch dem Leistungsspektrum der installierten Soundkarte an.
Es stehen 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, Doppler Shift Effekt zur Verfügung.
DirectMusic - 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).
XAudio 2 - Basierend auf der Xbox-360-Sound-API
Soll DirectSound ablösen
Programmierbare DSP-Programme ermöglichen EAX-ähnliche Effekte auf allen Soundkarten; diese werden allerdings auf dem Hauptprozessor ausgeführt. Dies hat vor allem Kritik seitens des Herstellers von Soundkarten Creative hervorgerufen, weil auf dessen Karten solche DSP-Programme „in Hardware“ ausgeführt werden könnten, um Spielern somit einen Geschwindigkeitsvorteil zu bieten (durch Entlastung der Haupt-CPU).
DirectInput - Unterstützung von Eingabegeräten, wie Tastatur, Maus, Joysticks usw.
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 (d. h. Ereignis-, Melde- und Warteschlangen) und erfolgt direkt auf die Hardware; ein Geschwindigkeitsvorteil gegenüber der Win-32 API. DirectInput erlaubt Anwendungen die Nutzung von möglichen Force-Feedback-Fähigkeiten der Eingabegeräte, um so Kraftrückkopplungseffekte zu erzeugen.
XInput - Ausschließlich für die Verwendung von Xbox-360-Controllern unter Windows vorgesehen.
DirectPlay - Für die 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.
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 Spiele-Entwickler war der gewaltige 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 z. B. für speziell auf Windows-Systemen lauffähige First-Person-Shooter gerne auch eigene Linux-Server entwickelt werden.
DirectShow (ehemals „Direct Media“) - Für die Verarbeitung von Video- und Audio-Dateien.
Damit lassen sich verschiedenste Arten von Video-Dateien (AVI, MPEG) und Ton-Dateien (zum Beispiel MP3) wiedergeben oder erstellen. Unterstützt auch Internetstreaming und ist durch sog. DirectShow-Filter beliebig erweiterbar.
DirectShow ist inzwischen aus dem DirectX SDK entfernt und 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.
DirectSetup - 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.
DirectX Media Objects - Bietet Möglichkeiten, Audio- und Video-Ströme zu verändern, und kann auch zusammen mit DirectSound und DirectShow verwendet werden.
Funktionsweise - DirectX ermöglicht direkte Zugriffe auf die Hardware des Systems, ohne die Programme von der Hardware abhängig zu machen. So wird Spiele-Entwicklern eine Hardware-Abstraktions-Schicht (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 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.