首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在其他Direct3D11设备上复制D3D11纹理

在其他Direct3D11设备上复制D3D11纹理
EN

Stack Overflow用户
提问于 2016-11-11 13:00:48
回答 1查看 2.3K关注 0票数 3

我有ID3D11Texture2D的句柄,但不能访问ID3D11DeviceContext或ID3D11Device。我想将该纹理复制到其他ID3D11Device上的其他纹理中。纹理不是用任何共享标志创建的。如果我试图复制ID3D11DeviceContext::CopyResource,就会得到警告:"D3D11损坏参数与设备不匹配“。我如何复制纹理或它的内容?我想这是可能的,因为例如,OpenVR API只使用纹理句柄而不使用任何上下文。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-11-16 03:57:20

如果没有使用共享标志创建纹理,则不能在两个设备之间使用它。

但是您有一个纹理对象,即一个ID3D11DeviceChild,它足以访问ID3D11DeviceChild::GetDevice来检索设备,并扩展为ID3D11Device::GetImmediateContext

现在您已经可以访问设备和上下文了,您可以在原始设备上使用共享标志D3D11_RESOURCE_MISC_SHARED或您自己的共享标志创建一个额外的纹理,并使用ID3D11Device::OpenSharedResource检索另一个上的对象。最后,使用CopyResource将原始纹理复制到新对象中。

不要忘记,所有这些Get都添加了对需要释放的对象的引用,一旦您完成了这些引用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40548584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档