WMS(三):Surface写入数据

160 阅读1分钟

创建Layer

书接上回 surfaceControl构造方法。

JNI去创建C层对象

client(surfaceFlinger的代理对象)->createSurfaceChecked

最终就是SurfaceControl 跨进程调用SurfaceFlinger.createLayer

image.png

接上回图如是,surface对应layer

image.png

有部分是到了creatBUfferQueueLayer

接口操作

第一个方法拿到canvas给view回执,先出队去操作。 image.png

一个View对应一个渲染节点。

image.png

总体流程

image.png

canvas调用管道去绘制draw这个frame,通过渲染引擎将对应内容写到surface上面来。

然后把数据 swapbuffers 也就是入队。

将这个数据传递给SurfaceFlinger

具体看这个图

image.png

HWC到SurfaceFlinger中间还有点细节看这里

image.png