* Some refactoring and bug fixes. Thanks Micha? Kuchta!

This commit is contained in:
Brandon Schaefer 2017-03-01 14:50:59 -08:00
parent bc8778854e
commit 7bbb13ea59
8 changed files with 435 additions and 141 deletions

16
configure vendored
View File

@ -745,6 +745,7 @@ infodir
docdir docdir
oldincludedir oldincludedir
includedir includedir
runstatedir
localstatedir localstatedir
sharedstatedir sharedstatedir
sysconfdir sysconfdir
@ -916,6 +917,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc' sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com' sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var' localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include' includedir='${prefix}/include'
oldincludedir='/usr/include' oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}' docdir='${datarootdir}/doc/${PACKAGE}'
@ -1168,6 +1170,15 @@ do
| -silent | --silent | --silen | --sile | --sil) | -silent | --silent | --silen | --sile | --sil)
silent=yes ;; silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;; ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@ -1305,7 +1316,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \ datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir libdir localedir mandir runstatedir
do do
eval ac_val=\$$ac_var eval ac_val=\$$ac_var
# Remove trailing slashes. # Remove trailing slashes.
@ -1458,6 +1469,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var] --localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib] --libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include] --includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include] --oldincludedir=DIR C header files for non-gcc [/usr/include]
@ -19209,7 +19221,7 @@ int
main () main ()
{ {
MirTouchAction actions = mir_touch_actions MirWindowAttrib attrib = mir_window_attrib_state
; ;
return 0; return 0;

View File

@ -1,3 +1,4 @@
/* include/SDL_config.h. Generated from SDL_config.h.in by configure. */
/* /*
Simple DirectMedia Layer Simple DirectMedia Layer
Copyright (C) 1997-2017 Sam Lantinga <slouken@libsdl.org> Copyright (C) 1997-2017 Sam Lantinga <slouken@libsdl.org>
@ -22,32 +23,349 @@
#ifndef SDL_config_h_ #ifndef SDL_config_h_
#define SDL_config_h_ #define SDL_config_h_
#include "SDL_platform.h"
/** /**
* \file SDL_config.h * \file SDL_config.h.in
*
* This is a set of defines to configure the SDL features
*/ */
/* Add any platform that doesn't build using the configure system. */ /* General platform specific identifiers */
#if defined(__WIN32__) #include "SDL_platform.h"
#include "SDL_config_windows.h"
#elif defined(__WINRT__)
#include "SDL_config_winrt.h"
#elif defined(__MACOSX__)
#include "SDL_config_macosx.h"
#elif defined(__IPHONEOS__)
#include "SDL_config_iphoneos.h"
#elif defined(__ANDROID__)
#include "SDL_config_android.h"
#elif defined(__PSP__)
#include "SDL_config_psp.h"
#else
/* This is a minimal configuration just to get SDL running on new platforms */
#include "SDL_config_minimal.h"
#endif /* platform config */
#ifdef USING_GENERATED_CONFIG_H /* Make sure that this isn't included by Visual C++ */
#error Wrong SDL_config.h, check your include path? #ifdef _MSC_VER
#error You should run hg revert SDL_config.h
#endif #endif
/* C language features */
/* #undef const */
/* #undef inline */
/* #undef volatile */
/* C datatypes */
#ifdef __LP64__
#define SIZEOF_VOIDP 8
#else
#define SIZEOF_VOIDP 4
#endif
#define HAVE_GCC_ATOMICS 1
/* #undef HAVE_GCC_SYNC_LOCK_TEST_AND_SET */
/* #undef HAVE_DDRAW_H */
/* #undef HAVE_DINPUT_H */
/* #undef HAVE_DSOUND_H */
/* #undef HAVE_DXGI_H */
/* #undef HAVE_XINPUT_H */
/* Comment this if you want to build without any C library requirements */
#define HAVE_LIBC 1
#if HAVE_LIBC
/* Useful headers */
#define HAVE_ALLOCA_H 1
#define HAVE_SYS_TYPES_H 1
#define HAVE_STDIO_H 1
#define STDC_HEADERS 1
#define HAVE_STDLIB_H 1
#define HAVE_STDARG_H 1
#define HAVE_MALLOC_H 1
#define HAVE_MEMORY_H 1
#define HAVE_STRING_H 1
#define HAVE_STRINGS_H 1
#define HAVE_INTTYPES_H 1
#define HAVE_STDINT_H 1
#define HAVE_CTYPE_H 1
#define HAVE_MATH_H 1
#define HAVE_ICONV_H 1
#define HAVE_SIGNAL_H 1
/* #undef HAVE_ALTIVEC_H */
/* #undef HAVE_PTHREAD_NP_H */
#define HAVE_LIBUDEV_H 1
#define HAVE_DBUS_DBUS_H 1
#define HAVE_IBUS_IBUS_H 1
/* #undef HAVE_FCITX_FRONTEND_H */
#define HAVE_LIBSAMPLERATE_H 1
/* C library functions */
#define HAVE_MALLOC 1
#define HAVE_CALLOC 1
#define HAVE_REALLOC 1
#define HAVE_FREE 1
#define HAVE_ALLOCA 1
#ifndef __WIN32__ /* Don't use C runtime versions of these on Windows */
#define HAVE_GETENV 1
#define HAVE_SETENV 1
#define HAVE_PUTENV 1
#define HAVE_UNSETENV 1
#endif
#define HAVE_QSORT 1
#define HAVE_ABS 1
#define HAVE_BCOPY 1
#define HAVE_MEMSET 1
#define HAVE_MEMCPY 1
#define HAVE_MEMMOVE 1
#define HAVE_MEMCMP 1
#define HAVE_STRLEN 1
/* #undef HAVE_STRLCPY */
/* #undef HAVE_STRLCAT */
#define HAVE_STRDUP 1
/* #undef HAVE__STRREV */
/* #undef HAVE__STRUPR */
/* #undef HAVE__STRLWR */
/* #undef HAVE_INDEX */
/* #undef HAVE_RINDEX */
#define HAVE_STRCHR 1
#define HAVE_STRRCHR 1
#define HAVE_STRSTR 1
/* #undef HAVE_ITOA */
/* #undef HAVE__LTOA */
/* #undef HAVE__UITOA */
/* #undef HAVE__ULTOA */
#define HAVE_STRTOL 1
#define HAVE_STRTOUL 1
/* #undef HAVE__I64TOA */
/* #undef HAVE__UI64TOA */
#define HAVE_STRTOLL 1
#define HAVE_STRTOULL 1
#define HAVE_STRTOD 1
#define HAVE_ATOI 1
#define HAVE_ATOF 1
#define HAVE_STRCMP 1
#define HAVE_STRNCMP 1
/* #undef HAVE__STRICMP */
#define HAVE_STRCASECMP 1
/* #undef HAVE__STRNICMP */
#define HAVE_STRNCASECMP 1
/* #undef HAVE_SSCANF */
#define HAVE_VSSCANF 1
/* #undef HAVE_SNPRINTF */
#define HAVE_VSNPRINTF 1
#define HAVE_M_PI /**/
#define HAVE_ATAN 1
#define HAVE_ATAN2 1
#define HAVE_ACOS 1
#define HAVE_ASIN 1
#define HAVE_CEIL 1
#define HAVE_COPYSIGN 1
#define HAVE_COS 1
#define HAVE_COSF 1
#define HAVE_FABS 1
#define HAVE_FLOOR 1
#define HAVE_LOG 1
#define HAVE_POW 1
#define HAVE_SCALBN 1
#define HAVE_SIN 1
#define HAVE_SINF 1
#define HAVE_SQRT 1
#define HAVE_SQRTF 1
#define HAVE_TAN 1
#define HAVE_TANF 1
#define HAVE_FSEEKO 1
#define HAVE_FSEEKO64 1
#define HAVE_SIGACTION 1
#define HAVE_SA_SIGACTION 1
#define HAVE_SETJMP 1
#define HAVE_NANOSLEEP 1
#define HAVE_SYSCONF 1
/* #undef HAVE_SYSCTLBYNAME */
#define HAVE_CLOCK_GETTIME 1
/* #undef HAVE_GETPAGESIZE */
#define HAVE_MPROTECT 1
#define HAVE_ICONV 1
#define HAVE_PTHREAD_SETNAME_NP 1
/* #undef HAVE_PTHREAD_SET_NAME_NP */
#define HAVE_SEM_TIMEDWAIT 1
#define HAVE_GETAUXVAL 1
#else
#define HAVE_STDARG_H 1
#define HAVE_STDDEF_H 1
#define HAVE_STDINT_H 1
#endif /* HAVE_LIBC */
/* SDL internal assertion support */
/* #undef SDL_DEFAULT_ASSERT_LEVEL */
/* Allow disabling of core subsystems */
/* #undef SDL_ATOMIC_DISABLED */
/* #undef SDL_AUDIO_DISABLED */
/* #undef SDL_CPUINFO_DISABLED */
/* #undef SDL_EVENTS_DISABLED */
/* #undef SDL_FILE_DISABLED */
/* #undef SDL_JOYSTICK_DISABLED */
/* #undef SDL_HAPTIC_DISABLED */
/* #undef SDL_LOADSO_DISABLED */
/* #undef SDL_RENDER_DISABLED */
/* #undef SDL_THREADS_DISABLED */
/* #undef SDL_TIMERS_DISABLED */
/* #undef SDL_VIDEO_DISABLED */
/* #undef SDL_POWER_DISABLED */
/* #undef SDL_FILESYSTEM_DISABLED */
/* Enable various audio drivers */
#define SDL_AUDIO_DRIVER_ALSA 1
#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC "libasound.so.2"
/* #undef SDL_AUDIO_DRIVER_ARTS */
/* #undef SDL_AUDIO_DRIVER_ARTS_DYNAMIC */
#define SDL_AUDIO_DRIVER_PULSEAUDIO 1
#define SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC "libpulse-simple.so.0"
/* #undef SDL_AUDIO_DRIVER_HAIKU */
/* #undef SDL_AUDIO_DRIVER_BSD */
/* #undef SDL_AUDIO_DRIVER_COREAUDIO */
#define SDL_AUDIO_DRIVER_DISK 1
#define SDL_AUDIO_DRIVER_DUMMY 1
/* #undef SDL_AUDIO_DRIVER_ANDROID */
/* #undef SDL_AUDIO_DRIVER_XAUDIO2 */
/* #undef SDL_AUDIO_DRIVER_DSOUND */
/* #undef SDL_AUDIO_DRIVER_ESD */
/* #undef SDL_AUDIO_DRIVER_ESD_DYNAMIC */
/* #undef SDL_AUDIO_DRIVER_NACL */
/* #undef SDL_AUDIO_DRIVER_NAS */
/* #undef SDL_AUDIO_DRIVER_NAS_DYNAMIC */
/* #undef SDL_AUDIO_DRIVER_SNDIO */
/* #undef SDL_AUDIO_DRIVER_SNDIO_DYNAMIC */
#define SDL_AUDIO_DRIVER_OSS 1
/* #undef SDL_AUDIO_DRIVER_OSS_SOUNDCARD_H */
/* #undef SDL_AUDIO_DRIVER_PAUDIO */
/* #undef SDL_AUDIO_DRIVER_QSA */
/* #undef SDL_AUDIO_DRIVER_SUNAUDIO */
/* #undef SDL_AUDIO_DRIVER_WINMM */
/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND */
/* #undef SDL_AUDIO_DRIVER_FUSIONSOUND_DYNAMIC */
/* #undef SDL_AUDIO_DRIVER_EMSCRIPTEN */
/* Enable various input drivers */
#define SDL_INPUT_LINUXEV 1
#define SDL_INPUT_LINUXKD 1
/* #undef SDL_INPUT_TSLIB */
/* #undef SDL_JOYSTICK_HAIKU */
/* #undef SDL_JOYSTICK_DINPUT */
/* #undef SDL_JOYSTICK_XINPUT */
/* #undef SDL_JOYSTICK_DUMMY */
/* #undef SDL_JOYSTICK_IOKIT */
#define SDL_JOYSTICK_LINUX 1
/* #undef SDL_JOYSTICK_ANDROID */
/* #undef SDL_JOYSTICK_WINMM */
/* #undef SDL_JOYSTICK_USBHID */
/* #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H */
/* #undef SDL_JOYSTICK_EMSCRIPTEN */
/* #undef SDL_HAPTIC_DUMMY */
#define SDL_HAPTIC_LINUX 1
/* #undef SDL_HAPTIC_IOKIT */
/* #undef SDL_HAPTIC_DINPUT */
/* #undef SDL_HAPTIC_XINPUT */
/* Enable various shared object loading systems */
#define SDL_LOADSO_DLOPEN 1
/* #undef SDL_LOADSO_DUMMY */
/* #undef SDL_LOADSO_LDG */
/* #undef SDL_LOADSO_WINDOWS */
/* Enable various threading systems */
#define SDL_THREAD_PTHREAD 1
#define SDL_THREAD_PTHREAD_RECURSIVE_MUTEX 1
/* #undef SDL_THREAD_PTHREAD_RECURSIVE_MUTEX_NP */
/* #undef SDL_THREAD_WINDOWS */
/* Enable various timer systems */
/* #undef SDL_TIMER_HAIKU */
/* #undef SDL_TIMER_DUMMY */
#define SDL_TIMER_UNIX 1
/* #undef SDL_TIMER_WINDOWS */
/* Enable various video drivers */
/* #undef SDL_VIDEO_DRIVER_HAIKU */
/* #undef SDL_VIDEO_DRIVER_COCOA */
/* #undef SDL_VIDEO_DRIVER_DIRECTFB */
/* #undef SDL_VIDEO_DRIVER_DIRECTFB_DYNAMIC */
#define SDL_VIDEO_DRIVER_DUMMY 1
/* #undef SDL_VIDEO_DRIVER_WINDOWS */
#define SDL_VIDEO_DRIVER_WAYLAND 1
#define SDL_VIDEO_DRIVER_WAYLAND_QT_TOUCH 1
#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC "libwayland-client.so.0"
#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_EGL "libwayland-egl.so.1"
#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_CURSOR "libwayland-cursor.so.0"
#define SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_XKBCOMMON "libxkbcommon.so.0"
#define SDL_VIDEO_DRIVER_MIR 1
#define SDL_VIDEO_DRIVER_MIR_DYNAMIC "libmirclient.so.9"
#define SDL_VIDEO_DRIVER_MIR_DYNAMIC_XKBCOMMON "libxkbcommon.so.0"
#define SDL_VIDEO_DRIVER_X11 1
/* #undef SDL_VIDEO_DRIVER_RPI */
/* #undef SDL_VIDEO_DRIVER_ANDROID */
/* #undef SDL_VIDEO_DRIVER_EMSCRIPTEN */
#define SDL_VIDEO_DRIVER_X11_DYNAMIC "libX11.so.6"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XEXT "libXext.so.6"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XCURSOR "libXcursor.so.1"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA "libXinerama.so.1"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XINPUT2 "libXi.so.6"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XRANDR "libXrandr.so.2"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XSS "libXss.so.1"
#define SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE "libXxf86vm.so.1"
#define SDL_VIDEO_DRIVER_X11_XCURSOR 1
#define SDL_VIDEO_DRIVER_X11_XDBE 1
#define SDL_VIDEO_DRIVER_X11_XINERAMA 1
#define SDL_VIDEO_DRIVER_X11_XINPUT2 1
#define SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH 1
#define SDL_VIDEO_DRIVER_X11_XRANDR 1
#define SDL_VIDEO_DRIVER_X11_XSCRNSAVER 1
#define SDL_VIDEO_DRIVER_X11_XSHAPE 1
#define SDL_VIDEO_DRIVER_X11_XVIDMODE 1
#define SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS 1
#define SDL_VIDEO_DRIVER_X11_CONST_PARAM_XEXTADDDISPLAY 1
#define SDL_VIDEO_DRIVER_X11_HAS_XKBKEYCODETOKEYSYM 1
/* #undef SDL_VIDEO_DRIVER_NACL */
/* #undef SDL_VIDEO_DRIVER_VIVANTE */
/* #undef SDL_VIDEO_DRIVER_VIVANTE_VDK */
/* #undef SDL_VIDEO_RENDER_D3D */
/* #undef SDL_VIDEO_RENDER_D3D11 */
#define SDL_VIDEO_RENDER_OGL 1
#define SDL_VIDEO_RENDER_OGL_ES 1
#define SDL_VIDEO_RENDER_OGL_ES2 1
/* #undef SDL_VIDEO_RENDER_DIRECTFB */
/* Enable OpenGL support */
#define SDL_VIDEO_OPENGL 1
#define SDL_VIDEO_OPENGL_ES 1
#define SDL_VIDEO_OPENGL_ES2 1
/* #undef SDL_VIDEO_OPENGL_BGL */
/* #undef SDL_VIDEO_OPENGL_CGL */
#define SDL_VIDEO_OPENGL_EGL 1
#define SDL_VIDEO_OPENGL_GLX 1
/* #undef SDL_VIDEO_OPENGL_WGL */
/* #undef SDL_VIDEO_OPENGL_OSMESA */
/* #undef SDL_VIDEO_OPENGL_OSMESA_DYNAMIC */
/* Enable system power support */
#define SDL_POWER_LINUX 1
/* #undef SDL_POWER_WINDOWS */
/* #undef SDL_POWER_MACOSX */
/* #undef SDL_POWER_HAIKU */
/* #undef SDL_POWER_ANDROID */
/* #undef SDL_POWER_EMSCRIPTEN */
/* #undef SDL_POWER_HARDWIRED */
/* Enable system filesystem support */
/* #undef SDL_FILESYSTEM_HAIKU */
/* #undef SDL_FILESYSTEM_COCOA */
/* #undef SDL_FILESYSTEM_DUMMY */
#define SDL_FILESYSTEM_UNIX 1
/* #undef SDL_FILESYSTEM_WINDOWS */
/* #undef SDL_FILESYSTEM_NACL */
/* #undef SDL_FILESYSTEM_ANDROID */
/* #undef SDL_FILESYSTEM_EMSCRIPTEN */
/* Enable assembly routines */
#define SDL_ASSEMBLY_ROUTINES 1
/* #undef SDL_ALTIVEC_BLITTERS */
/* Enable ime support */
#define SDL_USE_IME 1
/* Enable dynamic udev support */
#define SDL_UDEV_DYNAMIC "libudev.so.1"
/* Enable dynamic libsamplerate support */
#define SDL_LIBSAMPLERATE_DYNAMIC "libsamplerate.so.0"
#endif /* SDL_config_h_ */ #endif /* SDL_config_h_ */

View File

@ -1,2 +1,2 @@
#define SDL_REVISION "hg-0:aaaaaaaaaaah" #define SDL_REVISION "hg-10922:5f4b80b748dd"
#define SDL_REVISION_NUMBER 0 #define SDL_REVISION_NUMBER 10922

View File

@ -210,6 +210,7 @@ ShouldUseTextureFramebuffer()
#if SDL_VIDEO_OPENGL #if SDL_VIDEO_OPENGL
/* Ugh, find a way to cache this value! */ /* Ugh, find a way to cache this value! */
{ {
/*
SDL_Window *window; SDL_Window *window;
SDL_GLContext context; SDL_GLContext context;
SDL_bool hasAcceleratedOpenGL = SDL_FALSE; SDL_bool hasAcceleratedOpenGL = SDL_FALSE;
@ -225,7 +226,6 @@ ShouldUseTextureFramebuffer()
if (glGetStringFunc) { if (glGetStringFunc) {
vendor = (const char *) glGetStringFunc(GL_VENDOR); vendor = (const char *) glGetStringFunc(GL_VENDOR);
} }
/* Add more vendors here at will... */
if (vendor && if (vendor &&
(SDL_strstr(vendor, "ATI Technologies") || (SDL_strstr(vendor, "ATI Technologies") ||
SDL_strstr(vendor, "NVIDIA"))) { SDL_strstr(vendor, "NVIDIA"))) {
@ -235,7 +235,8 @@ ShouldUseTextureFramebuffer()
} }
SDL_DestroyWindow(window); SDL_DestroyWindow(window);
} }
return hasAcceleratedOpenGL; */
return 1;//hasAcceleratedOpenGL;
} }
#elif SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2 #elif SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2
/* Let's be optimistic about this! */ /* Let's be optimistic about this! */

View File

@ -237,7 +237,7 @@ HandleMouseEvent(MirPointerEvent const* pointer, SDL_Window* sdl_window)
} }
static void static void
MIR_HandleInput(MirInputEvent const* input_event, SDL_Window* window) HandleInput(MirInputEvent const* input_event, SDL_Window* window)
{ {
switch (MIR_mir_input_event_get_type(input_event)) { switch (MIR_mir_input_event_get_type(input_event)) {
case (mir_input_event_type_key): case (mir_input_event_type_key):
@ -257,7 +257,7 @@ MIR_HandleInput(MirInputEvent const* input_event, SDL_Window* window)
} }
static void static void
MIR_HandleResize(MirResizeEvent const* resize_event, SDL_Window* window) HandleResize(MirResizeEvent const* resize_event, SDL_Window* window)
{ {
int new_w = MIR_mir_resize_event_get_width (resize_event); int new_w = MIR_mir_resize_event_get_width (resize_event);
int new_h = MIR_mir_resize_event_get_height(resize_event); int new_h = MIR_mir_resize_event_get_height(resize_event);
@ -270,7 +270,7 @@ MIR_HandleResize(MirResizeEvent const* resize_event, SDL_Window* window)
} }
static void static void
MIR_HandleWindow(MirWindowEvent const* event, SDL_Window* window) HandleWindow(MirWindowEvent const* event, SDL_Window* window)
{ {
MirWindowAttrib attrib = MIR_mir_window_event_get_attribute(event); MirWindowAttrib attrib = MIR_mir_window_event_get_attribute(event);
int value = MIR_mir_window_event_get_attribute_value(event); int value = MIR_mir_window_event_get_attribute_value(event);
@ -294,13 +294,13 @@ MIR_HandleEvent(MirWindow* mirwindow, MirEvent const* ev, void* context)
if (window) { if (window) {
switch (event_type) { switch (event_type) {
case (mir_event_type_input): case (mir_event_type_input):
MIR_HandleInput(MIR_mir_event_get_input_event(ev), window); HandleInput(MIR_mir_event_get_input_event(ev), window);
break; break;
case (mir_event_type_resize): case (mir_event_type_resize):
MIR_HandleResize(MIR_mir_event_get_resize_event(ev), window); HandleResize(MIR_mir_event_get_resize_event(ev), window);
break; break;
case (mir_event_type_window): case (mir_event_type_window):
MIR_HandleWindow(MIR_mir_event_get_window_event(ev), window); HandleWindow(MIR_mir_event_get_window_event(ev), window);
break; break;
default: default:
break; break;

View File

@ -27,6 +27,8 @@
#if SDL_VIDEO_DRIVER_MIR #if SDL_VIDEO_DRIVER_MIR
#include "SDL_log.h"
#include "SDL_mirwindow.h" #include "SDL_mirwindow.h"
#include "SDL_video.h" #include "SDL_video.h"
@ -98,7 +100,19 @@ MIR_Available()
int available = 0; int available = 0;
if (SDL_MIR_LoadSymbols()) { if (SDL_MIR_LoadSymbols()) {
/* !!! FIXME: try to make a MirConnection here. */
/* Lets ensure we can connect to the mir server */
MirConnection* connection = MIR_mir_connect_sync(NULL, __PRETTY_FUNCTION__);
if (!MIR_mir_connection_is_valid(connection)) {
SDL_LogWarn(SDL_LOG_CATEGORY_VIDEO, "Unable to connect to the mir server %s",
MIR_mir_connection_get_error_message(connection));
return available;
}
MIR_mir_connection_release(connection);
available = 1; available = 1;
SDL_MIR_UnloadSymbols(); SDL_MIR_UnloadSymbols();
} }

View File

@ -37,14 +37,14 @@
#include "SDL_mirdyn.h" #include "SDL_mirdyn.h"
int int
IsSurfaceValid(MIR_Window* mir_window) IsMirWindowValid(MIR_Window* mir_window)
{ {
if (!MIR_mir_window_is_valid(mir_window->window)) { if (!MIR_mir_window_is_valid(mir_window->window)) {
const char* error = MIR_mir_window_get_error_message(mir_window->window); const char* error = MIR_mir_window_get_error_message(mir_window->window);
return SDL_SetError("Failed to created a mir surface: %s", error); return SDL_SetError("Failed to created a mir surface: %s", error);
} }
return 0; return 1;
} }
MirPixelFormat MirPixelFormat
@ -194,153 +194,90 @@ MIR_GetWindowWMInfo(_THIS, SDL_Window* window, SDL_SysWMinfo* info)
return SDL_FALSE; return SDL_FALSE;
} }
static void
UpdateMirWindowState(MIR_Data* mir_data, MIR_Window* mir_window, MirWindowState window_state)
{
if (IsMirWindowValid(mir_window)) {
MirWindowSpec* spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_state(spec, window_state);
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
}
}
void void
MIR_SetWindowFullscreen(_THIS, SDL_Window* window, MIR_SetWindowFullscreen(_THIS, SDL_Window* window,
SDL_VideoDisplay* display, SDL_VideoDisplay* display,
SDL_bool fullscreen) SDL_bool fullscreen)
{ {
MIR_Data* mir_data = _this->driverdata; if (IsMirWindowValid(window->driverdata)) {
MIR_Window* mir_window = window->driverdata;
MirWindowSpec* spec;
MirWindowState state; MirWindowState state;
if (IsSurfaceValid(mir_window) < 0)
return;
if (fullscreen) { if (fullscreen) {
state = mir_window_state_fullscreen; state = mir_window_state_fullscreen;
} else { }
else {
state = mir_window_state_restored; state = mir_window_state_restored;
} }
spec = MIR_mir_create_window_spec(mir_data->connection); UpdateMirWindowState(_this->driverdata, window->driverdata, state);
MIR_mir_window_spec_set_state(spec, state); }
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
} }
void void
MIR_MaximizeWindow(_THIS, SDL_Window* window) MIR_MaximizeWindow(_THIS, SDL_Window* window)
{ {
MIR_Data* mir_data = _this->driverdata; UpdateMirWindowState(_this->driverdata, window->driverdata, mir_window_state_maximized);
MIR_Window* mir_window = window->driverdata;
MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0)
return;
spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_state(spec, mir_window_state_maximized);
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
} }
void void
MIR_MinimizeWindow(_THIS, SDL_Window* window) MIR_MinimizeWindow(_THIS, SDL_Window* window)
{ {
MIR_Data* mir_data = _this->driverdata; UpdateMirWindowState(_this->driverdata, window->driverdata, mir_window_state_minimized);
MIR_Window* mir_window = window->driverdata;
MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0)
return;
spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_state(spec, mir_window_state_minimized);
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
} }
void void
MIR_RestoreWindow(_THIS, SDL_Window * window) MIR_RestoreWindow(_THIS, SDL_Window * window)
{ {
MIR_Data* mir_data = _this->driverdata; UpdateMirWindowState(_this->driverdata, window->driverdata, mir_window_state_restored);
MIR_Window* mir_window = window->driverdata;
MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0)
return;
spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_state(spec, mir_window_state_restored);
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
} }
void void
MIR_HideWindow(_THIS, SDL_Window* window) MIR_HideWindow(_THIS, SDL_Window* window)
{ {
MIR_Data* mir_data = _this->driverdata; UpdateMirWindowState(_this->driverdata, window->driverdata, mir_window_state_hidden);
MIR_Window* mir_window = window->driverdata; }
MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0) static void
return; UpdateMirWindowSize(MIR_Data* mir_data, MIR_Window* mir_window, int width, int height)
{
spec = MIR_mir_create_window_spec(mir_data->connection); if (IsMirWindowValid(mir_window)) {
MIR_mir_window_spec_set_state(spec, mir_window_state_hidden); MirWindowSpec* spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_width (spec, width);
MIR_mir_window_spec_set_height(spec, height);
MIR_mir_window_apply_spec(mir_window->window, spec); MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec); MIR_mir_window_spec_release(spec);
}
} }
void void
MIR_SetWindowSize(_THIS, SDL_Window* window) MIR_SetWindowSize(_THIS, SDL_Window* window)
{ {
MIR_Data* mir_data = _this->driverdata; UpdateMirWindowSize(_this->driverdata, window->driverdata, window->w, window->h);
MIR_Window* mir_window = window->driverdata;
MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0)
return;
/* You cannot set the x/y of a mir window! So only update w/h */
spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_width (spec, window->w);
MIR_mir_window_spec_set_height(spec, window->h);
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
} }
void void
MIR_SetWindowMinimumSize(_THIS, SDL_Window* window) MIR_SetWindowMinimumSize(_THIS, SDL_Window* window)
{ {
MIR_Data* mir_data = _this->driverdata; UpdateMirWindowSize(_this->driverdata, window->driverdata, window->min_w, window->min_h);
MIR_Window* mir_window = window->driverdata;
MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0)
return;
spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_width (spec, window->min_w);
MIR_mir_window_spec_set_height(spec, window->min_h);
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
} }
void void
MIR_SetWindowMaximumSize(_THIS, SDL_Window* window) MIR_SetWindowMaximumSize(_THIS, SDL_Window* window)
{ {
MIR_Data* mir_data = _this->driverdata; UpdateMirWindowSize(_this->driverdata, window->driverdata, window->max_w, window->max_h);
MIR_Window* mir_window = window->driverdata;
MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0)
return;
spec = MIR_mir_create_window_spec(mir_data->connection);
MIR_mir_window_spec_set_max_width(spec, window->max_w);
MIR_mir_window_spec_set_max_height(spec, window->max_h);
MIR_mir_window_apply_spec(mir_window->window, spec);
MIR_mir_window_spec_release(spec);
} }
void void
@ -351,7 +288,7 @@ MIR_SetWindowTitle(_THIS, SDL_Window* window)
char const* title = window->title ? window->title : ""; char const* title = window->title ? window->title : "";
MirWindowSpec* spec; MirWindowSpec* spec;
if (IsSurfaceValid(mir_window) < 0) if (IsMirWindowValid(mir_window) < 0)
return; return;
spec = MIR_mir_create_window_spec(mir_data->connection); spec = MIR_mir_create_window_spec(mir_data->connection);

14
test/configure vendored
View File

@ -637,6 +637,7 @@ infodir
docdir docdir
oldincludedir oldincludedir
includedir includedir
runstatedir
localstatedir localstatedir
sharedstatedir sharedstatedir
sysconfdir sysconfdir
@ -717,6 +718,7 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc' sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com' sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var' localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include' includedir='${prefix}/include'
oldincludedir='/usr/include' oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}' docdir='${datarootdir}/doc/${PACKAGE}'
@ -969,6 +971,15 @@ do
| -silent | --silent | --silen | --sile | --sil) | -silent | --silent | --silen | --sile | --sil)
silent=yes ;; silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;; ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@ -1106,7 +1117,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \ datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir libdir localedir mandir runstatedir
do do
eval ac_val=\$$ac_var eval ac_val=\$$ac_var
# Remove trailing slashes. # Remove trailing slashes.
@ -1259,6 +1270,7 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var] --localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib] --libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include] --includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include] --oldincludedir=DIR C header files for non-gcc [/usr/include]