OpenGL日常-纹理帧图(上)


大家好,欢迎来到听风的OpenGL日常。

写在前面

本文主要代码

上篇主要讲OpenGLES FrameBuffer的使用;理解本篇主要理解下面这幅图,所以文中会再出现一次:

002.png-90kB

快速添加到View

我们要自己渲染页面,建一个单视图的App,接下来创建一个TFGLView:UIView,令该View指针指向视图控制的view

@interface ViewController ()
@property (nonatomic, strong) TFGLView* mView;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.mView = (TFGLView*)self.view;
}
@end

添加OpenGLES上下文

OpenGLES在iOS端有自己的实现,直接在Build Phases里添加:

001.png-34.9kB

TFGLView里引用,这里我们使用ES2.0版本:

#import <OpenGLES/ES2/gl.h>

OpenGLES绘制在View的特殊图层CAEAGLLayer:CALayer上,由于它是CALayer的子类,所以直接更改ViewlayerClass

+(Class)layerClass
{
    return [CAEAGLLayer class];
}

同修改VC的view类似,我们也要对layer作修改,设置全局layer属性:

@property(nonatomic,strong)CAEAGLLayer *myEagLayer;

另外我们需要获取上下文来保存OpenGL的状态:

@property(nonatomic,strong)EAGLContext *myContext;

接下来在layoutSubviews方法中我们设置图层以及上下文;

  1. 图层
-(void)setupLayer
{
    self.myEagLayer = (CAEAGLLayer *)self.layer;
    /*
     kEAGLDrawablePropertyRetainedBacking 表示绘图表面显示后,是否保留其内容
     kEAGLDrawablePropertyColorFormat 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值