簡體   English   中英

有條件地使用OpenGL擴展

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM