サードパーティが作成したプラグインを使用して、あらゆる種類の 3D トリックをレンダリングするアプリを作成しています。
私の主なアプリケーションは、コンテキスト/レンダー オブジェクトとレンダー ターゲット/フレーム バッファー オブジェクトを作成することです。サードパーティのプラグインは、それに派手なものをレンダリングするため、3d レンダリング関連の呼び出しを実行するには、そのコンテキスト / renderobject にアクセスする必要があります。
OpenGL または Direct3D のいずれかを使用してこれを実装することを選択できます。私の決定は、おそらく次の問題に対する私の理解に基づいています。
明らかに、OpenGL / Direct3D の新しいバージョンが登場します。新しく作成されたプラグインが、メイン プログラムがコンパイルされたものよりも新しいバージョンの DX/OGL の恩恵を受けることができれば、それは素晴らしいことです。(アプリケーションを実行しているコンピュータがその新しいバージョンをサポートしている場合)
OpenGL を使用すると (OpenTK を使用すると)、「バージョン X と下位互換性がある最新バージョンを教えてください」のように、上位互換性のあるコンテキストを作成できることがわかりました。したがって、3.2 コンテキストを要求された場合、4.0 が利用可能な場合は 4.0 コンテキストが返されます。
DirectX の場合、そのようなものは何も表示されません。つまり、たとえば DirectX 11 でメイン プログラムを作成すると、サードパーティのプラグインは新しいバージョンが利用可能になったときに使用できなくなりますか?
これは正しいですか?
OpenGL では、サードパーティのプラグイン作成者が OpenGL の新しいバージョン用のプラグインを作成できるようになりますが、DirectX ではそのようなことはできませんか?