Mathieson

I'm trying to paint on top of a running full screen DirectX app (seperate process), similar to how XFire In Game works. Is there a way I can do this Currently anything I do just either knocks out my applications Device (DeviceLost event) or causes the other application to minimize.

If possible I'd like to be able to do it without obtaining a handle to the other application's Device object. Any ideas

Thanks in advance


Re: Game Technologies: DirectX 101 Putting a Window on top of a DirectX fullscreen window?

windozer_

Mathieson,

With DirectX 9.x, if an application is running fullscreen mode, if the application loses focus, the device will be lost and will need to be reset. In DirectX 10, if you have say multi-monitor setup and game is running in fullscreen on monitor one, you can have another application running on monitor 2 and monitor one will not need to be reset until such time as another window is moved over the running app on monitor one.

The way XFire works by injecting its dll into the game which intercepts the key/mouse commands, and then xfire sends and accepts messages via this mechanism.

Hope this helps! Thanks.

Cale





Re: Game Technologies: DirectX 101 Putting a Window on top of a DirectX fullscreen window?

The ZMan

When an app has full screen it own the whole screen - windows can't draw over the top which is why it minimizes when other apps get focus.

The only way to draw on top is to intercept the DirectX API calls and insert your own. I suspect this is is what Xfire, Pix and Fraps all do to draw on top of the screen






Re: Game Technologies: DirectX 101 Putting a Window on top of a DirectX fullscreen window?

Mathieson

Yup, on further investigation it looks like it's doing this. Nasty Win32 programming, I thought you were extinct!






Re: Game Technologies: DirectX 101 Putting a Window on top of a DirectX fullscreen window?


Re: Game Technologies: DirectX 101 Putting a Window on top of a DirectX fullscreen window?

Mathieson

Damn, that's the exact same sample I've been staring at for two weeks.

I've had some success with DirectDraw 7 overlays - they'll work with Direct3D, but not with DirectDraw. I suspect it's because DDraw can request FullscreenExclusive mode.

Does anyone know if there's a way to do overlays through Direct3D, or is MS just moving away from that altogether




Re: Game Technologies: DirectX 101 Putting a Window on top of a DirectX fullscreen window?

The ZMan

Overlays are a DirectDraw thing so not a D3D feature. I'm not sure of the future of overlays in general though.