summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--groups/251.native_packages_lib.group4
-rw-r--r--patches/sdl2-2.0.12.local.patch (renamed from patches/sdl2-2.0.8.local.patch)0
-rw-r--r--patches/sdl2-2.0.12_pre.local.patch (renamed from patches/sdl2-2.0.8_pre.local.patch)79
-rw-r--r--patches/sdl2/alignment.patch18
-rw-r--r--patches/sdl2/dynapi.patch85
-rw-r--r--patches/sdl2/iconv.patch10
-rw-r--r--patches/sdl2/u16.patch112
-rw-r--r--patches/sdl2/wchar.patch40
-rw-r--r--patches/sdl2/win32.patch15
9 files changed, 229 insertions, 134 deletions
diff --git a/groups/251.native_packages_lib.group b/groups/251.native_packages_lib.group
index 147b194a..61381e7e 100644
--- a/groups/251.native_packages_lib.group
+++ b/groups/251.native_packages_lib.group
@@ -242,8 +242,8 @@ libxslt libz libzip sdl1 sdl1_net sdl1_image sdl2 sdl2_image sdl2_ttf wolfssl")"
: ${PKG_SDL1_IMAGE_URL:=https://www.libsdl.org/projects/SDL_image/release/SDL_image-${PKG_SDL1_IMAGE_VERSION}.tar.gz};
: ${PKG_SDL1_IMAGE_CONFIGURE_ARGS_EXTRA:="--enable-jpg-shared --enable-png-shared --enable-tif-shared --disable-webp --disable-webp-shared"};
: ${PKG_SDL2_DEPENDS:="w32api w32lib"};
-: ${PKG_SDL2_VERSION:=2.0.8};
-: ${PKG_SDL2_SHA256SUM:=edc77c57308661d576e843344d8638e025a7818bff73f8fbfab09c3c5fd092ec};
+: ${PKG_SDL2_SHA256SUM:=349268f695c02efbc9b9148a70b85e58cefbbf704abd3e91be654db7f1e2c863};
+: ${PKG_SDL2_VERSION:=2.0.12};
: ${PKG_SDL2_URL:=https://www.libsdl.org/release/SDL2-${PKG_SDL2_VERSION}.tar.gz};
: ${PKG_SDL2_CONFIGURE_ARGS_EXTRA:="--disable-video-vulkan --disable-video-opengles2 --disable-alsa --disable-static --disable-power"};
: ${PKG_SDL2_CFLAGS_CONFIGURE_EXTRA:="-DWINAPI_UTF16_DEFAULT -DUNICODE -DWINVER=0x0601 -I${PREFIX_NATIVE}/include/w32api.ports -DSDL_DISABLE_WINDOWS_IME"};
diff --git a/patches/sdl2-2.0.8.local.patch b/patches/sdl2-2.0.12.local.patch
index cb64946a..cb64946a 100644
--- a/patches/sdl2-2.0.8.local.patch
+++ b/patches/sdl2-2.0.12.local.patch
diff --git a/patches/sdl2-2.0.8_pre.local.patch b/patches/sdl2-2.0.12_pre.local.patch
index 5e870924..47caeaf3 100644
--- a/patches/sdl2-2.0.8_pre.local.patch
+++ b/patches/sdl2-2.0.12_pre.local.patch
@@ -1,14 +1,50 @@
+diff -ru SDL2-2.0.12.orig/configure.ac SDL2-2.0.12/configure.ac
+--- SDL2-2.0.12.orig/configure.ac 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/configure.ac 2020-10-07 12:42:16.906014070 +0200
+@@ -1332,7 +1332,7 @@
+ CFLAGS="$save_CFLAGS"
+
+ if test x$have_arm_simd = xyes; then
+- AC_DEFINE(SDL_ARM_SIMD_BLITTERS)
++ AC_DEFINE([SDL_ARM_SIMD_BLITTERS], [1], [ ])
+ dnl SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-simd*.c"
+ SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-simd*.S"
+ WARN_ABOUT_ARM_SIMD_ASM_MIT="yes"
+@@ -1371,7 +1371,7 @@
+ CFLAGS="$save_CFLAGS"
+
+ if test x$have_arm_neon = xyes; then
+- AC_DEFINE(SDL_ARM_NEON_BLITTERS)
++ AC_DEFINE([SDL_ARM_NEON_BLITTERS], [1], [ ])
+ dnl SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-neon*.c"
+ SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-neon*.S"
+ WARN_ABOUT_ARM_NEON_ASM_MIT="yes"
+@@ -1927,7 +1927,7 @@
+ XITouchClassInfo *t;
+ ],[
+ have_xinput2_multitouch=yes
+- AC_DEFINE([SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH], 1, [])
++ AC_DEFINE([SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH], [1], [ ])
+ SUMMARY_video_x11="${SUMMARY_video_x11} xinput2_multitouch"
+ ])
+ AC_MSG_RESULT($have_xinput2_multitouch)
+@@ -3094,11 +3094,11 @@
+
+ AC_CHECK_HEADER(mmdeviceapi.h, have_wasapi=yes)
+ if test x$have_wasapi = xyes; then
+- AC_DEFINE(HAVE_MMDEVICEAPI_H,1,[])
++ AC_DEFINE([HAVE_MMDEVICEAPI_H], [1], [ ])
+ fi
+ AC_CHECK_HEADER(audioclient.h,,have_wasapi=no)
+ if test x$have_wasapi = xyes; then
+- AC_DEFINE(HAVE_AUDIOCLIENT_H,1,[])
++ AC_DEFINE([HAVE_AUDIOCLIENT_H], [1], [ ])
+ fi
+
+ AC_ARG_ENABLE(wasapi,
diff -ru SDL2-2.0.8.orig/configure.in SDL2-2.0.8/configure.in
--- SDL2-2.0.8.orig/configure.in 2018-03-01 17:34:41.000000000 +0100
-+++ SDL2-2.0.8/configure.in 2020-09-27 15:02:24.837099348 +0200
-@@ -1868,7 +1868,6 @@
- XITouchClassInfo *t;
- ],[
- have_xinput2_multitouch=yes
-- AC_DEFINE([SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH], 1, [])
- SUMMARY_video_x11="${SUMMARY_video_x11} xinput2_multitouch"
- ])
- AC_MSG_RESULT($have_xinput2_multitouch)
++++ SDL2-2.0.8/configure.ac 2020-09-27 15:02:24.837099348 +0200
@@ -2770,6 +2769,10 @@
pthread_cflags="-D_REENTRANT"
pthread_lib="-lpthread"
@@ -88,31 +124,6 @@ diff -ru SDL2-2.0.8.orig/configure.in SDL2-2.0.8/configure.in
*-*-cygwin* | *-*-mingw32*)
ARCH=win32
if test "$build" != "$host"; then # cross-compiling
-diff -ru SDL2-2.0.8.orig/Makefile.in SDL2-2.0.8/Makefile.in
---- SDL2-2.0.8.orig/Makefile.in 2018-03-01 17:34:41.000000000 +0100
-+++ SDL2-2.0.8/Makefile.in 2020-09-27 14:14:34.616542401 +0200
-@@ -124,7 +124,7 @@
- LT_REVISION = @LT_REVISION@
- LT_LDFLAGS = -no-undefined -rpath $(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
-
--all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
-+all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET)
-
- $(srcdir)/configure: $(srcdir)/configure.in
- @echo "Warning, configure is out of date, please re-run autogen.sh"
-@@ -167,11 +167,10 @@
- $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \
- fi
-
--install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET)
-+install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET)
- $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)
- $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET)
- $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET)
-- $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET)
- install-data:
- $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal
- $(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4
diff -ru SDL2-2.0.8.orig/src/dynapi/SDL_dynapi.c SDL2-2.0.8/src/dynapi/SDL_dynapi.c
--- SDL2-2.0.8.orig/src/dynapi/SDL_dynapi.c 2018-03-01 17:34:42.000000000 +0100
+++ SDL2-2.0.8/src/dynapi/SDL_dynapi.c 2020-09-27 14:14:34.616542401 +0200
diff --git a/patches/sdl2/alignment.patch b/patches/sdl2/alignment.patch
new file mode 100644
index 00000000..091928d1
--- /dev/null
+++ b/patches/sdl2/alignment.patch
@@ -0,0 +1,18 @@
+diff -ru SDL2-2.0.12.orig/src/video/windows/SDL_windowstaskdialog.h SDL2-2.0.12/src/video/windows/SDL_windowstaskdialog.h
+--- SDL2-2.0.12.orig/src/video/windows/SDL_windowstaskdialog.h 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/src/video/windows/SDL_windowstaskdialog.h 2020-10-07 13:45:15.231259024 +0200
+@@ -18,7 +18,7 @@
+ misrepresented as being the original software.
+ 3. This notice may not be removed or altered from any source distribution.
+ */
+-#include <pshpack1.h>
++#pragma pack(push,1)
+
+ typedef HRESULT(CALLBACK *PFTASKDIALOGCALLBACK)(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam, LONG_PTR lpRefData);
+
+@@ -153,4 +153,4 @@
+ UINT cxWidth; // width of the Task Dialog's client area in DLU's. If 0, Task Dialog will calculate the ideal width.
+ } TASKDIALOGCONFIG;
+
+-#include <poppack.h>
++#pragma pack(pop)
diff --git a/patches/sdl2/dynapi.patch b/patches/sdl2/dynapi.patch
new file mode 100644
index 00000000..b2f175b8
--- /dev/null
+++ b/patches/sdl2/dynapi.patch
@@ -0,0 +1,85 @@
+diff -ru SDL2-2.0.12.orig/include/SDL_stdinc.h SDL2-2.0.12/include/SDL_stdinc.h
+--- SDL2-2.0.12.orig/include/SDL_stdinc.h 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/include/SDL_stdinc.h 2020-10-07 12:59:08.970629028 +0200
+@@ -455,6 +455,16 @@
+ extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len);
+ extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
+
++#ifdef __midipix__
++extern DECLSPEC size_t SDLCALL SDL_wcslen(const uint16_t *wstr);
++extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) uint16_t *dst, const uint16_t *src, size_t maxlen);
++extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) uint16_t *dst, const uint16_t *src, size_t maxlen);
++extern DECLSPEC uint16_t *SDLCALL SDL_wcsdup(const uint16_t *wstr);
++extern DECLSPEC uint16_t *SDLCALL SDL_wcsstr(const uint16_t *haystack, const uint16_t *needle);
++
++extern DECLSPEC int SDLCALL SDL_wcscmp(const uint16_t *str1, const uint16_t *str2);
++extern DECLSPEC int SDLCALL SDL_wcsncmp(const uint16_t *str1, const uint16_t *str2, size_t maxlen);
++#else
+ extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr);
+ extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
+ extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
+@@ -463,6 +473,7 @@
+
+ extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2);
+ extern DECLSPEC int SDLCALL SDL_wcsncmp(const wchar_t *str1, const wchar_t *str2, size_t maxlen);
++#endif
+
+ extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str);
+ extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen);
+diff -ru SDL2-2.0.12.orig/src/dynapi/SDL_dynapi_procs.h SDL2-2.0.12/src/dynapi/SDL_dynapi_procs.h
+--- SDL2-2.0.12.orig/src/dynapi/SDL_dynapi_procs.h 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/src/dynapi/SDL_dynapi_procs.h 2020-10-07 13:19:40.863706330 +0200
+@@ -418,9 +418,15 @@
+ SDL_DYNAPI_PROC(void*,SDL_memcpy,(SDL_OUT_BYTECAP(c) void *a, SDL_IN_BYTECAP(c) const void *b, size_t c),(a,b,c),return)
+ SDL_DYNAPI_PROC(void*,SDL_memmove,(SDL_OUT_BYTECAP(c) void *a, SDL_IN_BYTECAP(c) const void *b, size_t c),(a,b,c),return)
+ SDL_DYNAPI_PROC(int,SDL_memcmp,(const void *a, const void *b, size_t c),(a,b,c),return)
++#ifdef __midipix__
++SDL_DYNAPI_PROC(size_t,SDL_wcslen,(const uint16_t *a),(a),return)
++SDL_DYNAPI_PROC(size_t,SDL_wcslcpy,(SDL_OUT_Z_CAP(c) uint16_t *a, const uint16_t *b, size_t c),(a,b,c),return)
++SDL_DYNAPI_PROC(size_t,SDL_wcslcat,(SDL_INOUT_Z_CAP(c) uint16_t *a, const uint16_t *b, size_t c),(a,b,c),return)
++#else
+ SDL_DYNAPI_PROC(size_t,SDL_wcslen,(const wchar_t *a),(a),return)
+ SDL_DYNAPI_PROC(size_t,SDL_wcslcpy,(SDL_OUT_Z_CAP(c) wchar_t *a, const wchar_t *b, size_t c),(a,b,c),return)
+ SDL_DYNAPI_PROC(size_t,SDL_wcslcat,(SDL_INOUT_Z_CAP(c) wchar_t *a, const wchar_t *b, size_t c),(a,b,c),return)
++#endif
+ SDL_DYNAPI_PROC(size_t,SDL_strlen,(const char *a),(a),return)
+ SDL_DYNAPI_PROC(size_t,SDL_strlcpy,(SDL_OUT_Z_CAP(c) char *a, const char *b, size_t c),(a,b,c),return)
+ SDL_DYNAPI_PROC(size_t,SDL_utf8strlcpy,(SDL_OUT_Z_CAP(c) char *a, const char *b, size_t c),(a,b,c),return)
+@@ -660,7 +666,11 @@
+ SDL_DYNAPI_PROC(SDL_JoystickID,SDL_JoystickGetDeviceInstanceID,(int a),(a),return)
+ SDL_DYNAPI_PROC(size_t,SDL_utf8strlen,(const char *a),(a),return)
+ SDL_DYNAPI_PROC(void*,SDL_LoadFile_RW,(SDL_RWops *a, size_t *b, int c),(a,b,c),return)
++#ifdef __midipix__
++SDL_DYNAPI_PROC(int,SDL_wcscmp,(const uint16_t *a, const uint16_t *b),(a,b),return)
++#else
+ SDL_DYNAPI_PROC(int,SDL_wcscmp,(const wchar_t *a, const wchar_t *b),(a,b),return)
++#endif
+ SDL_DYNAPI_PROC(SDL_BlendMode,SDL_ComposeCustomBlendMode,(SDL_BlendFactor a, SDL_BlendFactor b, SDL_BlendOperation c, SDL_BlendFactor d, SDL_BlendFactor e, SDL_BlendOperation f),(a,b,c,d,e,f),return)
+ SDL_DYNAPI_PROC(SDL_Surface*,SDL_DuplicateSurface,(SDL_Surface *a),(a),return)
+ SDL_DYNAPI_PROC(int,SDL_Vulkan_LoadLibrary,(const char *a),(a),return)
+@@ -719,7 +729,11 @@
+ #endif
+ SDL_DYNAPI_PROC(double,SDL_exp,(double a),(a),return)
+ SDL_DYNAPI_PROC(float,SDL_expf,(float a),(a),return)
++#ifdef __midipix__
++SDL_DYNAPI_PROC(uint16_t*,SDL_wcsdup,(const uint16_t *a),(a),return)
++#else
+ SDL_DYNAPI_PROC(wchar_t*,SDL_wcsdup,(const wchar_t *a),(a),return)
++#endif
+ SDL_DYNAPI_PROC(int,SDL_GameControllerRumble,(SDL_GameController *a, Uint16 b, Uint16 c, Uint32 d),(a,b,c,d),return)
+ SDL_DYNAPI_PROC(int,SDL_JoystickRumble,(SDL_Joystick *a, Uint16 b, Uint16 c, Uint32 d),(a,b,c,d),return)
+ SDL_DYNAPI_PROC(int,SDL_NumSensors,(void),(),return)
+@@ -785,8 +799,13 @@
+ SDL_DYNAPI_PROC(int,SDL_LockTextureToSurface,(SDL_Texture *a, const SDL_Rect *b, SDL_Surface **c),(a,b,c),return)
+ SDL_DYNAPI_PROC(SDL_bool,SDL_HasARMSIMD,(void),(),return)
+ SDL_DYNAPI_PROC(char*,SDL_strtokr,(char *a, const char *b, char **c),(a,b,c),return)
++#ifdef __midipix__
++SDL_DYNAPI_PROC(uint16_t*,SDL_wcsstr,(const uint16_t *a, const uint16_t *b),(a,b),return)
++SDL_DYNAPI_PROC(int,SDL_wcsncmp,(const uint16_t *a, const uint16_t *b, size_t c),(a,b,c),return)
++#else
+ SDL_DYNAPI_PROC(wchar_t*,SDL_wcsstr,(const wchar_t *a, const wchar_t *b),(a,b),return)
+ SDL_DYNAPI_PROC(int,SDL_wcsncmp,(const wchar_t *a, const wchar_t *b, size_t c),(a,b,c),return)
++#endif
+ SDL_DYNAPI_PROC(SDL_GameControllerType,SDL_GameControllerTypeForIndex,(int a),(a),return)
+ SDL_DYNAPI_PROC(SDL_GameControllerType,SDL_GameControllerGetType,(SDL_GameController *a),(a),return)
+ SDL_DYNAPI_PROC(SDL_GameController*,SDL_GameControllerFromPlayerIndex,(int a),(a),return)
diff --git a/patches/sdl2/iconv.patch b/patches/sdl2/iconv.patch
index 64008c8a..3163ed38 100644
--- a/patches/sdl2/iconv.patch
+++ b/patches/sdl2/iconv.patch
@@ -1,12 +1,12 @@
-diff -ru SDL2-2.0.8.orig/src/stdlib/SDL_iconv.c SDL2-2.0.8/src/stdlib/SDL_iconv.c
---- SDL2-2.0.8.orig/src/stdlib/SDL_iconv.c 2018-03-01 17:34:42.000000000 +0100
-+++ SDL2-2.0.8/src/stdlib/SDL_iconv.c 2020-10-05 12:56:24.565427760 +0200
+diff -ru SDL2-2.0.12.orig/src/stdlib/SDL_iconv.c SDL2-2.0.12/src/stdlib/SDL_iconv.c
+--- SDL2-2.0.12.orig/src/stdlib/SDL_iconv.c 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/src/stdlib/SDL_iconv.c 2020-10-07 12:52:35.217963940 +0200
@@ -37,7 +37,7 @@
iconv() may or may not use const char ** for the inbuf param.
If we get this wrong, it's just a warning, so no big deal.
*/
--#if defined(_XGP6) || defined(__APPLE__) || \
-+#if defined(_XGP6) || defined(__APPLE__) || defined(__midipix__) || \
+-#if defined(_XGP6) || defined(__APPLE__) || defined(__RISCOS__) || \
++#if defined(_XGP6) || defined(__APPLE__) || defined(__RISCOS__) || defined(__midipix__) || \
defined(__EMSCRIPTEN__) || \
(defined(__GLIBC__) && ((__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 2)) || \
(defined(_NEWLIB_VERSION)))
diff --git a/patches/sdl2/u16.patch b/patches/sdl2/u16.patch
index d282e5e7..0a8966b4 100644
--- a/patches/sdl2/u16.patch
+++ b/patches/sdl2/u16.patch
@@ -1,59 +1,23 @@
-diff -ru SDL2-2.0.8.orig/include/SDL_stdinc.h SDL2-2.0.8/include/SDL_stdinc.h
---- SDL2-2.0.8.orig/include/SDL_stdinc.h 2018-03-01 17:34:41.000000000 +0100
-+++ SDL2-2.0.8/include/SDL_stdinc.h 2020-10-05 12:29:51.927442178 +0200
-@@ -451,10 +451,17 @@
- extern DECLSPEC void *SDLCALL SDL_memmove(SDL_OUT_BYTECAP(len) void *dst, SDL_IN_BYTECAP(len) const void *src, size_t len);
- extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
-
-+#ifdef __midipix__
-+extern DECLSPEC size_t SDLCALL SDL_wcslen(const uint16_t *wstr);
-+extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) uint16_t *dst, const uint16_t *src, size_t maxlen);
-+extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) uint16_t *dst, const uint16_t *src, size_t maxlen);
-+extern DECLSPEC int SDLCALL SDL_wcscmp(const uint16_t *str, const uint16_t *str2);
-+#else
- extern DECLSPEC size_t SDLCALL SDL_wcslen(const wchar_t *wstr);
- extern DECLSPEC size_t SDLCALL SDL_wcslcpy(SDL_OUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
- extern DECLSPEC size_t SDLCALL SDL_wcslcat(SDL_INOUT_Z_CAP(maxlen) wchar_t *dst, const wchar_t *src, size_t maxlen);
- extern DECLSPEC int SDLCALL SDL_wcscmp(const wchar_t *str1, const wchar_t *str2);
-+#endif /* !__midipix__ */
-
- extern DECLSPEC size_t SDLCALL SDL_strlen(const char *str);
- extern DECLSPEC size_t SDLCALL SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen);
-diff -ru SDL2-2.0.8.orig/src/dynapi/SDL_dynapi_procs.h SDL2-2.0.8/src/dynapi/SDL_dynapi_procs.h
---- SDL2-2.0.8.orig/src/dynapi/SDL_dynapi_procs.h 2018-03-01 17:34:42.000000000 +0100
-+++ SDL2-2.0.8/src/dynapi/SDL_dynapi_procs.h 2020-10-05 12:41:07.154180772 +0200
-@@ -418,9 +418,15 @@
- SDL_DYNAPI_PROC(void*,SDL_memcpy,(SDL_OUT_BYTECAP(c) void *a, SDL_IN_BYTECAP(c) const void *b, size_t c),(a,b,c),return)
- SDL_DYNAPI_PROC(void*,SDL_memmove,(SDL_OUT_BYTECAP(c) void *a, SDL_IN_BYTECAP(c) const void *b, size_t c),(a,b,c),return)
- SDL_DYNAPI_PROC(int,SDL_memcmp,(const void *a, const void *b, size_t c),(a,b,c),return)
-+#ifdef __midipix__
-+SDL_DYNAPI_PROC(size_t,SDL_wcslen,(const uint16_t *a),(a),return)
-+SDL_DYNAPI_PROC(size_t,SDL_wcslcpy,(SDL_OUT_Z_CAP(c) uint16_t *a, const uint16_t *b, size_t c),(a,b,c),return)
-+SDL_DYNAPI_PROC(size_t,SDL_wcslcat,(SDL_INOUT_Z_CAP(c) uint16_t *a, const uint16_t *b, size_t c),(a,b,c),return)
-+#else
- SDL_DYNAPI_PROC(size_t,SDL_wcslen,(const wchar_t *a),(a),return)
- SDL_DYNAPI_PROC(size_t,SDL_wcslcpy,(SDL_OUT_Z_CAP(c) wchar_t *a, const wchar_t *b, size_t c),(a,b,c),return)
- SDL_DYNAPI_PROC(size_t,SDL_wcslcat,(SDL_INOUT_Z_CAP(c) wchar_t *a, const wchar_t *b, size_t c),(a,b,c),return)
-+#endif
- SDL_DYNAPI_PROC(size_t,SDL_strlen,(const char *a),(a),return)
- SDL_DYNAPI_PROC(size_t,SDL_strlcpy,(SDL_OUT_Z_CAP(c) char *a, const char *b, size_t c),(a,b,c),return)
- SDL_DYNAPI_PROC(size_t,SDL_utf8strlcpy,(SDL_OUT_Z_CAP(c) char *a, const char *b, size_t c),(a,b,c),return)
-@@ -660,7 +666,11 @@
- SDL_DYNAPI_PROC(SDL_JoystickID,SDL_JoystickGetDeviceInstanceID,(int a),(a),return)
- SDL_DYNAPI_PROC(size_t,SDL_utf8strlen,(const char *a),(a),return)
- SDL_DYNAPI_PROC(void*,SDL_LoadFile_RW,(SDL_RWops *a, size_t *b, int c),(a,b,c),return)
+diff -ru SDL2-2.0.8.orig/src/video/windows/SDL_windowsmessagebox.c SDL2-2.0.8/src/video/windows/SDL_windowsmessagebox.c
+--- SDL2-2.0.8.orig/src/video/windows/SDL_windowsmessagebox.c 2018-03-01 17:34:42.000000000 +0100
++++ SDL2-2.0.8/src/video/windows/SDL_windowsmessagebox.c 2020-10-05 12:51:31.389436939 +0200
+@@ -350,7 +350,11 @@
+ HFONT DialogFont;
+ SIZE Size;
+ RECT TextSize;
+#ifdef __midipix__
-+SDL_DYNAPI_PROC(int,SDL_wcscmp,(const uint16_t *a, const uint16_t *b),(a,b),return)
++ uint16_t *wmessage;
+#else
- SDL_DYNAPI_PROC(int,SDL_wcscmp,(const wchar_t *a, const wchar_t *b),(a,b),return)
+ wchar_t* wmessage;
+#endif
- SDL_DYNAPI_PROC(SDL_BlendMode,SDL_ComposeCustomBlendMode,(SDL_BlendFactor a, SDL_BlendFactor b, SDL_BlendOperation c, SDL_BlendFactor d, SDL_BlendFactor e, SDL_BlendOperation f),(a,b,c,d,e,f),return)
- SDL_DYNAPI_PROC(SDL_Surface*,SDL_DuplicateSurface,(SDL_Surface *a),(a),return)
- SDL_DYNAPI_PROC(int,SDL_Vulkan_LoadLibrary,(const char *a),(a),return)
-diff -ru SDL2-2.0.8.orig/src/stdlib/SDL_string.c SDL2-2.0.8/src/stdlib/SDL_string.c
---- SDL2-2.0.8.orig/src/stdlib/SDL_string.c 2018-03-01 17:34:42.000000000 +0100
-+++ SDL2-2.0.8/src/stdlib/SDL_string.c 2020-10-05 12:29:39.691442561 +0200
-@@ -416,6 +416,44 @@
+ TEXTMETRIC TM;
+
+ HWND ParentWindow = NULL;
+
+diff -ru SDL2-2.0.12.orig/src/stdlib/SDL_string.c SDL2-2.0.12/src/stdlib/SDL_string.c
+--- SDL2-2.0.12.orig/src/stdlib/SDL_string.c 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/src/stdlib/SDL_string.c 2020-10-07 13:40:28.237747292 +0200
+@@ -421,6 +421,63 @@
#endif /* HAVE_STRLEN */
}
@@ -89,35 +53,39 @@ diff -ru SDL2-2.0.8.orig/src/stdlib/SDL_string.c SDL2-2.0.8/src/stdlib/SDL_strin
+ return dstlen + srclen;
+}
+
++uint16_t *
++SDL_wcsdup(const uint16_t *string)
++{
++ return u16_wcsdup(string);
++}
++
++uint16_t *
++SDL_wcsstr(const uint16_t *haystack, const uint16_t *needle)
++{
++ return SDL_const_cast(uint16_t*,u16_wcsstr(haystack, needle));
++}
++
+int
+SDL_wcscmp(const uint16_t *str1, const uint16_t *str2)
+{
+ return u16_wcscmp(str1, str2);
+}
-+#else
++
++int
++SDL_wcsncmp(const uint16_t *str1, const uint16_t *str2, size_t maxlen)
++{
++ return u16_wcsncmp(str1, str2, maxlen);
++}
++
++#else /* !__MIDIPIX__ */
size_t
SDL_wcslen(const wchar_t * string)
{
-@@ -476,6 +514,7 @@
+@@ -525,6 +582,7 @@
return (int)(*str1 - *str2);
- #endif /* HAVE_WCSCMP */
+ #endif /* HAVE_WCSNCMP */
}
-+#endif /* !__midipix__ */
++#endif /* !__MIDIPIX__ */
size_t
SDL_strlcpy(SDL_OUT_Z_CAP(maxlen) char *dst, const char *src, size_t maxlen)
-diff -ru SDL2-2.0.8.orig/src/video/windows/SDL_windowsmessagebox.c SDL2-2.0.8/src/video/windows/SDL_windowsmessagebox.c
---- SDL2-2.0.8.orig/src/video/windows/SDL_windowsmessagebox.c 2018-03-01 17:34:42.000000000 +0100
-+++ SDL2-2.0.8/src/video/windows/SDL_windowsmessagebox.c 2020-10-05 12:51:31.389436939 +0200
-@@ -350,7 +350,11 @@
- HFONT DialogFont;
- SIZE Size;
- RECT TextSize;
-+#ifdef __midipix__
-+ uint16_t *wmessage;
-+#else
- wchar_t* wmessage;
-+#endif
- TEXTMETRIC TM;
-
- HWND ParentWindow = NULL;
diff --git a/patches/sdl2/wchar.patch b/patches/sdl2/wchar.patch
index ea5a7dfb..8513c88e 100644
--- a/patches/sdl2/wchar.patch
+++ b/patches/sdl2/wchar.patch
@@ -1,26 +1,24 @@
-diff -ru SDL2-2.0.8.orig/src/video/windows/SDL_windowsevents.c SDL2-2.0.8/src/video/windows/SDL_windowsevents.c
---- SDL2-2.0.8.orig/src/video/windows/SDL_windowsevents.c 2018-03-01 17:34:42.000000000 +0100
-+++ SDL2-2.0.8/src/video/windows/SDL_windowsevents.c 2020-10-05 13:11:43.595494306 +0200
-@@ -47,6 +47,10 @@
- #include "wmmsg.h"
- #endif
-
-+#ifdef __midipix__
-+#define sdl_window_data (uint16_t[]){'S','D','L','_','W','i','n','d','o','w','D','a','t','a',0}
-+#endif
-+
- /* For processing mouse WM_*BUTTON* and WM_MOUSEMOVE message-data from GetMessageExtraInfo() */
- #define MOUSEEVENTF_FROMTOUCH 0xFF515700
-
-@@ -384,7 +388,11 @@
+diff -ru SDL2-2.0.12.orig/src/video/windows/SDL_windowsmessagebox.c SDL2-2.0.12/src/video/windows/SDL_windowsmessagebox.c
+--- SDL2-2.0.12.orig/src/video/windows/SDL_windowsmessagebox.c 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/src/video/windows/SDL_windowsmessagebox.c 2020-10-07 14:04:09.877146877 +0200
+@@ -803,7 +803,7 @@
}
-
+
+ /* If we cannot load comctl32.dll use the old messagebox! */
+- hComctl32 = LoadLibrary(TEXT("Comctl32.dll"));
++ hComctl32 = LoadLibrary((uint16_t[]){'C','o','m','c','t','l','3','2','.','d','l','l',0});
+ if (hComctl32 == NULL) {
+ return WIN_ShowOldMessageBox(messageboxdata, buttonid);
+ }
+diff -ru SDL2-2.0.12.orig/src/video/windows/SDL_windowsevents.c SDL2-2.0.12/src/video/windows/SDL_windowsevents.c
+--- SDL2-2.0.12.orig/src/video/windows/SDL_windowsevents.c 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/src/video/windows/SDL_windowsevents.c 2020-10-07 14:00:09.021392356 +0200
+@@ -416,7 +416,7 @@
+ }
+
/* Get the window data for the window */
-+#ifdef __midipix__
-+ data = (SDL_WindowData *) GetProp(hwnd, sdl_window_data);
-+#else
- data = (SDL_WindowData *) GetProp(hwnd, TEXT("SDL_WindowData"));
-+#endif
+- data = (SDL_WindowData *) GetProp(hwnd, TEXT("SDL_WindowData"));
++ data = (SDL_WindowData *) GetProp(hwnd, (uint16_t[]){'S','D','L','_','W','i','n','d','o','w','D','a','t','a',0});
if (!data) {
return CallWindowProc(DefWindowProc, hwnd, msg, wParam, lParam);
}
diff --git a/patches/sdl2/win32.patch b/patches/sdl2/win32.patch
index 0cc8167a..fc99beb4 100644
--- a/patches/sdl2/win32.patch
+++ b/patches/sdl2/win32.patch
@@ -1,3 +1,18 @@
+diff -ru SDL2-2.0.12.orig/src/video/windows/SDL_windowsvideo.c SDL2-2.0.12/src/video/windows/SDL_windowsvideo.c
+--- SDL2-2.0.12.orig/src/video/windows/SDL_windowsvideo.c 2020-03-11 02:36:18.000000000 +0100
++++ SDL2-2.0.12/src/video/windows/SDL_windowsvideo.c 2020-10-07 13:49:51.592298088 +0200
+@@ -43,6 +43,10 @@
+ SDL_bool g_WindowsEnableMessageLoop = SDL_TRUE;
+ SDL_bool g_WindowFrameUsableWhileCursorHidden = SDL_TRUE;
+
++#ifndef ES_CONTINUOUS
++#define ES_CONTINUOUS ((DWORD)0x80000000)
++#endif
++
+ static void SDLCALL
+ UpdateWindowsEnableMessageLoop(void *userdata, const char *name, const char *oldValue, const char *newValue)
+ {
+
--- SDL2-2.0.8.orig/src/video/windows/SDL_windowsvideo.c 2018-03-01 17:34:42.000000000 +0100
+++ SDL2-2.0.8/src/video/windows/SDL_windowsvideo.c 2020-10-05 01:07:51.101894646 +0200
@@ -240,13 +240,17 @@