欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    CHROME渲染合成框架.ppt

    • 资源ID:2221676       资源大小:1.43MB        全文页数:20页
    • 资源格式: PPT        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    CHROME渲染合成框架.ppt

    Chrome渲染合成框架Chrome与Webkit的交互Chrome构建合成树Chrome更新过程Chrome合成过程,Chrome渲染合成框架,Chrome渲染合成框架,Chrome渲染合成框架,Chrome与Webkit的交互,RenderLayer,RenderLayerBacking,CCLayerImpl,LayerChromium,GraphicsLayer,GraphicsLayerChromium,RenderLayerBacking作为判断是否需要合成Layer的关键,是由RenderLayerCompositor的创建的,这个类会根据NeedsToBeCompositied这个接口判断是否需要为当前的RenderLayer创建RenderLayerBacking,同时也会创建与平台相关的GraphicsLayer,Chrome中就是GraphicsLayerChromium,Chrome与Webkit的交互,RenderLayerCompositor,RenderLayerBacking,NeedsToBeCompositied,GraphicsLayer,Canvas与Webgl的处理,Chrome与Webkit的交互,canvas,Webgl,会根据canvasContext创建的ImageBuffer判断是否需要创建RenderLayerBacking,RenderLayer,RenderLayerBacking,会根据webglContext的创建直接返回true,RenderLayerCompositor:requiresCompositingForCanvas,在硬件合成模式下,Canvas通过创建ImageBuffer这个对象来初始化GLContex,VBO,FBO,Texture等GL相关数据,这个对象会在Canvas初始化Context的时候创建,Canvas对应的RenderLayer也会根据ImageBuffer的存在创建LayerBacking。,Chrome与Webkit的交互,CanvasRenderingContext2D,ImageBuffer,Texture,GLContext,FBO,CreateAcceleratedCanvas,Canvas的Context,Webgl只有硬件渲染的模式,通过创建DrawingBuffer来初始化一系列GL的操作,Webgl的Context与GL的Context类似,初始化的时候,也会创建ColorBuffer,DepthBuffer,StencilBuffer。(GLES2不能同时挂深度与模板两个缓冲区),Chrome与Webkit的交互,webglrenderingContext,DrawingBuffer,FBO,Texture,GLContext,Color,Depth,Stencil,Chrome中分为软件渲染和硬件合成渲染,后者是在当前网页中包含一个或多个需要合成的Layer时启用的,也就是说当RenderLayer树中包含有RenderLayerBacking的结点时,合成渲染就会启用。此时会初始化一系列和合成相关的对象,为后面的合成渲染做准备。,Chrome与Webkit的交互,RenderLayerCompositor,初始化Chrome合成,WebViewImpl,Webkit,Chrome,Chrome与Webkit的交互,CCLayerTreeHost,CCSingleThreadProxy,CCLayerTreeHostImpl,LayerRenderChromium,FBOGLContext,需要对网页进行合成渲染后,进行一系列合成需要的初始化操作,Chrome构建合成树,RenderLayer,RenderBacking,GraphicsLayer,layout,layerChromium,当网页执行Layout的时候,会根据当前网页若需要合成,则进行rebuildCompositingLayerTree,rebuildCompositingLayerTree,RenderLayerCompositor,Chrome构建合成树,RenderLayer树,GraphicsLayer树,LayerChromium树,RenderLayerBacking,canvas,webgl,canvas2DLayerChormium,webglLayerChromium,canvasRenderingContext,canvas2DlayerChromium和webglLayerChromium分别作为对应的canvasRenderingContext的PlatformLayer,在构建LayerChromium树的时候将其加入,RenderLayerBacking:updateGraphicsLayerConfiguration:,Chrome构建合成树,CanvasRenderingContext,RenderLayerBacking,GraphicsLayer,LayerChromium,canvasLayerChromium,webglLayerChromium,Chromium中更新Layer的Rect主要是在CCLayerTreeHost这个类的UpdateLayers接口中做的,主要流程:,Chrome更新过程,根据刷新区域计算需要更新的LayerChromium,根据刷新区域计算需要更新的Layer区域,调skia画软件部分,canvas执行flush操作,对软件部分进行分块,计算每块Tile更新区域,Chrome更新过程,calculateDrawTransformsAndVisibility,calculateDrawTransformsAndVisibilityInternal,walkLayersAndCalculateVisibleLayerRects,paintLayerContents,prepareToUpdate,paintLayer,paintContentsIfDirty,CCLayerTreeHostCommon,CCLayerTreeHost,Canvas2DLayerChromium,TiledLayerChromium,RenderLayer,CCLayerTreeHost:UpdateLayers,Chrome更新过程,Update,CCSingleThreadProxy:doCommit,updateTextureRect,CCTextureUpdater,BitmapCanvasLayerTextureUpdater,Upload,LayerTextureSubImage,TexSubImage2D,GL,这些操作是将软件绘图部分的Bitmap导入到需要更新的Tile的Texture中,Chrome更新过程,LayerChromium树,CCLayerImpl树,TreeSynchronizer:synchronizeTrees,在docommit的最后,会将CCLayerTreeHost下管理的LayerChromium树信息同步到CCLayerHostImpl管理的CCLayerImpl树上,为后面DrawLayers的合成绘制做准备。,canvas,webgl,TextureId,TextureId,Chromium合成,drawLayers,calculateRenderPassed,DrawQuad,CCLayerTreeHostImpl,LayerRenderChromium,DrawCanvasQuad,DrawTileQuad,GL,绘制前将CCLayerImpl转化成Quad类型,然后根据Layer的不同类型,调用不同的DrawQuad进行绘制,最后将每块Layer的Texture合成到要显示到屏幕上的FBO上,需要注意的是,这里的GL操作是由合成的Context操作的,之所以可以绑定之前Context下的Texture,是因为使用了sharegroup的机制。,Chromium合成,GLContext,GLContext,Texture,Texture,Texture,Texture,canvas,Compositor,sharegroup,Chrome合成,合成FBO,ReadBack,swapbuffer,屏幕,最终显示到屏幕上有两种方式,一种是将FBO中合成的数据通过GLReadBack读出来,通过SKIA绘制上屏;还有一种是通过GL的SwapBuffer直接上屏,后者的效率会更高,将合成数据显示到屏幕上,

    注意事项

    本文(CHROME渲染合成框架.ppt)为本站会员(仙人指路1688)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开