iOS:用openGLES绘制各种常见图案

本文介绍了在iOS应用中如何使用openGLES进行图形绘制,包括初始化openGL环境、设置上下文和缓冲区,以及通过着色器配置文件绘制三角形、矩形和圆形的方法。通过示例代码展示了如何实现颜色渲染和视口设置。
摘要由CSDN通过智能技术生成

首先是初始化openGL
设置layer

  • (void)setupLayer
    {
    CAEAGLLayer *eaglLayer = (CAEAGLLayer *)self.layer;

// CALayer 默认是透明的,必须将它设为不透明才能让其可见
eaglLayer.opaque = YES;

// 设置描绘属性,在这里设置不维持渲染内容以及颜色格式为 RGBA8
eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithBool:YES], kEAGLDrawablePropertyRetainedBacking, kEAGLColorFormatRGBA8, kEAGLDrawablePropertyColorFormat, nil];
//设置放大倍数
[self setContentScaleFactor:[[UIScreen mainScreen] scale]];
}
设置上下文

  • (void)setupContext{
    // 指定 OpenGL 渲染 API 的版本,在这里我们使用 OpenGL ES 2.0
    _context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES2];

// 设置为当前上下文
if (!_context || ![EAGLContext setCurrentContext:_context]) {

NSLog(@"Failed to initialize OpenGLES 2.0 context");

exit(1);

}
}
设置缓冲区

  • (void)setupBuffer{
    glDeleteFramebuffers(1, &_viewFramebuffer);

_viewRenderbuffer = 0;

glDeleteRenderbuffers(1, &_viewRenderbuffer);

_viewRenderbuffer = 0;

glGenFramebuffers(1, &_viewFramebuffer);

glGenRenderbuffers(1, &_viewRenderbuffer);

// 设置为当前 framebuffer
glBindFramebuffer(GL_FRAMEBUFFER, _viewFramebuffer);

glBindRenderbuffer(GL_RENDERBUFFER, _viewRenderbuffer);

// 为 颜色缓冲区 分配存储空间
[_co

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值