OpenGL 錯誤獲取glGetError()

轉載:http://blog.csdn.net/u010270148/article/details/52934295
如果函數參數不符或者不符合當前上下文設置的狀態,則會導致 OpenGL Error。已 error code 來表示。絕大多數情況下 OpenGL functions 產生 errors,則不會生效。少數有效。


OpenGL Error 存儲在一個隊列中,直到該錯誤被處理。因此,如果你不定期的檢測錯誤,你將不會知道某個函數某個函數的調用觸發了錯誤。因此,錯誤檢測應該定期檢測,確保知道錯誤的詳細信息。


獲取隊列中下一個 OpenGL Error,並從隊列中移除。如果返回 GL_NO_ERROR 則該隊列爲空。
GLenum glGetError()​
若獲取所有的 OpenGL Error 
for(GLenum err; (err = glGetError()) != GL_NO_ERROR;)
{
 //Process/log the error.
}

所有的返回值有:
GL_NO_ERROR :(0)當前無錯誤值
GL_INVALID_ENUM :(1280)僅當使用非法枚舉參數時,如果使用該參數有指定環境,則返回 GL_INVALID_OPERATION 
GL_INVALID_VALUE :(1281)僅當使用非法值參數時,如果使用該參數有指定環境,則返回 GL_INVALID_OPERATION 
GL_INVALID_OPERATION :(1282)命令的狀態集合對於指定的參數非法。
GL_STACK_OVERFLOW :(1283)壓棧操作超出堆棧大小。
GL_STACK_UNDERFLOW :(1284)出棧操作達到堆棧底部。
GL_OUT_OF_MEMORY :(1285)不能分配足夠內存時。
GL_INVALID_FRAMEBUFFER_OPERATION :(1286)當操作未準備好的真緩存時。
GL_CONTEXT_LOST :(1287)由於顯卡重置導致 OpenGL context 丟失。
發佈了23 篇原創文章 · 獲贊 10 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章