Apple的OpenGL着色器生成器允许您放入顶点(或片段)着色器,它将链接并验证它,然后告诉您哪个GL_RENDERER用于该着色器。对我来说它要么显示:Apple Software Renderer(红色,因为它意味着着色器将是狗慢)或AMD Radeon HD 6970M OpenGL引擎(即我通常想要运行着色器的我的gpu渲染器)。
我如何在运行时在自己的软件中确定这个?
修改 在我的CPU代码中查询GL_RENDERER似乎总是返回AMD Radeon HD 6970M OpenGL引擎,无论我将它放在绘制循环中的哪个位置,即使我使用的是OpenGL Shader Builder所说的在Apple Software Renderer上运行的着色器(我相信它)因为它很慢)。是在恰当的时间查询GL_RENDERER吗?如果是的话,何时?
答案 0 :(得分:0)
使用的渲染器与OpenGL上下文绑定,并且正确的OpenGL实现不应在其间切换渲染器。当然,OpenGL实现可以构建在一些在后端渲染器之间动态切换的基础架构上,但是这必须反映到渲染器字符串中用于标识这一点的前端上下文。
所以你所做的确实是正确的方法。