我一個錯誤抓到這正好是這樣的:OpenGL的抱怨枚舉使用
Source=DEBUG_SOURCE_API Type=DEBUG_TYPE_ERROR ID=3200 Severity=DEBUG_SEVERITY_HIGH Message=Using glGetIntegerv in a Core context with parameter <pname> and enum '0xbb1' which was removed from Core OpenGL (GL_INVALID_ENUM)
Source=DEBUG_SOURCE_API Type=DEBUG_TYPE_ERROR ID=3200 Severity=DEBUG_SEVERITY_HIGH Message=Using glGetIntegerv in a Core context with parameter <pname> and enum '0xd3b' which was removed from Core OpenGL (GL_INVALID_ENUM)
OpenGL error occured: A GLenum argument was out of range.
這是第一次遇到這種錯誤出現了,開始我還以爲是我使用的東西不存在了,但我發現這些值在我的頭文件中不存在。
CLIENT_ATTRIB_STACK_DEPTH = 0xbb1
MAX_CLIENT_ATTRIB_STACK_DEPTH = 0xd3b
但是經過一些額外的研究,我發現,它甚至比我還以爲是因爲我在我的代碼一些東西,停在調試調試構建時的OpenGL出錯陌生人。
#if DEBUG
Debug.HoldOnGLError();
#endif
這是每一個OpenGL的調用之後插入,但它不是在glGetIntegerv
在隨機方法大多是一些glBindBuffer
或glBindFramebuffer
停止,其停止。
我不知道爲什麼錯誤出現,並會爲任何想法感到高興。
編輯
忘記提到該錯誤後的一段時間,只有在Visual Studio調試模式下僅出現。
您是否在使用某種可以進行這些調用的框架?如果您可以提供有關您正在使用的平臺/環境/工具的更多詳細信息,可能會有所幫助。在任何情況下,如果錯誤檢查是在第一次OpenGL調用時觸發的,則可以通過調用glGetError()來首先清除錯誤狀態,從而解決此問題。 –
其實我自己的框架最適合完美的時間。這是C#自帶頭文件。使用Windows 7,AMD R9 290.問題在於,調用隨機出現在不同的方法中,這些方法根本無法使用,而且在調試時也沒有幫助。 –
說真的,是誰投票結束這個問題?這是一個非常有效的OpenGL問題。這不是「我的代碼無法正常工作」的投訴。夥計們,如果你不明白這個問題,或者有疑問,就留下吧。 - ** Upvoted因爲對一個問題有效的問題其他人可能會跳閘進入爲好,我們希望他們能夠找到這一點,並鍵入它進入選擇的搜索引擎的答案,如果。** – datenwolf