您的位置:首页 > 其它

关于裁剪器以及窗口状态

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

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

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

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

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

以后应该改为当窗口最小化的时候,不进行帖图操作,其他逻辑数据处理继续。
那时候也许不需要用到while循环,可能就是留一个socket线程处理数据。因为《天外》最小化的时候cpu占用率没有十分高,可见它缩小后并不进行高强度的循环。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐