![](/img/trans.png)
[英]Are Vertex Array Objects supported in Android OpenGL ES 2.0 using extensions?
[英]Using OpenGL extensions conditionally
我對如何使用OpenGL擴展(特別是VBO和draw_texture)感到有點困惑。 我知道你可以在GL_EXTENSIONS字符串中檢查它們,但接着是什么? 如果擴展可用,我可以根據需要調用相關功能,還是必須加載它們,例如使用GLEW? 如果它們不可用,只要我不調用它們就可以在我的代碼中使用這些函數,或者如果擴展不可用,它會在運行時鏈接器中導致未解決的符號錯誤嗎?
在多個平台上是一樣的,即Linux,Windows,Android(原生),Mac和iOS?
如果擴展可用,我可以根據需要調用相關功能
沒有。
或者我必須加載它們,例如使用GLEW?
是。 你也可以手動完成。
如果它們不可用,只要我不調用它們就可以在我的代碼中使用這些函數,
是。
或者,如果擴展名不可用,是否會導致運行時鏈接器中出現未解決的符號錯誤?
由於擴展是在運行時動態加載的,因此可執行鏈接器不關心它們。 所有它看到的是一些名為__glew_gl…
或類似的變量,它們在標題中被重新定義為gl…
並且鏈接器不關心它們具有什么值。
擴展加載器可以將它們設置為空指針(如果不可用),或者設置為發出警告消息,錯誤條件等的存根函數。
如果擴展可用,則擴展加載程序將這些函數指針變量設置為指向實際函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.