2011-12-21 76 views
0

Apple的OpenGL Shader Builder允许您放置顶点(或片段)着色器,它将链接并验证它,然后告诉您哪个GL_RENDERER用于该着色器。对我来说,它显示:苹果软件渲染器(红色,因为它意味着着色器会很慢)或AMD Radeon HD 6970M OpenGL引擎(即我通常想运行着色器的GPU渲染器)。确定哪个渲染器用于顶点着色器

我该如何在运行时在我自己的软件中确定这一点?

编辑: 查询GL_RENDERER在我的CPU的代码似乎总是返回的AMD Radeon HD 6970M的OpenGL引擎无论在哪里,我把它放在抽奖循环,即使我使用的着色器是OpenGL着色Builder中说,正在运行在Apple软件渲染器上(我相信它是因为它非常慢)。是在适当的时候查询GL_RENDERER的问题吗?如果是这样,何时?

回答

0

所使用的渲染器绑定到OpenGL上下文,并且适当的OpenGL实现不应该在中间切换渲染器。当然,一个OpenGL实现可能建立在一些可以在后端渲染器之间动态切换的基础架构上,但是这必须反映到渲染器字符串中的前端上下文中,以识别这个。

所以你所做的确实是正确的方法。