前文 7.OpenGL学习笔记 - iOS上的纹理(不用GLKit框架)用的是OpenGL ES 3.0的接口,本文打算用2.0的接口绘制一张矩形纹理,并做了一些优化。
首先还是自定义view,view中重写layerClass:
+ (Class)layerClass {
return [CAEAGLLayer class];
}
一些用到的属性:
#import <OpenGLES/ES2/gl.h>
@implementation MyView
{
EAGLContext *_eaglContext;
CAEAGLLayer *_eaglLayer;
GLuint _colorBufferRender;
GLuint _frameBuffer;
GLuint _program;
}
一些基本设置:
- (void)setup
{
//设置放大倍数
[self setContentScaleFactor:[[UIScreen mainScreen] scale]];
//设置context
_eaglContext = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];
[EAGLContext setCurrentContext:_eaglContext];
//设置层
_eaglLayer = (CAEAGLLayer*)self.layer;
_eaglLayer.opaque = YES;
_eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:NO],
kEAGLDrawablePropertyRetainedBacking,
kEAGLColorFormatRGBA8,
kEAGLDrawablePropertyColorFormat, nil];
//设置buffe