首页 > 移动平台 > 详细

iOS渲染

时间:2015-12-07 20:32:58      阅读:268      评论:0      收藏:0      [点我收藏+]

技术分享技术分享

VSync:

  • iOS渲染由VSync信号驱动。
  • VSync有硬件始终驱动,频率为60hz。
  • VSync通过mach port通知APP的Runloop(可能通过调用CADisplayLink)。

 

APP内流程:

Core Animation(CA)在Runloop中注册 BeforeWaiting(即将休眠)和 Exit(即将退出)两个Observer(OB)。

OB收到消息后会通知CA更新内容,并推到缓冲区等待GPU调用。如:CADisplayLink回调后Runloop休眠前会调用BeforeWaiting OB。

 

CA & CG(core graphic/Quartz)

CG在主线程使用CPU渲染。

CA由ES驱动,不在主线程,异步绘图,GPU渲染。

 

On-Screen:

使用当前屏幕缓冲区。

Off-Screen:

  1. 开辟一个新的缓冲区。
  2. 使用CG生成一张Bitmap。如果UIView实现了drawRect方法,就会生成一张视图大小*scale的一张Bitmap,所以不要有空的drawRect方法。
  3. shouldRasterize(光栅化)、mask(遮罩)、shadow(阴影)、anti-aliasing(抗锯齿)、group opacity(不透明)会引起Off-Screen。

  开销大:

   创建缓冲区。

  上下文切换。

  

 

iOS渲染

原文:http://www.cnblogs.com/erhaier/p/5027255.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!