Graphic & SurfaceFlinger
文章平均质量分 95
Graphic & SurfaceFlinger
Geralt_z_Rivii
Android WMS开发
https://juejin.cn/user/1240706244936952
展开
-
【硬件加速】3、DisplayList渲染过程分析【Android 13】
这次主要分析了DrawFrameTask的run函数的主要内容,即绘制流程从主线程切换到渲染线程后,渲染线程做了哪些工作:1)、之前我们构建RenderNode树的工作是在主线程上进行的,但是后续的绘制工作是在渲染线程上进行的,那么就需要将主线程收集到的RenderNode的信息同步到渲染线程,包括Properties和DisplayList等信息。2)、绘制之前,还需要向BufferQeueu请求一个图形缓冲区,对应BufferQueue的dequeueBuffer流程。原创 2023-05-19 11:35:55 · 927 阅读 · 0 评论 -
【硬件加速】2、DisplayList构建过程分析【Android 13】
这里翻译一下源码中RenderNode的定义。RenderNode用来建立硬件加速渲染View层级结构。每一个RenderNode包含了一个DisplayList,以及一个影响该DisplayList渲染的属性集合。默认情况下,RenderNodes 在内部用于所有视图,通常不会直接使用。RenderNode用于将复杂场景的渲染内容分成更小的部分,然后可以用更小的性能损耗来单独更新这些部分。更新场景的某部分只需要更新对应的DisplayList或者一小部分RenderNode的属性,而不用从头全部重绘。原创 2023-05-19 11:29:48 · 3672 阅读 · 1 评论 -
【硬件加速】1、硬件加速渲染环境初始化过程分析【Android 13】
一看就懂的 OpenGL 基础概念(2):EGL,OpenGL 与设备的桥梁丨音视频基础 - 知乎 (zhihu.com)我们知道OpenGL是一组可以操作GPU的API,然而仅仅能够操作GPU,并不能够将图像渲染到设备的显示窗口上。那么,就需要一个中间层,连接OpenGL与设备窗口,并且最好是跨平台的。于是EGL出现了,由Khronos Group提供的一组平台无关的API,保证了OpenGL ES的平台独立性。原创 2023-05-19 11:26:34 · 916 阅读 · 0 评论 -
【基础】2、Surface的创建【Android 12】
跟踪一下向mSurface和mSurfaceControl初始化的流程。原创 2023-05-18 20:24:37 · 3615 阅读 · 3 评论 -
【基础】1、App到SurfaceFlinger的连接【Android 12】
这个时候需要一张类图:1)、App通过IWindowSession接口和WindowManagerService进行交互,IWindowSession在服务端的实现是Session对象,每一个App进程在WindowManagerService都有一个对应的Session对象。原创 2023-05-18 19:59:20 · 502 阅读 · 0 评论 -
DimLayer实现和setRelativeLayer分析【Android12】
WindowManager为App提供了一个可以在指定的窗口下插入阴影图层或者模糊背景图层的方法,达到使该窗口之下的所有窗口变暗或者模糊的效果,本文首先分析一下这种效果的大致实现,接着探究一下实现过程中涉及到的相对Layer的设置流程。原创 2022-10-27 14:21:38 · 2275 阅读 · 2 评论