diff options
| -rw-r--r-- | configure.ac | 15 | ||||
| -rw-r--r-- | tools/Makefile.am | 7 | ||||
| -rw-r--r-- | tools/mate-session-check-accelerated.c | 18 | 
3 files changed, 35 insertions, 5 deletions
| diff --git a/configure.ac b/configure.ac index 55e09cc..bd38f11 100644 --- a/configure.ac +++ b/configure.ac @@ -63,12 +63,24 @@ PKG_CHECK_MODULES(ICE, ice)  PKG_CHECK_MODULES(XEXT, xext xau)  PKG_CHECK_MODULES(GTK3, gtk+-3.0 >= $GTK_REQUIRED)  PKG_CHECK_MODULES(GL_TEST, xcomposite gl glib-2.0 epoxy) -PKG_CHECK_MODULES(GLES_TEST, egl glesv2)  PKG_CHECK_MODULES(DBUS_GLIB, dbus-glib-1 >= $DBUS_GLIB_REQUIRED)  PKG_CHECK_MODULES(EGG_SMCLIENT, gtk+-3.0) +dnl ==================================================================== +dnl GLESV2 (optional) +dnl ==================================================================== + +AC_ARG_WITH([libglesv2], AC_HELP_STRING([--without-libglesv2], [disable GLESV2 support])) +have_glesv2=no +if test x$with_libglesv2 != xno; then +    PKG_CHECK_MODULES(GLES_TEST, egl glesv2, have_glesv2=yes, have_glesv2=no) +fi +if test "x$have_glesv2" = "xyes"; then +  AC_DEFINE(HAVE_GLESV2, 1, [GLESV2 Support.]) +fi +AM_CONDITIONAL([HAVE_GLESV2], [test "x$have_glesv2" = "xyes"])  dnl ====================================================================  dnl Option to set the default window manager @@ -356,6 +368,7 @@ echo "          Default WM:               ${with_default_wm}          Systemd support:          ${use_systemd}          Elogind support:          ${use_elogind} +        GLES2 support:            ${have_glesv2}          IPv6 support:             ${have_full_ipv6}          Backtrace support:        ${have_backtrace}          XRender support:          ${have_xrender} diff --git a/tools/Makefile.am b/tools/Makefile.am index 3948006..92222ff 100644 --- a/tools/Makefile.am +++ b/tools/Makefile.am @@ -1,8 +1,7 @@  bin_PROGRAMS = mate-session-save mate-session-inhibit  libexec_PROGRAMS = \  	mate-session-check-accelerated \ -	mate-session-check-accelerated-gl-helper \ -	mate-session-check-accelerated-gles-helper +	mate-session-check-accelerated-gl-helper  AM_CPPFLAGS =					\  	$(MATE_SESSION_CFLAGS)			\ @@ -31,6 +30,9 @@ mate_session_inhibit_CPPFLAGS =			\  mate_session_inhibit_LDADD =			\  	$(MATE_SESSION_LIBS) +if HAVE_GLESV2 +libexec_PROGRAMS += mate-session-check-accelerated-gles-helper +  mate_session_check_accelerated_gles_helper_SOURCES =	\  	mate-session-check-accelerated-common.h		\  	mate-session-check-accelerated-gles-helper.c @@ -46,6 +48,7 @@ mate_session_check_accelerated_gles_helper_LDADD =	\  	$(GLES_TEST_LIBS)				\  	$(GTK3_LIBS)					\  	$(X11_LIBS) +endif  mate_session_check_accelerated_gl_helper_SOURCES =	\  	mate-session-check-accelerated-common.h		\ diff --git a/tools/mate-session-check-accelerated.c b/tools/mate-session-check-accelerated.c index 3c0d4bd..d264953 100644 --- a/tools/mate-session-check-accelerated.c +++ b/tools/mate-session-check-accelerated.c @@ -21,6 +21,8 @@   *   Colin Walters <[email protected]>   */ +#include <config.h> +  #include <string.h>  #include <unistd.h>  #include <stdlib.h> @@ -131,13 +133,17 @@ main (int argc, char **argv)          GdkDisplay *display = NULL;          int estatus;          char *gl_helper_argv[] = { LIBEXECDIR "/mate-session-check-accelerated-gl-helper", "--print-renderer", NULL }; +#ifdef HAVE_GLESV2          char *gles_helper_argv[] = { LIBEXECDIR "/mate-session-check-accelerated-gles-helper", "--print-renderer", NULL }; +        GError *gles_error = NULL; +        char *gles_renderer_string = NULL; +#endif          char *renderer_string = NULL; -        char *gl_renderer_string = NULL, *gles_renderer_string = NULL; +        char *gl_renderer_string = NULL;          gboolean gl_software_rendering = FALSE, gles_software_rendering = FALSE;          Window rootwin;          glong is_accelerated, is_software_rendering; -        GError *gl_error = NULL, *gles_error = NULL; +        GError *gl_error = NULL;          gtk_init (NULL, NULL); @@ -241,6 +247,7 @@ main (int argc, char **argv)                  g_printerr ("mate-session-check-accelerated: GL Helper exited with code %d\n", estatus);          } +#ifdef HAVE_GLESV2          /* Then, try the GLES helper */          if (g_spawn_sync (NULL, (char **) gles_helper_argv, NULL, 0,                             NULL, NULL, &gles_renderer_string, NULL, &estatus, &gles_error)) { @@ -253,6 +260,7 @@ main (int argc, char **argv)                  g_printerr ("mate-session-check-accelerated: GLES Helper exited with code %d\n", estatus);          } +#endif          /* If we got here, GL software rendering is our best bet */          if (gl_software_rendering || gles_software_rendering) { @@ -261,8 +269,10 @@ main (int argc, char **argv)                  if (gl_software_rendering)                          renderer_string = gl_renderer_string; +#ifdef HAVE_GLESV2                  else if (gles_software_rendering)                          renderer_string = gles_renderer_string; +#endif                  goto finish;          } @@ -273,10 +283,12 @@ main (int argc, char **argv)                  g_clear_error (&gl_error);          } +#ifdef HAVE_GLESV2          if (gles_error != NULL) {                  g_printerr ("mate-session-check-accelerated: Failed to run GLES helper: %s\n", gles_error->message);                  g_clear_error (&gles_error);          } +#endif   finish:  	if (is_accelerated) { @@ -306,7 +318,9 @@ main (int argc, char **argv)          gdk_display_sync (display);          g_free (gl_renderer_string); +#ifdef HAVE_GLESV2          g_free (gles_renderer_string); +#endif          return is_accelerated ? 0 : 1;  } | 
