美文网首页OpenGL ES
第五节—关于GLKViewController

第五节—关于GLKViewController

作者: L_Ares | 来源:发表于2020-09-16 00:21 被阅读0次

本文为L_Ares个人写作,包括图片皆为个人亲自操作,如需转载请表明原文出处。

顾名思义,GLKViewController是个控制器,而且还是继承于UIViewController的控制器。所以它继承了UIViewController的一切方法,同时又添加了项关于OpenGL ES的方法合集。

不多说,直接介绍它在头文件中开放出来的属性和方法。

一、更新

1.更新你的视图控制器。

-(void)update;

2.利用代理方法更新你的视图控制器。

- (void)glkViewControllerUpdate:(GLKViewController *)controller;

代理方法一般在你显示每一个帧之前都会调用,可以添加想要的业务进去。

代理方法有个毛病,就是在GLKViewController已经被子类化,并且实现了-(void)update;函数之后,你再实现这个代理方法,他是不调用的。

顺带直接说另一个@optional的代理,上面那个必须实现,这个看业务需求。

当视图控制器暂停的状态更改时,在你的渲染循环暂停或者恢复之前,可以实现如下方法进行业务设置:

- (void)glkViewController:(GLKViewController *)controller willPause:(BOOL)pause;

二、配置帧速率

1. preferredFramesPerSecond

单位:帧/秒。

GLKViewController对象调用视图和更新视图内容的速率。也就是你更新和绘制视图每秒要多少帧。默认60帧/秒。

帧数越高,也就越流畅。

@property (nonatomic) NSInteger preferredFramesPerSecond;

2. framesPerSecond

单位:帧/秒

上面那个是你想要GLKViewController实现的视图调用和更新速率,这个是它实际上的速率。

@property (nonatomic, readonly) NSInteger framesPerSecond;

三、控制帧更新

1. paused

渲染是否暂停。

@property (nonatomic, getter=isPaused) BOOL paused;

2. pauseOnWillResignActive

当前程序重新激活活动状态时,视图控制器是否自动暂停渲染循环。默认为true。也就是说,如果设置为true,那么控制器将在应用程序收到willResignActive通知时暂停渲染循环。

@property (nonatomic) BOOL pauseOnWillResignActive;

3. resumeOnDidBecomeActive

当程序变为活动状态时,视图控制器是否自动恢复循环。默认为ture。也就是说,如果设置为true,那么控制器将在应用程序收到didBecomeActive通知时恢复循环。

四、获取有关View的更新信息

1. framesDisplayed

视图控制器自创建以来,发送的帧更新次数。

@property (nonatomic, readonly) NSInteger framesDisplayed;

2. timeSinceFirstResume

自视图控制器第一次恢复发送视图更新事件以来,经过的时间。

@property (nonatomic, readonly) NSTimeInterval timeSinceFirstResume;

3. timeSinceLastResume

自视图控制器上一次恢复发送视图更新事件以来,经过的时间。

@property (nonatomic, readonly) NSTimeInterval timeSinceLastResume;

4. timeSinceLastUpdate

自视图控制器上一次调用代理方法glkViewControllerUpdate以来,经过的时间。

@property (nonatomic, readonly) NSTimeInterval timeSinceLastUpdate;

5. timeSinceLastDraw

自视图控制器上一次调用display方法以来,经过的时间。

@property (nonatomic, readonly) NSTimeInterval timeSinceLastDraw;

相关文章

网友评论

    本文标题:第五节—关于GLKViewController

    本文链接:https://www.haomeiwen.com/subject/mefqyktx.html