1
我試用了DX10的共享資源功能,因爲我需要爲我的項目之一。但我無法找到很多樣本或代碼,特別是使用SlimDX。根據DX10文檔,我只需要將資源指定爲共享,然後我可以使用另一個應用程序的OpenSharedResource()打開它。隨着SlimDX一個簡單的測試應用程序,我做了以下SlimDX與DX10共享資源
Texture2D tex = new Texture2D(device, new Texture2DDescription()
{
ArraySize = 1,
BindFlags = BindFlags.RenderTarget | BindFlags.ShaderResource,
CpuAccessFlags = CpuAccessFlags.None,
Format = Format.B8G8R8A8_UNorm,
Height = 128,
Width = 128,
MipLevels = 1,
OptionFlags = ResourceOptionFlags.Shared,
SampleDescription = new SampleDescription(1, 0),
Usage = ResourceUsage.Default,
});
Texture2D tex2 = device.OpenSharedResource<Texture2D>(tex.ComPointer);
但我不斷收到此錯誤
E_INVALIDARG: An invalid parameter was passed to the returning function (-2147024809)
我不能似乎找出什麼地方出了錯,作爲tex.ComPointer可能不是OpenSharedResource的正確指針,或者不支持Texture2D(沒有明確指出它不在文檔中)
另一種方法是指定要傳遞到CreateTexture函數的pHandle在SlimDX或I中不可用我沒有意識到這一點。
有沒有人試過這個成功?一些幫助將不勝感激。
謝謝