DirectX 9を使用して妥当な数の小さな趣味のプロジェクトを実行しましたが、ここでDirectX 11に移行する時が来ました。
私は、DirectX 10を使用した3Dプログラミングに関するFrank Luna'aの本を持っていますが、DirectX 11には何もありません。それらはかなり似ていると思いますが、知っておく必要があるコードレベルで主な違いを列挙できるかどうか疑問に思っていました(または既存のソースをポイントします)。
DirectX 9を使用して妥当な数の小さな趣味のプロジェクトを実行しましたが、ここでDirectX 11に移行する時が来ました。
私は、DirectX 10を使用した3Dプログラミングに関するFrank Luna'aの本を持っていますが、DirectX 11には何もありません。それらはかなり似ていると思いますが、知っておく必要があるコードレベルで主な違いを列挙できるかどうか疑問に思っていました(または既存のソースをポイントします)。
回答:
SDKドキュメントには、11への移行に関するセクションがあり、9と10の両方からの移行について説明しています。D3D11機能のページもあります。
ID3D11DeviceContext
新しいマルチスレッド機能をサポートするために、10と11の間のAPI形状の最大の変更点の1つは、11が一連のメソッドをデバイス自体から(特に)デバイスコンテキストと呼ばれる新しいインターフェイスに移動することです。
ただし、変更を認識したら、簡単に適応できます。10で「someDevice->Draw()
」と呼ばれていた場所では、代わりにデバイスの即時コンテキストを取得して「」を呼び出しますimmediateContext->Draw()
。
もう1つの大きな変更は、Effects APIがコアから外され、コンパイルしてリンクする必要がある独立したソースディストリビューションを作成することです。また、非推奨または削除された一部のD3DXインターフェイスおよび関数に気付く場合もあります。
それを超えて、いくつかの関数にいくつかの新しいパラメーターがあり、構造などにいくつかの余分なフィールドがあります。たとえば、11のバッファ記述オブジェクトには10にはない追加StructureByteStride
フィールドがあり、デバイスの作成には機能レベル情報の受け渡しが含まれます。さらに、インターフェース名に明らかな前述の変更があります(10が11に置き換えられました)。