The only reason we had to keep this was for emscripten builds. We can now use SDL v2 using “emconfigure ./configure CFLAGS="-s USE_SDL=2” and a few additional flags. SDL_Mixer v2 is not available in emscripten packages but either it will be added at some time, or I will get rid of it altogether. An alternate solution could be this code snippet I found: cd SDL2_mixer emconfigure ./configure --prefix=$(pwd)/dist --enable-music-ogg --disable-music-ogg-shared CFLAGS="-s USE_VORBIS=1" emmake make installlegacy
@@ -16,7 +16,6 @@ dnl | |||
AC_DEFUN([LOL_AC_CHECK_SDL], | |||
[ | |||
ac_cv_my_have_sdl="no" | |||
ac_cv_my_have_old_sdl="no" | |||
ac_cv_my_have_sdl_image="no" | |||
ac_cv_my_have_sdl_mixer="no" | |||
if test "${enable_sdl}" != "no"; then | |||
@@ -25,7 +24,6 @@ fi | |||
AM_CONDITIONAL(LOL_USE_SDL, test "${ac_cv_my_have_sdl}" != "no") | |||
AM_CONDITIONAL(LOL_USE_SDL_MIXER, test "${ac_cv_my_have_sdl_mixer}" != "no") | |||
AM_CONDITIONAL(LOL_USE_SDL_IMAGE, test "${ac_cv_my_have_sdl_image}" != "no") | |||
AM_CONDITIONAL(LOL_USE_OLD_SDL, test "${ac_cv_my_have_old_sdl}" != "no") | |||
]) | |||
# LOL_AC_CHECK_SDL_INNER() | |||
@@ -36,15 +34,13 @@ dnl Find which version of SDL to use (always required on Linux or Win32) | |||
dnl | |||
dnl Defined C/C++ macros: | |||
dnl LOL_USE_SDL -- whether SDL v2 was found | |||
dnl LOL_USE_OLD_SDL -- whether SDL v1 was found | |||
dnl LOL_USE_SDL_IMAGE -- whether SDL_image (v1 or v2) was found | |||
dnl LOL_USE_SDL_MIXER -- whether SDL_mixer (v1 or v2) was found | |||
dnl LOL_USE_SDL_IMAGE -- whether SDL_image was found | |||
dnl LOL_USE_SDL_MIXER -- whether SDL_mixer was found | |||
dnl HAVE_SDL_H -- whether to include <SDL.h> | |||
dnl HAVE_SDL_SDL_H -- whether to include <SDL/SDL.h> | |||
dnl HAVE_SDL2_SDL_H -- whether to include <SDL2/SDL.h> | |||
dnl Generated automake conditionals: | |||
dnl LOL_USE_SDL -- whether SDL v2 was found | |||
dnl LOL_USE_OLD_SDL -- whether SDL v1 was found | |||
dnl LOL_USE_SDL_IMAGE -- whether SDL_image was found | |||
dnl LOL_USE_SDL_MIXER -- whether SDL_mixer was found | |||
dnl Generated shell variables: | |||
@@ -105,75 +101,6 @@ if test "x${ac_cv_my_have_sdl}" = xno; then | |||
fi | |||
dnl Then, try the proper pkg-config check for SDL 1.x | |||
if test "x${ac_cv_my_have_sdl}" = xno \ | |||
-a "x${ac_cv_my_have_old_sdl}" = xno; then | |||
PKG_CHECK_MODULES(SDL, sdl, | |||
[ac_cv_my_have_old_sdl="yes" | |||
PKG_CHECK_MODULES(SDLMIXER, SDL_mixer, | |||
[ac_cv_my_have_sdl_mixer="yes" | |||
AC_DEFINE(HAVE_SDL_MIXER_H, 1, Define to 1 to use SDL_mixer.h)], | |||
[:]) | |||
PKG_CHECK_MODULES(SDLIMAGE, SDL_image, | |||
[ac_cv_my_have_sdl_image="yes" | |||
AC_DEFINE(HAVE_SDL_IMAGE_H, 1, Define to 1 to use SDL_image.h)], | |||
[:]) | |||
SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}" | |||
SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}" | |||
AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h)], | |||
[:]) | |||
fi | |||
dnl Then the old sdl-config method | |||
if test "x${ac_cv_my_have_sdl}" = xno \ | |||
-a "x${ac_cv_my_have_old_sdl}" = xno \ | |||
-a "x${cross_compiling}" != xyes; then | |||
AC_PATH_PROG(SDL_CONFIG, sdl-config, no) | |||
if test "${SDL_CONFIG}" != "no" && "${SDL_CONFIG}" --version >/dev/null; then | |||
ac_cv_my_have_old_sdl="yes" | |||
SDL_CFLAGS="${SDL_CFLAGS} `${SDL_CONFIG} --cflags`" | |||
SDL_LIBS="${SDL_LIBS} `${SDL_CONFIG} --libs`" | |||
AC_DEFINE(HAVE_SDL_H, 1, Define to 1 to use SDL.h) | |||
fi | |||
fi | |||
dnl Finally, try direct inclusion | |||
if test "x${ac_cv_my_have_sdl}" = xno \ | |||
-a "x${ac_cv_my_have_old_sdl}" = xno; then | |||
save_CPPFLAGS="${CPPFLAGS}" | |||
save_LIBS="${LIBS}" | |||
CPPFLAGS="${CPPFLAGS} ${SDL_CFLAGS}" | |||
LIBS="${LIBS} ${SDL_LIBS}" | |||
AC_CHECK_HEADERS(SDL.h SDL/SDL.h, [ac_cv_my_have_old_sdl="yes"]) | |||
if test "x${ac_cv_my_have_old_sdl}" != xno; then | |||
AC_CHECK_HEADERS(SDL_mixer.h SDL/SDL_mixer.h, | |||
[ac_cv_my_have_sdl_mixer="yes"]) | |||
AC_CHECK_HEADERS(SDL_image.h SDL/SDL_image.h, | |||
[ac_cv_my_have_sdl_image="yes"]) | |||
AC_CHECK_LIB(SDL, main, | |||
[SDL_LIBS="${SDL_LIBS} -lSDL"], | |||
[ac_cv_my_have_old_sdl="no"]) | |||
AC_CHECK_LIB(SDLmain, main, | |||
[SDL_LIBS="${SDL_LIBS} -lSDLmain -lSDL"]) | |||
AC_CHECK_LIB(SDL_mixer, main, | |||
[SDLMIXER_LIBS="${SDLMIXER_LIBS} -lSDL_mixer"], | |||
[ac_cv_my_have_sdl_mixer="no"]) | |||
AC_CHECK_LIB(SDL_image, main, | |||
[SDLIMAGE_LIBS="${SDLIMAGE_LIBS} -lSDL_image"], | |||
[ac_cv_my_have_sdl_image="no"]) | |||
fi | |||
SDL_CFLAGS="${SDL_CFLAGS} ${SDLMIXER_CFLAGS} ${SDLIMAGE_CFLAGS}" | |||
SDL_LIBS="${SDL_LIBS} ${SDLMIXER_LIBS} ${SDLIMAGE_LIBS}" | |||
CPPFLAGS="${save_CPPFLAGS}" | |||
LIBS="${save_LIBS}" | |||
fi | |||
dnl Convert all this into conditionals | |||
if test "x${ac_cv_my_have_sdl}" = xno; then | |||
@@ -194,9 +121,5 @@ else | |||
AC_DEFINE(LOL_USE_SDL_IMAGE, 1, Define to 1 to use SDL_image) | |||
fi | |||
if test "x${ac_cv_my_have_old_sdl}" != xno; then | |||
AC_DEFINE(LOL_USE_OLD_SDL, 1, Define to 1 to use SDL) | |||
fi | |||
]) # LOL_AC_CHECK_SDL_INNER | |||
@@ -276,7 +276,7 @@ configure() | |||
;; | |||
web-*) | |||
# We use --enable-release otherwise builds are really too slow | |||
do_configure --enable-release $HOSTFLAGS $BUILDFLAGS CC=emcc CXX=em++ AR=emar RANLIB=emranlib PKG_CONFIG=/bin/false SDL_CONFIG=/bin/false ac_cv_exeext=".${platform##web-}" | |||
do_configure --enable-release $HOSTFLAGS $BUILDFLAGS CC=emcc CXX=em++ AR=emar RANLIB=emranlib PKG_CONFIG=/bin/false SDL_CONFIG=/bin/false ac_cv_exeext=".${platform##web-}" CPPFLAGS="-s USE_SDL=2" CXXFLAGS="-s USE_SDL=2" CFLAGS="-s USE_SDL=2" | |||
;; | |||
*) | |||
PATH="$PATH" do_configure CFLAGS="$CXXFLAGS" CXXFLAGS="$CXXFLAGS" | |||
@@ -22,7 +22,7 @@ | |||
# include "platform/nacl/nacl-app.h" | |||
#elif __ANDROID__ | |||
# include "platform/android/androidapp.h" | |||
#elif LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#elif LOL_USE_SDL | |||
# include "platform/sdl/sdlapp.h" | |||
# include "platform/sdl/sdlinput.h" | |||
#elif HAVE_GLES_2X | |||
@@ -89,7 +89,7 @@ protected: | |||
//NOT HANDLED YET | |||
#elif __ANDROID__ | |||
//NOT HANDLED YET | |||
#elif LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#elif LOL_USE_SDL | |||
SdlAppDisplay display; | |||
#elif HAVE_GLES_2X | |||
/* FIXME: this macro is only deactivated if we include "lolgl.h" */ | |||
@@ -149,7 +149,7 @@ class ApplicationData | |||
NaClApp app; | |||
#elif __ANDROID__ | |||
AndroidApp app; | |||
#elif LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#elif LOL_USE_SDL | |||
SdlApp app; | |||
#elif HAVE_GLES_2X | |||
/* FIXME: this macro is only deactivated if we include "lolgl.h" */ | |||
@@ -24,7 +24,7 @@ | |||
# include <EGL/eglext.h> | |||
#endif | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
# if HAVE_SDL2_SDL_H | |||
# include <SDL2/SDL.h> | |||
# elif HAVE_SDL_SDL_H | |||
@@ -36,7 +36,7 @@ | |||
#include "lolgl.h" | |||
#include "eglapp.h" | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
# include "platform/sdl/sdlinput.h" | |||
#endif | |||
@@ -251,7 +251,7 @@ EglApp::EglApp(char const *title, ivec2 res, float fps) : | |||
data->screen_size = uvec2(gwa.width, gwa.height); | |||
# endif | |||
# if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
# if LOL_USE_SDL | |||
new SdlInput(res.x, res.y, data->screen_size.x, data->screen_size.y); | |||
# endif | |||
@@ -30,7 +30,7 @@ | |||
#endif | |||
/* If using SDL on Windows or OS X, let it override main() */ | |||
#if (LOL_USE_SDL || LOL_USE_OLD_SDL) && (_WIN32 || __APPLE__) | |||
#if LOL_USE_SDL && (_WIN32 || __APPLE__) | |||
# include <SDL_main.h> | |||
#endif | |||
@@ -25,7 +25,7 @@ | |||
#endif | |||
/* If using SDL on Windows or OS X, let it override main() */ | |||
#if (LOL_USE_SDL || LOL_USE_OLD_SDL) && (_WIN32 || __APPLE__) | |||
#if LOL_USE_SDL && (_WIN32 || __APPLE__) | |||
# include <SDL_main.h> | |||
#endif | |||
@@ -12,7 +12,7 @@ | |||
#include <lol/engine-internal.h> | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
# if HAVE_SDL2_SDL_H | |||
# include <SDL2/SDL.h> | |||
# elif HAVE_SDL_SDL_H | |||
@@ -43,8 +43,6 @@ private: | |||
#if LOL_USE_SDL | |||
SDL_Window *m_window; | |||
SDL_GLContext m_glcontext; | |||
#elif LOL_USE_OLD_SDL | |||
SDL_Surface *m_window; | |||
#endif | |||
}; | |||
@@ -54,7 +52,7 @@ private: | |||
SdlAppDisplay::SdlAppDisplay(char const *title, ivec2 res) | |||
: data(new SdlAppDisplayData()) | |||
{ | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
ivec2 window_size = res; | |||
ivec2 screen_size = res; | |||
@@ -123,9 +121,6 @@ SdlAppDisplay::~SdlAppDisplay() | |||
SDL_GL_DeleteContext(data->m_glcontext); | |||
SDL_DestroyWindow(data->m_window); | |||
} | |||
#elif LOL_USE_OLD_SDL | |||
if (data->m_window) | |||
SDL_FreeSurface(data->m_window); | |||
#endif | |||
delete data; | |||
@@ -135,16 +130,12 @@ void SdlAppDisplay::SetResolution(ivec2 resolution) | |||
{ | |||
#if LOL_USE_SDL | |||
SDL_SetWindowSize(data->m_window, resolution.x, resolution.y); | |||
#elif LOL_USE_OLD_SDL | |||
//Not implemented | |||
#endif | |||
} | |||
void SdlAppDisplay::SetPosition(ivec2 position) | |||
{ | |||
#if LOL_USE_SDL | |||
SDL_SetWindowPosition(data->m_window, position.x, position.y); | |||
#elif LOL_USE_OLD_SDL | |||
//Not implemented | |||
#endif | |||
} | |||
@@ -160,8 +151,6 @@ void SdlAppDisplay::Disable() | |||
{ | |||
#if LOL_USE_SDL | |||
SDL_GL_SwapWindow(data->m_window); | |||
#elif LOL_USE_OLD_SDL | |||
SDL_GL_SwapBuffers(); | |||
#endif | |||
} | |||
@@ -175,8 +164,6 @@ const char* SceneDisplay::GetPhysicalName(int index) | |||
{ | |||
return SDL_GetDisplayName(index); | |||
} | |||
#elif LOL_USE_OLD_SDL | |||
// Not implemented | |||
#endif | |||
/* | |||
@@ -190,8 +177,6 @@ private: | |||
#if LOL_USE_SDL | |||
SDL_Window *m_window; | |||
SDL_GLContext m_glcontext; | |||
#elif LOL_USE_OLD_SDL | |||
SDL_Surface *m_window; | |||
#endif | |||
}; | |||
@@ -202,7 +187,7 @@ SdlApp::SdlApp(char const *title, ivec2 res, float fps) : | |||
data(new SdlAppData()) | |||
{ | |||
UNUSED(title); | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
ivec2 window_size = res; | |||
ivec2 screen_size = res; | |||
@@ -223,7 +208,7 @@ SdlApp::SdlApp(char const *title, ivec2 res, float fps) : | |||
void SdlApp::ShowPointer(bool show) | |||
{ | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
SDL_ShowCursor(show ? 1 : 0); | |||
#endif | |||
} | |||
@@ -238,8 +223,6 @@ SdlApp::~SdlApp() | |||
{ | |||
#if LOL_USE_SDL | |||
SDL_Quit(); | |||
#elif LOL_USE_OLD_SDL | |||
SDL_Quit(); | |||
#endif | |||
delete data; | |||
} | |||
@@ -12,7 +12,7 @@ | |||
#include <lol/engine-internal.h> | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
# if HAVE_SDL2_SDL_H | |||
# include <SDL2/SDL.h> | |||
# elif HAVE_SDL_SDL_H | |||
@@ -39,65 +39,52 @@ | |||
namespace lol | |||
{ | |||
#if LOL_USE_OLD_SDL | |||
/* Quick and dirty for now... This is deprecated anyway. */ | |||
static int sdl12_to_scancode(int ch, int sc) | |||
//------------------------------------------------------------------------- | |||
#define _SC(id, str, name) static const uint16_t SDLOL_##name = id; | |||
#include "input/keys.h" | |||
//------------------------------------------------------------------------- | |||
static bool ScanCodeIsValid(int sc) | |||
{ | |||
if (ch >= 'a' && ch <= 'z') | |||
ch = ch - 'a' + 'A'; | |||
# define _SC(id, str, name) if (ch == str[0]) return id; | |||
# include "input/keys.h" | |||
return 0; | |||
} | |||
#else | |||
//------------------------------------------------------------------------- | |||
# define _SC(id, str, name) static const uint16_t SDLOL_##name = id; | |||
# include "input/keys.h" | |||
//------------------------------------------------------------------------- | |||
static bool ScanCodeIsValid(int sc) | |||
switch (sc) | |||
{ | |||
switch (sc) | |||
{ | |||
# define _SC(id, str, name) \ | |||
case id: return true; | |||
# include "input/keys.h" | |||
default: return false; | |||
} | |||
return false; | |||
#define _SC(id, str, name) \ | |||
case id: return true; | |||
#include "input/keys.h" | |||
default: return false; | |||
} | |||
//------------------------------------------------------------------------- | |||
/* DEBUG STUFF | |||
static String ScanCodeToText(int sc) | |||
return false; | |||
} | |||
//------------------------------------------------------------------------- | |||
/* DEBUG STUFF | |||
static String ScanCodeToText(int sc) | |||
{ | |||
switch (sc) | |||
{ | |||
switch (sc) | |||
{ | |||
# define _SC(id, str, name) \ | |||
case id: return String(str); | |||
# include "input/keys.h" | |||
default: | |||
msg::error("ScanCodeToText unknown scancode %0d\n", sc); | |||
} | |||
return String(); | |||
#define _SC(id, str, name) \ | |||
case id: return String(str); | |||
#include "input/keys.h" | |||
default: | |||
msg::error("ScanCodeToText unknown scancode %0d\n", sc); | |||
} | |||
*/ | |||
//------------------------------------------------------------------------- | |||
/* DEBUG STUFF | |||
static String ScanCodeToName(int sc) | |||
return String(); | |||
} | |||
*/ | |||
//------------------------------------------------------------------------- | |||
/* DEBUG STUFF | |||
static String ScanCodeToName(int sc) | |||
{ | |||
switch (sc) | |||
{ | |||
switch (sc) | |||
{ | |||
# define _SC(id, str, name) \ | |||
#define _SC(id, str, name) \ | |||
case id: return String(#name); | |||
# include "input/keys.h" | |||
default: | |||
msg::error("ScanCodeToText unknown scancode %0d\n", sc); | |||
} | |||
return String(); | |||
#include "input/keys.h" | |||
default: | |||
msg::error("ScanCodeToText unknown scancode %0d\n", sc); | |||
} | |||
*/ | |||
#endif | |||
return String(); | |||
} | |||
*/ | |||
/* | |||
* SDL Input implementation class | |||
@@ -123,7 +110,7 @@ private: | |||
m_tick_in_draw_thread(false) | |||
{ } | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
array<SDL_Joystick *, InputDeviceInternal *> m_joysticks; | |||
InputDeviceInternal *m_mouse; | |||
InputDeviceInternal *m_keyboard; | |||
@@ -148,19 +135,14 @@ SdlInput::SdlInput(int app_w, int app_h, int screen_w, int screen_h) | |||
m_data->m_tick_in_draw_thread = true; | |||
#endif | |||
#if LOL_USE_OLD_SDL | |||
/* Enable Unicode translation of keyboard events */ | |||
SDL_EnableUNICODE(1); | |||
#endif | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
SDL_Init(SDL_INIT_TIMER | SDL_INIT_JOYSTICK); | |||
#endif | |||
m_data->m_keyboard = InputDeviceInternal::CreateStandardKeyboard(); | |||
m_data->m_mouse = InputDeviceInternal::CreateStandardMouse(); | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
# if !EMSCRIPTEN | |||
# if SDL_FORCE_POLL_JOYSTICK | |||
SDL_JoystickEventState(SDL_QUERY); | |||
@@ -180,8 +162,6 @@ SdlInput::SdlInput(int app_w, int app_h, int screen_w, int screen_h) | |||
* it won't think there is only one trigger axis. */ | |||
# if LOL_USE_SDL | |||
char const *name = SDL_JoystickName(sdlstick); | |||
# elif LOL_USE_OLD_SDL | |||
char const *name = SDL_JoystickName(i); | |||
# endif | |||
if (strstr(name, "HDAPS") | |||
# if LOL_USE_XINPUT | |||
@@ -210,7 +190,7 @@ SdlInput::SdlInput(int app_w, int app_h, int screen_w, int screen_h) | |||
SdlInput::~SdlInput() | |||
{ | |||
#if (LOL_USE_SDL || LOL_USE_OLD_SDL) && !EMSCRIPTEN | |||
#if LOL_USE_SDL && !EMSCRIPTEN | |||
/* Unregister all the joysticks we added */ | |||
while (m_data->m_joysticks.count()) | |||
{ | |||
@@ -240,7 +220,7 @@ void SdlInput::TickDraw(float seconds, Scene &scene) | |||
void SdlInputData::Tick(float seconds) | |||
{ | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
#if LOL_USE_SDL | |||
/* FIXME: maybe we should make use of this? */ | |||
UNUSED(seconds); | |||
@@ -258,12 +238,10 @@ void SdlInputData::Tick(float seconds) | |||
m_mouse->SetAxis(4, 0); | |||
# if !LOL_USE_OLD_SDL | |||
if (m_keyboard->IsTextInputActive()) | |||
SDL_StartTextInput(); | |||
else | |||
SDL_StopTextInput(); | |||
# endif | |||
/* Handle keyboard and WM events */ | |||
SDL_Event event; | |||
@@ -277,12 +255,7 @@ void SdlInputData::Tick(float seconds) | |||
case SDL_KEYDOWN: | |||
case SDL_KEYUP: | |||
# if LOL_USE_OLD_SDL | |||
switch (int sc = sdl12_to_scancode(event.key.keysym.sym, | |||
event.key.keysym.scancode)) | |||
# else | |||
switch (int sc = event.key.keysym.scancode) | |||
# endif | |||
{ | |||
//Lock management | |||
case SDLOL_CapsLock: | |||
@@ -314,10 +287,6 @@ void SdlInputData::Tick(float seconds) | |||
} | |||
# endif | |||
default: | |||
# if LOL_USE_OLD_SDL | |||
m_keyboard->SetKey(sc ? sc : event.key.keysym.scancode, | |||
event.type == SDL_KEYDOWN); | |||
# else | |||
if (ScanCodeIsValid(sc)) | |||
{ | |||
//Set key updates the corresponding key | |||
@@ -334,27 +303,15 @@ void SdlInputData::Tick(float seconds) | |||
msg::error("unknown keypress (sym 0x%02x, scancode %0d)\n", | |||
event.key.keysym.sym, event.key.keysym.scancode); | |||
*/ | |||
# endif | |||
} | |||
break; | |||
# if !LOL_USE_OLD_SDL | |||
//case SDL_TEXTEDITING: //TODO: handle that ? | |||
case SDL_TEXTINPUT: | |||
m_keyboard->AddText(event.text.text); | |||
break; | |||
# endif | |||
# if LOL_USE_OLD_SDL | |||
case SDL_MOUSEBUTTONDOWN: | |||
case SDL_MOUSEBUTTONUP: | |||
if (event.button.button != SDL_BUTTON_WHEELUP && event.button.button != SDL_BUTTON_WHEELDOWN) | |||
m_mouse->SetKey(event.button.button - 1, event.type == SDL_MOUSEBUTTONDOWN); | |||
else | |||
m_mouse->SetAxis(4, (event.button.button != SDL_BUTTON_WHEELUP) ? (1) : (-1)); | |||
break; | |||
# else | |||
case SDL_MOUSEBUTTONDOWN: | |||
case SDL_MOUSEBUTTONUP: | |||
//event.button.which | |||
@@ -378,7 +335,6 @@ void SdlInputData::Tick(float seconds) | |||
} | |||
break; | |||
} | |||
# endif | |||
# if !SDL_FORCE_POLL_JOYSTICK | |||
case SDL_JOYAXISMOTION: | |||
@@ -400,8 +356,6 @@ void SdlInputData::Tick(float seconds) | |||
m_mousecapture = InputDeviceInternal::GetMouseCapture(); | |||
# if LOL_USE_SDL | |||
SDL_SetRelativeMouseMode(m_mousecapture ? SDL_TRUE : SDL_FALSE); | |||
# elif LOL_USE_OLD_SDL | |||
SDL_WM_GrabInput(m_mousecapture ? SDL_GRAB_ON : SDL_GRAB_OFF); | |||
# endif | |||
mouse = (ivec2)m_app / 2; | |||
SdlInputData::SetMousePos(mouse); | |||
@@ -424,14 +378,6 @@ void SdlInputData::Tick(float seconds) | |||
m_mouse->SetAxis(3,-(mouse.y - vprevmouse.y)); | |||
} | |||
//Mouse is focused, Validate the InScreen Key | |||
//Hardcoded 3, not very nice. | |||
# if !EMSCRIPTEN && LOL_USE_OLD_SDL | |||
m_mouse->SetKey(3, !!(SDL_GetAppState() & SDL_APPMOUSEFOCUS)); | |||
# else | |||
//Handled in PollEvent | |||
# endif | |||
if (m_mousecapture) | |||
{ | |||
mouse = ivec2(m_app * .5f); | |||
@@ -450,10 +396,7 @@ ivec2 SdlInputData::GetMousePos() | |||
{ | |||
ivec2 ret(-1, -1); | |||
#if LOL_USE_SDL || LOL_USE_OLD_SDL | |||
# if !EMSCRIPTEN && LOL_USE_OLD_SDL | |||
if (SDL_GetAppState() & SDL_APPMOUSEFOCUS) | |||
# endif | |||
#if LOL_USE_SDL | |||
{ | |||
SDL_GetMouseState(&ret.x, &ret.y); | |||
ret.y = Video::GetSize().y - 1 - ret.y; | |||
@@ -464,13 +407,10 @@ ivec2 SdlInputData::GetMousePos() | |||
void SdlInputData::SetMousePos(ivec2 position) | |||
{ | |||
UNUSED(position); | |||
#if LOL_USE_SDL | |||
// FIXME: how do I warped mouse? | |||
UNUSED(position); | |||
#elif LOL_USE_OLD_SDL | |||
SDL_WarpMouse((uint16_t)position.x, (uint16_t)position.y); | |||
#else | |||
UNUSED(position); | |||
//SDL_WarpMouse((uint16_t)position.x, (uint16_t)position.y); | |||
#endif | |||
} | |||