请教一点问题
我要用ddraw实现图片的滚动显示,现在又如下问题困扰我多时:
1 由于用的是mfc界面,打开图片的过程中容易受其他(比如提示兰的出现)因素影响而闪烁。
2。 我用的是这个来滚动图片
pDC->BitBlt(x,y,width,height,sdc,dx,dy,SRCCOPY);
改变x,y width height ,dx,dy的相对值
由于我初始化表面的时候离屏表面要定义大小,要使图片完整显示,要定义其为图片的大小,但是这样有问题了,图片很大的时候,滚动就很慢,因为每一次BitBlt都要调用一次这么大小的表面,请问有没有解决的办法?而且我还要连续显示,这样的速度肯定达不到要求。
3。我用了多媒体定时器settimerevent函数来防止图片滚动时候起波纹,但是定时了后,速度也慢了好多,能不能告诉我还有没有更好的定时?多线程可以吗?
盼望您万忙之中解答,谢谢!
我要用ddraw实现图片的滚动显示,现在又如下问题困扰我多时:
1 由于用的是mfc界面,打开图片的过程中容易受其他(比如提示兰的出现)因素影响而闪烁。
2。 我用的是这个来滚动图片
pDC->BitBlt(x,y,width,height,sdc,dx,dy,SRCCOPY);
改变x,y width height ,dx,dy的相对值
由于我初始化表面的时候离屏表面要定义大小,要使图片完整显示,要定义其为图片的大小,但是这样有问题了,图片很大的时候,滚动就很慢,因为每一次BitBlt都要调用一次这么大小的表面,请问有没有解决的办法?而且我还要连续显示,这样的速度肯定达不到要求。
3。我用了多媒体定时器settimerevent函数来防止图片滚动时候起波纹,但是定时了后,速度也慢了好多,能不能告诉我还有没有更好的定时?多线程可以吗?
盼望您万忙之中解答,谢谢!
将MFC构架放弃,用WIN32API标准SKD筐架,调用DDARW标准库函数来填充表面和些到后缓冲区,用CLIPER来剪裁,在用FILP贴出来,很多2D游戏就是这样实现的,基本 无闪烁。
MFC不太适合与DX结合,特别是想自由操作显存的时候。
具体不明白联系我 QQ29842977
望指教,mfc和ddraw不能很好的结合吗?标准的GDI显示图片时,一般都是先创建DDB位图,利用memdc防止闪烁。
如果用DDraw,我想我可以创建一个非常大的Offscreen表面,在需要移动的时候,重新bitblt,改
变源矩形就可以了。但是这样的话速度好像很慢很慢啊
对于GDI方式我想,如果追求速度,那只能牺牲内存了,也创建一个大的DDB,根据移动需要,
将可见部分blt出去。但是这些还没有实现