Я опробую функцию общих ресурсов DX10, так как мне это было нужно для одного из моих проектов. Но я не могу найти много примеров или кода, особенно используя SlimDX. Согласно документации DX10, мне просто нужно указать ресурсы как Shared, и затем я могу открыть их с помощью OpenSharedResource () из другого приложения. С помощью простого тестового приложения в SlimDX я сделал следующее
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 (четко не указано, что его нет в документации)
Другая альтернатива, указав pHandle для передачи в функцию CreateTexture, недоступна в SlimDX, или я не знаю об этом.
Кто-нибудь, кто пытался это успешно? Некоторая помощь была бы благодарна.
Спасибо