openGL error 跟踪

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

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

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

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

时间: 2024-11-08 19:26:33

openGL error 跟踪的相关文章

cocos2d-x android:opengl error 0502问题

首先出现这个问题在android上非常普遍,基本都是因为游戏切换到主界面再切回来造成的,出现在cocos2d-x 2.1.3-2.1.5这些版本最多. 出现这个问题的原因有以下几点: 1.长时间锁屏切回 2.home切出切回 3.使用notification切回 这里1.2可能跟内存有关,建议在onpause的时候清除缓存,注意不要在主线程意外的地方让游戏切回. 3这个问题是因为今天我刚好遇到比较深刻,其实就是在notification切回的时候没有回到游戏的activity造成的,出错的代码如

OpenGL ES2.0 入门经典例子

原文链接地址:http://www.raywenderlich.com/3664/opengl-es-2-0-for-iphone-tutorial 免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切勿进行商业传播.同时,转载时不要移除本申明.如产生任何纠纷,均与本博客所有人.发表该翻译稿之人无任何关系.谢谢合作! ps:非常感谢skingTree为我们提供的这篇翻译教程,感谢yy.小狼.北方加入我的教程翻译团队,谢谢你们! 教程截图: OpenGL ES 是

iOS OpenGL ES2.0 开发实例

本教程源码地址下载:https://github.com/wanglixin1999/HelloGL OpenGL ES 是可以在iphone上实现2D和3D图形编程的低级API. 如果你之前接触过 cocos2d,sparrow,corona,unity 这些框架,你会发现其实它们都是基于OpenGL上创建的. 多数程序员选择使用这些框架,而不是直接调用OpenGL,因为OpenGL实在是太难用了. 而这篇教程,就是为了让大家更好地入门而写的. 在这个系列的文章中,你可以通过一些实用又容易上手

opengl | openmesh 读取显示3d模型文件

操作 鼠标控制物体旋转移动,滚轮缩放 F1,F2,F3 可以更换显示文件 (file1:cow.obj file2:cactus.ply file3 : Armadillo.off) F4 更换显示模式 (wire,flat,flatlines) 截图 使用命令行显示当前状态 准备 openmesh的下载配置 下载最新的安装包 安装openmesh 配置vs 工具->选项->项目和解决方案->VC++目录 配置 包含文件和库文件,分别是openmesh\include和openmesh\

Android OpenGL ES 应用(一)

OpenGL已经成了3D的一个"标准" 因为它能跨平台,接口也比较丰富,几乎大部分的手机3D游戏都和OpenGL有关系. 当然还有微软有direct X 但只能在微软平台上使用. OpenGL底层是c/c++实现,JAVA中使用都是用封装好的类库.Android提供了以下几个接口包 可使用,基本能达到3D技术的要求. Android平台用OpenGL ES 这个子集来处理图像,现在OpenGL ES基本用2.0的了,很少再用1.0的,3.0还未流行起来. 首先编写判断Android设备

Python环境搭建之OpenGL

以下内容为我python OpenGl 环境搭建历程: win7 64位操作系统,python3.5.3 ,无其他相关. 直接cmd或PowerShell输入以下命令: pip install PyOpenGL PyOpenGL_accelerate 安装失败,提示需安装Microsoft Visual C++ 14.0,让我使用Microsoft Visual C++ build tools.并且后面给出了下载链接http://landinghub.visualstudio.com/visua

error:: undefined reference to symbol '__glewBufferSubData' 未定义的引用 以及 error: main.o: undefined reference to symbol 'glTexImage2D'

在把DSO移植到QT工程中,出现了 p,li { white-space: pre-wrap } /usr/bin/ld: KeyFrameDisplay.o: undefined reference to symbol '__glewBufferSubData' 报错,原因是.pro文件中没有加 GLEW库. 解决方案: 在.pro文件中加上这句: p,li { white-space: pre-wrap } ##### GLEW ##### LIBS += -lGLEW error: mai

WebGL and OpenGL Differences - 非2的次幂纹理的那些讲究儿

WebGL and OpenGL Differences WebGL is based on the OpenGL ES 2.0 specification, and retains the semantics of OpenGL ES in order to maximize portability to mobile devices. There are some significant differences in behavior of similar APIs between Open

Python OpenGL学习(1): 环境配置及错误篇

系统环境是:Ubuntu 14.04 个人首次接触OpenGL,学到哪就写到哪. 1.模块安装: sudo apt-get install python-openglpip install PyOpenGL PyOpenGL_accelerate (解释:这个安装是因为出现了该错误:OpenGL.error.NullFunctionError: Attempt to call an undefined function glutInit, check for bool(glutInit) bef