Wed, 26 Jul 2017 13:43:25 -0400Disable MMX inline assembly on Clang for now.
Ryan C. Gordon <icculus@icculus.org> [Wed, 26 Jul 2017 13:43:25 -0400] rev 11156
Disable MMX inline assembly on Clang for now.

We should probably rewrite this with SSE compiler intrinsics or something
anyhow.

Sun, 23 Jul 2017 19:25:16 -0400Fixed compiler warnings on QNX.
Ryan C. Gordon <icculus@icculus.org> [Sun, 23 Jul 2017 19:25:16 -0400] rev 11155
Fixed compiler warnings on QNX.

Fri, 21 Jul 2017 17:28:47 -0700Fixed build on older Mac OS X SDKs
Sam Lantinga <slouken@libsdl.org> [Fri, 21 Jul 2017 17:28:47 -0700] rev 11154
Fixed build on older Mac OS X SDKs

Thu, 20 Jul 2017 20:40:17 -0400sndio: fixed poll() call (thanks, kdrakehp!).
Ryan C. Gordon <icculus@icculus.org> [Thu, 20 Jul 2017 20:40:17 -0400] rev 11153
sndio: fixed poll() call (thanks, kdrakehp!).

Fixes Bugzilla #3705.

Thu, 20 Jul 2017 18:16:02 -0400sndio: More improvements to the OpenBSD audio target (thanks, kdrakehp!).
Ryan C. Gordon <icculus@icculus.org> [Thu, 20 Jul 2017 18:16:02 -0400] rev 11152
sndio: More improvements to the OpenBSD audio target (thanks, kdrakehp!).

Fixes Bugzilla #3705.

Thu, 20 Jul 2017 10:52:43 -0700Fixed bug 3410 - SDL_WINDOW_HIDDEN flag is inaccurate.
Sam Lantinga <slouken@libsdl.org> [Thu, 20 Jul 2017 10:52:43 -0700] rev 11151
Fixed bug 3410 - SDL_WINDOW_HIDDEN flag is inaccurate.

Jason Wyatt

After hiding the window, SDL_WINDOW_HIDDEN/SDL_WINDOW_SHOWN flags on a window are correctly updated. However on the next SDL_PumpEvents, they are set incorrectly.

This appears to be because X11_GetNetWMState does not check whether the _NET_WM_STATE property exists (it shouldn't on unmapped windows, see https://specifications.freedesktop.org/wm-spec/wm-spec-1.3.html#idm140130317598336). This results in an empty list of atoms for the state, which would imply that the window is not hidden.

(Seen on Fedora 24, Gnome)

--

Dan Ginsburg

More details on my proposed patch: I am on Kubuntu 16.04.2. I ran into this same bug, but with Jason's patch I found that actualType != None was true so the SDL_WINDOW_HIDDEN would still not be set. My fix instead is to explicitly check for whether the window is unmapped rather than relying on the returned values in XGetWindowProperty.

Thu, 20 Jul 2017 10:48:57 -0700Fixed bug 3689 - MMX YUV renderer crash
Sam Lantinga <slouken@libsdl.org> [Thu, 20 Jul 2017 10:48:57 -0700] rev 11150
Fixed bug 3689 - MMX YUV renderer crash

felix

The functions in src/render/SDL_yuv_mmx.c contain the following inline assembly snippet:

/* tap dance to workaround the inability to use %%ebx at will... */
/* move one thing to the stack... */
"pushl $0\n" /* save a slot on the stack. */
"pushl %%ebx\n" /* save %%ebx. */
"movl %0, %%ebx\n" /* put the thing in ebx. */
"movl %%ebx,4(%%esp)\n" /* put the thing in the stack slot. */
"popl %%ebx\n" /* get back %%ebx (the PIC register). */

Here's how it ended up in a binary on my old laptop:

0xb5c17dbd <ColorRGBDitherYV12MMX1X+93>: push $0x0
0xb5c17dbf <ColorRGBDitherYV12MMX1X+95>: push %ebx
0xb5c17dc0 <ColorRGBDitherYV12MMX1X+96>: mov 0xc(%esp),%ebx
0xb5c17dc4 <ColorRGBDitherYV12MMX1X+100>: mov %ebx,0x4(%esp)
0xb5c17dc8 <ColorRGBDitherYV12MMX1X+104>: pop %ebx

Apparently the compiler, oblivious to the fact that the assembly snippet manipulates the %esp register, decided to refer to the operand via that same register instead of via %ebp (I believe -fomit-frame-pointer enables this). This causes %ebx to be loaded with the wrong value, which later leads to a null pointer dereference.

Recent GCC can use the %ebx register normally: <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47602#c16>. There is even an explicit constraint "b" for allocating it.

Thu, 20 Jul 2017 10:46:38 -0700Fixed bug 3703 - Missing media keys support on Amazon Fire TV remote control
Sam Lantinga <slouken@libsdl.org> [Thu, 20 Jul 2017 10:46:38 -0700] rev 11149
Fixed bug 3703 - Missing media keys support on Amazon Fire TV remote control

Holger Schemel

Summary: This patch adds support for key events for the "rewind" and "fast forward" media keys on the Amazon Fire TV remote control.

How to reproduce the problem: Run Android build of SDL2 application on the Amazon Fire TV (tested with "stick" version) and log key events.

Expected behaviour: Every key pressed on the Fire TV remote control should result in a corresponding key event (pressed/released).

Observed behaviour: Of the bottom row of buttons on the Fire TV remote control, only the "play/pause" (middle) button generates a key event, while the "rewind" (left) and "fast forward" (right) buttons to not generate any event at all.

The attached patch adds support for these two missing buttons/keys.

Note 1: Some missing definitions were added for the already existing key codes SDL_SCANCODE_APP1 and SDL_SCANCODE_APP2 (to keep up the correct order of enumerations / array positions when adding the two new key codes).

Note 2: Definitions in "scancodes_linux.h" and "scancodes_xfree86.h" (to also add support for these keys on other platforms) were added without testing. However, I was unable to find corresponding definitions for these two media keys for Windows and Mac OS X.

Note 3: I have also updated the (broken) link to the USB usage page standard PDF document (comment in "include/SDL_scancode.h").

Thu, 20 Jul 2017 10:39:47 -0700Fixed bug 3705 - Add capture support to the sndio backend
Sam Lantinga <slouken@libsdl.org> [Thu, 20 Jul 2017 10:39:47 -0700] rev 11148
Fixed bug 3705 - Add capture support to the sndio backend

kdrakehp

The attached patch adds capture support to the sndio backend.

The patch also allows the `OpenDevice' function to accept arbitrary device names.

Sat, 15 Jul 2017 17:41:58 -0300iOS: Use modern replacements for deprecated functions, when available.
Alex Szpakowski <slime73@gmail.com> [Sat, 15 Jul 2017 17:41:58 -0300] rev 11147
iOS: Use modern replacements for deprecated functions, when available.