已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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 te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2020-2021中考化学金刚石石墨和C60综合经典题附详细答案
- 2026秋季国家管网集团建设项目管理公司高校毕业生招聘考试参考题库(浓缩500题)及答案详解(夺冠系列)
- 2026国网广西电力公司高校毕业生提前批招聘笔试参考题库浓缩500题及参考答案详解1套
- 2025国网贵州省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题及答案详解(夺冠)
- 2025国网四川省电力校园招聘(提前批)笔试模拟试题浓缩500题及参考答案详解一套
- 2026秋季国家管网集团山东分公司高校毕业生招聘考试参考题库(浓缩500题)及答案详解(基础+提升)
- 2025国网山东省高校毕业生提前批招聘(约450人)笔试模拟试题浓缩500题及答案详解(名校卷)
- 2026秋季国家管网集团液化天然气接收站管理公司高校毕业生招聘考试参考题库(浓缩500题)(含答案详解)
- 2026国网辽宁省电力公司高校毕业生提前批招聘笔试模拟试题浓缩500题含答案详解(黄金题型)
- 2026年张家口市农村信用社联合社秋季校园招聘笔试备考题库(浓缩500题)附答案详解(a卷)
- 全国统一市政工程预算定额 第8册 路灯工程
- 桥梁涂装专项施工方案
- 园林绿化工程绿化施工法律法规考核试卷
- 【大学课件】证券发行市场
- 新农村太阳能路灯照明设计方案
- 中国高血压防治指南(2024年修订版)解读课件
- 租赁共同经营协议模板
- GB/T 19609-2024卷烟用常规分析用吸烟机测定总粒相物和焦油
- 公路工程标准施工招标文件(2018年版)
- 养殖场买卖合同范本(2024版)
- 2024年安徽省初中(八年级)学业水平考试初二会考生物+地理试卷真题
评论
0/150
提交评论