| From 3a93150bc0aec86afdb7d053247dc2448925e09a Mon Sep 17 00:00:00 2001 |
| From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com> |
| Date: Wed, 6 May 2015 10:45:22 +0200 |
| Subject: [PATCH 1/2] select platforms based on configuration results |
| MIME-Version: 1.0 |
| Content-Type: text/plain; charset=UTF-8 |
| Content-Transfer-Encoding: 8bit |
| |
| Upstream-Status: Submitted [1] |
| |
| [1] https://github.com/anholt/libepoxy/pull/52 |
| |
| Signed-off-by: Andreas MΓΌller <schnitzeltony@googlemail.com> |
| --- |
| configure.ac | 13 +++++-------- |
| src/dispatch_common.c | 9 ++++++--- |
| src/dispatch_common.h | 9 +++++---- |
| 3 files changed, 16 insertions(+), 15 deletions(-) |
| |
| diff --git a/configure.ac b/configure.ac |
| index a52fc58..bdd70da 100644 |
| --- a/configure.ac |
| +++ b/configure.ac |
| @@ -58,6 +58,10 @@ AC_CHECK_HEADER([KHR/khrplatform.h], |
| # uintptr_t to a void *") by default. Kill that. |
| XORG_TESTSET_CFLAG(CWARNFLAGS, [-Wno-int-conversion]) |
| |
| +PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) |
| + |
| +AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) |
| + |
| has_znow=yes |
| |
| case $host_os in |
| @@ -86,7 +90,7 @@ case $host_os in |
| ;; |
| *) |
| build_egl=yes |
| - build_glx=yes |
| + build_glx=$x11 |
| build_wgl=no |
| # On platforms with dlopen, we load everything dynamically and |
| # don't link against a specific window system or GL implementation. |
| @@ -144,13 +148,6 @@ esac |
| |
| AC_SUBST([VISIBILITY_CFLAGS]) |
| |
| -PKG_CHECK_MODULES(X11, [x11], [x11=yes], [x11=no]) |
| -if test x$x11 = xno -a x$build_glx = xyes; then |
| - AC_MSG_ERROR([libX11 headers (libx11-dev) required to build with GLX support]) |
| -fi |
| - |
| -AM_CONDITIONAL(HAVE_X11, test x$x11 = xyes) |
| - |
| PKG_CHECK_MODULES(GL, [gl], [gl=yes], [gl=no]) |
| |
| AC_CONFIG_FILES([ |
| diff --git a/src/dispatch_common.c b/src/dispatch_common.c |
| index 4e34d6e..2ab84ed 100644 |
| --- a/src/dispatch_common.c |
| +++ b/src/dispatch_common.c |
| @@ -615,10 +615,13 @@ epoxy_get_proc_address(const char *name) |
| #elif defined(__APPLE__) |
| return epoxy_gl_dlsym(name); |
| #else |
| +#if PLATFORM_HAS_GLX |
| if (epoxy_current_context_is_glx()) { |
| return glXGetProcAddressARB((const GLubyte *)name); |
| - } else { |
| + } else |
| +#endif /* PLATFORM_HAS_GLX */ |
| #if PLATFORM_HAS_EGL |
| + { |
| GLenum egl_api = epoxy_egl_get_current_gl_context_api(); |
| |
| switch (egl_api) { |
| @@ -628,10 +631,10 @@ epoxy_get_proc_address(const char *name) |
| case EGL_NONE: |
| break; |
| } |
| -#endif |
| } |
| +#endif /* PLATFORM_HAS_EGL */ |
| errx(1, "Couldn't find current GLX or EGL context.\n"); |
| -#endif |
| +#endif /* _WIN32 | __APPLE__*/ |
| } |
| |
| void |
| diff --git a/src/dispatch_common.h b/src/dispatch_common.h |
| index 6b8503a..82681e4 100644 |
| --- a/src/dispatch_common.h |
| +++ b/src/dispatch_common.h |
| @@ -21,12 +21,13 @@ |
| * IN THE SOFTWARE. |
| */ |
| |
| +#include <config.h> |
| #include <stdbool.h> |
| |
| #ifdef _WIN32 |
| #define PLATFORM_HAS_EGL 0 |
| #define PLATFORM_HAS_GLX 0 |
| -#define PLATFORM_HAS_WGL 1 |
| +#define PLATFORM_HAS_WGL BUILD_WGL |
| #define EPOXY_IMPORTEXPORT __declspec(dllexport) |
| #elif defined(__APPLE__) |
| #define PLATFORM_HAS_EGL 0 |
| @@ -34,13 +35,13 @@ |
| #define PLATFORM_HAS_WGL 0 |
| #define EPOXY_IMPORTEXPORT |
| #elif defined(ANDROID) |
| -#define PLATFORM_HAS_EGL 1 |
| +#define PLATFORM_HAS_EGL BUILD_EGL |
| #define PLATFORM_HAS_GLX 0 |
| #define PLATFORM_HAS_WGL 0 |
| #define EPOXY_IMPORTEXPORT |
| #else |
| -#define PLATFORM_HAS_EGL 1 |
| -#define PLATFORM_HAS_GLX 1 |
| +#define PLATFORM_HAS_EGL BUILD_EGL |
| +#define PLATFORM_HAS_GLX BUILD_GLX |
| #define PLATFORM_HAS_WGL 0 |
| #define EPOXY_IMPORTEXPORT |
| #endif |
| -- |
| 1.9.3 |
| |