The SDL forums have moved to discourse.libsdl.org.
This is just a read-only archive of the previous forums, to keep old links working.


SDL Forum Index
SDL
Simple Directmedia Layer Forums
[PATCH] Wayland: Resize windows with 0x0 requested size to s
Thomas Perl
Guest

Hi,

With the Wayland video driver, requesting a 0x0 window with SDL_WINDOW_FULLSCREEN will make the window fullscreen, but the EGL surface that’s being created has a size of 1x1. This patch fixes this by making the EGL surface the size of the screen if one or both of the sides are 1 (or 0; 0 gets turned into 1 by SDL_CreateWindow()).

It doesn’t check the flags, because for some reason, SDL_WINDOW_FULLSCREEN isn’t in the flags of the window in the Wayland create window function, even when it is passed to SDL_CreateWindow(). This means that the width/height will also be changed for a SDL_CreateWindow() call /without/ SDL_WINDOW_FULLSCREEN set, but that’s usually okay, because if you create a window of a certain size, you don’t pass in 0x0 as its size.

Patch against yesterday’s Hg default branch attached, successfully tested under QtWayland on Sailfish OS.




To test, simply build SDL2 with the patch applied, then create a window like this:

SDL_CreateWindow(“”, SDL_WINDOWPOS_UNDEFINED,
SDL_WINDOWPOS_UNDEFINED, 0, 0,
SDL_WINDOW_FULLSCREEN);

Without the patch, the EGL surface will have a size of 1x1, with the patch, the EGL surface will have the size of the screen, which is what also happens with most (all?) other platforms.


Thanks,
Thomas

PS: Bugzilla registration seems to be broken, I didn’t get a confirmation e-mail; otherwise I’d have posted this patch directly in Bugzilla.
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
[PATCH] Wayland: Resize windows with 0x0 requested size to s
Andreas Schiffler
Guest

On 4/6/2014 5:34 AM, Thomas Perl wrote:
Quote:
0 gets turned into 1 by SDL_CreateWindow()).

This seems like an odd behavior. A 0 input should not be silently
updated to 1 but an error should be generated and SDL_CreateWindow
should fail.

--Andreas
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org
[PATCH] Wayland: Resize windows with 0x0 requested size to s
Thomas Perl
Guest

On 2014-04-06 21:29, Andreas Schiffler wrote:
Quote:
On 4/6/2014 5:34 AM, Thomas Perl wrote:
Quote:
0 gets turned into 1 by SDL_CreateWindow()).

This seems like an odd behavior. A 0 input should not be silently
updated to 1 but an error should be generated and SDL_CreateWindow
should fail.

The comment there just says "Some platforms can't create zero-sized
windows" [1], I didn't look more into that. I would be okay with
removing that and just checking for == 0 in the patch, but I don't know
about all the different platforms where this might be needed.

The change where this was added is here; maybe Sam knows what "some
platforms" are in that case:

http://lists.libsdl.org/pipermail/commits-libsdl.org/2012-January/005353.html

Btw, in the meantime I've got a Bugzilla account, so I also pushed the
patch here:

https://bugzilla.libsdl.org/show_bug.cgi?id=2481


Thanks,
Thomas

[1] https://hg.libsdl.org/SDL/file/0eed6a72e3c1/src/video/SDL_video.c#l1226
_______________________________________________
SDL mailing list

http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org