因为以前的 SnapShow 的项目,大量的接触了OpenGL ES,而后发现其调试很是的困难。
以前我用过苹果Grhapic Tools套件里的OpenGL Shader Builder,算是能够勉强可以看到OpenGL 绘制的结果,可是离一个真正意义上的调试工具还差的太远。html
固然随着这几年iOS的快速发展,Xcode也是突飞猛进,咱们能够看到苹果在这里的不断努力。
在Xcode4.2 以后,apple加入了OpenGL ES Frame Capture。
在Xcode5.0 以后,apple加入了一个新的调试openGL的工具,OpenGL ES Frame Debugger,查阅过文档以后才知道怎么去使用它。ios
使用它必须知足条件:
支持OpenGL ES 3.0 的API的设备才能使用OpenGL ES frame debugger
而后目前支持OGL ES 3.0 的设备只有segmentfault
虽说必需要与OpenGL ES 3.0的API兼容,可是EAGLContext使用的版本不须要是3.0,2.0就能够了。api
而后这个工具支持的几个特性:xcode
而后咱们来逐个看这些工具怎么使用app
首先点开Debug,选择 Capture OpenGL ES Frame工具
咱们能够看到整个Debug界面会变成ui
而后来看看各个模块
经过切换标签,咱们能够将下面的标签切换到GL Contextspa
这个还能够从Assistant Editor里面看到Bound GL Objects,更加直观debug
而后很是重要的一个功能就是实时的调试Program Shader
双击下面的图标
咱们能够看到这样的界面
而后你就能够实时的改写这个fragment shader,而后点左下角的刷新按钮,能够在预览界面里面当即看到renderBuffer的变化。
好比我准备改一下上面的fragment shader,
改写以前renderbuffer的预览以下:
如今我将shader改写为:
varying lowp vec4 colorVarying; void main() { gl_FragColor = mix(vec4(1.0, 1.0, 0.0, 1.0), colorVarying, 0.3); }
而后咱们就能够看到预览就变为
OK
第一篇就到此为止,其余我继续摸索
引用: