summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDamien Lespiau <damien.lespiau@intel.com>2011-05-13 08:04:47 +0100
committerDamien Lespiau <damien.lespiau@intel.com>2011-05-17 15:24:54 +0100
commitdd5a1c888b68e3d8a4f41212cb257c1e8dc3833b (patch)
treee124c0f4361492102868d3e49b5272b1f6327dfc
parent1d6c6f0dad79e73fa719eb4b91d0f6455f6d921c (diff)
downloadcogl-dd5a1c888b68e3d8a4f41212cb257c1e8dc3833b.tar.gz
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.
-rw-r--r--cogl/cogl-context.h12
-rw-r--r--cogl/cogl-defines.h.in11
-rw-r--r--cogl/winsys/cogl-winsys-egl.c16
-rw-r--r--configure.ac13
4 files changed, 25 insertions, 27 deletions
diff --git a/cogl/cogl-context.h b/cogl/cogl-context.h
index 7cd0785d..bce47f1f 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 ccc7673a..0803463a 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 f503cd18..133e127f 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 718832e5..7583070b 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