5

I want to get directx 11 working inside WPF. From answers to this question it is apparent that this is possible. The second answer points to some microsoft code which implements a "Shared Surface Queue".

I am going through the shared surface queue code, but I have no idea what purpose it fulfills (other than being necessary to make different versions of directx share a surface nicely). What is the purpose of creating a shared surface queue in order to share directx surfaces? (Specifically for WPF in combination with directx 11).

Note: Unlike the question I cited I am not using slimDX

Community
  • 1
  • 1

1 Answers1

5

The reason relates to synchronization issues between different Direct3D interfaces and possibly between WPF composition and multiple threads. Here are some useful links...

Direct3D9Ex and DXGI Shared Surface Queue
http://archive.msdn.microsoft.com/D3D9ExDXGISharedSurf

Surface Sharing Between Windows Graphics APIs http://msdn.microsoft.com/en-us/library/ee913554%28VS.85%29.aspx

WPF D3D Interop C++ and C# Sample. MS Kinect SDK uses shared surface queue method for SDK sample http://msdn.microsoft.com/en-us/library/jj591490.aspx

Some discussion relating to problems when not synched, encountered while developing slimdx http://www.gamedev.net/topic/606138-slimdx-issues-with-keyedmutex-and-wpf/

Greg
  • 1,181
  • 13
  • 13