最近开发游戏的时候,试用双缓冲,但是发现240x320的缓冲图在bitblt的时候,大概刷新一次需要45-60毫秒,这个效率是没办法应用的,请问应该如何去改善
pDC->BitBlt(0,0,this->getWidth(),this->getHeight(),&screenBufferGc,0,0,SRCCOPY);
这里,screenBufferGc就是一个长宽为240x320的buffer
请问 LZ 原图 (this) 的大小与 BPP 为多少, 是否为 240x320, 16BPP?? 若不是的话, 建议 LZ 将图改为该属性後再试试看须多少时间
Paul, Chao @ Techware
这个没办法了
这个是块拷贝,速度很快的
微软都优化过的,楼主要是想在这里优化还是免了吧,还是从其他方面下手吧
楼主可以先把DAT映射到内存里面,通过CreateCompatibleBitmap(),强制把DAT映射到内存
这样速度会快点很多,你的原因应该是DAT没有映射到内存里。
我这600M的CPU,BitBlt倒是很快的
对了
我的屏还是800*480了
Bitblt大概就10MS这样
我也曾经慢过,最后发现竟然每次loadimage。呵呵改了就好了。