Fri, 17 Jan 2020 11:07:19 -0800Added support for the NACON GC-400ES
Sam Lantinga [Fri, 17 Jan 2020 11:07:19 -0800] rev 13427
Added support for the NACON GC-400ES

Fri, 17 Jan 2020 11:06:02 -0800On Mac OSX there are spurious hat events at program start, so skip these
Sam Lantinga [Fri, 17 Jan 2020 11:06:02 -0800] rev 13426
On Mac OSX there are spurious hat events at program start, so skip these

Fri, 17 Jan 2020 10:43:14 -0800Reattach the kernel driver after closing USB controllers
Sam Lantinga [Fri, 17 Jan 2020 10:43:14 -0800] rev 13425
Reattach the kernel driver after closing USB controllers

Fri, 17 Jan 2020 12:41:54 +0100Android: prevents rare crashes when app goes to background or ends.
Sylvain Becker [Fri, 17 Jan 2020 12:41:54 +0100] rev 13424
Android: prevents rare crashes when app goes to background or ends.

Make sure the thread is actually paused, and context backep-up, before
SurfaceView is destroyed (eg surfaceDestroyed() actually returns).

Add a timeout when surfaceDestroyed() is called, and check 'backup_done' variable.

It prevents crashes like:

#00 pc 000000000000c0d0 /system/lib64/libutils.so (android::RefBase::incStrong(void const*) const+8)
#01 pc 000000000000c7f4 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::UpdateBufferList(ANativeWindowBuffer*)+284)
#02 pc 000000000000c390 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::DequeueBuffer()+240)
#03 pc 000000000000bb10 /vendor/lib64/egl/eglSubDriverAndroid.so (EglAndroidWindowSurface::GetBuffer(EglSubResource*, EglMemoryDesc*)+64)
#04 pc 000000000032732c /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::UpdateResource(EsxContext*)+116)
#05 pc 0000000000326dd0 /vendor/lib64/egl/libGLESv2_adreno.so (EglWindowSurface::GetResource(EsxContext*, EsxResource**, EsxResource**, int)+56)
#06 pc 00000000002ae484 /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::AcquireBackBuffer(int)+364)
#07 pc 0000000000249680 /vendor/lib64/egl/libGLESv2_adreno.so (EsxContext::Clear(unsigned int, unsigned int, unsigned int, EsxClearValues*)+1800)
#08 pc 00000000002cb52c /vendor/lib64/egl/libGLESv2_adreno.so (EsxGlApiParamValidate::GlClear(EsxDispatch*, unsigned int)+132)

Fri, 17 Jan 2020 12:04:18 +0100Fixed bug 4246 - Android: orientation between portrait<->landscape doesn't work
Sylvain Becker [Fri, 17 Jan 2020 12:04:18 +0100] rev 13423
Fixed bug 4246 - Android: orientation between portrait<->landscape doesn't work

Improve handling of landscape/portrait orientation. Promote to SCREEN_ORIENTATION_SENSOR_* when needed.
Android window can be somehow resizable.
If SDL_WINDOW_RESIZABLE is set, window size change is allowed, for instance when orientation changes (provided the hint allows it).

Thu, 16 Jan 2020 20:49:25 -0800Updated copyright date for 2020
Sam Lantinga [Thu, 16 Jan 2020 20:49:25 -0800] rev 13422
Updated copyright date for 2020

Thu, 16 Jan 2020 15:54:20 -0800Fixed bug 4929 - Software renderer produces bugs when optimizations are turned on with Visual C++ 2019
Sam Lantinga [Thu, 16 Jan 2020 15:54:20 -0800] rev 13421
Fixed bug 4929 - Software renderer produces bugs when optimizations are turned on with Visual C++ 2019

Konrad

I took the liberty of rewriting this function a bit as it seemed to be unnecessary extended with ifs regarding flags (we can check everything in one pass which seem to be the thing which confuses Visual C++ 2019 as well).

Also, I have made CPU features an int instead of uint because if we check it against flags which are all ints it might as well just be int (no signed/unsigned bitwise comparison).

Thu, 16 Jan 2020 15:32:41 -0800Added support for the paddles on the Xbox One Elite Series 2 controller
Sam Lantinga [Thu, 16 Jan 2020 15:32:41 -0800] rev 13420
Added support for the paddles on the Xbox One Elite Series 2 controller

Thu, 16 Jan 2020 15:32:39 -0800Improved Xbox One controller initialization
Sam Lantinga [Thu, 16 Jan 2020 15:32:39 -0800] rev 13419
Improved Xbox One controller initialization

Thu, 16 Jan 2020 08:52:59 -0800Fixed bug 4903 - Lack of color multiply with alpha (SDL_BLENDMODE_MOD + SDL_BLENDMODE_BLEND) blending mode for all renderers
Sam Lantinga [Thu, 16 Jan 2020 08:52:59 -0800] rev 13418
Fixed bug 4903 - Lack of color multiply with alpha (SDL_BLENDMODE_MOD + SDL_BLENDMODE_BLEND) blending mode for all renderers

Konrad

This kind of blending is rather quite useful and in my opinion should be available for all renderers. I do need it myself, but since I didn't want to use a custom blending mode which is supported only by certain renderers (e.g. not in software which is quite important for me) I did write implementation of SDL_BLENDMODE_MUL for all renderers altogether.

SDL_BLENDMODE_MUL implements following equation:

dstRGB = (srcRGB * dstRGB) + (dstRGB * (1-srcA))
dstA = (srcA * dstA) + (dstA * (1-srcA))

Background:

https://i.imgur.com/UsYhydP.png

Blended texture:

https://i.imgur.com/0juXQcV.png

Result for SDL_BLENDMODE_MOD:

https://i.imgur.com/wgNSgUl.png

Result for SDL_BLENDMODE_MUL:

https://i.imgur.com/Veokzim.png

I think I did cover all possibilities within included patch, but I didn't write any tests for SDL_BLENDMODE_MUL, so it would be lovely if someone could do it.