#238 Fullscreen for GTK UI, new attempt

open
nobody
None
5
2013-01-01
2011-01-05
No

I've been looking through Szombathelyi György patch:
http://sourceforge.net/tracker/index.php?func=detail&aid=1905047&group_id=91293&atid=596650

It uses XRandr to change video resolution in fullscreen mode. It's quite similar to SDL UI. This seems the best method for "rectangular" monitors (4:3). However, this looks very bad in widescreen monitors (16:9) because distorts the aspect ratio approximately 30%.

For widescreen resolutions, I would prefer maximize the height and add black bars if necessary.
- One solution could be going into fullscreen without changing resolution, finding the maximun scaler (1x, 2x, 3x) that fits into the screen and centering the image. This keeps the aspect ratio but could be quite limited with high resolutions.
- Another option could be using a variable scaler that scales the image to fit the window/desktop. Snes9x emulator has done much work here. It's an interesting, but nevertheless complex, solution.

We also could use a mix of different methods depending desktop resolution or user's choice.

The attached patch is a proof of concept for starting:
- Enters fullscreen by F11 key or menu option
- Picks the maximum scaler and centers the image
- Exits fullscreen by F11 key, right click through popup menu, or mouse motion through leave button

I would like some people's thoughts and suggestions on this feature.

Discussion

  • Fredrick Meunier

    The SDL code tries to pick the largest resolution that will be completely shown on the monitor but still has the downside of being a postage stamp with borders on all sides if the monitor doesn't match the image resolution.

    On the Mac I use OpenGL scaling and in fullscreen either show the 4:3 image centered on the screen or "panoramic" by trimming the upper and lower borders which still shows a bit of border in 16:9.

    I think that fixed scalers are fine for older machines, but handling high resolution displays and variable scaling really should be done via using OpenGL or similar which should be available on machines which are capable of driving high res displays IMO. I did an OpenGL based widget UI for Fuse years ago but that was still fixed resolution and didn't have much to offer at the time, but I think is becoming more relevant with such high res monitors being common.

     
  • Fredrick Meunier

    Don't forget that the texture being uploaded is still a fixed bitmap and you can do all the multicore manipulation on it that you like before uploading to the graphics card.

     

Log in to post a comment.