src/video/wayland


Log

Author Commit Date CI Message
Sam Lantinga 9130f7c3 2021-01-02T10:25:38 Updated copyright for 2021
Sam Lantinga cb361896 2020-12-09T07:16:22 Fixed bug 5235 - All internal sources should include SDL_assert.h Ryan C. Gordon We should really stick this in SDL_internal.h or something so it's always available.
Sam Lantinga f311e0a8 2020-10-19T17:29:16 Removed debug log message
Ozkan Sezer 93e14497 2020-10-14T15:50:04 SDL_waylanddatamanager.c (mime_data_list_add): constify the buffer param Fixes -Wdiscarded-qualifiers warnings from Wayland_data_source_add_data()
Sam Lantinga 76980e30 2020-10-08T16:42:20 Added events for dynamically connecting and disconnecting displays, with an iOS implementation
Yiding Jia f31ad57f 2020-10-05T19:17:52 Implement keyboard repeat in wayland video driver
Sam Lantinga 8709f67e 2020-09-08T08:42:30 Fixed bug 5215 - Fixing filenames passed to dlopen for OpenBSD Brad Smith Attached is a patch to use the proper filenames when trying to dlopen the respective shared libraries on OpenBSD.
Tudor Brindus c0943328 2020-07-21T13:14:24 wayland: defer pointer confine creation until pointer unlock It is a protocol error to attempt to create a pointer confine (i.e. `SDL_SetWindowGrab`) while a locked pointer is active, and vice-versa. Instead of aborting due to a protocol error, this commit makes SDL gracefully downgrade locked pointers to confines when appropriate.
M Stoeckl a78b9763 2020-07-14T19:18:16 Reuse Wayland connection from availability check
M Stoeckl 052a1373 2020-07-12T19:11:15 Merge VideoBootStrap::available into VideoBootStrap::create The two are only ever called together, and combining them makes it possible to eliminate redundant symbol loading and redundant attempts to connect to a display server.
Sam Lantinga 958c4282 2020-06-04T09:13:49 Fixed build warning
Ryan C. Gordon aa259ed5 2020-05-28T15:18:41 wayland: Changed output removal in handle_surface_leave() No longer needs an extra malloc, handles unexpected cases like the same output being listed twice.
Ryan C. Gordon ce7ae4ec 2020-05-28T14:57:10 wayland: Move buffer copy into mime_data_list_add() It makes it clearer who owns the memory, and more reasonable to free it on failure in the creating function. (and, of course, pacifies static analysis.)
Ryan C. Gordon 22da9d4d 2020-05-28T14:47:55 wayland: assert that mmap() didn't return NULL. In practice, it never _would_, but in theory it _might_, so this assertion tells the static analyzer not to worry about it.
Tudor Brindus a6ca61d7 2020-05-21T00:06:09 wayland: update pointer position on initial enter event
Sam Lantinga 0eb6512b 2020-05-04T13:19:26 Fixed bug 5121 - Use SDL_calloc instead of calloc in Wayland_CreateWindow meyraud705 'SDL_Windows::driverdata' of a Wayland window is allocated by calloc in 'Wayland_CreateWindow' but freed by SDL_free in 'Wayland_DestroyWindow'.
Tudor Brindus 1a291ab1 2020-04-17T13:55:44 wayland: add support for SDL_SetWindowGrab
Ryan C. Gordon 02469877 2020-04-07T13:30:46 wayland: Support wayland compositors with wl_seat version < 5 (thanks, Nia!). Fixes Bugzilla #5074.
Sam Lantinga b6afbe63 2020-04-07T09:38:57 Added SDL_log.h to SDL_internal.h so logging is available everywhere
Ryan C. Gordon 7ad77bcc 2020-02-14T01:08:21 wayland: Don't force the window into OpenGL mode if we want Vulkan.
Ryan C. Gordon a77a890d 2020-02-14T00:58:36 wayland: Don't delay pending surface resize handling on Vulkan. OpenGL apparently needs to not do any drawing between wl_egl_window_resize and eglSwapBuffers, but Vulkan apps don't use SDL to present, so they never call into an equivalent of SDL_GL_SwapWindow where our Wayland code was handling pending resize work. Fixes Bugzilla #4722.
Ryan C. Gordon 4378fcd9 2020-02-10T23:48:06 wayland: Fix building with -fno-common (which is now the default in GCC 10). Fixes Bugzilla #4957.
Sam Lantinga 67f44788 2020-02-03T00:57:12 Fixed bug 4917 - Wayland: handle discrete pointer axis events Luis Caceres The current handling of Wayland mouse pointer events only handles wl_pointer.axis events, which, according to the Wayland documentation, deal with mouse wheel scroll events on a continuous scale. While this is reasonable for some input sources (e.g. touchpad two-finger scrolling), it is not for mouse wheel clicks which generate wl_pointer.axis events with large deltas. This patch adds handling for wl_pointer.axis_discrete and wl_pointer.frame events and prefers to report SDL_MouseWheelEvent in discrete units if they are available. This means that for mouse wheel scrolling we count in clicks, but for touchpad two-finger scrolling we still use whatever units Wayland uses. This behaviour is closer to that of the X11 backend. Since these events are only available since version 5 of the wl_seat interface, this patch also checks for this and falls back to the previous behaviour if its not available. I also had to add definitions for some of the pointer and keyboard events specified in versions 2-5 but these are just stubs and do nothing.
Sam Lantinga a8780c6a 2020-01-16T20:49:25 Updated copyright date for 2020
Michael Forney cdbeae52 2019-12-29T23:10:39 wayland: support wl_data_device_manager version < 3
Sylvain Becker 88ba6798 2019-10-30T21:12:36 Wayland: touch events, use of memory after it is freed
Sylvain Becker 86ae245b 2019-10-30T17:59:20 Use correct enum: typo in org_kde_kwin_server_decoration_mode instead of org_kde_kwin_server_decoration_manager_mode
Sylvain Becker 60d3965e 2019-10-30T15:36:17 Readability: remove redundant return, continue, enum declaration
Sylvain Becker b458d7a2 2019-10-30T15:13:55 Readability: remove redundant cast to the same type
Sylvain Becker 735691ec 2019-10-30T14:29:41 Remove nested redundant #ifndef
Sam Lantinga afdb40af 2019-08-05T23:38:48 Fixed bug 4689 - SDL fails to detect compositor shutdown on Wayland -- program keeps running M Stoeckl To reproduce: 1. Run any SDL-based program with a Wayland compositor, orphaning it so that it doesn't have an immediate parent process. (For example, from a terminal, running `supertux2 & disown`.) The program should use the wayland backend, i.e. by setting environment variable SDL_VIDEODRIVER=wayland. 2. Kill the compositor process. Results: - The SDL program will keep running. Expected results: - The SDL program should close. (What close should mean here, I'm not sure - is injecting an SDL_Quit the appropriate action when a video driver disconnects?) Build data: 2019-06-22, hg tip (12901:bf8d9d29cbf1), Linux, can reproduce with sway, weston, and other Wayland oompositors.
Alex Szpakowski 109cbd6e 2019-08-04T16:56:40 Fix touch-related compile errors on Linux.
Alex Szpakowski d5ec735a 2019-08-01T18:22:12 Add a windowID field to SDL_TouchFingerEvent (bug #4331). This is unimplemented on some platforms and will cause compile errors when building those platform backends for now.
Ryan C. Gordon d0fa93d6 2019-06-19T00:52:34 wayland: Fixed C99-style variable declaration inside for-loop.
Sebastian Krzyszkowiak 797b2813 2019-06-12T00:55:05 wayland: HiDPI support
Sylvain Becker 236b8606 2019-04-02T18:07:27 Bug 4576: one more warning
Sylvain Becker b8e5c561 2019-04-02T17:07:54 Bug 4576: remove touch/mouse duplication for Wayland
Sylvain Becker cddb285c 2019-03-12T20:04:08 Fixed bug 4513 - Wayland, fix crash when remove event is sent (from Sebastian Krzyszkowiak)
Sam Lantinga 5e13087b 2019-01-04T22:01:14 Updated copyright for 2019
Brandon Schaefer f9192ab8 2018-12-06T10:39:33 wayland: Do not try to lock on an invalid pointer This happens if you try to lock the pointer and (caps & WL_SEAT_CAPABILITY_POINTER) is false Leading to input->pointer being NULL which ends up bringing the wayland client down (at lease on weston)
Ryan C. Gordon 2878d4f8 2018-12-05T16:53:15 egl: Don't force X11 support when testing for EGL. Fixes building Wayland support on embedded systems without X11. (TODO: maybe move the EGL test out of the X11 tests at some point, too.)
Ryan C. Gordon bd3ee07c 2018-12-05T16:49:38 wayland: Send SDL_TOUCH_MOUSEID mouse events for touches.
Ryan C. Gordon c4bc59a5 2018-12-01T10:36:26 Patched to compile on Linux with --disable-threads. Fixes Bugzilla #4393.
Alex Szpakowski 5029d50e 2018-11-10T16:15:48 Add SDL_TouchDeviceType enum and SDL_GetTouchDeviceType(SDL_TouchID id). Touch device types include SDL_TOUCH_DEVICE_DIRECT (a touch screen with window-relative coordinates for touches), SDL_TOUCH_DEVICE_INDIRECT_ABSOLUTE (a trackpad-style device with absolute device coordinates), and SDL_TOUCH_DEVICE_INDIRECT_RELATIVE (a trackpad-style device with screen cursor-relative coordinates). Phone screens are an example of a direct device type. Mac trackpads are the indirect-absolute touch device type. The Apple TV remote is an indirect-relative touch device type.
Sebastian Krzyszkowiak 48917e0e 2018-11-07T01:08:35 wayland: fix resizing and fullscreen toggling For starters, we need to correctly respond to 0,0 configure after unsetting fullscreen. Also, turns out that there should be no drawing calls at all in between eglSwapBuffers and wl_egl_window_resize, as otherwise EGL can already allocate a wrongly sized buffer for a next frame, so handle those together.
Sebastian Krzyszkowiak 5f980514 2018-11-04T21:08:40 wayland: ask xdg-decoration protocol extension to use server-side decorations if possible.
Ryan C. Gordon 62494a2e 2018-10-31T15:03:41 Merge SDL-ryan-batching-renderer branch to default.
Ryan C. Gordon a5ebd4d7 2018-10-29T10:14:59 wayland: ask KDE protocol extension to use server-side decorations if possible.
Micha? Janiszewski 91820998 2018-10-28T21:36:48 Add and update include guards Include guards in most changed files were missing, I added them keeping the same style as other SDL files. In some cases I moved the include guards around to be the first thing the header has to take advantage of any possible improvements compiler may have for inclusion guards.
Ryan C. Gordon 367f9b91 2018-10-05T17:24:03 wayland: Fixed missing window sizing events. Fixes Bugzilla #4242.
Sam Lantinga 5febdfce 2018-09-24T11:49:25 Fixed whitespace
Thomas Perl 84e78320 2018-08-23T14:47:38 Fix "unresponsible application" issues in Wayland Polling without wl_display_flush() never responds to ping requests. In that case ping-pong works only on other events, such as user input or on frame swapped. From https://git.merproject.org/mer-core/libsdl/merge_requests/3 Original author: Alexander Akulich <a.akulich@omprussia.ru>
Ryan C. Gordon c8ac9096 2018-06-24T22:42:36 wayland: Implemented xdg-wm-base support. This is just in parity with the existing zxdg-shell-unstable-v6 code. Making the Wayland target robust (and uh, with title bars) is going to take a lot of work on top of this.
Ryan C. Gordon 2df59062 2018-04-15T17:42:09 wayland: zxdg_shell_v6 needs a configure event before using a surface at all. Fixes Bugzilla #4109. Fixes Bugzilla #4119.
sezero 40b27fd5 2018-02-12T17:00:00 revert the recent typecast assignment changes (see bug #4079) also change the void* typedefs for the two vulkan function pointers added in vulkan_internal.h into generic function pointer typedefs.
sezero 8a1ae708 2018-02-12T10:00:00 kill C99'ism in SDL_waylandvulkan.c
Ryan C. Gordon cd532207 2018-02-07T13:13:55 wayland: Add support for xdg-shell protocol (unstable v6). This is meant to be the desktop-enhanced version of wl_shell. Right now we just match what the existing wl_shell code does, but there are other areas of functionality available to us now, that we can fill in later. This uses the "unstable" API, since this is what ships in Ubuntu 17.10 (as part of Wayland 1.10), but Wayland 1.12 promotes this to stable with extremely minor changes. We will add support for the stable version when it makes sense to do so.
Sam Lantinga 90e72bf4 2018-01-30T18:08:34 Fixed ISO C99 compatibility SDL now builds with gcc 7.2 with the following command line options: -Wall -pedantic-errors -Wno-deprecated-declarations -Wno-overlength-strings --std=c99
Sam Lantinga 8111a632 2018-01-03T10:49:26 Fixed bug 4013 - Wayland: fix videoquit on multimonitor system Vladimir On multimonitor system Wayland_VideoQuit invalid deiniting. Tested in Centos7 + Weston
Sam Lantinga 1fa4bcca 2018-01-03T10:43:01 Fixed bug 4012 - Wayland: invalid direction on mouse wheel Vladimir Invalid direction on mouse wheel Patch tested in Centos 7 + Weston
Sam Lantinga 6bc38737 2018-01-03T10:07:27 Fixed bug 4011 - Wayland: fix free cursor Vladimir Sometimes SDL application crashes on cursor free. Patch tested under Centos 7 + weston
Sam Lantinga e3cc5b2c 2018-01-03T10:03:25 Updated copyright for 2018
Brandon Schaefer e27f12e0 2017-09-29T10:07:37 wayland: Fix bug 3814 -Wmissing-field-initializers
Sam Lantinga 50efbda7 2017-08-28T00:43:14 Fixed mingw Windows build, since SDL_vulkan_internal.h includes windows.h
Sam Lantinga 0d011ec6 2017-08-28T00:22:23 Renaming of guard header names to quiet -Wreserved-id-macro
Sam Lantinga ce2b1644 2017-08-28T00:11:38 Be clear that disabling Vulkan surface support disables the entire SDL Vulkan integration
Ryan C. Gordon 25e3a1ec 2017-08-27T22:15:57 vulkan: Initial Vulkan support! This work was done by Jacob Lifshay and Mark Callow; I'm just merging it into revision control.
Sam Lantinga 834ab350 2017-08-21T11:19:38 Fixed bug 3644 - Wayland touch event support Moritz Bitsch Attached is a small patch which enables multitouch events on Wayland.
Sam Lantinga 1d0584d5 2017-08-14T21:35:16 Hopefully fixed Wayland build
Sam Lantinga a4cfa936 2017-08-14T21:28:04 Fixed bug 2293 - Precise scrolling events Martijn Courteaux I implemented precise scrolling events. I have been through all the folders in /src/video/[platform] to implement where possible. This works on OS X, but I can't speak for others. Build farm will figure that out, I guess. I think this patch should introduce precise scrolling on OS X, Wayland, Mir, Windows, Android, Nacl, Windows RT. The way I provide precise scrolling events is by adding two float fields to the SDL_MouseWheelScrollEvent datastructure, called "preciseX" and "preciseY". The old integer fields "x" and "y" are still present. The idea is that every platform specific code normalises the scroll amounts and forwards them to the SDL_SendMouseWheel function. It is this function that will now accumulate these (using a static variable, as I have seen how it was implemented in the Windows specific code) and once we hit a unit size, set the traditional integer "x" and "y" fields. I believe this is pretty solid way of doing it, although I'm not the expert here. There is also a fix in the patch for a typo recently introduced, that might need to be taken away by the time anybody merges this in. There is also a file in Nacl which I have stripped a horrible amount of trailing whitespaces. (Leave that part out if you want).
Sam Lantinga fb835f9e 2017-08-14T20:22:19 Fixed bug 2330 - Debian bug report: SDL2 X11 driver buffer overflow with large X11 file descriptor manuel.montezelo Original bug report (note that it was against 2.0.0, it might have been fixed in between): http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=733015 -------------------------------------------------------- Package: libsdl2-2.0-0 Version: 2.0.0+dfsg1-3 Severity: normal Tags: patch I have occasional crashes here caused by the X11 backend of SDL2. It seems to be caused by the X11_Pending function trying to add a high number (> 1024) file descriptor to a fd_set before doing a select on it to avoid busy waiting on X11 events. This causes a buffer overflow because the file descriptor is larger (or equal) than the limit FD_SETSIZE. Attached is a possible workaround patch. Please also keep in mind that fd_set are also used in following files which may have similar problems. src/audio/bsd/SDL_bsdaudio.c src/audio/paudio/SDL_paudio.c src/audio/qsa/SDL_qsa_audio.c src/audio/sun/SDL_sunaudio.c src/joystick/linux/SDL_sysjoystick.c -------------------------------------------------------- On Tuesday 24 December 2013 00:43:13 Sven Eckelmann wrote: > I have occasional crashes here caused by the X11 backend of SDL2. It seems > to be caused by the X11_Pending function trying to add a high number (> > 1024) file descriptor to a fd_set before doing a select on it to avoid busy > waiting on X11 events. This causes a buffer overflow because the file > descriptor is larger (or equal) than the limit FD_SETSIZE. I personally experienced this problem while hacking on the python bindings package for SDL2 [1] (while doing make runtest). But it easier to reproduce in a smaller, synthetic testcase.
Sam Lantinga de91b124 2017-08-14T06:28:21 Fixed bug 3745 - specify SDLCALL as the calling convention for API callbacks Patches contributed by Ozkan Sezer
Sam Lantinga 56363ebf 2017-08-02T10:22:48 Fixed bug 3690 - SDL2 KMS/DRM render context support Manuel The attached patch adds support for KMS/DRM context graphics. It builds with no problem on X86_64 GNU/Linux systems, provided the needed libraries are present, and on ARM GNU/Linux systems that have KMS/DRM support and a GLES2 implementation. Tested on Raspberry Pi: KMS/DRM is what the Raspberry Pi will use as default in the near future, once the propietary DispmanX API by Broadcom is overtaken by open graphics stack, it's possible to boot current Raspbian system in KMS mode by adding "dtoverlay=vc4-kms-v3d" to config.txt on Raspbian's boot partition. X86 systems use KMS right away in every current GNU/Linux system. Simple build instructions: $./autogen.sh $./configure --enable-video-kmsdrm $make
Philipp Wiesemann fbd30c36 2017-06-11T22:30:39 Fixed missing error messages for SDL_GetWindowWMInfo().
Ryan C. Gordon 3c955d05 2017-06-11T00:50:26 syswm: prevent buffer overflow if SDL and app have different config headers. This only affects Wayland and DirectFB, as a Unix system generally has X11 support. Other platforms also have different sizes for the C union in question, but are likely the only target for that platform, etc. Apps that might run on Wayland or DirectFB will need to be compiled against new headers from an official 2.0.6 release, or be prepared to force the x11 target, or not use SDL_GetWindowWMInfo(). Fixes Bugzilla #3428.
Philipp Wiesemann 6c0aea42 2017-05-25T23:00:58 wayland: Fixed freeing memory of SDL_malloc() with plain free().
Philipp Wiesemann bf8ccf08 2017-05-19T23:30:59 Removed redundant mouse clean up on quit for some platforms. SDL_MouseQuit() already frees cursors and sets fields to NULL.
Sam Lantinga d3591800 2017-01-03T00:44:05 Fixed bug 3519 - SDL_GetDisplayMode fails to report mode.format when using Wayland backend Ryan C. Gordon Kristian says you can't do it with Wayland, and that going forward, it'll just handle whatever you throw at it anyhow. https://twitter.com/hoegsberg/status/816148272402165761 So I say we mark it SDL_PIXELFORMAT_RGB888, which is what my X11 display currently reports, and leave it at that.
Sam Lantinga 45b774e3 2017-01-01T18:33:28 Updated copyright for 2017
Sam Lantinga 97d05b0d 2016-12-09T05:12:27 Fixed a bunch of SwapWindow calls that needed their return value updated
Philipp Wiesemann d05a39d0 2016-11-18T00:05:54 Wayland: Fixed file descriptor leaks if device was not initialized.
Philipp Wiesemann 6fe15d63 2016-11-16T22:09:40 Wayland: Fixed memory leak if output retrieval failed. Found by Cppcheck.
Thomas Perl acce8659 2016-11-13T10:39:04 [qtwayland] Set orientation and window flags via SDL hints
Sam Lantinga 74e1dd4c 2016-11-11T13:14:00 Define _GNU_SOURCE when building SDL
Ryan C. Gordon 2898ada3 2016-11-10T12:07:34 wayland: fixed compiler warning about pipe2().
Sam Lantinga d767a450 2016-11-06T08:34:27 Fixed 2942 - Wayland: Drag and Drop / Clipboard x414e54 I have implemented Drag and Drop and Clipboard support for Wayland. Drag and dropping files from nautilus to the testdropfile application seems to work and also copy and paste.
Sam Lantinga 063f752e 2016-10-13T04:54:43 Fixed bug 3328 - Race condition in Wayland_VideoInit Robert Folland When running this little test program with SDL2 on Wayland it often crashes in SDL_Init. From a backtrace it is apparent that there is a race condition in creating a xkb_context_ref. Sometimes it is 0x0. By moving the relevant lines higher up in Wayland_VideoInit (in SDL2-2.0.4/src/video/wayland/SDL_waylandvideo.c:302) this seems to get fixed. I moved the call to WAYLAND_xkb_context_new() up to before the call to WAYLAND_wl_display_connect(). Here is the test program (just a loop of init and quit), and a backtrace from gdb: #include <cstdio> #include <stdlib.h> #include <SDL2/SDL.h> #include <unistd.h> #include <iostream> int main(int argc, char **argv) { int count = atoi(argv[1]); for (int i = 0; i < count; i++) { std::cout << "Init " << i << std::endl; if (SDL_Init(SDL_INIT_VIDEO) < 0) { SDL_LogError(SDL_LOG_CATEGORY_APPLICATION, "Couldn't initialize SDL: %s\n", SDL_GetError()); return 1; } std::cout << "Quit" << std::endl; SDL_Quit(); } return 0; } Init 12 Quit Init 13 Program received signal SIGSEGV, Segmentation fault. xkb_context_ref (ctx=ctx@entry=0x0) at src/context.c:156 156 ctx->refcnt++; (gdb) bt #0 xkb_context_ref (ctx=ctx@entry=0x0) at src/context.c:156 #1 0x00007ffff5e1cd4c in xkb_keymap_new (ctx=0x0, format=XKB_KEYMAP_FORMAT_TEXT_V1, flags=flags@entry=XKB_KEYMAP_COMPILE_NO_FLAGS) at src/keymap-priv.c:65 #2 0x00007ffff5e1c6cc in xkb_keymap_new_from_buffer (ctx=<optimized out>, buffer=0x7ffff7fd5000 "xkb_keymap {\nxkb_keycodes \"(unnamed)\" {\n\tminimum = 8;\n\tmaximum = 255;\n\t<ESC>", ' ' <repeats 16 times>, "= 9;\n\t<AE01>", ' ' <re peats 15 times>, "= 10;\n\t<AE02>", ' ' <repeats 15 times>, "= 11;\n\t<AE03>", ' ' <repeats 15 times>, "= 12;\n\t<AE04>", ' ' <repeats 12 times>..., length=48090, format=<optimized out>, flags=<optimized out>) at src/keymap.c:191 #3 0x00007ffff7b8ea4e in keyboard_handle_keymap (data=0x6169b0, keyboard=<optimized out>, format=<optimized out>, fd=5, size=48091) at /home/vlab/abs/sdl2/src/SDL2-2.0.4/src/video/wayland/SDL_waylandevents.c:269 #4 0x00007ffff64501f0 in ffi_call_unix64 () from /usr/lib/libffi.so.6 #5 0x00007ffff644fc58 in ffi_call () from /usr/lib/libffi.so.6 #6 0x00007ffff665be3e in wl_closure_invoke (closure=closure@entry=0x61f000, flags=flags@entry=1, target=<optimized out>, target@entry=0x616d20, opcode=opcode@entry=0, data=<optimized out>) at src/connection.c:949 #7 0x00007ffff6658be0 in dispatch_event (display=<optimized out>, queue=<optimized out>) at src/wayland-client.c:1274 #8 0x00007ffff6659db4 in dispatch_queue (queue=0x617398, display=0x6172d0) at src/wayland-client.c:1420 #9 wl_display_dispatch_queue_pending (display=0x6172d0, queue=0x617398) at src/wayland-client.c:1662 #10 0x00007ffff665a0cf in wl_display_roundtrip_queue (display=0x6172d0, queue=0x617398) at src/wayland-client.c:1085 #11 0x00007ffff7b8faa0 in Wayland_VideoInit (_this=<optimized out>) at /home/vlab/abs/sdl2/src/SDL2-2.0.4/src/video/wayland/SDL_waylandvideo.c:302 #12 0x00007ffff7b7aed6 in SDL_VideoInit_REAL (driver_name=<optimized out>, driver_name@entry=0x0) at /home/vlab/abs/sdl2/src/SDL2-2.0.4/src/video/SDL_video.c:513 #13 0x00007ffff7ae0ee7 in SDL_InitSubSystem_REAL (flags=16416) at /home/vlab/abs/sdl2/src/SDL2-2.0.4/src/SDL.c:173 #14 0x0000000000400b24 in main (argc=2, argv=0x7fffffffebb8) at vplay-init.cpp:13 (gdb)
Sam Lantinga eea76fc1 2016-10-07T18:11:03 Fixed bug 3063 - Wayland: SDL resizes EGL surface to 0x0. x414e54 Wayland will sometimes send empty resize events (0 width and 0 height) to the client. I have not worked out the exact conditions a client would receive these but I can assume it might be if the window is offscreen or not mapped yet. This causes issues with some SDL clients as they receive the 0x0 event and unexpected resize event or might not request to resize back to the correct size. As per the wl_shell Wayland spec configure events are only a suggestion and the client is free to ignore or pick a different size (this is how min/max and fixed aspect ratio is supped to be implemented). A patch is attached but is just the first iteration and I will fix any issues such as checking for FULLSCREEN/MAXIMIZED or RESIZABLE flags unless someone else fixes this first. I have update to take into account non resizable and fullscreen windows. Also adding in maximize/restore and title functions for Wayland.
Sam Lantinga f11a4409 2016-09-01T01:26:56 wayland: Add support for relative mouse mode, by Jonas ?dahl <jadahl@gmail.com> Generate the C protocol files from the protocol XML files installed by wayland-protocols, and use them to implement support for relative pointer motions and pointer locking. Note that at the time, the protocol is unstable and may change in the future. Any future breaking changes will, however, fail gracefully and result in no regressions compared to before this patch.
Bastien Nocera 736a624d 2016-09-01T01:22:58 Wayland: Set "class" for each window we create This will be used by Wayland compositors to match the application ID and .desktop file to the SDL window(s). Applications can set the SDL_VIDEO_WAYLAND_WMCLASS environemnt variable early in the process to override using the binary name as a fallback. Note that we also support the SDL_VIDEO_X11_WMCLASS in the Wayland backend so that if a program correctly associated the desktop file with the window under X11, only a newer SDL would be needed for it to work under Wayland. https://bugzilla.libsdl.org/show_bug.cgi?id=3376
Philipp Wiesemann 6ec5e640 2016-06-28T21:08:23 Fixed freeing strings created by strdup() with SDL_free(). This only worked on platforms where SDL_free() wraps free().
Jonas ?dahl 19d3500a 2016-06-23T18:39:05 wayland: Build own version of core protocol Since we are loading shared objects dynamically, build our own version of the core protocol symbols, so that we in the future can include protocol extensions.
Philipp Wiesemann 31cbb34e 2016-04-14T21:11:43 Wayland: Removed not needed including and setting of errno. One internal function was setting errno on error but it was not read afterwards.
Philipp Wiesemann a9edc513 2016-03-28T21:03:04 Wayland: Fixed missing error message if creating a custom cursor failed. SDL_GetError() returned no error message because it was written to stderr only.
Philipp Wiesemann 35da1308 2016-03-16T22:09:39 Wayland: Fixed crash if memory mapping failed while creating a custom cursor.
Philipp Wiesemann fa77df4e 2016-03-16T22:09:23 Wayland: Fixed storing a theme cursor which is never used in video data.
Philipp Wiesemann 676041aa 2016-03-11T22:10:15 Wayland: Fixed drawing created cursors without transparency.
Philipp Wiesemann 167dd4a1 2016-03-11T22:09:50 Wayland: Fixed showing created cursors incorrectly before the first redraw.
Philipp Wiesemann be34036e 2016-03-02T20:25:23 Wayland: Fixed fault in event handling which might have caused a crash someday. Found by Cppcheck.
Philipp Wiesemann ab8be043 2016-03-02T20:25:09 Wayland: Fixed crash if allocating memory for cursor failed. Also added missing error message if first allocation failed.