9.OpenGL学习笔记 - 在iOS上添加纹理2(不用GLKit框架)

本文介绍了如何在不使用GLKit框架的情况下,使用OpenGL ES 2.0接口在iOS上绘制矩形纹理,并进行了高清屏适配。通过自定义视图、设置内容缩放因子,确保图片在高清屏上的清晰显示。文章还展示了加载图片到内存、绑定纹理的过程,并使用EBO提高渲染效率。同时提供了顶点着色器和片段着色器的代码示例。
摘要由CSDN通过智能技术生成

前文 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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值