2011-12-21 61 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實現可能建立在一些可以在後端渲染器之間動態切換的基礎架構上,但是這必須反映到渲染器字符串中的前端上下文中,以識別這個。

所以你所做的確實是正確的方法。