因爲以前的 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
第一篇就到此爲止,其餘我繼續摸索
引用: