mirror of
https://github.com/cemu-project/vcpkg.git
synced 2025-02-13 15:59:39 +00:00
[sdl2] Fix patches files
This commit is contained in:
parent
50cb254510
commit
2fbc73e2cd
@ -1,75 +0,0 @@
|
|||||||
# HG changeset patch
|
|
||||||
# User Sam Lantinga <slouken@libsdl.org>
|
|
||||||
# Date 1542691020 28800
|
|
||||||
# Node ID 9091b20040cf04cdc348d290ca22373b36364c39
|
|
||||||
# Parent 144400e4630d885d2eb0761b7174433b4c0d90bb
|
|
||||||
Fixed bug 4391 - hid_enumerate() sometimes causes game to freeze for a few seconds
|
|
||||||
|
|
||||||
Daniel Gibson
|
|
||||||
|
|
||||||
Even though my game (dhewm3) doesn't use SDL_INIT_JOYSTICK, SDL_PumpEvent() calls SDL_JoystickUpdate() which ends up calling hid_enumerate() every three seconds, and sometimes on my Win7 box hid_enumerate() takes about 5 seconds, which causes the whole game to freeze for that time.
|
|
||||||
|
|
||||||
diff -r 144400e4630d -r 9091b20040cf include/SDL_bits.h
|
|
||||||
--- a/include/SDL_bits.h Sun Nov 18 19:28:20 2018 +0300
|
|
||||||
+++ b/include/SDL_bits.h Mon Nov 19 21:17:00 2018 -0800
|
|
||||||
@@ -101,6 +101,15 @@
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
+SDL_FORCE_INLINE SDL_bool
|
|
||||||
+SDL_HasExactlyOneBitSet32(Uint32 x)
|
|
||||||
+{
|
|
||||||
+ if (x && !(x & (x - 1))) {
|
|
||||||
+ return SDL_TRUE;
|
|
||||||
+ }
|
|
||||||
+ return SDL_FALSE;
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
/* Ends C function definitions when using C++ */
|
|
||||||
#ifdef __cplusplus
|
|
||||||
}
|
|
||||||
diff -r 144400e4630d -r 9091b20040cf src/SDL.c
|
|
||||||
--- a/src/SDL.c Sun Nov 18 19:28:20 2018 +0300
|
|
||||||
+++ b/src/SDL.c Mon Nov 19 21:17:00 2018 -0800
|
|
||||||
@@ -348,6 +348,12 @@
|
|
||||||
int num_subsystems = SDL_arraysize(SDL_SubsystemRefCount);
|
|
||||||
Uint32 initialized = 0;
|
|
||||||
|
|
||||||
+ /* Fast path for checking one flag */
|
|
||||||
+ if (SDL_HasExactlyOneBitSet32(flags)) {
|
|
||||||
+ int subsystem_index = SDL_MostSignificantBitIndex32(flags);
|
|
||||||
+ return SDL_SubsystemRefCount[subsystem_index] ? flags : 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
if (!flags) {
|
|
||||||
flags = SDL_INIT_EVERYTHING;
|
|
||||||
}
|
|
||||||
diff -r 144400e4630d -r 9091b20040cf src/joystick/SDL_joystick.c
|
|
||||||
--- a/src/joystick/SDL_joystick.c Sun Nov 18 19:28:20 2018 +0300
|
|
||||||
+++ b/src/joystick/SDL_joystick.c Mon Nov 19 21:17:00 2018 -0800
|
|
||||||
@@ -1016,6 +1016,10 @@
|
|
||||||
int i;
|
|
||||||
SDL_Joystick *joystick;
|
|
||||||
|
|
||||||
+ if (!SDL_WasInit(SDL_INIT_JOYSTICK)) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
SDL_LockJoysticks();
|
|
||||||
|
|
||||||
if (SDL_updating_joystick) {
|
|
||||||
diff -r 144400e4630d -r 9091b20040cf src/sensor/SDL_sensor.c
|
|
||||||
--- a/src/sensor/SDL_sensor.c Sun Nov 18 19:28:20 2018 +0300
|
|
||||||
+++ b/src/sensor/SDL_sensor.c Mon Nov 19 21:17:00 2018 -0800
|
|
||||||
@@ -505,6 +505,10 @@
|
|
||||||
int i;
|
|
||||||
SDL_Sensor *sensor;
|
|
||||||
|
|
||||||
+ if (!SDL_WasInit(SDL_INIT_SENSOR)) {
|
|
||||||
+ return;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
SDL_LockSensors();
|
|
||||||
|
|
||||||
if (SDL_updating_sensor) {
|
|
||||||
|
|
175
ports/sdl2/enable-winrt-cmake.patch
Normal file
175
ports/sdl2/enable-winrt-cmake.patch
Normal file
@ -0,0 +1,175 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 0128c7a..bd534e4 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -5,6 +5,18 @@
|
||||||
|
cmake_minimum_required(VERSION 2.8.11)
|
||||||
|
project(SDL2 C CXX)
|
||||||
|
|
||||||
|
+if(WINDOWS_STORE)
|
||||||
|
+ enable_language(CXX)
|
||||||
|
+ cmake_minimum_required(VERSION 3.11)
|
||||||
|
+ add_definitions(-DSDL_BUILDING_WINRT=1 -ZW)
|
||||||
|
+ link_libraries(
|
||||||
|
+ -nodefaultlib:vccorlib$<$<CONFIG:Debug>:d>
|
||||||
|
+ -nodefaultlib:msvcrt$<$<CONFIG:Debug>:d>
|
||||||
|
+ vccorlib$<$<CONFIG:Debug>:d>.lib
|
||||||
|
+ msvcrt$<$<CONFIG:Debug>:d>.lib
|
||||||
|
+ )
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
# !!! FIXME: this should probably do "MACOSX_RPATH ON" as a target property
|
||||||
|
# !!! FIXME: for the SDL2 shared library (so you get an
|
||||||
|
# !!! FIXME: install_name ("soname") of "@rpath/libSDL-whatever.dylib"
|
||||||
|
@@ -1297,6 +1309,11 @@
|
||||||
|
file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c)
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
|
||||||
|
|
||||||
|
+ if(WINDOWS_STORE)
|
||||||
|
+ file(GLOB WINRT_SOURCE_FILES ${SDL2_SOURCE_DIR}/src/core/winrt/*.c ${SDL2_SOURCE_DIR}/src/core/winrt/*.cpp)
|
||||||
|
+ list(APPEND SOURCE_FILES ${WINRT_SOURCE_FILES})
|
||||||
|
+ endif()
|
||||||
|
+
|
||||||
|
if(MSVC)
|
||||||
|
# Prevent codegen that would use the VC runtime libraries.
|
||||||
|
set_property(DIRECTORY . APPEND PROPERTY COMPILE_OPTIONS "/GS-")
|
||||||
|
@@ -1342,6 +1359,9 @@
|
||||||
|
check_include_file(ddraw.h HAVE_DDRAW_H)
|
||||||
|
check_include_file(dsound.h HAVE_DSOUND_H)
|
||||||
|
check_include_file(dinput.h HAVE_DINPUT_H)
|
||||||
|
+ if(WINDOWS_STORE OR VCPKG_TARGET_TRIPLET MATCHES "arm-windows")
|
||||||
|
+ set(HAVE_DINPUT_H 0)
|
||||||
|
+ endif()
|
||||||
|
check_include_file(dxgi.h HAVE_DXGI_H)
|
||||||
|
if(HAVE_D3D_H OR HAVE_D3D11_H OR HAVE_DDRAW_H OR HAVE_DSOUND_H OR HAVE_DINPUT_H)
|
||||||
|
set(HAVE_DIRECTX TRUE)
|
||||||
|
@@ -1359,18 +1379,20 @@
|
||||||
|
check_include_file(audioclient.h HAVE_AUDIOCLIENT_H)
|
||||||
|
|
||||||
|
if(SDL_AUDIO)
|
||||||
|
+ if(NOT WINDOWS_STORE)
|
||||||
|
set(SDL_AUDIO_DRIVER_WINMM 1)
|
||||||
|
file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c)
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${WINMM_AUDIO_SOURCES})
|
||||||
|
+ endif()
|
||||||
|
set(HAVE_SDL_AUDIO TRUE)
|
||||||
|
|
||||||
|
- if(HAVE_DSOUND_H)
|
||||||
|
+ if(HAVE_DSOUND_H AND NOT WINDOWS_STORE)
|
||||||
|
set(SDL_AUDIO_DRIVER_DSOUND 1)
|
||||||
|
file(GLOB DSOUND_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/directsound/*.c)
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${DSOUND_AUDIO_SOURCES})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
- if(WASAPI AND HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H)
|
||||||
|
+ if(WASAPI AND HAVE_AUDIOCLIENT_H AND HAVE_MMDEVICEAPI_H AND NOT WINDOWS_STORE)
|
||||||
|
set(SDL_AUDIO_DRIVER_WASAPI 1)
|
||||||
|
file(GLOB WASAPI_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/wasapi/*.c)
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${WASAPI_AUDIO_SOURCES})
|
||||||
|
@@ -1382,11 +1404,20 @@
|
||||||
|
if(NOT SDL_LOADSO)
|
||||||
|
message_error("SDL_VIDEO requires SDL_LOADSO, which is not enabled")
|
||||||
|
endif()
|
||||||
|
+ if(WINDOWS_STORE)
|
||||||
|
+ set(SDL_VIDEO_DRIVER_WINRT 1)
|
||||||
|
+ file(GLOB WIN_VIDEO_SOURCES
|
||||||
|
+ ${SDL2_SOURCE_DIR}/src/video/winrt/*.c
|
||||||
|
+ ${SDL2_SOURCE_DIR}/src/video/winrt/*.cpp
|
||||||
|
+ ${SDL2_SOURCE_DIR}/src/render/direct3d11/*.cpp
|
||||||
|
+ )
|
||||||
|
+ else()
|
||||||
|
set(SDL_VIDEO_DRIVER_WINDOWS 1)
|
||||||
|
file(GLOB WIN_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/windows/*.c)
|
||||||
|
+ endif()
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${WIN_VIDEO_SOURCES})
|
||||||
|
|
||||||
|
- if(RENDER_D3D AND HAVE_D3D_H)
|
||||||
|
+ if(RENDER_D3D AND HAVE_D3D_H AND NOT WINDOWS_STORE)
|
||||||
|
set(SDL_VIDEO_RENDER_D3D 1)
|
||||||
|
set(HAVE_RENDER_D3D TRUE)
|
||||||
|
endif()
|
||||||
|
@@ -1409,20 +1440,31 @@
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(SDL_POWER)
|
||||||
|
+ if(WINDOWS_STORE)
|
||||||
|
+ set(SDL_POWER_WINRT 1)
|
||||||
|
+ set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/winrt/SDL_syspower.cpp)
|
||||||
|
+ else()
|
||||||
|
set(SDL_POWER_WINDOWS 1)
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/windows/SDL_syspower.c)
|
||||||
|
+ endif()
|
||||||
|
set(HAVE_SDL_POWER TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(SDL_FILESYSTEM)
|
||||||
|
set(SDL_FILESYSTEM_WINDOWS 1)
|
||||||
|
+ if(WINDOWS_STORE)
|
||||||
|
+ file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/winrt/*.cpp)
|
||||||
|
+ else()
|
||||||
|
file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c)
|
||||||
|
+ endif()
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES})
|
||||||
|
set(HAVE_SDL_FILESYSTEM TRUE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
# Libraries for Win32 native and MinGW
|
||||||
|
+ if(NOT WINDOWS_STORE)
|
||||||
|
list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid advapi32 setupapi shell32)
|
||||||
|
+ endif()
|
||||||
|
|
||||||
|
# TODO: in configure.ac the check for timers is set on
|
||||||
|
# cygwin | mingw32* - does this include mingw32CE?
|
||||||
|
@@ -1444,7 +1486,7 @@
|
||||||
|
set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES})
|
||||||
|
|
||||||
|
if(SDL_VIDEO)
|
||||||
|
- if(VIDEO_OPENGL)
|
||||||
|
+ if(VIDEO_OPENGL AND NOT WINDOWS_STORE)
|
||||||
|
set(SDL_VIDEO_OPENGL 1)
|
||||||
|
set(SDL_VIDEO_OPENGL_WGL 1)
|
||||||
|
set(SDL_VIDEO_RENDER_OGL 1)
|
||||||
|
@@ -2027,12 +2069,14 @@
|
||||||
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
|
||||||
|
|
||||||
|
# Always build SDLmain
|
||||||
|
+if(NOT WINDOWS_STORE)
|
||||||
|
add_library(SDL2main STATIC ${SDLMAIN_SOURCES})
|
||||||
|
target_include_directories(SDL2main PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include/SDL2>)
|
||||||
|
set(_INSTALL_LIBS "SDL2main")
|
||||||
|
if (NOT ANDROID)
|
||||||
|
set_target_properties(SDL2main PROPERTIES DEBUG_POSTFIX "${SDL_CMAKE_DEBUG_POSTFIX}")
|
||||||
|
endif()
|
||||||
|
+endif()
|
||||||
|
|
||||||
|
if (ANDROID AND HAVE_HIDAPI)
|
||||||
|
set(_INSTALL_LIBS ${_INSTALL_LIBS} "hidapi")
|
||||||
|
diff --git a/include/SDL_config.h.cmake b/include/SDL_config.h.cmake
|
||||||
|
index 48dd2d4..0c4fa28 100644
|
||||||
|
--- a/include/SDL_config.h.cmake
|
||||||
|
+++ b/include/SDL_config.h.cmake
|
||||||
|
@@ -335,6 +326,7 @@
|
||||||
|
#cmakedefine SDL_VIDEO_DRIVER_DUMMY @SDL_VIDEO_DRIVER_DUMMY@
|
||||||
|
#cmakedefine SDL_VIDEO_DRIVER_OFFSCREEN @SDL_VIDEO_DRIVER_OFFSCREEN@
|
||||||
|
#cmakedefine SDL_VIDEO_DRIVER_WINDOWS @SDL_VIDEO_DRIVER_WINDOWS@
|
||||||
|
+#cmakedefine SDL_VIDEO_DRIVER_WINRT @SDL_VIDEO_DRIVER_WINRT@
|
||||||
|
#cmakedefine SDL_VIDEO_DRIVER_WAYLAND @SDL_VIDEO_DRIVER_WAYLAND@
|
||||||
|
#cmakedefine SDL_VIDEO_DRIVER_RPI @SDL_VIDEO_DRIVER_RPI@
|
||||||
|
#cmakedefine SDL_VIDEO_DRIVER_VIVANTE @SDL_VIDEO_DRIVER_VIVANTE@
|
||||||
|
@@ -403,6 +404,7 @@
|
||||||
|
#cmakedefine SDL_POWER_ANDROID @SDL_POWER_ANDROID@
|
||||||
|
#cmakedefine SDL_POWER_LINUX @SDL_POWER_LINUX@
|
||||||
|
#cmakedefine SDL_POWER_WINDOWS @SDL_POWER_WINDOWS@
|
||||||
|
+#cmakedefine SDL_POWER_WINRT @SDL_POWER_WINRT@
|
||||||
|
#cmakedefine SDL_POWER_MACOSX @SDL_POWER_MACOSX@
|
||||||
|
#cmakedefine SDL_POWER_UIKIT @SDL_POWER_UIKIT@
|
||||||
|
#cmakedefine SDL_POWER_HAIKU @SDL_POWER_HAIKU@
|
||||||
|
@@ -428,7 +430,7 @@
|
||||||
|
#cmakedefine SDL_IPHONE_KEYBOARD @SDL_IPHONE_KEYBOARD@
|
||||||
|
#cmakedefine SDL_IPHONE_LAUNCHSCREEN @SDL_IPHONE_LAUNCHSCREEN@
|
||||||
|
|
||||||
|
-#if !defined(__WIN32__)
|
||||||
|
+#if !defined(__WIN32__) && !defined(__WINRT__)
|
||||||
|
# if !defined(_STDINT_H_) && !defined(_STDINT_H) && !defined(HAVE_STDINT_H) && !defined(_HAVE_STDINT_H)
|
||||||
|
typedef unsigned int size_t;
|
||||||
|
typedef signed char int8_t;
|
@ -1,31 +0,0 @@
|
|||||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
|
||||||
index bd59d89b2..85ebe5f7b 100644
|
|
||||||
--- a/CMakeLists.txt
|
|
||||||
+++ b/CMakeLists.txt
|
|
||||||
@@ -1789,7 +1789,7 @@ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}")
|
|
||||||
|
|
||||||
# Always build SDLmain
|
|
||||||
add_library(SDL2main STATIC ${SDLMAIN_SOURCES})
|
|
||||||
-target_include_directories(SDL2main PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include/SDL2>)
|
|
||||||
+target_include_directories(SDL2main PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include/SDL2>)
|
|
||||||
set(_INSTALL_LIBS "SDL2main")
|
|
||||||
if (NOT ANDROID)
|
|
||||||
set_target_properties(SDL2main PROPERTIES DEBUG_POSTFIX ${SDL_CMAKE_DEBUG_POSTFIX})
|
|
||||||
@@ -1820,7 +1820,7 @@ if(SDL_SHARED)
|
|
||||||
endif()
|
|
||||||
set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS})
|
|
||||||
target_link_libraries(SDL2 ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
|
|
||||||
- target_include_directories(SDL2 PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include/SDL2>)
|
|
||||||
+ target_include_directories(SDL2 PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include/SDL2>)
|
|
||||||
if (NOT ANDROID)
|
|
||||||
set_target_properties(SDL2 PROPERTIES DEBUG_POSTFIX ${SDL_CMAKE_DEBUG_POSTFIX})
|
|
||||||
endif()
|
|
||||||
@@ -1860,7 +1860,7 @@ if(SDL_STATIC)
|
|
||||||
# libraries - do we need to consider this?
|
|
||||||
set(_INSTALL_LIBS "SDL2-static" ${_INSTALL_LIBS})
|
|
||||||
target_link_libraries(SDL2-static ${EXTRA_LIBS} ${EXTRA_LDFLAGS})
|
|
||||||
- target_include_directories(SDL2-static PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include/SDL2>)
|
|
||||||
+ target_include_directories(SDL2-static PUBLIC "$<BUILD_INTERFACE:${SDL2_SOURCE_DIR}/include>" $<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include/SDL2>)
|
|
||||||
if (NOT ANDROID)
|
|
||||||
set_target_properties(SDL2-static PROPERTIES DEBUG_POSTFIX ${SDL_CMAKE_DEBUG_POSTFIX})
|
|
||||||
endif()
|
|
@ -1,15 +0,0 @@
|
|||||||
diff --git a/src/events/SDL_mouse.c b/src/events/SDL_mouse.c
|
|
||||||
index ff23c5e..fc90bba 100644
|
|
||||||
--- a/src/events/SDL_mouse.c
|
|
||||||
+++ b/src/events/SDL_mouse.c
|
|
||||||
@@ -20,6 +20,10 @@
|
|
||||||
*/
|
|
||||||
#include "../SDL_internal.h"
|
|
||||||
|
|
||||||
+#ifdef __WIN32__
|
|
||||||
+#include "../core/windows/SDL_windows.h"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/* General mouse handling code for SDL */
|
|
||||||
|
|
||||||
#include "SDL_assert.h"
|
|
Loading…
x
Reference in New Issue
Block a user