关于裁剪器以及窗口状态
2005-02-14 22:30
267 查看
刚才仔细研究了一下裁剪器
发现原来BltFast是不能作用于有裁剪器的页面上的...失策失策,都怪以前没研究就直接抄代码。
所以在窗口模式下模拟全屏的Flip的话,就需要用Blt操作将BufferSurface Blt 到主Surface上边来。
那为什么不干脆跳过裁剪器这一步直接就用BltFast Copy到窗口的客户区呢?
我想这里大概有一个窗口之间互相遮盖的原因,如果不用裁剪器自动管理窗口的裁减区域,就可能出现游戏窗口被其他窗口遮盖一部分,但是游戏画面却把那个在游戏窗口之上的窗口画花了。看起来就像画面漂浮在屏幕的最上层,而不是贴着游戏窗口。那样的效果我好像看过在一些媒体播放器上出现过。
不过现在我的游戏设计到是:如果它不是当前活动窗口,则不执行游戏主循环。
这个是要改的,因为网络通讯应该是放在游戏主循环之中,如果长时间不处理游戏的数据堆积在激活的一刹那处理,可能会出现类似传奇那种突然快动作然后怪死了还在打空气的状况。
以后应该改为当窗口最小化的时候,不进行帖图操作,其他逻辑数据处理继续。
那时候也许不需要用到while循环,可能就是留一个socket线程处理数据。因为《天外》最小化的时候cpu占用率没有十分高,可见它缩小后并不进行高强度的循环。
发现原来BltFast是不能作用于有裁剪器的页面上的...失策失策,都怪以前没研究就直接抄代码。
所以在窗口模式下模拟全屏的Flip的话,就需要用Blt操作将BufferSurface Blt 到主Surface上边来。
那为什么不干脆跳过裁剪器这一步直接就用BltFast Copy到窗口的客户区呢?
我想这里大概有一个窗口之间互相遮盖的原因,如果不用裁剪器自动管理窗口的裁减区域,就可能出现游戏窗口被其他窗口遮盖一部分,但是游戏画面却把那个在游戏窗口之上的窗口画花了。看起来就像画面漂浮在屏幕的最上层,而不是贴着游戏窗口。那样的效果我好像看过在一些媒体播放器上出现过。
不过现在我的游戏设计到是:如果它不是当前活动窗口,则不执行游戏主循环。
这个是要改的,因为网络通讯应该是放在游戏主循环之中,如果长时间不处理游戏的数据堆积在激活的一刹那处理,可能会出现类似传奇那种突然快动作然后怪死了还在打空气的状况。
以后应该改为当窗口最小化的时候,不进行帖图操作,其他逻辑数据处理继续。
那时候也许不需要用到while循环,可能就是留一个socket线程处理数据。因为《天外》最小化的时候cpu占用率没有十分高,可见它缩小后并不进行高强度的循环。
相关文章推荐
- 关于TCP报文段以及拥塞窗口cwnd的理解纠正
- 关于java中window以及子组件的窗口居中问题
- 关于IE6和IE7关闭窗口时提示和不提示以及上传图片前的本地预览解决办法
- mfc笔记--摘录关于裁剪窗口区域的设置,WS_CLIPCHILDREN和WS_CLIPSIBLINGS的理解
- 关于Qt的窗口以及视口的问题
- 关于窗口最大化的状态
- (1)EJB3.0 简介以及开发第一个无状态的会话bean 以及 客户端【关于JNDI】
- Hibernate 笔记3 关于SessionFactory,Session 以及 三大状态(Transient、Persistent、Detached)
- 关于mysql数据库局部知识--取消和重启外键约束以及查看约束状态
- Delphi编程获取系统当前进程、窗口句柄、文件属性以及程序运行状态(8种应用)
- 关于new、Create、对象以及窗口的一点问题
- Linux线程浅析[关于线程的清理,与进程的对比,以及线程的各个状态]
- 关于IE6和IE7关闭窗口时提示和不提示以及上传图片前的本地预览解决办法
- 关于Gtkmm窗口指针的delete 以及窗口的hide()方法和destroy_()方法
- 关于Entity Framework更新的几种方式以及可能遇到的问题(附加类型“Model”的实体失败,因为相同类型的其他实体已具有相同的主键值)在使用 "Attach" 方法或者将实体的状态设置为 "Unchanged" 或 "Modified" 时如果图形中的任何实体具有冲突键值,则可能会发生上述行为
- 有关于在Extjs4环境中,window窗口下的messageBox弹窗的bug以及解决方案
- 关于IE6和IE7关闭窗口时提示和不提示以及上传图片前的本地预览解决办法
- 关于文件状态的三种时间,mtine ,ctime , atime 以及查看文件状态stat 和修改文件时间touch
- 线程的7种状态及相互转换(图)以及关于线程同步(7种同步方式)