AC draft

一 GL ICS
1. 
Layer.h
Layer.cpp
LayerAndroid.h
LayerAndroid.cpp
MediaLayer.h
MediaLayer.cpp
MediaTexture.h
MediaTexture.cpp
TreeManager.h
TreeManager.cpp
GLWebViewState.h
GLWebViewState.cpp
TiledPage.h
TiledPage.cpp
PaintedSurface.h
PaintedSurface.cpp
TilePainter.h
MediaListener.h

2
//file or so?
SurfaceTexture.h //gui 
SurfaceTexture.cpp //gui
ISurfaceTexture.h
ISurfaceTexture.cpp
SurfaceTextureClient.h
SurfaceTextureClient.cpp

3.
MediaLayer:
1.SurfaceTexture
2.LayerAndroid
3.MediaTexture
4.TilesManager

1.SurfaceTexture: libgui.
2.LayerAndroid.
3.MediaTexture:
3.1MediaListener.
3.2SurfaceTextureClient

二 AC


From Nodes to RenderObjects
RendrObject present contents on a display surface by issuing draw call to GraphicsContext.
In Chrome most GraphicsContext calls become calls to an SkCanvas or SkPlatformCanvas. There is one GraphicsContext for the entire page.

From RenderOjbects to RenerLayers
Each RenderObject is associated with a RenderLayer either directly or indirectly via an ancestor 

RenderObject.
1.
RenderLayer tree hierarchy
the root Layer has two list. negZOrderList, child layers with negative z-indices(go above the current layers). posZOrderList child layers with positive z-indices (layers go under the current layer)

2
Trees
DOM tree, RenderObject tree, RenderLayer tree.

3
Render Path
software path and hardware accelerated path.

3.1.software:
a.Determines whether the layer intersects the damage rect for an early out.   
b.Recursively paints the layers below this one by calling paintLayer() for the layers in the 
negZOrderList. 
c.Asks RenderObjects associated with this RenderLayer to paint themselves.
d.This is done by recursing down the RenderObject tree starting with the RenderObject which created the layer. Traversal stops whenever a RenderObject associated with a different RenderLayer is found.
e.Recursively paints the layers above this one by calling paintLayer() for the layers in the 
posZOrderList.
RenderProcess->Shared Memory->BrowserProcess
Once all the RenderLayers are done painting into the shared bitmap the bitmap still needs to make it onto the screen.

3.2.Hardware Basics
some (but not all) of the RenderLayers get their own backing surface,layers with their own backing 

surfaces are called compositing layers
Layer to surface, A subsequent compositing pass composites all the backing surface onto the destination bitmap. It's a two-phase approach.
Further, since painting of the layers is decoupled from compositing, invalidating one of these layers only results in repainting the contents of that layer alone and recompositing.

In contrast, with the software path, invalidating any layer requires repainting all layers (at least the overlapping portions of them) below and above it which unnecessarily taxes the CPU RenderLayerCompositor-->GraphicsLayerClient

4
tree for Compositor
With accelerated compositing, we need a GraphicsContext for each compositing layer.
DOMTree/RenderTree/RenderLayerTree/GraphicsLayer()
Every single RenderLayer could paint itself into a separate backing surface could be a wasteful.
In webkit one of the following condition must to be met for a RenderLayer to get it's own compositing layer.
Layer has 3D or perspective transform CSS properties   
Layer is used by <video> element using accelerated video decoding  
Layer is used by a <canvas> element with a 3D context or accelerated 2D context
Layer is used for a composited plugin
Layer uses a CSS animation for its opacity or uses an animated webkit transform
Layer uses accelerated CSS filters 
Layer has a descendant that is a compositing layer  
Layer has a sibling with a lower z-index which has a compositing layer (in other words the layer is rendered on top of a composited layer)

5.where is GPU
the compositor will render the Layer to GPU. The compositor can't directly issue calls to the 3D apis prividered  by the OS(use D3D on Windows , opengl everywhere else.)
client.putBuffer--->Server.pickupandperform
(whole process:
layer->Surface, compositor->3D server,3D server->screen.

6.Tiling
rasterizing the RenderLayer to GPU as a texture, the RenderLayers can be arbitratily.
The solution is tiling. Each layer is split up into tiles. We determine which parts the layer are need on the GPU and  only paint+upload these tiles.


1.Display process
DOM node produces RenderObject. RenderObject paint the contents on a display surface.  RenderObject do this by call draw to GraphicsContext, GraphicsContext writes pixels into a bitmap.  Skia is GraphicsContext wrapper.
2.RenderObjects and RenderLayer
each RenderObject has a RenderLayer.
So, there are three trees.  DOM treeRenderObject treeRenderLayer tree.
3.Software Rendering Path
Traversing the RenderLayer hierachy renders a web page.
?How does RenderObject to GraphicsContext, and where is RenderLayer?
FrameView.paintContents->RenderLayer.paint->paintLayer->paintLayerContents->Render.paint()->SubRennder.paint()
4.Hardware path
in hardware accelerated path, RenderLayers has surface. So they will paint on the surface. 
The compositor work start with a RenderLayer tree and end up with a single bitmap.

5. GraphicsLayers
for hardware path, each RenderLayer has a GraphicsContext.
RenderLayer::updateCompositingAndLayerListsIfNeeded->compositor().updateCompositingLayers


a.GraphicsLayerAndroid owns LayerAndroid?

b.RenderLayer has RenderLayerBacking/RenderBoxModelObject;
c.RenderView has RenderLayerCompositor

IEEE 802.11ax又称为高效率无线标准(High-Efficiency Wireless,HEW),是一项制定中的无线局域网标准。标准草案由IEEE标准协会的TGax工作组制定,2014年5月成立,至2017年11月已完成D2.0。正式标准预计将在2019年发布。 11ax支持2.4GHz和5GHz频段,向下兼容11a/b/g/n/ac。目标是支持室内室外场景、提高频谱效率和密集用户环境下4倍实际吞吐量提升。 IEEE 802.11ax将于2019年某个时候公开发布。 设备在2018年国际消费电子展上被展出,最高速度为11 Gbit/s。 最新IEEE 802.11ax标准草案3.0版本,对于正在研究下一代无线局域网的小伙伴来说,这是最权威的资料了,欢迎大家下载学习。 This document is an unapproved draft of a proposed IEEE Standard. As such, this document is subject to change. USE AT YOUR OWN RISK! Because this is an unapproved draft, this document must not be utilized for any conformance/compliance purposes. Permission is hereby granted for IEEE Standards Committee participants to reproduce this document for purposes of international standardization consideration. Prior to adoption of this document, in whole or in part, by another standards development organization permission must first be obtained from the IEEE Standards Activities Department (stds.ipr@ieee.org). Other entities seeking permission to reproduce this document, in whole or in part, must also obtain permission from the IEEE Standards Activities Department.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值