我正在努力实现一些代码以在 SlimDX 中的 D3D10 和 D3D11 之间共享纹理。
此方法导致问题:
public void InitialiseTextureSharing()
{
// A DirectX10 Texture2D sharing the DirectX11 Texture2D
sharedResource = new SlimDX.DXGI.Resource(textureD3D11);
textureD3D10 = device10_1.OpenSharedResource(sharedResource.SharedHandle); // This fails to compile!
}
我从编译器收到以下错误:
无法从用法中推断方法“SlimDX.Direct3D10.Device.OpenSharedResource(System.IntPtr)”的类型参数。尝试明确指定类型参数。
奇怪的事情(对我来说)是,这段代码是直接从其他人那里移植过来的,这应该可以工作。原始代码是:
// A DirectX10 Texture2D sharing the DirectX11 Texture2D
SlimDX.DXGI.Resource sharedResource = new SlimDX.DXGI.Resource(textureD3D11);
SlimDX.Direct3D10.Texture2D textureD3D10 = device10_1.OpenSharedResource(sharedResource.SharedHandle);
我的实现的不同之处在于我在 SlimDX 表单中实例化了“sharedResource”和“textureD3D10”对象。
我当然没想到会出现编译错误。我基于此的代码来自:http : //www.aaronblog.us/?p=36 ...这是关于使用 DX11 在 SlimDX 中绘制文本的全部内容。
我完全被这件事难住了。我看过一些帖子,其中包含类似问题的解决方案,但目前我无法适应我的情况。
任何指针都会受到赞赏。
更新:
SlimDX API 文档中 OpenSharedResource 的签名:
http://slimdx.org/docs/html/M_SlimDX_Direct3D11_Device_OpenSharedResource__1.htm
...和资源: http ://slimdx.org/docs/html/T_SlimDX_DXGI_Resource.htm