ucgui GUI_MEMDEV_Draw()

1.GUI_Context

    这是一个全局的变量,程序运行时,会不断来查询这个变量的内容,从而改变程序的流向。 简单理解为程序运行中的环境变量。memdev,lcd的api函数,前景色,背景色窗口指针函数参数等。

2.struct GUI_MemDev 这个结构体就是用来描述一个存储设备。但是这个结构不包含要贴到lcd屏上的颜色信息,因为这些内容安排在memdev变量的后面。

3.int GUI_MEMDEV_Draw(GUI_RECT* pRect, GUI_CALLBACK_VOID_P* pfDraw, void* pData, int NumLines, int Flags)

 numlines为0时,函数会根据pRect参数来自动分配numlines的大小。pRect所指矩形的大小即是memdev最终要贴到屏幕上的大小。函数先创建一个memdev,就是根据pRect来分配一个合适大小的内存。内存在GUI_Heap这个堆内然后选择memdev做为操作的设备。GUI_MEMDEV_SELECT( )这个函数会更新GUI_Context 这个变量的内容。因为使用GUI_MEMDEV_Draw()了这个函数 ,肯定已经定义了GUI_SUPPORT_MEMDEV这个宏,所以在绘制一些矩形,圆等基本图形时,操作函数改变了 具体见gui_private.h这个文件。

调用回调函数,将要画的内容画到memdev中。memdev的大小:memsize = ysize * BytesPerLine + sizeof(GUI_MEMDEV);GUI_MEMDEV只是一个描述memdev的结构,它放在这块内存的最前面。内存后面的ysize * BytesPerLine大小的空间就是放回调函数画的内容。这些内容实际上就是一些索引颜色值。准备好数据后,将数据贴到屏上,最后做些收尾工作。

在分析GUI_MEMDEV_CreateEx()这个函数时,有一个GUI_USAGE_BM的结构,实在让人费解。留待以后解决。





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值