浏览器之硬件加速机制

硬件加速技术在WebKit中通过开启'ACCELERATED_COMPOSITING'宏实现,主要针对具有特定CSS属性的RenderLayer对象。当满足如3D转换、视频、Canvas、透明动画等条件时,对象变为合成层,利用GPU进行高效渲染。该机制减少了内存使用,优化了重绘性能,并对性能提升明显的元素使用独立层。硬件渲染过程包括确定合成层、绘制层及层的合成。
摘要由CSDN通过智能技术生成

硬件加速技术是指:使用 GPU 的硬件能力为帮助渲染网页, GPU 的作用主要是用来绘制 3D 图形并且性能特别好。

对于 GPU 绘图而言,当网页分层之后,部分区域的更新可能只在网页的一层或者几层,而不需要将整个网页都重新绘制。 通过重新绘制网页的一个或者几个层,并将它们和其他之前绘制完的层合成起来,既能使用 GPU 的能力,又能减少重绘的开销。

在 WebKit 中,只有把编译的 C 代码宏(macro)“ACCELERATED_COMPOSITING” 打开之后,硬件加速机制才会被开启,有关硬件加速的基础设施才会被编译进去。

如果一个 RenderLayer 对象具有以下特征之一,那么它就是合成层。
  • RenderLayer 具有 CSS 3D 属性或者 CSS 透视效果。
  • RenderLayer 包含的 RenderObject 节点表示的是使用硬件加速的视频解码技术的 * HTML5 “video” 元素。
  • RenderLayer 包含的 RenderObject 节点表示的是使用硬件加速的 Canvas 2D 元素或者 WebGL 技术。
  • RenderLayer 使用了 CSS 透明效果的动画或者 CSS 变换的动画。
  • RenderLayer 使用了硬件加速的 CSS Filters 技术。
  • RenderLayer 使用了剪裁(Clip)或者反射(Reflection)属性,并且它的后代中包括一个合成层。
  • RenderLayer 有一个 Z 坐标比自己小的兄弟节点,且该节点是一个合成层
这么做的原因有三个:
  1. 首先当然是合并
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值