From 4abeed93c76610a3b9d4e2164a370c4e7086d68e Mon Sep 17 00:00:00 2001 From: Gabriel Jacobo Date: Fri, 22 Nov 2013 14:19:52 -0300 Subject: [PATCH] Fixes compilation on Mingw. --- configure | 79 +++++++++++++++++++++++++++ configure.in | 38 +++++++++++++ src/video/windows/SDL_windowsopengl.c | 4 ++ 3 files changed, 121 insertions(+) diff --git a/configure b/configure index be2cb61aeb4f9..0e10125a2ab4f 100755 --- a/configure +++ b/configure @@ -20703,6 +20703,84 @@ $as_echo "#define SDL_VIDEO_RENDER_OGL 1" >>confdefs.h fi } +CheckWINDOWSGLES() +{ + if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for EGL support" >&5 +$as_echo_n "checking for EGL support... " >&6; } + video_opengl_egl=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + video_opengl_egl=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $video_opengl_egl" >&5 +$as_echo "$video_opengl_egl" >&6; } + if test x$video_opengl_egl = xyes; then + +$as_echo "#define SDL_VIDEO_OPENGL 1" >>confdefs.h + + +$as_echo "#define SDL_VIDEO_OPENGL_EGL 1" >>confdefs.h + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenGL ES v2 headers" >&5 +$as_echo_n "checking for OpenGL ES v2 headers... " >&6; } + video_opengles_v2=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + +int +main () +{ + + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + video_opengles_v2=yes + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $video_opengles_v2" >&5 +$as_echo "$video_opengles_v2" >&6; } + if test x$video_opengles_v2 = xyes; then + +$as_echo "#define SDL_VIDEO_OPENGL 1" >>confdefs.h + + +$as_echo "#define SDL_VIDEO_OPENGL_ES2 1" >>confdefs.h + + +$as_echo "#define SDL_VIDEO_RENDER_OGL_ES2 1" >>confdefs.h + + fi + fi +} + CheckHaikuGL() { if test x$enable_video = xyes -a x$enable_video_opengl = xyes; then @@ -22261,6 +22339,7 @@ $as_echo "#define SDL_TIMER_UNIX 1" >>confdefs.h CheckDummyAudio CheckWINDOWS CheckWINDOWSGL + CheckWINDOWSGLES CheckDIRECTX # Set up the core platform files diff --git a/configure.in b/configure.in index e3f094cc557e1..8d116a58ddc1e 100644 --- a/configure.in +++ b/configure.in @@ -1738,6 +1738,43 @@ CheckWINDOWSGL() fi } +dnl Check for Windows OpenGL +CheckWINDOWSGLES() +{ + if test x$enable_video = xyes -a x$enable_video_opengles = xyes; then + + AC_MSG_CHECKING(for EGL support) + video_opengl_egl=no + AC_TRY_COMPILE([ + #include + ],[ + ],[ + video_opengl_egl=yes + ]) + AC_MSG_RESULT($video_opengl_egl) + if test x$video_opengl_egl = xyes; then + AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) + AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ]) + fi + + AC_MSG_CHECKING(for OpenGL ES v2 headers) + video_opengles_v2=no + AC_TRY_COMPILE([ + #include + #include + ],[ + ],[ + video_opengles_v2=yes + ]) + AC_MSG_RESULT($video_opengles_v2) + if test x$video_opengles_v2 = xyes; then + AC_DEFINE(SDL_VIDEO_OPENGL, 1, [ ]) + AC_DEFINE(SDL_VIDEO_OPENGL_ES2, 1, [ ]) + AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ]) + fi + fi +} + dnl Check for Haiku OpenGL CheckHaikuGL() { @@ -2515,6 +2552,7 @@ case "$host" in CheckDummyAudio CheckWINDOWS CheckWINDOWSGL + CheckWINDOWSGLES CheckDIRECTX # Set up the core platform files diff --git a/src/video/windows/SDL_windowsopengl.c b/src/video/windows/SDL_windowsopengl.c index 3156c1a01c492..2960bc56f8552 100644 --- a/src/video/windows/SDL_windowsopengl.c +++ b/src/video/windows/SDL_windowsopengl.c @@ -585,6 +585,7 @@ WIN_GL_CreateContext(_THIS, SDL_Window * window) if (_this->gl_config.profile_mask == SDL_GL_CONTEXT_PROFILE_ES && !_this->gl_data->HAS_WGL_EXT_create_context_es2_profile) { +#if SDL_VIDEO_OPENGL_EGL /* Switch to EGL based functions */ WIN_GL_UnloadLibrary(_this); _this->GL_LoadLibrary = WIN_GLES_LoadLibrary; @@ -602,6 +603,9 @@ WIN_GL_CreateContext(_THIS, SDL_Window * window) } return WIN_GLES_CreateContext(_this, window); +#else + return SDL_SetError("SDL not configured with EGL support"); +#endif } if (_this->gl_config.share_with_current_context) {