OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4490|回复: 0

一个彩屏刷屏的问题

[复制链接]

14

主题

80

帖子

1

精华

中级会员

Rank: 3Rank: 3

积分
339
金钱
339
注册时间
2013-1-1
在线时间
6 小时
发表于 2013-4-16 20:30:28 | 显示全部楼层 |阅读模式
第一次用ucGUI.....我承认我钻牛角尖了,遇到一些可能我们根本不需要去关心的问题,希望各位牛人能指教指教。

虽然ucGUI系统已经帮我们做了很多事情,但我对彩屏刷屏问题还是存在一点好奇,例如我先在背景画了一张图片(图1),然后我又再上面画了一张(图2),然后我拖动图2离开图1,图1依然全图留在背景上面,然后我就自己有两个想法:

第(1),液晶屏每秒不停地更新界面,例如每秒刷24帧(人眼识别范围),每次刷屏都是先画出底层图片,再画出上层图片。这样就实现拖动效果了。

第(2),是画图2的时候,先把图2所要覆盖的地方的背景全部像素读出来,存在某个地方,然后把图2画上去,然后拖动的时候把存起来的还原,然后再用上面的方法在新的地方画出图2。。。

然后去网上查了一下资料,大多资料都是说第二种,还有图片异或,异或法就是根据“同0异1”的方法把一张图片的原图和底图异或到背景上去,有助于屏蔽图片周围不需要的像素,大概就相当于遮罩效果吧。

看来第一种不符合实际啊?莫非电脑的显示器刷屏也是这样的?之前我看到这个我还一直以为显示器是以第一种想法刷屏的呢。一直以为60Hz是一秒刷60张。此时心都碎了。


因为我暂时只是运行了ucGUI的Demo而已,其他还没做过。所以现在只是突然发现问题,先发帖,看看大家牛人们的意见,站在巨人的肩膀上,嘿嘿。


我做的第一个测试:
既然说是异或法,或者读图法,那么读点函数必须用到了,所以我先把读点函数给注释掉了,然后运行鼠标移动和“hello world”的程序,果然,鼠标移动过的地方留下黑色的鼠标痕迹,估计没读点就默认黑色了。(这个可以理解)




第二个测试:
我把读函数去掉了,然后运行ucGUI的Demo....然后发现右下角和右上角的那两个两个窗口没有刷新的感觉。因为如果有刷新应该有明显的刷新感,但它们一动不动,任他们背后的图片刷得热火朝天,翻天覆地,就是没变化...除了下面的进度条那一行,没错,是行。。有变化,其他的几乎没刷过。我把鼠标一动到上面“划”了几条黑线证明了这一点......

(第二个测试的这个问题我暂时无法理解,希望大家能指点。) 允许我我大胆想想一下:会不会是GUI窗口的时候有检查时候也有优先级?用来区分谁高谁低?然后如果有顶层窗口存在,就有的顶层窗口的地方不刷,而是存到窗口的内存里,然后上层窗口移开的时候刷回去?不然为啥背景都刷了全屏,而且刷了好多次,上层的窗口却没被影响呢,而且还不用重刷.(或许仅仅是我推测而已)...


我想我还是深入用用ucGUI界面的其他函数,和多看看手册好了,因为我才用不久。然后或许这些问题是我们不应该去考虑的,就怕我自己钻牛角尖却不知道。希望大家能指点指点。有哪方面的书籍可以参考参考呢...?






正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-21 05:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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