GDI画图的几种方式(小游戏不闪烁)
来源:互联网 发布:淘宝二手苹果笔记本 编辑:程序博客网 时间:2024/06/10 03:34
1 画图方式:
1.1 使用临时DC,先将要画的界面全部画到临时DC,到最后才全部帖回原DC,这样就不会出现闪烁.
1.2 创建的GDI对象要删除,不然会造成泄露.
将新对象选进DC,一般要保留旧的对象,然后用完新对象,把老对象选回DC.
一般Create*** 函数多要记得Delete***
GetDC <--> ReleaseDC
还有就是CPaintDC dc(this),获取的DC,不需要你去删除,并且CPaintDC已经封装了
BeginPaint和EndPaint组合
2 更新方式:
2.1 全部画图全部更新
这种方式主要用在控件上(小范围),画的东西并不多,可以采用本方式
2.2 全部画图局部更新
此方式用的比较多,主要还是方便,但是CPU占用相对来说还是高了一点
我的一个麻将采用这种方式,结果占用CPU一般保持在5%(5%-10%)[测试环境:笔记本无显卡]
2.3 局部画图局部更新
这个方法是最好的,不过代码相对复杂一点,如果类封装的好,也没什么问题.
我的纸牌和一些飞机小游戏游戏采用这类方式,CPU占用一般只有1-3%[测试环境:笔记本无显卡]
1.1 使用临时DC,先将要画的界面全部画到临时DC,到最后才全部帖回原DC,这样就不会出现闪烁.
1.2 创建的GDI对象要删除,不然会造成泄露.
将新对象选进DC,一般要保留旧的对象,然后用完新对象,把老对象选回DC.
一般Create*** 函数多要记得Delete***
GetDC <--> ReleaseDC
还有就是CPaintDC dc(this),获取的DC,不需要你去删除,并且CPaintDC已经封装了
BeginPaint和EndPaint组合
2 更新方式:
2.1 全部画图全部更新
这种方式主要用在控件上(小范围),画的东西并不多,可以采用本方式
2.2 全部画图局部更新
此方式用的比较多,主要还是方便,但是CPU占用相对来说还是高了一点
我的一个麻将采用这种方式,结果占用CPU一般保持在5%(5%-10%)[测试环境:笔记本无显卡]
2.3 局部画图局部更新
这个方法是最好的,不过代码相对复杂一点,如果类封装的好,也没什么问题.
我的纸牌和一些飞机小游戏游戏采用这类方式,CPU占用一般只有1-3%[测试环境:笔记本无显卡]
- GDI画图的几种方式(小游戏不闪烁)
- GDI画图的几种方式(小游戏不闪烁)
- GDI画图的几种方式(小游戏不闪烁)
- GDI画图的几种方式(小游戏不闪烁)
- c#Gdi画图的两种方式
- Windows GDI画图闪烁解决方法
- VC画图不闪烁的方法(双缓冲技术)
- VC画图不闪烁的方法(双缓冲技术)
- VC画图不闪烁的方法(双缓冲技术)
- ddraw 视频下画图 不闪烁的方法
- GDI画图——我对双缓存防闪烁的理解。
- Windows GDI画图闪烁解决方法 双缓冲技术
- GDI下面的闪烁消除
- 解决 GDI 贴图的闪烁
- GDI画图的调用顺序
- 关于GDI画图的困惑
- GDI 画图的基础函数
- GDI+(画图工具的创建)
- 图片镂空算法集合[图]
- QQ头像变灰算法[图]
- 如何Eclipse自动提示
- 字符集之间转换(UTF-8,UNICODE,Gb2312)
- 实现QQ主界面效果[图]
- GDI画图的几种方式(小游戏不闪烁)
- javascript 实现图片滚动
- RichEdit中插入GIF动画(使用QQ的ImageOle.dll)
- 用户层下拦截系统api的原理与实现
- Ubuntu8.04下任务栏和面板消失
- 面向对象设计模式学习笔记——单例模式
- 传奇源码分析-服务器端(SelGate服务器分析)
- 传奇源码分析-客户端(游戏逻辑处理源分析五 服务器端响应)
- 传奇源码分析-客户端(游戏逻辑处理源分析四)