VOGONS

Common searches


First post, by lizard78

User metadata
Rank Newbie
Rank
Newbie

Hi all,
I've been writing a Glide backend for my game and I noticed the Voodoo cards don't really handle multitasking very well. It always freezes for me when tabbing back in. I've tried totally closing the glide context and re-initializing everything (uploading textures again etc) but it never works correctly. It seems like most Glide games simply disable task switching (alt tab etc) but I'm wondering if there are any Glide games that actually support it (that you can alt tab and back into)? I thought it was maybe an issue specific to the Voodoo 1 / 2 cards, but a Voodoo 3 exhibits similar odd behaviors. The 3dfx OpenGL ICD also doesn't really seem to handle this correctly - which leads me to believe this was just never really correctly implemented. Has anyone ever figured this out?

P.S.
The glide 3.x docs mention grSelectContext() to determine when resources have been lost (due to a different task being scheduled). This API makes no sense to me, what would happen if a task swap happened during the middle of rendering? I don't know, it seems kind of naive. Only thing I can kind of infer is the docs mention "inactivity" - I wonder if it is meant to deal with screensavers or something?

Reply 1 of 1, by lizard78

User metadata
Rank Newbie
Rank
Newbie

I ended up throwing in the towel on this. I tried quite a few different things but as far as I can tell there just isn't a good workaround. I ended up just disabling task switching for Glide mode and called it a day. There's an old Microsoft KB on how to do this - Q226359. On Windows 9x it's pretty easy, just masquerade as a screensaver. On Windows NT you need to install an input hook to intercept the specific events (Older versions of NT can't do this and have more limited options). It's a terrible hack but better than someone accidentally fat fingering the windows key and crashing the game.