openGL error 跟踪

opengGL的开发比较麻烦的一点就是错误查找不好跟踪。glGetError()会返回最前面的一个错误码,注意这不一定是最后的gl函数调用所产生的错误码。opengl的错误码是按照先进先出的方式处理。

 

我在开发安卓播放器(MediaCodec + opengl)的时候遇到很糗的一件事,在rk3228运行的时候,黑屏,Trace出来一个warning:

bingTextureImage:clearing gl error 0x500. 开始的时候一直以为是glBindTexutre的错误,根据错误码,好像是不支持OES类型的纹理导致,以为是不是这个芯片不支持,很长时间,直到我看到了SurfaceTexture.UpdateTexImage()源代码才知道,报的警告是这个函数处理的,但是并不是这个函数有问题,而是前一次调用opengl的渲染函数(一堆)时产生的,它在这里做了清除(所以叫clearing)。所以查错集中在渲染部分,一个个的查,终于找到问题了。

 

有时候修正问题并不难,难的是“定位”问题在哪里,就行治病一样,你得知道病灶在哪,然后才能治病啊!

转载于:https://www.cnblogs.com/slowtech/p/6225294.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值