在QT使用OpenGL開發時發現glGenTexture無法創建出紋理層,執行結果如下,想到在Android 開發中 UI相關操作只能在UI線程中操作突然想到會不會是在子線程執行操作的原因,經過調整代碼發現確實是不能在子線程中創建。
另外如果把OpenGL的初始化函數initializeOpenGLFunctions 放在子線程中會出現報錯的情況,還有如果把glDrawArrays放在子線程中操作也是無法繪製出圖像。
總結,關於OpenGL的操作只能在UI線程操作,否則就會出現以上提到的三個典型錯誤。