Explorar el Código

Fixes X11 video backend compilation when no GL is available

For example, in our Raspberry Pi sysroot.
Gabriel Jacobo hace 12 años
padre
commit
074a1c4c63
Se han modificado 2 ficheros con 16 adiciones y 4 borrados
  1. 6 0
      README-raspberrypi.txt
  2. 10 4
      src/video/x11/SDL_x11window.c

+ 6 - 0
README-raspberrypi.txt

@@ -69,7 +69,13 @@ The final step is compiling SDL itself.
     cd <SDL SOURCE>
     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
 ================================================================================

+ 10 - 4
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;