zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    bootmgr is conmpressed联想Z485
    数据库中用开窗函数和复制表结构
    左连接新认识
    sql中的日期查询
    一个数据表通过另一个表更新数据(在UPDAT语句中使用FROM子句)
    StarUML安装与Win7不兼容解决
    SQL中VARCHAR与NVARCHAR存储区别
    Cannot start service SPUserCodeV4 on computer
    SQL中空值与NULL区别
    验证码破解分析
  • 原文地址:https://www.cnblogs.com/liusiluandzhangkun/p/9209674.html
Copyright © 2011-2022 走看看