Fullscreen shenanigans: the return of the fullscreen

Yes, starting this again to see how the situation has changed since
the massive fullscreen issues were reported (the ones that led to the
proposal for a new flag in X). Trying this on Ubuntu 12.04 64-bit
using the Nvidia drivers that come from Steam. Video hardware is
Geforce 7300 GS and there’s only one monitor.

Switch to same resolution: works fine, no comments about this one.
Doesn’t switch the video mode so no weird side effects at all.

Switch to lower resolution: this one is odd. The video mode is
correct… but the desktop is still the same size. The end result was
that I had a 640?480 video mode with a 1024?768 desktop, and I could
scroll around with the cursor (the game rendered in the upper left
corner of this desktop). What?

Switch to higher resolution: just sticks to the current one it seems
:confused: (as a side-effect this means anything applying to staying to the
same resolution also applies here too, including not touching the
video mode at all)

Switch to invalid resolution: either it switched to a different
resolution or 720?480 is somehow a valid resolution (could happen,
800?480 is valid if I recall correctly) and I didn’t realize, but
whatever happened it switched to a different video mode :S I’ll see
later if I can figure out what’s going on.

OK, I guess it’s still not exactly usable (except when staying in the
same resolution). On the upside, at least now when it closes it does
so cleanly, so in the worst case it’s possible to just quit or return
to windowed mode. The gamma correction is reset, but all fullscreen
programs seem to have this issue so I’m not sure SDL can work around
it. Even then all I need to do is open the Nvidia settings and the
gamma correction is restored, so minor annoyance.

Any comments?

Ryan has put together an extension proposal to allow the window manager to
intelligently manage video modes on behalf of fullscreen applications.
There are many reasons to do this, some of which are enumerated in the
spec proposal.

Ryan, what’s the status of that?

Until that’s widely supported, I would highly recommend
using SDL_WINDOW_FULLSCREEN_DESKTOP, and then scaling your output to the
actual resolution.On Wed, Apr 3, 2013 at 8:11 AM, Sik the hedgehog <sik.the.hedgehog at gmail.com wrote:

Yes, starting this again to see how the situation has changed since
the massive fullscreen issues were reported (the ones that led to the
proposal for a new flag in X). Trying this on Ubuntu 12.04 64-bit
using the Nvidia drivers that come from Steam. Video hardware is
Geforce 7300 GS and there’s only one monitor.

Switch to same resolution: works fine, no comments about this one.
Doesn’t switch the video mode so no weird side effects at all.

Switch to lower resolution: this one is odd. The video mode is
correct… but the desktop is still the same size. The end result was
that I had a 640?480 video mode with a 1024?768 desktop, and I could
scroll around with the cursor (the game rendered in the upper left
corner of this desktop). What?

Switch to higher resolution: just sticks to the current one it seems
:confused: (as a side-effect this means anything applying to staying to the
same resolution also applies here too, including not touching the
video mode at all)

Switch to invalid resolution: either it switched to a different
resolution or 720?480 is somehow a valid resolution (could happen,
800?480 is valid if I recall correctly) and I didn’t realize, but
whatever happened it switched to a different video mode :S I’ll see
later if I can figure out what’s going on.

OK, I guess it’s still not exactly usable (except when staying in the
same resolution). On the upside, at least now when it closes it does
so cleanly, so in the worst case it’s possible to just quit or return
to windowed mode. The gamma correction is reset, but all fullscreen
programs seem to have this issue so I’m not sure SDL can work around
it. Even then all I need to do is open the Nvidia settings and the
gamma correction is restored, so minor annoyance.

Any comments?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

I still want to provide SDL_FULLSCREEN for those who want a proper
video mode change. At least that it doesn’t leave such a mess on
deinit that rebooting is the easiest option is a big improvement (of
course windowed mode still is available if fullscreen isn’t desired).

So far the main issue I’d say is the desktop size not changing when
the resolution is lowered (video mode switching itself is OK). I don’t
care so much about invalid resolutions (I’ll later add proper checks
for the valid video modes anyway), nor higher resolutions really
(because 1. users generally run at the highest resolution they want
anyway and 2. some drivers seem broken reporting higher resolutions
than the current one). And of course when the resolution is the same
it works perfectly so no need to touch that.

I imagine that dealing with the desktop scrolling could cause issues
in multimonitor setups. Maybe for now it could be just a hack for
single monitor if needed (the concept of fullscreen in multimonitor
itself is a mess anyway - really more like the latter is a mess, but
it’s going to take a huge willpower to fix that).

There’s the gamma correction issue I mentioned but as I said I think
that’s outside what SDL can do and really most people don’t set it
explicitly in the first place (I use it only because my monitor has
dark colors really skewed towards black). Consider that one a quirk
specific to my system in terms of importance :stuck_out_tongue:

2013/4/3, Sam Lantinga :> Ryan has put together an extension proposal to allow the window manager to

intelligently manage video modes on behalf of fullscreen applications.
There are many reasons to do this, some of which are enumerated in the
spec proposal.

Ryan, what’s the status of that?

Until that’s widely supported, I would highly recommend
using SDL_WINDOW_FULLSCREEN_DESKTOP, and then scaling your output to the
actual resolution.

On Wed, Apr 3, 2013 at 8:11 AM, Sik the hedgehog <@Sik_the_hedgehog wrote:

Yes, starting this again to see how the situation has changed since
the massive fullscreen issues were reported (the ones that led to the
proposal for a new flag in X). Trying this on Ubuntu 12.04 64-bit
using the Nvidia drivers that come from Steam. Video hardware is
Geforce 7300 GS and there’s only one monitor.

Switch to same resolution: works fine, no comments about this one.
Doesn’t switch the video mode so no weird side effects at all.

Switch to lower resolution: this one is odd. The video mode is
correct… but the desktop is still the same size. The end result was
that I had a 640?480 video mode with a 1024?768 desktop, and I could
scroll around with the cursor (the game rendered in the upper left
corner of this desktop). What?

Switch to higher resolution: just sticks to the current one it seems
:confused: (as a side-effect this means anything applying to staying to the
same resolution also applies here too, including not touching the
video mode at all)

Switch to invalid resolution: either it switched to a different
resolution or 720?480 is somehow a valid resolution (could happen,
800?480 is valid if I recall correctly) and I didn’t realize, but
whatever happened it switched to a different video mode :S I’ll see
later if I can figure out what’s going on.

OK, I guess it’s still not exactly usable (except when staying in the
same resolution). On the upside, at least now when it closes it does
so cleanly, so in the worst case it’s possible to just quit or return
to windowed mode. The gamma correction is reset, but all fullscreen
programs seem to have this issue so I’m not sure SDL can work around
it. Even then all I need to do is open the Nvidia settings and the
gamma correction is restored, so minor annoyance.

Any comments?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org