
SurfaceFlinger
文章平均质量分 78
介绍SurfaceFlinger的工作机制
一瓶布满
驱动的本质是描述并抽象硬件,然后为用户提供操作硬件的友好接口
展开
-
分析layer是否参与合成
本文详细分析了SurfaceFlinger中哪些layer不会被合成,哪些layer会被合成,以及是否合成的原理。详细分析了整个程序的流程。原创 2023-12-22 10:45:05 · 1398 阅读 · 2 评论 -
SurfaceFlinger处理事务
app向surfaceflinger提交事务之后,surfaceflinger会缓存事务;当vsync到来之后,会执行进行处理。onMessageInvalidate的主要功能:处理事务刷新图像。原创 2023-12-21 14:08:18 · 815 阅读 · 0 评论 -
SurfaceFlinger layer之间的对应关系
本文详细分析了SurfaceFligner中Layer流转的过程,以便于了解SurfaceFlinger的合成过程原创 2023-11-07 14:08:19 · 2118 阅读 · 0 评论 -
10 分析SurfaceComposerClient提交事务过程
分析SurfaceComposerClient提交事务的整个流程,以及SurfaceFlinger对应的处理机制原创 2023-11-06 19:24:50 · 1187 阅读 · 0 评论 -
07 深入理解surface unlockAndPost
app通过Surface unlockAndPost进行queueBuffer,进而调用onFrameAvailable;使用processNextBufferLocked进行Transaction事务提交到SurfaceFlinger,让SurfaceFlinger根据Transaction进行合成操作。原创 2023-11-03 16:20:24 · 629 阅读 · 0 评论 -
05 深入解析surfaceControl getSurface
SurfaceControl::getSurface()返回的实际是BBQSurface,BBQSurface继承Surface,可以使用Surface表示。BBQSurface是对生产者,handle的封装,其中包含了对buffer的操作。并且本文对FrameAvailableListener的初始化进行了简要阐述原创 2023-11-03 14:50:57 · 1119 阅读 · 0 评论 -
06 深入解析surface lock
本文主要讲述了surface lock的主要流程和作用原创 2023-10-30 19:48:41 · 470 阅读 · 0 评论 -
04 深入探究waitForService<ISurfaceComposer>
本文梳理了一下waitForService的内部机制,和Bpxxx的创建过程,并简单了解BpSurfaceComposer/BnSurfaceComposer之间的交互。原创 2023-10-24 20:10:16 · 656 阅读 · 0 评论 -
03 构造surfaceComposerClient
surfaceComposerClient的创建过程原创 2023-10-24 19:34:22 · 743 阅读 · 0 评论 -
02 最简单的SurfaceFlinger应用程序
获取屏幕大小 SurfaceComposerClient::getActiveDisplayMode(displayToken, &displayMode);获取要显示的屏幕,这里获取的是主屏SurfaceComposerClient::getInternalDisplayToken。设置surface属性;推图 surface->unlockAndPost()创建SurfaceComposerClient。创建SurfaceControl。向buffer里填充图像数据。原创 2023-10-24 10:59:07 · 1293 阅读 · 0 评论 -
09 SurfaceFinger layer创建过程
本篇讲述了app创建Surface时SurfaceFlinger主要做哪些工作原创 2023-10-19 20:28:48 · 1063 阅读 · 0 评论 -
08 surfaceflinger初始化
本文介绍了surfaceflinger的初始化流程,和一些重要的成员如Display,DisplayDevice,HWComposer的初始化过程原创 2023-10-13 08:53:59 · 608 阅读 · 0 评论 -
01 Android12 surfaceflinger详解
SurfaceFlinger是Android操作系统中的一个Service,它负责接收所有Window的Surface作为输入,并根据ZOrder、透明度、大小、位置等参数,计算出每个Surface在最终合成图像中的位置,然后交由CPU或GPU生成最终的显示Buffer,最后显示到特定的显示设备上原创 2023-10-11 22:57:41 · 1680 阅读 · 0 评论