OpenGL调试一直很痛苦,不仅初学者,即便多年的老手有时也被一些 隐晦的状态改变搞的莫名其妙。关于友好性调试,想到的两点:
1. 通过glGetXXX函数 获取opengl的状态参数,输出到控制台 。
可以参考这段code:http://my.csdn.net/my/code/detail/31828
2. 调试时将glut显示模式改成单缓冲模式GLUT_SINGLE,通过glFlush函数 刷新到屏幕,win7下 调试时虽然不能打开窗口,但是鼠标移到任务栏的应用程序标题栏时可以预览,第一时间看到绘制结果。 。
举个例子:
drawBackground(); // 画背景
glFlush(); // 预览背景效果
drawFirstLayer(); // 画第一层
glFlush(); // 预览第一层效果
drawSecondLayer(); // 画第二层
glFlush(); // 预览最终效果
这种方法在调试 帧缓存的混合模式时 十分有效。在单缓冲模式下调试OK后,再切换到双缓冲 屏幕不再闪烁~
参见 前一篇OpenGL错误调试和总结:http://blog.csdn.net/dizuo/article/details/7593637/