当抽象我的游戏/渲染引擎时,我遇到了一个问题,我需要一种方法来可靠地了解我正在操作的上下文。
我正在寻找一种适用于OpenGL规范的解决方案。这是标准的OpenGL,没有提供包装库xyz 。
答案 0 :(得分:2)
我正在寻找一种适用于OpenGL规范的解决方案
不,必须通过wglGetCurrentContext()
/ glXGetCurrentContext()
/ aglGetCurrentContext()
/等来升级图层并询问操作系统的窗口系统绑定。
答案 1 :(得分:1)
简短:不,在OpenGL规范中没有办法做到这一点
OpenGL规范并不关心如何创建和管理上下文。 操作系统和/或平台负责此事。
长:如果您控制应用程序,那么您应该能够检测何时切换OpenGL上下文。但如果这不是您想要使用的方式,除此之外没有其他方式......除非您使用不同的设置(如OpenGL版本)设置不同的上下文,或者它们是在分离的线程中运行。同样,第二个不是“OpenGL规范”......只是技巧......
答案 2 :(得分:0)
虽然我无法找到OpenGL 3.3核心配置文件(最常见的版本iirc)的任何内容,但从版本4.3开始可以获得一些东西。
可以使用glDebugMessageCallback设置自定义用户指针,并可以使用glGetPointerv检索该用户指针。
因此,可以滥用用户指针来标记上下文。