2012-12-17 64 views
2

我使用wglGetProcAddress獲得OpenGL擴展。但是在不同的機器上它使用不同的參數:例如對於使用glDrawArrays,我應該用「glDrawArrays」或「glDrawArraysEXT」調用wglGetProcAddress。如何定義使用什麼?如何正確定義OpenGL擴展?

回答

2

有兩個相當不錯的OpenGL擴展加載庫 - GLeeGLEW。 GLEW目前更新於GLee。即使你不想使用它們中的任何一個,它們都是開源的,所以你可能會比看一眼他們如何做事更糟糕。

您可能還想檢查http://www.opengl.org/sdk/這是一個體面的在線OpenGL文檔集合。

+0

OpenGL SDK還包含glload,它是一個很好的擴展加載器。 – thecoshman

+0

哪裏?我找不到那一個。 –

+0

大聲笑,這是[第一個結果](http://glsdk.sourceforge.net/docs/html/group__module__glload.html)如果你谷歌'glload' – thecoshman

1

「調用glDrawArrays」 或 「glDrawArraysEXT」

兩個!即使它們被命名爲類似的,並且通常程序簽名和標記值相同,它們也是不同的擴展,其中細節可能非常不同。

最終由程序員決定使用哪些函數。如果一個程序使用了一個函數的變體,那麼即使可能存在一個…ARB或具有相同名稱的核心函數,也必須加載該函數。他們可能會在簽名和/或使用的令牌和狀態方面有所不同,因此您不能盲目地替換另一個。