中级会员
 
- 积分
- 339
- 金钱
- 339
- 注册时间
- 2013-1-1
- 在线时间
- 6 小时
|
第一次用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界面的其他函数,和多看看手册好了,因为我才用不久。然后或许这些问题是我们不应该去考虑的,就怕我自己钻牛角尖却不知道。希望大家能指点指点。有哪方面的书籍可以参考参考呢...?
|
|