请教一下wince下bitblt双缓冲的效率问题

aihys   2009-8-24 13:36 楼主
最近开发游戏的时候,试用双缓冲,但是发现240x320的缓冲图在bitblt的时候,大概刷新一次需要45-60毫秒,这个效率是没办法应用的,请问应该如何去改善

pDC->BitBlt(0,0,this->getWidth(),this->getHeight(),&screenBufferGc,0,0,SRCCOPY);
这里,screenBufferGc就是一个长宽为240x320的buffer

回复评论 (7)

wince绘制图片就是慢,还没发现有其它的好方法
点赞  2009-8-24 14:08
请问 LZ 原图 (this) 的大小与 BPP 为多少, 是否为 240x320, 16BPP?? 若不是的话, 建议 LZ 将图改为该属性後再试试看须多少时间

Paul, Chao @ Techware
点赞  2009-8-24 14:40
这个没办法了
这个是块拷贝,速度很快的
微软都优化过的,楼主要是想在这里优化还是免了吧,还是从其他方面下手吧
楼主可以先把DAT映射到内存里面,通过CreateCompatibleBitmap(),强制把DAT映射到内存
这样速度会快点很多,你的原因应该是DAT没有映射到内存里。
我这600M的CPU,BitBlt倒是很快的
点赞  2009-8-24 14:43
对了
我的屏还是800*480了
Bitblt大概就10MS这样
点赞  2009-8-24 14:43
引用: 引用 4 楼 bsplover 的回复:
对了
我的屏还是800*480了
Bitblt大概就10MS这样

能给个参考代码吗?
点赞  2009-8-24 16:05
参考代码,呵呵
点赞  2010-3-17 08:01
我也曾经慢过,最后发现竟然每次loadimage。呵呵改了就好了。
点赞  2010-3-30 10:45
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复