1.GLProgram--加載vertex和fragment的shader。app
好處是徹底將shader模塊的加載過程獨立出來。函數
學習:每一個函數處理一件事,且函數的粒度恰好學習
在glLinkProgram後就能夠將shader給清除掉ui
輸出shader和program的log也值得借鑑this
2.GPUImageContext--管理EAGLContext ,因爲它是一個單例,用它來管理一些公共屬性,例如contextQueue,framebufferCachelua
學習:將EAGLContext的setCurrentContext方法提取出來,用一個簡單的類方法來封裝,很是實惠的一個注意。因爲此方法調用很是頻繁,讓咱們在具體濾鏡的實現過程當中,忽略EAGLContext。(注意,在初始化GLProgram前,必須肯定currentContext已配置正確)spa
A context encapsulates all OpenGL ES state for a single thread in your app. When you call any OpenGL ES API function, OpenGL ES evaluates it with respect to the calling thread’s current context. Because OpenGL ES functions require a current context, you must use this method to select a context for the current thread before calling any OpenGL ES function.it