我知道有必要通過使用基於opengl函數名稱的函數定位指針來爲opengl「加載」函數。我從來沒有見過類似於此之前做過的事情,我想知道這是如何工作的。功能在哪裏?他們如何檢索?爲什麼這樣做?OpenGL函數如何加載?
1
A
回答
2
哪裏的功能實際上在什麼位置?
這是實現相關。我敢打賭,他們被存儲在函數名稱的哈希表中以便函數指針。他們仍然在共享庫中,但通常沒有暴露他們的符號。
他們是如何獲取?
glXGetProcAddress或wglGetProcAddress,取決於平臺。大多數創建OpenGL窗口的庫(GLFW,SDL)都具有自己的跨平臺功能,可以使用上述功能。
爲什麼做這樣?
我能想到的幾個原因:實現可以改變什麼擴展可在不破壞ABI兼容性,什麼功能,您可以訪問可能依賴於你請求上下文的類型或版本(梅薩前,發佈OpenGL 3.1擴展僅在3.1+的上下文中可用,而不是任何更低的)。
+0
你可以制定一個更的「共享庫」。這與gpu的驅動程序有什麼關係? – Thomas
+0
@Ragdoll取決於平臺的'.dll'或'.so',與'-l'鏈接。去谷歌上查詢 –
相關問題
- 1. 使用QOpenGLWidget加載OpenGL函數指針
- 2. 如何應用OpenGL函數
- 3. 如何在Android OpenGL中加載網格
- 4. 如何保存和加載OpenGL
- 5. 如何使用OpenGL加載8位bmp?
- 6. C++ Opengl - 如何在現代OpenGL中加載tgas和png?
- 7. 在運行時加載opengl/directx API函數
- 8. 如何製作div加載函數?
- 9. 如何使用System.load()函數加載庫?
- 10. 如何動態加載jquery函數?
- 11. 如何停止Jquery加載函數
- 12. OpenGL ES函數
- 13. OpenGL ES函數
- 14. 如何加載頁面加載ng-walktrrough函數在離子
- 15. 如何在頁面加載後在Vaadin中加載js函數
- 16. 如何在構造函數中加載組件加載?
- 17. 如何在文檔加載後加載此javascript函數?
- 18. 如何在頁面加載時加載這個ajax函數?
- 19. 如何從plist加載OpenGL渲染(iPhone)的數據?
- 20. OpenGL VBO加載字體數據
- 21. JavaScript函數加載
- 22. 如何在QT OpenGL Widget上使用OpenGL函數?
- 23. jQuery加載和再次加載函數
- 24. Android OpenGL「glMaterialfv」函數
- 25. C++ OpenGL TGA加載失敗
- 26. opengl obj模型加載
- 27. opengl es 2.0紋理加載
- 28. 在OpenGL中加載.obj C
- 29. OpenGL高度圖加載器
- 30. 從OpenGL視圖加載UIView
我真的不知道答案其實,但你可以閱讀這個項目:https://github.com/cginternals/glbinding – eroween