Microsoft DirectX は、 Microsoftプラットフォーム上でマルチメディア、特にゲーム プログラミングやビデオに関連するタスクを処理するためのアプリケーション プログラミング インターフェイス(API)のコレクションです。当初、これらの API の名前はすべてDirect3D、DirectDraw、DirectMusic、DirectPlay、DirectSoundなど「Direct」で始まっていました。DirectXという名前は、これらの API すべてを略称として考案され ( X は特定の API 名を表しています)、すぐにコレクションの名前になりました。Microsoft が後にゲーム コンソールの開発に着手したとき、コンソールが DirectX テクノロジーに基づいていることを示すために、Xboxという名前の基本としてXが使用されました。 [ 3 ] Xの頭文字は、 XInputやCross-platform Audio Creation Tool (XACT)など Xbox 用に設計された API の命名に引き継がれ、 Direct2DやDirectWriteなどの Windows API では DirectX パターンが継続されています。
Direct3D(DirectXに含まれる3DグラフィックスAPI)は、Microsoft WindowsおよびXboxシリーズのゲーム機向けビデオゲームの開発で広く使用されています。また、Direct3Dは、CAD/CAMエンジニアリングなどの視覚化およびグラフィックス関連のタスクを行う他のソフトウェアアプリケーションでも使用されています。Direct3DはDirectXの中で最も広く知られているコンポーネントであるため、「DirectX」と「Direct3D」という名称が interchangeably(互換的に)使用されることもよくあります。
DirectXソフトウェア開発キット(SDK) は、再頒布可能なバイナリ形式のランタイム ライブラリと、コーディングで使用するための付属のドキュメントおよびヘッダーで構成されています。当初、ランタイムはゲームによって、またはユーザーによって明示的にインストールされるだけでした。Windows 95 はDirectX を同梱して発売されませんでしたが、Windows 95 OEM Service Release 2 には DirectX が同梱されました。 [ 4 ] Windows 98とWindows NT 4.0はどちらも DirectX を同梱して出荷され、それ以降にリリースされたすべてのバージョンの Windows も同様です。SDK は無料でダウンロードできます。ランタイムは独自のクローズド ソース ソフトウェアですが、SDK サンプルのほとんどにはソース コードが提供されています。Windows 8 Developer Preview のリリース以降、DirectX SDK は Windows SDK に統合されました。[ 5 ]
1994 年後半、マイクロソフトは次期オペレーティングシステムであるWindows 95をリリースする準備を整えていました。消費者にとってその価値を左右する重要な要素の一つは、Windows 95 上で動作するプログラムでした。マイクロソフト社員のAlex St. John は、さまざまなゲーム開発者と、 MS-DOSゲームを Windows 95 に移植する可能性について話し合い、プログラマーがWindows 環境ではBIOSルーチンやハードウェアへの直接アクセスによって MS-DOS で利用できる必要な機能が提供されていないことを発見したため、ほとんどが否定的な回答でした。 [ 6 ]また、互換性に対する強い懸念もありました。その顕著な例が、WinGプログラミング インターフェースをベースにしたDisney's Animated Storybook: The Lion Kingです。[ 7 ]ゲームにバンドルされていた WinG インターフェースでテストされていない新しいCompaqコンピュータの互換性のないグラフィック ドライバが多数あったため、多くのデスクトップ システムで頻繁にクラッシュし、保護者からDisneyの電話相談窓口に問い合わせが殺到しました。[ 8 ] [ 9 ]
マイクロソフトの別の社員であるクレイグ・アイスラーは、ゲーム技術に取り組むためにWindows 95マルチメディアチームに加わった。[ 10 ]セント・ジョンからマイクロソフトの技術が開発者に受け入れられていないと聞いたアイスラーは、開発者がグラフィックスハードウェアのネイティブ機能にアクセスできるようにする新しいAPIセットとドライバモデルの構築に着手し、グラフィックスハードウェア企業が開発者が利用できる方法で革新できるようにした。[ 11 ]プログラム管理のサポートが必要だったアイスラーはエリック・エングストロムを勧誘し、2人はDirectXの作業で11件の特許を取得した。[ 12 ]このプロジェクトは、第二次世界大戦中の同名のプロジェクトと同様にマンハッタン計画というコードネームが付けられ、そのアイデアは、マイクロソフトのオペレーティングシステムを実行するパーソナルコンピュータで、日本が開発したビデオゲームコンソールを置き換えることだった。[ 8 ]当初は放射能シンボルをロゴとして使用していたが、マイクロソフトはチームにロゴを変更するように求めた。[ 8 ]経営陣は、Windowsをゲームプラットフォームとして見限っていたため、このプロジェクトに同意しなかったが、3人はこのプロジェクトの開発に尽力した。[ 9 ]彼らの反抗的な性格から、マイクロソフトのオフィス製品担当上級副社長であるブラッド・シルバーバーグは、この3人を「ビースティ・ボーイズ」と名付けた。[ 13 ]
3人の作業のほとんどは、1994年末頃から始まった他の割り当てられたプロジェクトと並行して行われました。 [ 9 ] 4か月以内に、複数のハードウェアメーカーからのインプットを得て、チームは最初のアプリケーション プログラミング インターフェイス(API) セットを開発し、1995 年のゲーム開発者会議で発表しました。[ 9 ] SDK には、ビット マップ グラフィックス用の DirectDraw、[ 14 ]オーディオ用の DirectSound、[ 15 ]ネットワークを介したプレイヤー間の通信用の DirectPlay を実装するライブラリが含まれていました。[ 16 ]さらに、Windows 95 に既に存在していた拡張ジョイスティック API が DirectInput として初めて文書化され、[ 17 ]また、ソフトウェア タイトルの CD-ROM を挿入した後にインストール手順をすぐに開始する方法の説明 (AutoPlay と呼ばれる機能) も SDK の一部でした。[ 18 ]ライブラリの「Direct」部分は、これらのルーチンが既存の Windows 95 コア ルーチンをバイパスし、ハードウェア抽象化レイヤー(HAL) を介してのみコンピュータ ハードウェアにアクセスしたため、そのように名付けられました。 [ 19 ]チームは当初「Game SDK」(ソフトウェア開発キット)と名付けていたが、「DirectX」という名前は、さまざまなライブラリの命名規則を揶揄したジャーナリストから付けられた。チームはその命名規則を引き続き使用し、プロジェクトをDirectXと呼ぶことにした。[ 8 ]
DirectX の最初のバージョンは、1995 年 9 月に Windows Game SDK としてリリースされました。その DirectDraw コンポーネントは、Windows 3.1用のDCI [ 20 ]および WinG APIのWin32版でした。[ 21 ] DirectX により、Windows 95 以降のすべてのバージョンの Microsoft Windows で高性能マルチメディアを組み込むことが可能になりました。Eisler は、DirectX 1 から 5 までの開発の熱狂について自身のブログに書いています。[ 22 ]
DirectX に開発者を増やすため、マイクロソフトはid Softwareのジョン・カーマックに接触し、 DoomとDoom 2 をMS-DOS から DirectX に無償で移植することを申し出た。id はゲームのすべての出版権を保持する。カーマックはこれに同意し、マイクロソフトのゲイブ・ニューウェルが移植プロジェクトを率いた。最初のゲームはDoom 95として 1996 年 8 月にリリースされ、DirectX で最初に発売されたゲームとなった。マイクロソフトは、ビル・ゲイツがタイトルの広告に登場して、このゲームを大々的に宣伝した。 [ 8 ]
DirectX 2.0 は、1996 年半ばにWindows 95 OSR2 とWindows NT 4.0がリリースされたことで、Windows の組み込みコンポーネントになりました。Windows 95 自体がまだ新しく、それ向けにリリースされたゲームも少なかったため、Microsoft は、Windows でゲーム プラットフォームを構築する Microsoft の能力を一般的に信用していなかった開発者に対して、DirectX を積極的に宣伝しました。DirectX の伝道師である Alex St. John は、1996 年のコンピュータ ゲーム 開発者会議で凝ったイベントを開催し、ゲーム開発者の Jay Barnson は、本物のライオン、トーガ、屋内カーニバルのようなものを含むローマをテーマにしたイベントだったと述べています。[ 23 ] Microsoft がDirect3D を初めて紹介し、インターネット経由でプレイするマルチプレイヤーMechWarrior 2をデモしました。
DirectXチームは、各DirectXリリースを様々なコンピュータハードウェアとソフトウェアでテストするという困難な課題に直面しました。ベータ版と最終リリース版では、様々なグラフィックカード、オーディオカード、マザーボード、CPU、入力デバイス、ゲーム、その他のマルチメディアアプリケーションがテストされました。DirectXチームはまた、ハードウェア業界が新しいハードウェア設計やドライバリリースがDirectXと互換性があることを確認できるテストを作成し、配布しました。
Direct3D が DirectX に追加される前に、Microsoft はWindows NTプラットフォームにOpenGL を追加していました。[ 24 ] OpenGL は、3D グラフィックス プログラミングをアプリケーション プログラミングの主流にするためにSilicon Graphics, Inc.によって、クロス プラットフォームでウィンドウ システムに依存しないグラフィックス ハードウェアへのソフトウェア インターフェイスとして設計されました。2Dグラフィックスやイメージングにも使用でき、Microsoft を含む Architectural Review Board (ARB) によって管理されていました。[ 25 ] [ 26 ] Direct3D は、当初はゲームでの使用に焦点を当てた、Microsoft が管理する OpenGL の代替として意図されていました。3D ゲームが成長するにつれて、ゲーム開発者は OpenGL がゲーム開発にも効果的に使用できることを発見しました。[ 27 ]その時点で、クロス プラットフォームの OpenGL の支持者と Windows 専用の Direct3D の支持者の間で「戦い」が始まりました。[ 28 ]ちなみに、OpenGL は Microsoft では DirectX チームによってサポートされていました。開発者がコンピュータゲームでOpenGL 3DグラフィックスAPIを使用することを選択した場合、OpenGLにはサウンドやジョイスティックのサポートなど、DirectXのすべての機能が含まれていないため、Direct3D以外のDirectXのAPIがOpenGLと組み合わせて使用されることが多かった。
コンソール固有のバリアントとして、Direct3D は Microsoft のXbox、Xbox 360、Xbox OneコンソールAPIのベースとして使用されました。実装は、初代 Xbox で使用されたカスタム グラフィックス ハードウェアを開発したNvidiaと Microsoft が共同で開発しました。Xbox API は Direct3D 8.1 に似ていますが、他のコンソール技術のように更新できません。Xbox のコードネームは DirectXbox でしたが、商用名として Xbox に短縮されました。[ 29 ]
2002年、DirectX 9のリリースに伴い、Direct3Dはピクセルシェーダーおよび頂点シェーダーバージョン2.0で以前よりもはるかに長いシェーダープログラムの使用をサポートしました。マイクロソフトはその後もDirectXスイートのアップデートを続け、2004年8月にリリースされたDirectX 9.0cではシェーダーモデル3.0を導入しました。
2005年4月現在、DirectShowはDirectXから削除され、代わりにMicrosoft Platform SDKに移行されました。
MicrosoftのWindows Phone 8にはDirectXが搭載されていることが確認されている。[ 30 ]
リアルタイムレイトレーシングは2018年にDXRとして発表されました。同じ年にDirectXシェーダーコンパイラにHLSLからSPIR-Vへのコンパイルのサポートも追加されました。 [ 31 ]
DirectXは複数のAPIで構成されています。
マイクロソフトは以下のコンポーネントを非推奨としました。
DirectX の機能はCOMスタイルのオブジェクトとインターフェイスの形で提供されます。さらに、DirectX コンポーネント自体ではありませんが、マネージド オブジェクトはDirectX の一部の上に構築されています。たとえば、Managed Direct3D [ 34 ]やDirect3D 9 の上に構築されたXNA グラフィックス ライブラリ[ 35 ]などです。
マイクロソフトはDirectX用のデバッグツール「PIX」を配布している。[ 36 ]
2002年にマイクロソフトによって発表されたDirectX 9は、DirectXファミリーにおける重要なリリースでした。Windowsのグラフィック機能に多くの重要な機能と強化をもたらしました。リリース当時は、Windows 98、Windows Me、Windows 2000、Windows XPをサポートしていました。2024年8月現在も、下位互換性のために、それ以降のすべてのバージョンのWindowsでサポートされています。
Direct3D 9で導入された主要機能の一つは、ピクセルシェーダー2.0と頂点シェーダー2.0を含むシェーダーモデル2.0でした。これにより、より複雑でリアルなグラフィックスレンダリングが可能になりました。また、ハードウェアアクセラレーション機能の向上とGPUリソースの効率的な利用により、待望のパフォーマンス向上も実現しました。さらに、開発者がより簡単にシェーダーを作成できるHLSLも導入されました。
DirectX 9はゲーム開発に大きな影響を与えました。2000年代半ばから2010年代初頭にかけて、多くのゲームがDirectX 9を使用して開発され、開発者にとって標準的なターゲットとなりました。現在でも、一部のゲームは古いハードウェアや性能の低いハードウェア向けのオプションとしてDirectX 9を使用しています。

DirectX API のメジャーアップデートである DirectX 10 は、Windows Vista (2006 年後半に発売) 以降に搭載され、それ以降のバージョンでのみ利用可能でした。Windows XP などの以前のバージョンの Windows では、DirectX 10 専用のアプリケーションを実行できません。Windows XP で実行されるプログラムは、利用可能な最新のメジャーバージョンである DirectX 9.0c に制限されます。[ 37 ]
DirectX 10 の変更点は多岐に渡りました。DirectX API の多くの旧バージョンは最新の DirectX SDK で非推奨となり、互換性のためにのみ残されています。DirectInputはXInputに置き換えられ、DirectSound はクロスプラットフォームオーディオ作成ツールシステム (XACT)に置き換えられました。また、Vista のオーディオスタックはCPU 上でソフトウェアでサウンドをレンダリングするため、ハードウェアアクセラレーションによるオーディオのサポートも失われました。DirectPlay の DPLAY.DLL も削除され、dplayx.dll に置き換えられました。この DLL に依存するゲームは、この DLL を複製して dplay.dll に名前を変更する必要があります。
後方互換性を実現するために、Windows Vista の DirectX には Direct3D のいくつかのバージョンが含まれています。[ 38 ]
Direct3D 10.1 は、2008 年 2 月にリリースされたWindows Vista Service Pack 1に同梱され、かつ必須であった Direct3D 10.0 の増分アップデートです。 [ 39 ]このリリースでは主に、グラフィックス ベンダー向けにいくつかの画像品質基準が設定されるとともに、開発者が画像品質をより細かく制御できるようになります。[ 40 ]また、キューブ マップ アレイのサポート、MRT ごとの個別のブレンド モード、ピクセル シェーダーからのカバレッジ マスクのエクスポート、サンプルごとにピクセル シェーダーを実行する機能、マルチ サンプル深度バッファへのアクセス[ 41 ]が追加され、ビデオ カードが Shader Model 4.1 以上と 32 ビット浮動小数点演算をサポートしている必要があります。Direct3D 10.1 は Direct3D 10 ハードウェアを完全にサポートしていますが、すべての新機能を利用するには、更新されたハードウェアが必要です。[ 42 ]

マイクロソフトはシアトルで開催されたGamefest 08イベントでDirectX 11を発表した。Windows Vista向けの最終プラットフォームアップデートは2009年10月27日にリリースされたが、これはDirect3D 11を基本標準としてリリースされたWindows 7の初回リリースから1週間後のことだった。
主な予定機能には、GPGPU ソフトウェアのサポート ( DirectCompute )、テッセレーションをサポートする Direct3D 11 [ 43 ] [ 44 ]、マルチコアプロセッサをより有効に活用するゲームの開発を支援する改良されたマルチスレッドサポートが含まれます。[ 45 ]マルチスレッド リソース処理などの新しい API の一部は、Direct3D 9/10/10.1 クラスのハードウェアでサポートできます。ハードウェア テッセレーションと Shader Model 5.0 には、Direct3D 11 をサポートするハードウェアが必要です。[ 46 ] Direct3D 11 は Direct3D 10.1 の厳密なスーパーセットです。バージョン 10.1 のすべてのハードウェアおよび API 機能は保持され、新しい機能は新しい機能を公開するために必要な場合にのみ追加されます。これにより、以前のバージョンの Direct3D との下位互換性が維持されます。
DirectX 11のアップデートが4つリリースされました。
DirectX 12は、2014年3月20日にGDCでマイクロソフトによって発表され、2015年7月29日にWindows 10と同時に正式にリリースされた。
DirectX の新リリースの主な特徴は、Direct3D 12 による高度な低レベル プログラミングの導入で、これによりドライバのオーバーヘッドを削減できます。開発者は、GPU に独自のコマンド リストとバッファを実装できるようになり、並列計算によるリソースの効率的な利用が可能になります。リード開発者の Max McMullen 氏は、Direct3D 12 の主な目標は「電話、タブレット、PC でコンソール レベルの効率性を実現すること」だと述べています。[ 56 ] Direct3D 12 のリリースは、AMD グラフィックス カード向けの AMD のMantle 、 iOS および macOS 向けのApple のMetal 、 Khronos Groupのクロス プラットフォームVulkanなど、オーバーヘッドの少ないグラフィックス API に関する他の取り組みと並行して行われています。
Direct3D 12 ではマルチアダプタのサポートが実現し、開発者はシステム上で複数の GPU を同時に利用できるようになります。マルチ GPU (mGPU) のサポートは、これまでAMD CrossFireXやNVIDIA SLIなどのベンダーの実装に依存していました。[ 57 ] [ 58 ] [ 59 ] [ 60 ]
Direct3D 12 は、すべてのFermi以降の Nvidia GPU、AMD のGCNベースのチップ、および Intel のHaswell以降のプロセッサのグラフィックス ユニットでサポートされています。[ 61 ]
SIGGRAPH 2014で、Intelはコンピュータで生成された小惑星帯のデモを公開し、Direct3D 12はDirect3D 11よりもレンダリング速度とCPU電力消費において50~70%効率的であると主張された。[ 62 ] [ 63 ]
Ashes of the Singularityは、Direct3D 12を利用した最初の公開ゲームでした。 2015年8月にArs Technicaが行ったテストでは、 Nvidia GeForce 980 TiではDirect3D 11モードに比べてDirect3D 12で若干のパフォーマンス低下が見られましたが、 AMD Radeon R9 290xはDirect3D 12で最大70%のパフォーマンス向上を一貫して達成し、一部のシナリオではAMDの方がより高性能なNvidiaよりもDirect3D 12で優れたパフォーマンスを発揮しました。パフォーマンスの差異は、Direct3D 12に対するNvidiaドライバの最適化が不十分であること、あるいはDirect3D 11のシリアル実行用に最適化されたカードのハードウェア制限によるものかもしれませんが、正確な原因は不明のままです。 [ 64 ]
Xbox における Direct3D 12 のパフォーマンス向上は、PC ほど顕著ではない。[ 65 ]
2018年3月、DirectX Raytracing(DXR)が発表され、対応ハードウェア上でリアルタイムのレイトレーシングが可能になった[ 66 ]。また、DXR APIはWindows 10の2018年10月アップデートで追加された。
2019年、マイクロソフトはWindows 7にDirectX 12を導入すると発表したが、特定のゲームタイトルのプラグインとしてのみだった。[ 67 ]
Microsoft は 2020 年 3 月に DirectX 12 Ultimate を発表しました。DirectX 12 Ultimate は、 Windows 10 コンピューターとXbox Series Xおよびその他の第 9 世代 Xbox コンソールの両方で共通のライブラリに統合されます。Ultimate の新機能には、DirectX Raytracing 1.1、プログラマが設計上の選択に応じてシェーディングの詳細レベルを制御できる可変レートシェーディング、メッシュシェーダー、およびサンプラーフィードバックが含まれます。[ 68 ] [ 69 ]
Microsoft のDxDiagツール (バージョン 4.09.0000.0900 以降) で報告されるバージョン番号は、x.xx.xxxx.xxxx 形式です。しかし、DirectX と Windows XP のMSDNページでは、レジストリは常に x.xx.xx.xxxx 形式であるとされています。したがって、上記の表でバージョンが「4.09.00.0904」と表示されていても、Microsoft のDxDiagツールでは「4.09.0000.0904」と表示される可能性があります。[ 105 ]
Windowsのさまざまなリリースには、さまざまなバージョンのDirectXが含まれ、サポートされており、新しいバージョンのオペレーティングシステムでは、以前のバージョンのDirectX用に設計されたアプリケーションを、新しいAPI、ドライバー、ハードウェアに置き換えられるまで実行し続けることができます。[ 106 ]
Direct3DやDirectSoundといったAPIはハードウェアとやり取りする必要があり、そのためにデバイスドライバを使用します。ハードウェアメーカーは、特定のDirectXバージョンのデバイスドライバインターフェイス(DDI)に対応するドライバを作成し、個々のハードウェアをテストしてDirectX互換にする必要があります。一部のハードウェアデバイスにはDirectX互換ドライバしか存在しないため(つまり、そのハードウェアを使用するにはDirectXをインストールする必要があります)、DirectXの初期バージョンには、当時入手可能なDirectX互換ドライバの最新ライブラリが含まれていました。しかし、この方法は廃止され、WebベースのWindows Updateドライバ更新システムが採用されました。これにより、ユーザーはライブラリ全体ではなく、自分のハードウェアに関連するドライバのみをダウンロードできるようになりました。
DirectX 10 より前は、DirectX ランタイムは古いドライバとの下位互換性を持つように設計されていました。つまり、新しいバージョンの API は、以前のバージョンの DDI に対して書かれた古いドライバと相互運用するように設計されていました。アプリケーション プログラマは、それぞれ特定のハードウェア機能に関連付けられた複雑な「キャップ ビット」システムを使用して、利用可能なハードウェア機能を照会する必要がありました。Direct3D 7 以前では、どのバージョンの DDI でも動作しましたが、Direct3D 8 では DDI レベルが 6 以上、Direct3D 9 では DDI レベルが 7 以上必要です。[ 107 ] しかし、Windows Vista の Direct3D 10 ランタイムは、大幅に更新された DDI により、古いハードウェア ドライバでは動作しません。DDI では、統一された機能セットが必要で、「キャップ ビット」の使用が廃止されています。
Direct3D 10.1では、 「機能レベル」10_0 と 10_1 が導入され、指定されたバージョンの Direct3D API で定義されているハードウェア機能のみを使用できるようになります。Direct3D 11では、レベル 11_0 と「10 レベル 9」が追加されます。これは、Direct3D 9 ハードウェアで実行するように設計された Direct3D 10 API のサブセットで、「low」、「med」、「high-end」ビデオ カードの共通機能によってグループ化された 3 つの機能レベル (9_1、9_2、9_3) があります。ランタイムは、すべての WDDM ドライバで提供される Direct3D 9 DDI を直接使用します。機能レベル 11_1 はDirect3D 11.1で導入されました。
2002 年、マイクロソフトは Microsoft .NET Frameworkと互換性のある DirectX のバージョンをリリースしました。これにより、プログラマーはマネージド C++ やC#プログラミング言語などの互換性のある言語を使用して .NET アプリケーション内から DirectX の機能を利用できるようになりました。この API は「マネージド DirectX 」(略して MDX)として知られ、基盤となるネイティブ DirectX API の 98% のパフォーマンスで動作すると謳われていました。2005 年 12 月、2006 年 2 月、2006 年 4 月、2006 年 8 月に、マイクロソフトはこのライブラリのアップデートを順次リリースし、最終的に Managed DirectX 2.0 と呼ばれるベータ版がリリースされました。Managed DirectX 2.0 は、以前は複数のアセンブリに分散していた機能を単一のアセンブリに統合し、ソフトウェア開発者にとって依存関係を簡素化しましたが、このバージョンの開発はその後中止され、サポートされなくなりました。Managed DirectX 2.0 ライブラリは 2006 年 10 月 5 日にサポートが終了しました。
GDC 2006で、マイクロソフトは、DirectX、HLSL、その他のツールを 1 つのパッケージに簡単に統合できるようにすることでゲーム開発を支援することを目的とした、DirectX の新しいマネージド バージョン (Managed DirectX と似ていますが同一ではありません) である XNA Framework を発表しました。また、Xbox 360 上でのマネージド コードの実行もサポートしています。XNA Game Studio Express RTM は、2006 年 12 月 11 日に Windows XP 用の無料ダウンロードとして提供されました。DirectX ランタイムとは異なり、Managed DirectX、XNA Framework、Xbox 360 API (XInput、XACT など) は Windows の一部として出荷されていません。開発者は、ランタイム コンポーネントをゲームやアプリケーションとともに再配布する必要があります。
最新のXNAリリースを含め、マイクロソフトの製品で.NET Framework向けのDirectX 10をサポートしているものは一つもありません。
マネージド言語でDirectXを使用するもう1つの方法は、次のようなサードパーティライブラリを使用することです。
DirectXファミリーのAPIには代替となるものがあり、OpenGL、その後継であるVulkan、Metal、MantleはDirect3Dに匹敵する機能を最も多く備えています。その他のAPIの例としては、SDL、Allegro、OpenMAX、OpenML、OpenAL、OpenCL、FMOD、SFMLなどがあります。これらのライブラリの多くはクロスプラットフォーム対応であるか、オープンなコードベースを持っています。また、 Wineのように、同じAPIを提供することを目的とした代替実装も存在します。さらに、 ReactOSの開発者は「ReactX」という名前でDirectXを再実装しようとしています。
Windows は以下をサポートする必要があります。 ... – ページめくり – 垂直ブランク同期 – タイトなサウンドミキシング – サウンドとビデオイベントのタイトな同期 – 生のビルドパフォーマンス – グラフィックモードを設定する機能 ...
たとえば、ライオン キング ソフトウェアは WinToon アプリです。...WinToon と同様に、この例では DIB 上に描画するために WinG を使用しています。
は Media Foundation Transforms (MFT) に置き換えられました。
{{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク){{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク){{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク){{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク){{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク)