11.5 Android显示系统框架_Vsync机制_代码分析
5.5 surfaceflinger对vsync的处理
buffer状态图画得不错:
http://ju.outofmemory.cn/entry/146313
android设备可能连有多个显示器,APP也有多个surface对应各个layer
显示器可能断开或者连接,layer可能内容更新、属性变化等,因此我们的SurfaceFlinger应该能处理各种各样的情况
SurfaceFlinger.h中有个结构体State及两个该结构体变量mDrawingState(正在使用或者上次使用的状态),mCurrentState(当前的或者被修改的状态)
通过比较mDrawingState和mCurrentState变量的layersSortedByz成员可知layer的增减,比较displays可知Display的增减(显示器的连接和断开)
layer.h中有个结构体State及两个该结构体变量mDrawingState(正在使用或者上次使用的状态),mCurrentState(当前的或者被修改的状态)
通过比较mDrawingState和mCurrentState变量的sequence成员可知layer属性是否发生变化,成员layerStack的值与SurfaceFlinger.h中的State结构体中的DisplayDeviceState结构体的layerStack相同,则layer显示在对应的display上
SurfaceFlinger收到Vsync消息后处理函数如下:
5.6 基础知识_Region及操作
Android Region代码分析
http://blog.csdn.net/fuyajun01/article/details/25551717
5.7 rebuildLayerStacks源码分析
按z轴值从大到小计算各个layer的可视区域、被遮盖区域, 并把脏区域、不透明区域汇总记入display中
5.8 DisplayDevice创建流程分析
5.9 使用opengl进行界面合成流程速览
5.10 hdmi