CHROME渲染合成框架.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:11 大小:29KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

CHROME渲染合成框架.doc

CHROME渲染合成框架.doc

预览

免费试读已结束,剩余 1 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Chrome渲染合成框架Chrome与Webkit的交互Chrome构建合成树Chrome更新过程Chrome合成过程Chrome渲染合成框架Chrome渲染合成框架Chrome渲染合成框架Chrome与Webkit的交互RenderLayerRenderLayerBackingCCLayerImplLayerChromiumGraphicsLayerGraphicsLayerChromiumRenderLayerBacking作为判断是否需要合成Layer的关键,是由RenderLayerCompositor的创建的,这个类会根据NeedsToBeCompositied这个接口判断是否需要为当前的RenderLayer创建RenderLayerBacking,同时也会创建与平台相关的GraphicsLayer,Chrome中就是GraphicsLayerChromiumChrome与Webkit的交互RenderLayerCompositorRenderLayerBackingNeedsToBeCompositiedGraphicsLayerCanvas与Webgl的处理Chrome与Webkit的交互canvasWebgl会根据canvasContext创建的ImageBuffer判断是否需要创建RenderLayerBackingRenderLayerRenderLayerBacking会根据webglContext的创建直接返回trueRenderLayerCompositor::requiresCompositingForCanvas在硬件合成模式下,Canvas通过创建ImageBuffer这个对象来初始化GLContex,VBO,FBO,Texture等GL相关数据,这个对象会在Canvas初始化Context的时候创建,Canvas对应的RenderLayer也会根据ImageBuffer的存在创建LayerBacking。Chrome与Webkit的交互CanvasRenderingContext2DImageBufferTextureGLContextFBOCreateAcceleratedCanvasCanvas的ContextWebgl只有硬件渲染的模式,通过创建DrawingBuffer来初始化一系列GL的操作,Webgl的Context与GL的Context类似,初始化的时候,也会创建ColorBuffer,DepthBuffer,StencilBuffer。(GLES2不能同时挂深度与模板两个缓冲区)Chrome与Webkit的交互webglrenderingContextDrawingBufferFBOTextureGLContextColorDepthStencilChrome中分为软件渲染和硬件合成渲染,后者是在当前网页中包含一个或多个需要合成的Layer时启用的,也就是说当RenderLayer树中包含有RenderLayerBacking的结点时,合成渲染就会启用。此时会初始化一系列和合成相关的对象,为后面的合成渲染做准备。Chrome与Webkit的交互RenderLayerCompositor初始化Chrome合成WebViewImplWebkitChromeChrome与Webkit的交互CCLayerTreeHostCCSingleThreadProxyCCLayerTreeHostImplLayerRenderChromiumFBOGLContext需要对网页进行合成渲染后,进行一系列合成需要的初始化操作Chrome构建合成树RenderLayerRenderBackingGraphicsLayerlayoutlayerChromium当网页执行Layout的时候,会根据当前网页若需要合成,则进行rebuildCompositingLayerTreerebuildCompositingLayerTreeRenderLayerCompositorChrome构建合成树RenderLayer树GraphicsLayer树LayerChromium树RenderLayerBackingcanvaswebglcanvas2DLayer