我正在编写一个应用程序,它将使用第 3 方创建的插件来呈现各种 3D 技巧。
我的主要应用是创建上下文/渲染对象和渲染目标/帧缓冲区对象。3rd-party 插件将渲染他们花哨的东西,所以他们需要访问那个上下文/渲染对象来执行他们的 3d-render 相关的调用。
我可以选择使用 OpenGL 或 Direct3D 来实现它。我的决定很可能是基于我对下一个问题的理解:
显然,新版本的 OpenGL / Direct3D 将会问世,如果新创建的插件可以从比主程序编译的新版本的 DX/OGL 中受益,那就太好了。(如果运行该应用程序的计算机支持该较新版本)
使用 OpenGL(使用 OpenTK)我知道可以创建一个向前兼容的上下文,如"Give me the most up-to-date-version that is back-compatible with version X"。因此,当询问 3.2 上下文时,如果 4.0 可用,它将返回 4.0 上下文。
对于 DirectX,我没有看到类似的东西,这意味着如果我使用 DirectX 11 创建我的主程序,第 3 方插件将永远无法使用可用的更新版本?
我得到这个正确吗?
OpenGL 是否允许 3rd-party 插件编写者为较新版本的 OpenGL 创建插件,而 DirectX 不允许我做类似的事情?