openGL error 跟踪
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openGL error 跟踪相关的知识,希望对你有一定的参考价值。
opengGL的开发比较麻烦的一点就是错误查找不好跟踪。glGetError()会返回最前面的一个错误码,注意这不一定是最后的gl函数调用所产生的错误码。opengl的错误码是按照先进先出的方式处理。
我在开发安卓播放器(MediaCodec + opengl)的时候遇到很糗的一件事,在rk3228运行的时候,黑屏,Trace出来一个warning:
bingTextureImage:clearing gl error 0x500. 开始的时候一直以为是glBindTexutre的错误,根据错误码,好像是不支持OES类型的纹理导致,以为是不是这个芯片不支持,很长时间,直到我看到了SurfaceTexture.UpdateTexImage()源代码才知道,报的警告是这个函数处理的,但是并不是这个函数有问题,而是前一次调用opengl的渲染函数(一堆)时产生的,它在这里做了清除(所以叫clearing)。所以查错集中在渲染部分,一个个的查,终于找到问题了。
有时候修正问题并不难,难的是“定位”问题在哪里,就行治病一样,你得知道病灶在哪,然后才能治病啊!
以上是关于openGL error 跟踪的主要内容,如果未能解决你的问题,请参考以下文章
openGL之API学习(一九五)OpenGL error ‘invalid enumerant‘
我的OpenGL学习进阶之旅解决NDK使用OpenGL ES 3.0 的api报错:error: undefined reference to ‘glUnmapBuffer‘