From: Dave V. <va...@us...> - 2013-02-18 10:33:31
|
Currently, if SheepShaver is launched in fullscreen mode, there's no way to access the host environment while SS is running. (At least on Mac OS X using SDL video.) Ideally, it would be possible to either: a) Suspend SheepShaver temporarily and return to the host desktop, resuming SS later; or b) Toggle to windowed mode, so that the host desktop is available. Option (b) is probably preferable, but the design of the video driver makes it difficult. We don't really want to re-initialize the whole driver, and we can't trigger the guest OS to pick up on any change in screen_base. What I think should be possible is: - In kc_decode, set a flag when some key code is pressed - During the video interrupt, do: drv->s = SDL_SetVideoMode(drv->s->w, drv->s->h, 0, drv->s->flags ^ SDL_FULLSCREEN); - We'd also need to re-init the blitter then, and redraw the screen. Probably some VOSF stuff would be needed too, but I haven't looked at VOSF in a long time. - The video refresh would need to pause itself while this is happening Alternatively, maybe there's a way to inform the guest OS that a "different monitor" is attached, and force it to trigger a resolution change. This would be much cleaner, but I have no idea if it's possible. Thoughts? Dave |