I'm writing a small tool to display in-game data for DirectX 10. A common procedure back in D3D9 was to use DLL injection and overload EndScene() as a per-rendering step addition to the pipeline. Many applications such as FRAPS and xFire appear to have
similar hooks with SetWindowsHookEx. In DX10, BeginScene/EndScene have been removed and the pipeline is much more distributed between ID3D10Device, D3D10CreateDeviceAndSwapChain, and IDXGI.
I was thinking of hooking these interfaces, but I'm somewhat skeptical since if I utilize IDXGISwapChain::Present I rely on users instancing swap chains (which appear to not always be created if users call D3D10CreateDevice()) and any drawing inside Present()
walks up the pipeline to Direct3D10 and then back down to DXGI, creating a substantial performance hit and loop.
Is there a suggested mechanism in place that could be used here? Do tell! Any help is appreciated!
Regards,
Jeff
-
-
Anyone?
-
jmfreema wrote:Anyone?
I've only really worked with MDX (not even XNA :O ), but call in on #xna on EFNet, Tom Miller (millerman), one of Direct3D's devs, hangs out in there occasionally.
-
I think the original poster's problem lays entirely in the unmanaged world.W3bbo wrote:
jmfreema wrote:
Anyone?
I've only really worked with MDX (not even XNA :O ), but call in on #xna on EFNet, Tom Miller (millerman), one of Direct3D's devs, hangs out in there occasionally.
He could re-post the question here instead:
MSDN Forums » Game Technologies: DirectX, XNA, XACT, etc. » Direct3D 10
-
I've followed up with a post to the Direct3D 10 C++ XNA forum.
Thx folks!
Regards,
Jeff (LuxRGB on the XNA forum) -
I believe you always need a swap chain to display anything to the screen in DX10. I'm not aware of any other method (enlighten me if there is). So if you use CreateDevice() you still need to manually create a swap chain later on, so there will always be one to hook into.
Thread Closed
This thread is kinda stale and has been closed but if you'd like to continue the conversation, please create a new thread in our Forums,
or Contact Us and let us know.