我可以在单个渲染窗口中使用已弃用的OpenGL和现代OpenGL吗?

时间:2015-06-02 12:12:32

标签: opengl opentk

我正在通过OpenTK使用现代OpenGL开发一个项目。我想在我的项目中使用Gwen dot net GUI库。不幸的是,Gwen dot net使用旧的OpenGL进行小部件渲染。我尝试合并现代OpenGL和Gwen dot net,到目前为止,一直没有成功。在我浪费时间调试代码之前,我想知道,是否有可能将旧的OpenGL和现代OpenGL合并?

3 个答案:

答案 0 :(得分:2)

如果您创建兼容性配置文件上下文,它应该支持所有所有旧版功能。来自OpenGL 4.3 compatibility spec,1.2.4:

旧版图形硬件无法使用着色器进行编程, 虽然它们可以通过设置状态控制其特定细节来配置 操作。 OpenGL的兼容性配置文件继续支持传统 为这种固定功能硬件开发的OpenGL命令,尽管它们 通常通过编写再现其操作的着色器来实现 这样的硬件。描述了固定功能OpenGL命令和操作 作为对应着色器阶段的描述之后的替代接口。

答案 1 :(得分:1)

最好避免混合旧样式和新样式OpenGL。在MS Windows和Linux上你可以,但奇怪的东西往往会发生。

对于MacOS,Apple声称它们根本不会支持兼容性上下文,所以你不能混用。

由于您坚持使用GUI工具包,我会尝试在单独的上下文中隔离所有新样式的OpenGL代码并渲染到屏幕外目标,然后将其blit到主显示器。

答案 2 :(得分:0)

GWEN的OpenTK渲染是一个单独的类。只需改写它现代的方式。这没有问题。