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
最新文章
- table隔行变色
- Lintcode 469. 等价二叉树
- centos 6.5 升级内核 linux 3.12.17 (笔记 实测)
- 浅谈Oracle表之间各种连接
- 【07_226】Invert Binary Tree
- [数据结构与算法]栈Stack的多种实现
- C++的vector学习abc
- JavaScript高级 函数表达式 《JavaScript高级程序设计(第三版)》
- 将Xml字符串转换成(DataTable || DataSet || XML)对象
- 逐渐深入地理解Ajax
- Win7 扩容磁盘分区
- CodeForces 160D - Distance in Tree 树型DP
- iOS_11_tableViewCell使用alertView变更数据
- linux下利用curl监控web应用状态
- 实现Windows程序的更新
- X86给龙芯笔记本编译本地工具链(未完待续)
- NUMA导致的Oracle性能问题
- 使用PHPExcel将数据导出至Excel
- 剑指offer--5.用两个栈实现队列
- SqlServer查询中使用事务
热门文章
- 【Codeforces Round #460 (Div. 2) D】Substring
- [React] Validate Custom React Component Props with PropTypes
- SSH无password登陆配置
- Split Shape by Plane in OpenCASCADE
- 61.C++文件操作实现硬盘检索
- 洛谷P1722 矩阵 II
- finally不管有没有错都会运行 finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码
- 设置https验证方式
- google dataflow model 论文
- 【Hello 2018 A】 Modular Exponentiation