GPUImageContext可以说是GPUImage的“心脏”,管理着OpenGL相关最核心的信息,如OpenGL上下文,OpenGL串行队列,着色器program缓存,framebuffer缓存等,是一个单例。下面是它类图的简化版:

简单说几点:
- GPUImageContext是单例,所有GPUImage操作应共用一个上下文;
- 所有GPUImage中与OpenGL相关的操作应在contextQueue中,以保证串行执行;
- 所有GPUImage中与OpenGL相关的操作前,应使用useAsCurrentContext先切到当前上下文;
- GPUImageContext中管理着着色器program,framebuffer,texture等缓存,可以减少创建和销毁的开销,详见源码。
网友评论