关于裁剪器以及窗口状态

刚才仔细研究了一下裁剪器
发现原来 BltFast是不能作用于有裁剪器的页面上的...失策失策,都怪以前没研究就直接抄代码。
所以在窗口模式下模拟全屏的Flip的话,就需要用Blt操作将BufferSurface Blt 到主Surface上边来。

那为什么不干脆跳过裁剪器这一步直接就用BltFast Copy到窗口的客户区呢?

我想这里大概有一个窗口之间互相遮盖的原因,如果不用裁剪器自动管理窗口的裁减区域,就可能出现游戏窗口被其他窗口遮盖一部分,但是游戏画面却把那个在游戏窗口之上的窗口画花了。看起来就像画面漂浮在屏幕的最上层,而不是贴着游戏窗口。那样的效果我好像看过在一些媒体播放器上出现过。

不过现在我的游戏设计到是:如果它不是当前活动窗口,则不执行游戏主循环。

这个是要改的,因为网络通讯应该是放在游戏主循环之中,如果长时间不处理游戏的数据堆积在激活的一刹那处理,可能会出现类似传奇那种突然快动作然后怪死了还在打空气的状况。

以后应该改为当窗口最小化的时候,不进行帖图操作,其他逻辑数据处理继续。
那时候也许不需要用到while循环,可能就是留一个socket线程处理数据。因为《天外》最小化的时候cpu占用率没有十分高,可见它缩小后并不进行高强度的循环。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值