gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 02:20:03 25 4
gpt4 key购买 nike

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

最佳答案

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

但是你有纹理对象,它是一个 ID3D11DeviceChild 并且它足以访问 ID3D11DeviceChild::GetDevice 以检索设备并通过扩展 ID3D11Device::GetImmediateContext

现在您可以访问设备和上下文,您可以在原始设备或您自己的设备上使用共享标志 D3D11_RESOURCE_MISC_SHARED 创建一个额外的纹理,并在另一个设备上取回对象ID3D11Device::OpenSharedResource。最后使用 CopyResource

将原始纹理复制到新对象

不要忘记,所有这些 Get 都会添加对使用完后需要释放的对象的引用。

关于direct3d11 - 在其他 D3D11 设备上复制 Direct3D11 纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40548584/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com