GNU/Linux >> Linux の 問題 >  >> Linux

Linux 用の DirectX API がないのはなぜですか?

なぜ OpenGL を使用しないのですか? DirectX が行うすべての機能をサポートします。 DirectX を使用する特別な理由はありますか?理由としては、Microsoft は DirectX を作成しましたが、Linux での実行を許可する必要性を認識していなかったと思います。

Wine を使用して Linux で DirectX ゲームを実行できます。 MonoGame を使用して Linux で XNA をプログラミングできます。ただし、これらはすべて OpenGL を使用して、ハードウェア アクセラレーションによるレンダリングを提供します。私の知る限り、OpenGL は予見可能な将来の Linux での唯一のオプションでした (そしておそらくそうなるでしょう)。

独自の DirectX 実装を作成することは可能ですか?確かに - しかし、それにはドライバーの作成、独自の知識、そしておそらくコストがかかりすぎて、誰もがそれから本当に利益を得ることができません.

編集:最近では、DXVK は Linux で DirectX アプリケーションを実行するための非常に現実的でパフォーマンスの高い方法です。


DirectX は一連の API です:

  • Direct3D (3D グラフィックスの描画)
  • DirectX グラフィック インフラストラクチャ (アダプターとモニターの列挙とスワップ チェーンの管理)
  • Direct2D (2D グラフィックスの描画)
  • DirectWrite (フォント)
  • DirectCompute (GPU コンピューティング)
  • DirectSound3D (3D サウンドの再生)
  • DirectX メディア (2D/3D Web アニメーション用の DirectAnimation、マルチメディアの再生とストリーミング メディア用の DirectShow、Web 双方向性用の DirectX Transform、および高レベルの 3D グラフィック用の Direct3D Retained Mode)
  • DirectX 診断 (オーディオ、ビデオ、入力ドライバーなど、DirectX に関連するコンポーネントに関するレポートを診断および生成するためのツール)
  • DirectX メディア オブジェクト (エンコーダー、デコーダー、エフェクトなどのストリーミング オブジェクトのサポート)
  • ダイレクト セットアップ (DirectX コンポーネントのインストール、および現在の DirectX バージョンの検出)

DirectX コンポーネントは非推奨ですが、まだサポートされています

  • DirectDraw
  • DirectInput
  • DirectPlay
  • ダイレクト サウンド
  • DirectMusic

ご覧のとおり、DirectX スイートの API の多くの部分は、Linux 用に作成されたドライバーの機能で書き直す必要があります。また、DirectX スーツの一部は Windows OS を呼び出す可能性が高く、そのコードは、DirectX または Windows OS のコピーで書かれた部分を侵害することなく、Linux マシン用に書き直す必要があります。

はい、Linux 用の DirectX と同じ種類のことを行うオープン ソース API スーツを作成することはできますが、Linux 用のサウンドおよびグラフィック ドライバー/メーカーによるサポートに関する十分な知識がなければ、それを行うのは非常に難しい作業です。

ただし、「DirectX で作成されたゲームやプログラムを Linux で実行できるようにするために、何かを取得/作成できますか?」という質問が多かった場合は、つまり、著作権侵害の可能性が高いため、いいえです。


私の知る限り、DirectX には 3 つの部分が含まれています

  • ベンダー ドライバ (DX で定義された低レベル API を提供)
  • DirectX ライブラリ (DX によって定義された低レベル API を使用してハードウェアにアクセスし、DirectX API を提供します)
  • ソフトウェア (ゲームなど、DirectX API を使用)

Linux では DX で定義された低レベル API を提供するドライバーが存在しないため、DirectX ライブラリを提供することも可能ですが、適切なベンダー ドライバーがないと機能せず、ベンダーが存在するかどうかもわかりません。ハードウェア プラットフォーム用に作成します。


2019 年のあなたの質問は間違っています。DXVK は、Vulkan と Wine を使用した Linux 用の D3D11 および D3D10 実装の実装です

また、mesa にはネイティブの Direct3D 9 実装がありますが、私の知る限り、wine 以外は誰も使用していません


Linux
  1. Linux 用のスタンドアロン Flash Player はありますか?

  2. cd - cp または mv に相当するものはありますか?

  3. Linux 用の完全に統合されたパッケージ マネージャーがないのはなぜですか?

  1. 制御が必要なためにLinuxに切り替えた理由

  2. なぜLinuxなのか? –Linuxに変換するいくつかの理由

  3. Linux –エントロピー品質を測定するためのツール?

  1. Linux と Windows – Linux がプログラミングと Web 開発に適している理由

  2. Linux 用の C++ gdb GUI はありますか?

  3. Linux に STDCALL はありますか?