[cogl/wip/android: 6/13] gles1: Include GLES/egl.h or EGL/egl.h depending on the implementation



commit db37e385918c5135d5ccb9bb6625210506ea8290
Author: Damien Lespiau <damien lespiau intel com>
Date:   Fri May 13 08:04:47 2011 +0100

    gles1: Include GLES/egl.h or EGL/egl.h depending on the implementation
    
    Early implementations provided only a GLES/egl.h while Khronos's
    implementer guide now states EGL/egl.h is the One. Some implementations
    keep a GLES/egl.h wrapper around EGL/egl.h for backward compatibility
    while others provide EGL/egl.h only.
    
    Also took the opportunity to factorize a bit this inclusion in
    cogl-defines.h.

 cogl/cogl-context.h           |   12 +-----------
 cogl/cogl-defines.h.in        |   11 +++++++++++
 cogl/winsys/cogl-winsys-egl.c |   16 ----------------
 configure.ac                  |   13 +++++++++++++
 4 files changed, 25 insertions(+), 27 deletions(-)
---
diff --git a/cogl/cogl-context.h b/cogl/cogl-context.h
index 7cd0785..bce47f1 100644
--- a/cogl/cogl-context.h
+++ b/cogl/cogl-context.h
@@ -31,19 +31,9 @@
 #ifndef __COGL_CONTEXT_H__
 #define __COGL_CONTEXT_H__
 
+#include <cogl/cogl-defines.h>
 #include <cogl/cogl-display.h>
 
-#ifdef COGL_HAS_EGL_SUPPORT
-#ifdef COGL_HAS_GLES1
-#include <GLES/gl.h>
-#include <GLES/egl.h>
-#else
-#include <EGL/egl.h>
-#define NativeDisplayType EGLNativeDisplayType
-#define NativeWindowType EGLNativeWindowType
-#endif
-#endif
-
 G_BEGIN_DECLS
 
 /**
diff --git a/cogl/cogl-defines.h.in b/cogl/cogl-defines.h.in
index ccc7673..0803463 100644
--- a/cogl/cogl-defines.h.in
+++ b/cogl/cogl-defines.h.in
@@ -31,6 +31,17 @@ G_BEGIN_DECLS
 
 @COGL_DEFINES@
 
+#ifdef COGL_HAS_EGL_SUPPORT
+#ifdef COGL_HAS_GLES1
+#include <GLES/gl.h>
+ COGL_GLES1_EGL_INCLUDE@
+#else
+#include <EGL/egl.h>
+#define NativeDisplayType EGLNativeDisplayType
+#define NativeWindowType EGLNativeWindowType
+#endif
+#endif
+
 G_END_DECLS
 
 #endif
diff --git a/cogl/winsys/cogl-winsys-egl.c b/cogl/winsys/cogl-winsys-egl.c
index f503cd1..133e127 100644
--- a/cogl/winsys/cogl-winsys-egl.c
+++ b/cogl/winsys/cogl-winsys-egl.c
@@ -55,22 +55,6 @@
 
 #include <glib/gi18n-lib.h>
 
-#ifdef COGL_HAS_GLES1
-
-#include <GLES/gl.h>
-#include <GLES/egl.h>
-
-#else
-
-#include <EGL/egl.h>
-#define NativeDisplayType EGLNativeDisplayType
-#define NativeWindowType EGLNativeWindowType
-
-#endif
-
-
-#include <EGL/egl.h>
-
 #ifdef COGL_HAS_EGL_PLATFORM_POWERVR_X11_SUPPORT
 #include <X11/Xlib.h>
 
diff --git a/configure.ac b/configure.ac
index 718832e..7583070 100644
--- a/configure.ac
+++ b/configure.ac
@@ -336,6 +336,19 @@ AS_IF([test "x$enable_gles1" = "xyes"],
                             [AC_MSG_ERROR([Unable to locate GLES/glext.h])],
                             [#include <GLES/gl.h>])
 
+            # Early implementations provided only a GLES/egl.h while Khronos's
+            # implementer guide now states EGL/egl.h is the One. Some
+            # implementations keep a GLES/egl.h wrapper around EGL/egl.h for
+            # backward compatibility while others provide EGL/egl.h only.
+            AC_CHECK_HEADERS([GLES/egl.h EGL/egl.h])
+
+            AS_IF([test "x$ac_cv_header_GLES_egl_h" = "xyes"],
+                  [COGL_GLES1_EGL_INCLUDE="#include <GLES/egl.h>"],
+                  [AS_IF([test "x$ac_cv_header_EGL_egl_h" = "xyes"],
+                         [COGL_GLES1_EGL_INCLUDE="#include <EGL/egl.h>"],
+                         [AC_MSG_ERROR([Unable to locate EGL header])])])
+            AC_SUBST([COGL_GLES1_EGL_INCLUDE])
+
             # Check for a GLES 1.x Common Profile library with/without EGL.
             #
             # Note: historically GLES 1 libraries shipped with the



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]