1

SlimDX.Direct3D9 名前空間には、2 つの異なるバージョンを持つ多くのクラスとメソッドがあることに気付きました。1 つのバージョンには Ex サフィックスが付いています。これは DX9 API にも当てはまると思います。

例えば:

SlimDX.Direct3D9.Device

SlimDX.Direct3D9.DeviceEx

SlimDX.Direct3D9.DisplayMode

SlimDX.Direct3D9.DisplayModeEx

4

2 に答える 2

1

DirectX9Ex は、ほとんどが DirectX9 の改善であり、Windows Vista 以降のバージョンのみに新しい機能が追加されています (最も注目すべき機能は、リソースを共有する機能です)。

それぞれの間にいくつかの非互換性があります。たとえば、リソースを作成するときは、選択するプールに注意する必要があります (Pool.Managed は Device で動作しますが、 Pool.Default では DeviceEx が必要です)。

プロセス間でテクスチャを共有する必要がある場合は、DeviceEx が唯一のオプションです。それ以外の場合は、標準の Device で問題ありません。

于 2012-09-28T00:23:39.923 に答える
0

Ex -tended は、私が常に頭の中で読んできた方法です (間違っている可能性もありますが)。

C にはオーバーロードがないため、API が更新されて、新しいオプション フィールドなど、最初は考慮されていなかった余分なものが考慮される場合は、 in と入力しFooExます。(オーバーロードが適用されなくても、同じ理由が新しい型に適用されます。)

他の言語にはオーバーロードがありますが、ラッパーは、Ex型に「注釈」を使用するなど、基礎となるソース API をより適切に反映するために規則を維持する場合があります。

この命名規則は、Win-C/Microsoft API の大部分で一貫して使用されていますが、それが規則であった場合は、そうであった可能性Foo2があります。

于 2012-09-27T22:13:56.947 に答える