美文网首页
Core Animation在渲染中的角色

Core Animation在渲染中的角色

作者: K哥的贼船 | 来源:发表于2020-07-05 21:46 被阅读0次

CoreGraphics、Core Animation和CoreImage并不是通过OpenGL ES/Metal进行封装的,但是他们都是通过OpenGL ES/Metal去驱动GPU渲染的,Core Animation本质上可以理解为一个复合引擎,主要职责包含:渲染、构建和实现动画。

我们都知道layer是UIView的属性之一,负责渲染和动画,提供可视化的内容呈现,UIView则是对CALayer部分功能进行封装,同时负责了交互事件的处理。所以他们的区别是:

  • view:
  1. 绘制和动画
  2. 布局和子view的管理
  3. 点击事件的处理
  • layer
    只负责渲染和动画

不管在屏幕上显示的按钮,图片,文本等控件在layer里都是contents里的位图。

OpenGL本身跨平台通用性的特点决定了它并不提供窗口载体去显示,苹果的CoreAnimation则提供给它一个layer载体。无论Mac OS的APPKit或者iOS的UIKit,都是通过Core Animation去让OpenGL ES/Metal去驱动GPU,由于手机App和Mac的布局并不一致,所以他们解释了layer是不会迎合任何的布局。

view和layer都是职责分离的,在APPKit中用户交互是根据键盘、鼠标、触摸板输入响应的,而UIKit是根据手机屏幕触摸响应的,所以交互的职责并不能交给layer来做。

Core Animation的渲染流水线

所有的UIButton,UILabel都会来到Core Animation来绘制,然后接收事件处理HandleEvents,对显示内容解码,通过Commit Transaction提交给CPU解码后给Render Server,等待下一个RunLoop来进行绘制回调,这些都是在Core Animation中完成的。之后再将解码的数据交给OpenGL,调度GPU显示渲染流程(通过顶点数据=>顶点着色器=>片元着色器=>等待下一个Runloop=>显示)。

相关文章

  • Core Animation在渲染中的角色

    CoreGraphics、Core Animation和CoreImage并不是通过OpenGL ES/Metal...

  • Core Animation在渲染中扮演的角色

    概述 Core Animation是苹果一个提供渲染和动画的框架,从苹果官方的文档可以知道,Core Animat...

  • iOS Rendering 三: iOS中的渲染架构

    各个渲染框架 UIKit、SwiftUI、Core Animation、Core Graphics、Core Im...

  • iOS Core Animation

    一、Core Animation 类简介 Core Animation是 iOS 和 OS X 平台上负责图形渲染...

  • iOS 渲染流程

    图形渲染技术栈 如图,App 使用Core Graphics、Core Animation、Core Image ...

  • iOS离屏渲染

    通过iOS图片渲染过程初探、Core Animation渲染过程中我们简单的介绍了渲染的原理,在本章我们探讨下,渲...

  • Core Animation介绍

    关于Core Animation Core Animation是可在iOS和OS X上使用的图形渲染和动画基础结构...

  • iOS 绘图介绍

    1 简介 本地渲染手段(也称为 Quartz)包括: Core Graphics, Core Animation ...

  • iOS渲染流程

    下图所示为图形渲染技术栈,App 使用Core Graphics、Core Animation、Core Imag...

  • 渲染视图

    渲染视图的核心是:Core Animation 底层->上层:GPU->(OpenGL、Core Graphic)...

网友评论

      本文标题:Core Animation在渲染中的角色

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