首页 > 试题广场 >

设置CALayer的哪些属性,可能会触发离屏绘制

[不定项选择题]
设置CALayer的哪些属性,可能会触发离屏绘制
  • masksToBounds(遮罩)
  • shouldRasterize(光栅化)
  • allowsGroupOpacity(组不透明)
  • shadowColor(阴影)
  • transform(3D变换)
1、cpu负责组织数据,gpu负责顶点着色、图元装配、几何着色、光栅化、片段着色、混合。
2、cpu+gpu处理完成之后,将图像信息保存到帧缓存中,屏幕电子枪向帧缓存中拿数据,每秒拿60次,则是60FPS,每秒120次,则是120FPS. 为了提升流畅度,系统一般会设多个缓存,把已经准备好的数据放到备用缓存中,拿完当前缓存,屏幕驱动会把指针指向备用缓存,快速切换。如果数据供应不上,则会出现掉帧。ios默认开辟两个缓存区。
3、离屏渲染指的是需要在两个或两个以上的缓存区中渲染。由于每一个缓存区中,都需要有渲染的上下文,所以有空间上的损耗,和时间切换上的损耗。拿ios两个缓存区来说,双缓冲区是为了支持多个处理任务的。如果单个任务就需要两个缓冲区,两个渲染完成之后,还需要进行合成,然后再统一给到屏幕,所以一般是低效的。 不够对于多次需要某一种特效的时候,如果进行设置,则可以处理一次,而多次复用,进行损失的降低。比如layer的多个sublayer都需要光栅化。
4、能够触发光栅化的操作有:
shouldRasterize(光栅化)
masks(遮罩)
shadows(阴影)
edge antialiasing(抗锯齿)
group opacity(不透明)
编辑于 2022-11-29 16:16:23 回复(0)

离屏渲染的触发方式

设置了以下属性时,都会触发离屏绘制:

shouldRasterize(光栅化)

masks(遮罩)

shadows(阴影)

edge antialiasing(抗锯齿)

group opacity(不透明)

复杂形状设置圆角等

渐变

来自https://www.jianshu.com/p/f62e81b72bba
发表于 2022-02-22 17:16:29 回复(0)