GUI_Init();//GUI初始化
GUI_SetBkColor(GUI_RED);//设置背景颜色
GUI_Clear();//清除用户裁剪区
1、 GUI_Init做了3件主要事情。
①初始化上下文结构体
②初始化屏幕
③初始化视窗管理器
2、 GUI_SetBkColor做了2件事情。
①设置上下文结构体的背景颜色
②设置上下文结构体的背景色索引
3、 GUI_Clear在剪切算法后,用上下文结构体的背景色索引填充屏幕。
上下文结构体
struct GUI_CONTEXT {
/* LCD模块中的变量 */
LCD_COLORINDEX_UNION LCD;/* 0背景色索引 1画笔颜色索引 */
LCD_RECT ClipRect;//矩形框坐标
U8 DrawMode;//绘制模式
U8 SelLayer;//当前选择的层
U8 TextStyle;//文本风格
/* GL 模块中的变量 */
GUI_RECT* pClipRect_HL; /* High level clip rectangle ... Speed optimization so drawing routines can optimize */
U8 PenSize;//画笔宽度
U8 PenShape;//画笔形状
U8 LineStyle;//画线风格
U8 FillStyle;//
/* GUICHAR 模块中的变量 */
const GUI_FONT * pAFont;//当前字库
const GUI_UC_ENC_APILIST * pUC_API; /* Unicode encoding API */
I16P LBorder;
I16P DispPosX, DispPosY;//当前显示X,Y
I16P DrawPosX, DrawPosY;//画点的X,Y
I16P TextMode, TextAlign;//要设置的文本对齐方式
GUI_COLOR Color, BkColor; //前景色 背景色 /* 仅在更改设备和速度选择(缓存)时才需要 */
/* WM 模块中的变量 */
const GUI_RECT* WM__pUserClipRect;
GUI_HWIN hAWin;
int xOff, yOff;
/* MEMDEV 模块中的变量(仅限内存设备) */
const tLCDDEV_APIList* pDeviceAPI; /* function pointers only */
GUI_HMEM hDevData;
GUI_RECT ClipRectPrev;
/* Anitaliasing 模块中的变量 */
#if GUI_SUPPORT_AA
const tLCD_HL_APIList* pLCD_HL; /* Required to reroute drawing (HLine & Pixel) to the AA module */
U8 AA_Factor;
U8 AA_HiResEnable;
#endif
};