将CDC中的内容如何拷贝到D3D中的LPDIRECT3DDEVICE9中去? 如题,目前所做的图像都保存在CDC中显示,虽然使用了双缓冲技术,但是大幅图像的移动等更复杂的特技还是会抖动,所以考虑到D3D的图像处理,如果能直接将CDC中的图像拷贝到LPDIRECT3DDEVICE9然后提交到前台显示,将可能大大提高图片动画效果,但是不知道该如何去实现这一步,泪求途径!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 应该是你查查D3D中的LPDIRECT3DDEVICE9是如何显示位图的,这个应该一样的!就是缓冲的数据显示出来吧! D3D只能显示纹理图像的,所以你需要CDC → Texture要做到这步其实很麻烦:需要:1、CDC → HBITMAP → GetDIBits() → 二维图像点阵数据2、CreateTexture() → LockRect() → 用上面的二维图像点阵数据,更新纹理数据 → UnLockRect()整个操作下来,要上百毫秒的时间;如果图像更新速度很快(>10FPS)就不要考虑这么做了,主要时间消耗在GetDIBits() 似乎LPDIRECT3DSURFACE9 StretchRect可以实现,不过具体还不知道,正在研究中 貌似DX的 LPDIRECT3DSURFACE9 GetDC可以,但是不知道怎么实现,有大侠出现么? 高手 我想把txt中数据导入表格中(列表控件中),数据导不进去 怎么把编辑框的提示去掉 在vs2008的MFC下如何使用微软的MSChart控件? 这个ComboBox的问题是如何解决的? ??? MB_OK|MB_ICONSTOP中间的nage竖杠是什么意思啊 求norton的安装程序和注册码!多谢! udp ocx最基本的问题,麻烦各位帮帮忙? 如何改变静态文本框中背景色和文字的大小和颜色?谢谢! 关于SetWindowPos的问题 好心人帮我看看这个功能怎么实现
CDC → Texture
要做到这步其实很麻烦:
需要:
1、CDC → HBITMAP → GetDIBits() → 二维图像点阵数据
2、CreateTexture() → LockRect() → 用上面的二维图像点阵数据,更新纹理数据 → UnLockRect()
整个操作下来,要上百毫秒的时间;
如果图像更新速度很快(>10FPS)就不要考虑这么做了,主要时间消耗在GetDIBits()