From 074a1c4c6393daab1c20dbf5b7e3e7b5d37db592 Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Sat, 12 Oct 2013 16:29:34 -0300 Subject: [PATCH] Fixes X11 video backend compilation when no GL is available For example, in our Raspberry Pi sysroot. --- README-raspberrypi.txt | 6 ++++++ src/video/x11/SDL_x11window.c | 14 ++++++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/README-raspberrypi.txt b/README-raspberrypi.txt index aa19511c2..744fd89df 100644 --- a/README-raspberrypi.txt +++ b/README-raspberrypi.txt @@ -69,7 +69,13 @@ The final step is compiling SDL itself. cd mkdir -p build;cd build ../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd + make + make install +To be able to deploy this to /usr/local in the Raspbian system you need to fix up a few paths: + + perl -w -pi -e "s#$PWD/rpi-sdl2-installed#/usr/local#g;" ./rpi-sdl2-installed/lib/libSDL2.la ./rpi-sdl2-installed/lib/pkgconfig/sdl2.pc ./rpi-sdl2-installed/bin/sdl2-config + ================================================================================ Apps don't work or poor video/audio performance ================================================================================ diff --git a/src/video/x11/SDL_x11window.c b/src/video/x11/SDL_x11window.c index 07e863bc8..18ff443ad 100644 --- a/src/video/x11/SDL_x11window.c +++ b/src/video/x11/SDL_x11window.c @@ -370,8 +370,11 @@ X11_CreateWindow(_THIS, SDL_Window * window) XVisualInfo *vinfo = NULL; #if SDL_VIDEO_OPENGL_EGL - if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES && - ( !_this->gl_data || ! _this->gl_data->HAS_GLX_EXT_create_context_es2_profile )) { + if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES +#if SDL_VIDEO_OPENGL_GLX + && ( !_this->gl_data || ! _this->gl_data->HAS_GLX_EXT_create_context_es2_profile ) +#endif + ){ vinfo = X11_GLES_GetVisual(_this, display, screen); } else #endif @@ -555,8 +558,11 @@ X11_CreateWindow(_THIS, SDL_Window * window) #if SDL_VIDEO_OPENGL_ES || SDL_VIDEO_OPENGL_ES2 if ((window->flags & SDL_WINDOW_OPENGL) && - _this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES && - (!_this->gl_data || ! _this->gl_data->HAS_GLX_EXT_create_context_es2_profile) ) { + _this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES +#if SDL_VIDEO_OPENGL_GLX + && ( !_this->gl_data || ! _this->gl_data->HAS_GLX_EXT_create_context_es2_profile ) +#endif + ) { if (!_this->egl_data) { XDestroyWindow(display, w); return -1;