Windows 8は引き続きDirectX 9をサポートしていますか?


9

Windows 8はDirectX 9をサポートしていますか?私は、Windows 8のために作られたC ++とDirectX 9で書かれたいくつかのサンプルを見ていたのでそれは私がここに(一見それを知っていたようではない、ということhttp://directxtutorial.com/Lesson.aspx?lessonid=111-4-2)。たとえば、COMでのDirectXの初期化:

ComPtr<ID3D11Device1> dev;
ComPtr<ID3D11DeviceContext1> devcon;

私は古い方法でそれを知っているので、それはただ奇妙です。

ID3D11Device *dev;                  
ID3D11DeviceContext *devcon;  

(私が伝えたいことをご理解いただければ幸いです)

彼らがリリースした新しいOSのために、それが完全に変わっていないことを願っています。


1
マイクロソフトがWindowsプラットフォーム上のすべてのゲームの90%以上のサポートを突然停止することを想像するのは非常に難しいと思います。私はまた、人々がそのような動きに今までに怒っていないだろうと信じるのはさらに難しいと感じます。
Jari Komppa、2012年

つまり、最新のSDKにはdx9ヘッダー/ライブラリが含まれていない可能性があります。チェックしていません。これは、以前のようにdx9 sdkを使用できなかったという意味ではありません。もちろん、最新のビジュアルスタジオが何らかの理由でそうすることを禁じている場合を除きますが、それはまったく愚かなことです。
Jari Komppa、2012年

まあ、私も信じられませんが、 "Windows 8"ブランドを手に入れるためにPCにタッチスクリーンが最もあり、タッチスクリーンでのゲームをサポートするDirectXで書かれたゲームを見たことがあります。
LaVolpe

ただし、dx9では「モダンui」アプリを作成できないと思います。
Jari Komppa、2012年

1
D3Dオブジェクトは常にCOMオブジェクトでした-生のポインターを使用するのではなく、スマートCOMポインターに配置することが常に可能でした。

回答:


12

はい、Windows 8はDirectX 9をサポートしています。

開発のため、古いDirectX SDKは非推奨になりましたが、Visual Studio 2012に含まれている新しいWindows 8 SDKに必要なすべてのライブラリとヘッダーが含まれています。問題なく「古い方法」を使用できます。デバッグにPIX、または高レベルのD3DXライブラリが必要な場合は、古いDXSDKを再インストールする必要があります。これは、Windows 8 SDKにはないためです。

ただし、これは単純な古いデスクトップアプリにのみ有効です。Metroスタイルのアプリについては、MicrosoftのChuck Walbournに話してもらいます。

Direct3D9およびDirect3D9Exは、Metroスタイルのアプリケーションではサポートされていません。MetroスタイルアプリケーションでのDirectX SDKの使用は推奨またはサポートされていません。http://msdn.microsoft.com/en-us/library/ee663275.aspxを参照して ください

Direct3D 9のコードベースをDirect3D 11に移植するのに役立つ多くのリソースがあります。Direct3D11のAPIはDirect3D 10に非常に似ているため、Direct3D 9からDirect3D 10.xへの移植に関する資料の大部分がここで完全に適用されます。

http://blogs.msdn.com/b/chuckw/archive/2011/07/11/getting-started-with-direct3d-11.aspxを参照してください 。開発者が過去に経験した多くの落とし穴やパフォーマンスの問題、Direct3D 10の違いの概要についてはDirectX 11テクノロジーアップデートをカバーしているため、ゲームプレゼンテーションでWindowsを現実に:Direct3D 10グラフィックスを最大限に活用するプレゼンテーションを確認してください。 .xおよびDirect3D 11。

MSDNは移植ガイドを持っているだけでなく http://msdn.microsoft.com/en-us/library/ff476190.aspxにあなたを指しているhttp://msdn.microsoft.com/en-us/library/bb205073.aspxのためにDirect3D 9からDirect3D 11に直接移行します。

D3D9をMetroスタイルアプリに直接使用することはできません。ただし、D3D_FEATURE_LEVEL_9_3レガシーハードウェアをサポートする場合は、D3D11を使用して、機能レベル(など)に制限できます。


うわー、回答ありがとうございます。私が見るように、あなたは素晴らしい研究をしました
LaVolpe '11 / 11/16

まあ、そうではありません。たった今、たまたま取り組んでいます;)
Laurent Couvidou

1
AFAIK VS 2012に付属するwin8 SDKでは、D3D11X *ヘッダーは出荷されなくなりました。D3D11*のみが出荷されます。これにより、ファイルからシェーダーを読み込み、1回の関数呼び出しでそれらをコンパイルするなど、多くのユーティリティ関数が不要になります。

確かに。Microsoftはそれについて次のように述べています。「D3DX11の現在の使用に代わるテクノロジーには、DirectXTexとDirectXTKが含まれていることに注意してください。D3DXMathはDirectXMathに置き換えられています。」これまでテストされていません。
Laurent Couvidou 2012年

3

Windows 8は、Windows 7およびWindows Vistaに存在していたのと同じDirect3D 9アプリケーションの基本的なサポートを備えています。Direct3D 9はレガシーであり、Direct3D 9ベースのゲームに影響を与える可能性のある互換性の問題は確かにいくつかありますが、Windows 7とほぼ同じように機能します。

Windows 8でのDirect3D 9を使用した開発は、Windows 7での開発よりも少し困難です。標準のDirect3D 9ヘッダーはWindows 8.0 SDK(VS 2012に含まれています)の一部ですが、D3DX9は含まれていません。Direct3D 9デバッグランタイムはWindows 8ではサポートされていません。Windows8でレガシーのDirectX SDKを使用できますが、それをインストールするためのいくつかの課題と制限があります。

Windows 7およびWindows 8で新しいアプリケーションを作成するために使用する推奨APIは、Direct3D 11です。これは、Win32デスクトップアプリケーションとWindowsストアアプリの両方で機能します。また、DirectX SDKを使用せずに、Windows 8.x SDKを使用することをお勧めします。

このトピックに関する多くの投稿については、Games for WindowsおよびDirectX SDKを参照してください。


Windows XP Service Pack 1より新しいバージョンのWindowsには「DirectXをインストール」しないことに注意してください。「DirectXエンドユーザーランタイム」パッケージは、Windows XP SP2、Windows Vista、Windows 7、およびWindows 8.xにインストールされますが、「DirectX」をインストールすることはありません。これは、現在レガシーのDirectX SDKのオプションビットであるヘルパーDLLをデプロイするだけです。XINPUT1.3、XAudio 2.7、D3DXなど。Direct3D、DirectInput、DirectSoundなどは、公式のサービスパックまたはWindows Updateリリースの一部としてのみ更新されます。リンク
チャックウォルボーン2014年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.