我在我的應用程序中使用GLEE,並且在普通Windows上一切正常。檢查所有使用的OpenGL擴展
但是,在虛擬化環境下運行時,我的應用程序無法正常工作。要麼是崩潰,要麼就是呈現黑色。這可能是由於缺少一些OpenGL擴展。我試圖找出所有使用的擴展名,並在程序啓動時檢查它,以便警告用戶。這在碰撞事件中已經解決了。但是,在渲染黑色的情況下,我沒有得到任何擴展名缺失警告。我懷疑這是因爲我錯過了一些延期檢查。所以我的問題是。
是否有任何好方法可以識別全部在應用程序中使用的OpenGL擴展,以便人們可以爲它們添加檢查?
這將工作只爲引進新的程序擴展。像GL_ARB_cubemap這樣的擴展只能引入新的標記,不會用這個來覆蓋。 – datenwolf 2011-02-28 09:55:46
沒錯,我沒有想到僅僅引入新的常量(或者GLSL指令,如texgrad)的擴展。儘管我無法想象如何在程序上發現是否在不知不覺中使用了其中之一。那麼,可以編寫一個解析器來遍歷整個源代碼,並提取所有以GL_或gl開頭的標記(以及可能的wgl和glx)。事實上,我猜想有一定程度的sed-fu的人可能會這樣做,而無需爲它編寫程序。那麼剩下的就是與xml規範的匹配。 – Damon 2011-02-28 12:18:09