如题,目前所做的图像都保存在CDC中显示,虽然使用了双缓冲技术,但是大幅图像的移动等更复杂的特技还是会抖动,所以考虑到D3D的图像处理,如果能直接将CDC中的图像拷贝到LPDIRECT3DDEVICE9然后提交到前台显示,将可能大大提高图片动画效果,但是不知道该如何去实现这一步,泪求途径!!!

解决方案 »

  1.   

    应该是你查查D3D中的LPDIRECT3DDEVICE9是如何显示位图的,这个应该一样的!就是缓冲的数据显示出来吧!
      

  2.   

    D3D只能显示纹理图像的,所以你需要
    CDC → Texture
    要做到这步其实很麻烦:
    需要:
    1、CDC → HBITMAP → GetDIBits() → 二维图像点阵数据
    2、CreateTexture() → LockRect() → 用上面的二维图像点阵数据,更新纹理数据 → UnLockRect()
    整个操作下来,要上百毫秒的时间;
    如果图像更新速度很快(>10FPS)就不要考虑这么做了,主要时间消耗在GetDIBits()
      

  3.   

    似乎LPDIRECT3DSURFACE9   StretchRect可以实现,不过具体还不知道,正在研究中
      

  4.   

    貌似DX的  LPDIRECT3DSURFACE9  GetDC可以,但是不知道怎么实现,有大侠出现么?