SlimDX.Direct3D9 名前空間には、2 つの異なるバージョンを持つ多くのクラスとメソッドがあることに気付きました。1 つのバージョンには Ex サフィックスが付いています。これは DX9 API にも当てはまると思います。
例えば:
SlimDX.Direct3D9.Device
SlimDX.Direct3D9.DeviceEx
SlimDX.Direct3D9.DisplayMode
SlimDX.Direct3D9.DisplayModeEx
DirectX9Ex は、ほとんどが DirectX9 の改善であり、Windows Vista 以降のバージョンのみに新しい機能が追加されています (最も注目すべき機能は、リソースを共有する機能です)。
それぞれの間にいくつかの非互換性があります。たとえば、リソースを作成するときは、選択するプールに注意する必要があります (Pool.Managed は Device で動作しますが、 Pool.Default では DeviceEx が必要です)。
プロセス間でテクスチャを共有する必要がある場合は、DeviceEx が唯一のオプションです。それ以外の場合は、標準の Device で問題ありません。
Ex -tended は、私が常に頭の中で読んできた方法です (間違っている可能性もありますが)。
C にはオーバーロードがないため、API が更新されて、新しいオプション フィールドなど、最初は考慮されていなかった余分なものが考慮される場合は、 in と入力しFooEx
ます。(オーバーロードが適用されなくても、同じ理由が新しい型に適用されます。)
他の言語にはオーバーロードがありますが、ラッパーは、Ex
型に「注釈」を使用するなど、基礎となるソース API をより適切に反映するために規則を維持する場合があります。
この命名規則は、Win-C/Microsoft API の大部分で一貫して使用されていますが、それが規則であった場合は、そうであった可能性Foo2
があります。