web-dev-qa-db-ja.com

DirectDrawを無効にしますが、Direct3Dはまだありますか?

Windows XP SP3マシンで、最新のパッチが適用されています。DirectX9.0c、バージョン番号4.09.00.0904があります。

DirectDrawを無効にしても、Direct3Dをアクティブのままにすることはできますか?

DirectDraw および Direct3D に関するウィキペディアの記事を読みましたが、正しく理解しているかどうかわかりません。

つまり、3Dレンダリング用の多くのコマンドが含まれています。ただし、バージョン8以降、Direct3Dは古いDirectDrawフレームワークに取って代わり、2Dグラフィックスのレンダリングも担当しています。

これは、DirectDrawがDirect3Dの一部になったことを意味しますか? Direct3Dを無効にせずにDirectDrawを無効にすることはできませんが、逆に機能するためです。

2
GodsBoss

DirectDraw(およびその他のDirectXコンポーネント)のWikipediaページは、状況についてかなり明確です。しかし、関連する部分を要約して慰めます(もちろん言い換えます):


1:1最初は、暗闇とグラフィックの混乱しかありませんでした。 1:2ある日、Microsoftは、単一の一貫したグラフィカルフレームワークを作成し、DirectDrawを作成したと述べましたが、それは良かったです。 1:3 Microsoftは、ハードウェアの庭で戯れ、多くの美しい2D画像を作成するように指示しました。 1:4 DirectDrawはそうしました、そしてそれも良かったです。

2:1ある日、野心の蛇がDirectDrawにやって来て、すばらしい3D写真について話しました。 2:2蛇はDirectDrawが知識の木の実を食べることで3D画像を作成できると確信したので、DirectDrawはその実を食べて、3D画像の作成を試み始めました。

3:1 Microsoftは、DirectDrawが孤独であり、3Dグラフィックスを単独で作成するにはあまりにも一生懸命働いていることを知り、それを憐れみ、DirectDrawの一部を使用してDirect3Dを作成しました。 3:2 DirectDrawとDirect3Dは、しばらくの間一緒に幸せに暮らしていました。

4:1隣人の助けを借りて、DirectDrawとDirect3DはDirectXを生み出しました。 4:2 DirectXは謙虚な子供でしたが、可能性に満ちた子供でした。 4:3 DirectXも嫉妬深い子供であり、メインフレームの壮大な城にしか住んでいない兄弟のOpenGLを破壊しようと努めました。

5:1 DirectX 1は、DirectX1および2とは異なり、Windowsの街の一部であったDirectX2およびDirectX2aを生み出しました。 DirectX 2aは、4世代と2世代にわたって進化し、増殖し、最も素晴らしい美しさとゲームを開花させるフレームワークを作成しました。

6:1 DirectX5の息子であるDirectX6の時点で、DirectXファミリはだらしなく太っていて、管理が困難でした。

7:1土地の人々は、DirectX 7の近親交配について不満を漏らしました。7:2彼らはDirectDrawとDirect3Dの機能の近親交配が好きではありませんでした。 7:3このHIS作成の破損を見て、Microsoftはフレームワークは1つだけであると宣言しました。 7:4嫉妬、プライド、大食いの罪からDirectDrawを浄化するために、彼は強力な発達上の洪水、オブジェクト指向の火とブリムストーン、暗号塩の柱をDirectDrawの町に送りました。

8:1 DirectX 8の場合、彼はDirectDrawを置き去りにして、Direct3Dだけでやり直しました。Direct3Dは、指示に従い、DirectDrawが正式に死亡したため、振り返りませんでした。 8:2 Direct3Dは、最愛のDirectDrawが失われたことを訴えず、この忠誠心を見て、Microsoftは新しい、さらに優れたパートナーを提供しました。 8:3 HEは、DirectDrawの存続している純粋な2D関数を使用して、Direct3Dが満足し、完全に機能するようにDirectXグラフィックスを作成しました。

9:1 DirectX 8、Direct3DとDirectX Graphics(およびその隣人)の息子は、すばらしい子であるDirectX9を生みました。 9:2 DirectX 9は、他の誰よりも長く、何年も生きました。 9:3それは多くの不思議なことを成し遂げ、その先祖を誇りに思った。 9:4 DirectX 9が現在住んでいるXPの村人たちは、まだMicrosoftを崇拝していましたが、黄金のペンギンの偶像を崇拝し始め、禁じられたリンゴを食べました。 9:5これはマイクロソフトを怒らせ、彼はXPの村を追放した。 9:6彼は長くて灰色のひげを生やしたDirectX9をXPに残し、誇り高き新しい子DirectX 10でVistaの街を作りました。9:7 Vistaの街では、多くの人々がDirectX 10の高い税金を支払うために、家をアップグレードする必要がありました。

10:1その後、DirectX10はDirectDraw ++のようなDirect2Dを生み出し、それはまあまあでした。 10:2それは誇り高く要求の厳しい子供であり、XPのようなすばらしい家に満足せず、代わりにWindows 7の王国内に住むことを主張しました。10:3それは貪欲な子供でもあり、宣言しました。それは実際にはほんの小さな2Dフレームワークでしたが、多くのビデオカードの富の必要性。10:4人々は不平を言ったので、MicrosoftはVistaの市民がそれを利用できるようにしました。 XPまだ小さな小屋に住んでいて、Vistaに侵入して征服し、XPでDirectX 10を略奪し、略奪し、自宅に誘拐しました。10:6 DirectX 10は最終的に人々の意志に屈し、生きることを学びました。 XPで動作しますが、心を込めて動作することはありません。

11:1 DirectX10はDirectX11を生み出しましたが、今回は人々はそれをXPの村に誘拐することができませんでした。 11:2彼らは、新しい騎士、兵士、ゼルグ、および他の外国の貴族の多くが、DirectX11王またはDirectX11女王の存在を要求しているのを見て、彼らが持っていたものを黙認して解決するか、多数の税金を支払ったのでDirectX10と11の素晴らしさを彼らに訪ねることができた。

12:17:12:6:2はるか遠く、海獣、ドラゴン、ラマが恐怖をもたらす世界の端の近くで、世界の終わりがあったマヤ王国の壮大で古代のカレンダーが発見されました予測( 実際にはそうではありません 、しかしふりをしましょう)。

13:0:0:0:0世界の偶像崇拝と腐敗を見て、マイクロソフトの神は白、赤、黒、青の4つの大きな太陽フレアを世界に送り、すべての電子機器を破壊しました。箱舟に打ちのめされた宇宙飛行士だけが生き残りましたが、世界の他の地域は7年から7年の間混乱と混乱に陥りました。


したがって、基本的に、DirectX 7以下(使用していない)を使用していない限り、DirectDrawは(全体として)存在しないため、justを無効にすることはできません。スタンドアロンフレームワークとして。代わりに、DirectXからのみDirectDraw関数を無効にできます。

一部の3D関数は2D関数に依存しているため、これはもちろんDirect3Dに影響する場合と影響しない場合があります(ああ、uni comp.graphicsコース、どれほど面白かったかあなたがた…)。

明確に話すことはできませんが、他の同様のシナリオとMicrosoftの歴史に基づいて、フレームワークの一部をオンまたはオフに切り替えることができるように設計されているかどうかは非常に疑わしいです。それは、オールオアナッシングの問題であることがほぼ保証されています。つまり、DirectDrawを無効にすると、Direct3Dも構築されているためダウンし、2Dに依存します。 3Dを無効にしても、2D作業を行うために3D計算は必要ないため、2Dは引き続き機能します。


とはいえ、実際にはDirectDrawまたはDirect3Dのいずれかを無効にしているわけではありません。参照しているボタン(下)はフレームワークを無効にするのではなく、hardware-accelerationのみを無効にします。これらの機能は引き続き存在し、ソフトウェアで引き続き使用できます。 GPU/VRAMではなくCPU/RAMを介して実行されるため、実行速度が大幅に低下します。

アクセラレーションを無効にすると問題が解決する場合は、ソフトウェアが古く、新しいハードウェア/ドライバーと互換性がないことが原因です。ゲームを実行した後(または単に加速なしで生きる)前に加速のオン/オフを切り替えるという不便さを受け入れることによって妥協する必要があるかもしれません。

DXDiag DirectX acceleration

3
Synetech

DirectDrawがDirect3Dに実装されていることを考えると、Direct3Dのサブセットになります。

したがって、Direct3DランタイムでDirectDrawインターフェイスを無効にしても、他のDirect3Dレンダリング機能は影響を受けません。

少し技術的に言うと、DirectDrawを無効にすることで、 IDirectDraw7 インスタンスを取得しようとするすべての試みが失敗することを想像します。 IDirect3D9 インスタンスを取得しようとしても、正常に機能します。

2
Der Hochstapler