自制嵌入式GUI 第4篇

自制GUI前1-3篇:https://blog.csdn.net/shungry/article/details/78573355

自制GUI第5篇:https://blog.csdn.net/shungry/article/details/85246023

———————————————————————分割线—————————————————————————

过了好久,之前一段时间在焦虑找工作的事情,虽然结果也不怎么样。
先放出现在最新的照片(虽然看样子没什么变化,其实内部发生了翻天覆地的变化)
1.从写了绘图函数
2.添加了无效区机制
2.使用了矩形切割算法

201711281.png (148.11 KB, 下载次数: 0)

下载附件

8 分钟前 上传


在这一周遇到了一个一直很难解决的问题,就是关于覆盖刷新的问题。
如图:(怎么就刷新button ,还要继续保证继续被覆盖区域覆盖)

201711282.png (82.11 KB, 下载次数: 0)

下载附件

8 分钟前 上传


之前使用的是当刷新下面的button的时候,就把所有的覆盖区都刷新一遍,但是这样不实际,要是覆盖区特别大呢?刷新就会出现闪屏。
相信其他GUI一定不是这么做的。
后来我引入了无效区,把覆盖的区域设为无效区,每次刷新时只刷新不是无效区的区域。
如图:

201711283.png (80.05 KB, 下载次数: 0)

下载附件

8 分钟前 上传


剩下就是一个多边形,这时候就是用矩形切割了。具体实现就不说了(我做的有点复杂,有兴趣自行百度。)
这样就切割成多个矩形,然后依次打印。

201711284.png (84.21 KB, 下载次数: 0)

下载附件

8 分钟前 上传



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

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

猜你喜欢

转载自blog.csdn.net/shungry/article/details/78659613