请教一点问题
我要用ddraw实现图片的滚动显示,现在又如下问题困扰我多时:
1   由于用的是mfc界面,打开图片的过程中容易受其他(比如提示兰的出现)因素影响而闪烁。
2。 我用的是这个来滚动图片
pDC->BitBlt(x,y,width,height,sdc,dx,dy,SRCCOPY);
改变x,y width height ,dx,dy的相对值
由于我初始化表面的时候离屏表面要定义大小,要使图片完整显示,要定义其为图片的大小,但是这样有问题了,图片很大的时候,滚动就很慢,因为每一次BitBlt都要调用一次这么大小的表面,请问有没有解决的办法?而且我还要连续显示,这样的速度肯定达不到要求。
3。我用了多媒体定时器settimerevent函数来防止图片滚动时候起波纹,但是定时了后,速度也慢了好多,能不能告诉我还有没有更好的定时?多线程可以吗?
盼望您万忙之中解答,谢谢!

解决方案 »

  1.   

    解决办法:
        将MFC构架放弃,用WIN32API标准SKD筐架,调用DDARW标准库函数来填充表面和些到后缓冲区,用CLIPER来剪裁,在用FILP贴出来,很多2D游戏就是这样实现的,基本 无闪烁。
    MFC不太适合与DX结合,特别是想自由操作显存的时候。
    具体不明白联系我 QQ29842977
      

  2.   

    因为我是读取采集进来的图片的,如果放弃了mfc,那么对于图片的处理和操作怎么办呢?
    望指教,mfc和ddraw不能很好的结合吗?标准的GDI显示图片时,一般都是先创建DDB位图,利用memdc防止闪烁。
    如果用DDraw,我想我可以创建一个非常大的Offscreen表面,在需要移动的时候,重新bitblt,改
    变源矩形就可以了。但是这样的话速度好像很慢很慢啊
    对于GDI方式我想,如果追求速度,那只能牺牲内存了,也创建一个大的DDB,根据移动需要,
    将可见部分blt出去。但是这些还没有实现
      

  3.   

    问题是创建一个非常大的Offscreen表面也很影响速度,因为每次都要读取这个矩形,显得速度很慢