D3D 纹理转换到DC

菜鸟二号 2011-05-28 01:53:23
现在用HBTMAP转成Texture可以做到,可是反过来,弄了好久,都失败。。在线等大家的帮助,谢谢..


首先创建一个Texture,从该纹理中Texture->GetSurfaceLevel(0,&surface);
然后将内容渲染到这个纹理可以做到,可是这时在surface->GetDC,失败.... 这个是什么原因呢?是不是纹理创建的有问题?

其次,创建一个CreateOffscreenPlainSurface surface2。
surface2->GetDC就能成功,但是不知道如何把内容渲染到这个表面.....
假如第一步渲染到了纹理Texture上了,Device->StretchRect(surface ,0,surface2,0,D3DTEXF_NONE ); 就是把纹理上的内容copy到surface2,这时没任何效果,又是为何...
如果Device->StretchRect(surface2 ,0,surface,0,D3DTEXF_NONE );
就是翻过来,surface2的内容复制到surface又成功 ⊙﹏⊙b汗?

再次,渲染到Texture成功了,此时在其表面surface上,LockRect 到LockedRect上,然后想读取数据创建hbitmap,结果,LockedRect.Pitch一直为0,就是不成功,再次纠结了...

其实我就是想把程序渲染的结果放到一个hbitmap or DC上,怎么做呢...

谢谢大家,在线等
...全文
228 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyyscf 2011-05-28
  • 打赏
  • 举报
回复
那接分了...
chenjiawei007 2011-05-28
  • 打赏
  • 举报
回复
支持d3d
菜鸟二号 2011-05-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 redui 的回复:]
晕,创建纹理时用 D3DUSAGE_DYNAMIC 标志,就是动态纹理,不是你说的动态创建。动态纹理的表面可以调用GetDC
[/Quote]

理解错误,初次搞这些东西,不是很理解
redui 2011-05-28
  • 打赏
  • 举报
回复
晕,创建纹理时用 D3DUSAGE_DYNAMIC 标志,就是动态纹理,不是你说的动态创建。动态纹理的表面可以调用GetDC
菜鸟二号 2011-05-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 redui 的回复:]
创建渲染目标没必要,会分配更多的内存,创建动态纹理就行了
[/Quote]

纹理是动态创建的
redui 2011-05-28
  • 打赏
  • 举报
回复
创建渲染目标没必要,会分配更多的内存,创建动态纹理就行了
redui 2011-05-28
  • 打赏
  • 举报
回复
接分可以有
cngst 2011-05-28
  • 打赏
  • 举报
回复
来接分
菜鸟二号 2011-05-28
  • 打赏
  • 举报
回复
已经解决,CreateRenderTarget,支持GetDC


大家来个人接分吧,200分不少哦

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧