野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9316|回复: 3

自制嵌入式GUI第4篇

[复制链接]
发表于 2017-11-28 21:30:50 | 显示全部楼层 |阅读模式
过了好久,之前一段时间在焦虑找工作的事情,虽然结果也不怎么样。
先放出现在最新的照片(虽然看样子没什么变化,其实内部发生了翻天覆地的变化)
1.从写了绘图函数
2.添加了无效区机制
2.使用了矩形切割算法
201711281.png
在这一周遇到了一个一直很难解决的问题,就是关于覆盖刷新的问题。
如图:(怎么就刷新button ,还要继续保证继续被覆盖区域覆盖)
201711282.png
之前使用的是当刷新下面的button的时候,就把所有的覆盖区都刷新一遍,但是这样不实际,要是覆盖区特别大呢?刷新就会出现闪屏。
相信其他GUI一定不是这么做的。
后来我引入了无效区,把覆盖的区域设为无效区,每次刷新时只刷新不是无效区的区域。
如图:
201711283.png
剩下就是一个多边形,这时候就是用矩形切割了。具体实现就不说了(我做的有点复杂,有兴趣自行百度。)
这样就切割成多个矩形,然后依次打印。
201711284.png

当然,要想回复被覆盖的区域,矩形切割依然有效,对覆盖区进行切割,就可以只刷新被覆盖的区域。
以上的想法都必须建立在重绘绘图函数的情况。(一脸懵逼
这样被覆盖的控件如何改变都不会影响到上面的控件了。
如果有兴趣下载看看,一定比之前好很多。

废话不多说直接上地址:
gitHub:https://github.com/909452726/TGUI
百度云:链接:https://pan.baidu.com/s/1jHNqJjC  密码:dcnm
码云:https://gitee.com/null_834_4211/TGUI
回复

使用道具 举报

发表于 2017-11-29 08:58:59 | 显示全部楼层
越来越强大了
回复 支持 反对

使用道具 举报

发表于 2017-11-29 09:03:14 | 显示全部楼层
内存消耗怎样????
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-11-29 09:20:59 | 显示全部楼层
hehuibo 发表于 2017-11-29 09:03
内存消耗怎样????

因为我这个上面还有一些其他的程序,不是特别好确定,占用比较大 大致堆有10k,栈有8k(因为用到了递归,以后改成循环栈应该就没那么大了)
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-1 10:33 , Processed in 0.054458 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表