Mae_display.c阅读笔记
1.思路分析
=========================================================================
1
EMMI Display Mechanism【EMMI显示原理】
EMMI ---> Enhanced MMI 可增强,可操作的应用层【人机界面(Man-Machine interface)】
2
Abstract 【摘要】
Display Overview【概述】
Display Update Mechanism 【原理】
·Invalidate 使窗口无效【初始化】
·Draw 绘制
·Update 更新
API Usage Example 【API 用法示例】
3
Display Overview
·IBitmap
代表一块以pixel【像素】形式存放资料的缓冲区,目前支持的格式有16bits,24bits以及32bits的color format【色彩格式】。相关操作界面定义于mae_bitmap.h中,可以对此缓冲区进行各种绘图操作,但与屏幕显示无关。
·IDisplay
工作区(Client Area):如输入文字、 绘图、影像等资料处理与显示区。
对应屏幕显示的操作,其中包含了一块与屏幕等大小的bitmap【位图】,称为MMI Display Buffer【MMI层显示缓冲区】,对此部分的操作预设都会绘制到这块buffer,然后反应到屏幕上,AP相关操作界面定义于mmi_common_display.h中。
Display除了Bitmap之外,还包含了Client Area【CA】的概念,也就是可绘制区域。所有绘图的动作仅能反应在此范围中,超出的部分不会画到,用来避免画到非预期的范围。下图表示出IDisplayCanvas,IDisplay,IBitmap的关系。IDisplay中的IBitmap预设是MMI Display buffer,不过是可以透过相关操作界面被置换掉的,置换掉之后,对于IDisplay的绘图行为就只会画到新的IBitmap上,而不会画到屏幕上。
·Widget
这边仅就Widget Draw的部分做简单说明,Widget的Draw行为通常会通过定义于mae_display.h的各种draw function,绘制到mmi buffer上,一般我们建议AP通过此方式来绘制到画面上,而避免直接通过第二点的mmi_common_display.h的操作方式来绘制。这与下面的Display update mechanism【更新显示原理】有关。
4
Display update mechanism