chromium渲染页面的重要概念

 

位图:内存中像素值的缓冲区(主内存或GPU的视频RAM)

纹理:位图意味着应用于GPU上的3D模型

纹理四边形:应用于非常简单模型的纹理:四角形多边形,例如矩形。当你想要的只是将纹理显示为一个扁平的矩形表面,可能被翻译(2D或3D)时很有用,这正是我们在合成时所做的。

失效(dirty)文件区域标记为脏,通常意味着需要重新绘制。样式系统有类似的失效概念,因此样式也可能变脏,但最常见的是指需要重新绘制的区域。

绘画:在我们的术语中,RenderObjects调用GraphicsContext API的渲染阶段,以自己的可视化表示形式

光栅化:给每个像素正确配色,也就是把屏幕空间的二维顶点转化为屏幕上的像素。在我们的术语中,填充备份RenderLayers的位图的渲染阶段。这可以在RenderObjects调用GraphicsContext时立即发生,或者如果我们使用SkPicture记录进行绘制并使用SkPicture回放进行光栅化,则可以在以后发生。

合成:在我们的术语中,渲染阶段将RenderLayer的纹理组合成最终的屏幕图像

绘图:在我们的术语中,实际将像素放到屏幕上的渲染阶段(即将最终的屏幕图像放到屏幕上)。

backbuffer:双缓冲时,渲染的屏幕缓冲区,而不是当前显示的缓冲区

frontbuffer 双缓冲时,当前显示的屏幕缓冲区,而不是当前正在显示的屏幕缓冲区

swapbuffers:切换前后缓冲区

帧缓冲区对象:可以渲染到屏幕外的纹理的OpenGL术语,就像它是普通的屏幕缓冲区(例如后备缓冲区)一样。对我们有用,因为我们希望能够渲染到纹理然后合成这些纹理; 对于FBO,我们可以假装为WebGL提供自己的框架,而不必担心页面上发生的任何其他事情。

损坏(damage):由于用户交互或程序化更改(例如JavaScript更改样式)而被“弄脏”的屏幕区域。这是更新时需要重新绘制的屏幕区域。

保留模式:一种渲染方法,其中图形系统维护要渲染的对象的完整模型。保留Web平台,因为DOM是模型,平台(即浏览器)跟踪DOM的状态,其API(即JavaScript对DOM的访问)可用于修改或查询当前状态,但浏览器可以随时从模型中呈现,而无需任何JavaScript指令。

立即模式:一种渲染方法,其中图形系统不跟踪整个场景状态,而是立即执行给予它的任何命令并忘记它们。要重绘整个场景,需要重新发出所有命令。Direct3D是立即模式,Canvas2D也是如此。

上下文虚拟化:GPU进程不一定为给定的命令缓冲区客户端创建实际的驱动程序级GL上下文。它还可以为多个客户端提供共享的实际上下文,并在解析其GL命令时将GL状态恢复到给定客户端的预期状态 - 我们将此阴影状态称为“虚拟上下文”。这在Android上用于解决某些驱动程序的错误和性能问题(缓慢的GL上下文切换,跨多个上下文的FBO呈现的同步问题,以及使用共享组时的崩溃)。 Chrome通过GPU黑名单文件在驱动程序子集上启用上下文虚拟化。

猜你喜欢

转载自blog.csdn.net/qq_22881435/article/details/88973217