symbian DrawDeferred drawnow 区别 (转)

1.

我们一般会调用DrawNow或DrawDeferred. 由它请求window server让当前绘制区域无效, 并传递事件给应用, 导致Draw函数被调用.

那么我们的绘制请求发给window server, 是作为命令的方式, 发过去, 因为绘制屏幕非常耗时耗电, 所以一般情况下, window server会缓存绘制命令, 并按照业务逻辑把一堆绘制命令组合到一起并发送重绘请求给应用.

对于普通应用, 这个规则有效的提高了系统的可用性, 早期symbian没有缓存时, 系统的可用性非常差, 感觉反应迟钝, 因为系统一直在不停的重绘屏幕, 加了这个规则后, 界面性能提升明显.

但是这个是不适合游戏视频类等实时显示任务, 因此os还是提供立刻刷新屏幕的命令, 这个就是DrawNow.

所以我们一般调用DrawDeferred, 系统按照逻辑安排重绘事件, 但是如果要立刻显示, 不要缓存, 就是用DrawNow


也就是说, DrawNow不需要缓存,会立刻显示, 而DrawDeferred需要缓存,不会立刻显示.

 

2.

drawnow每次只吊自己的draw,而drawdeffered会调父控件的draw和本身的draw

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值