[PATCH] weston: Use libepoxy for GLESv2 functions.

Armin Krezović krezovic.armin at gmail.com
Mon Sep 12 11:56:30 UTC 2016


Khronos has decided to hide the GLESv2 function prototypes
in GLESv2 headers and the code has landed in latest mesa git.

Without this change, weston is unusable when built with
headers from mesa git.

Suggestion by Pekka to use libepoxy. Note that libepoxy
isn't maintained that much recently, and it pulls some
X11 dependencies.

Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=97773
Signed-off-by: Armin Krezović <krezovic.armin at gmail.com>
---
 Makefile.am             | 2 +-
 clients/simple-egl.c    | 2 +-
 clients/subsurfaces.c   | 2 +-
 configure.ac            | 3 ++-
 libweston/gl-renderer.c | 3 +--
 5 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 1e63a58..3cd3497 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -305,7 +305,7 @@ endif
 if ENABLE_EGL
 libweston_module_LTLIBRARIES += gl-renderer.la
 gl_renderer_la_LDFLAGS = -module -avoid-version
-gl_renderer_la_LIBADD = $(COMPOSITOR_LIBS) $(EGL_LIBS)
+gl_renderer_la_LIBADD = $(COMPOSITOR_LIBS) $(EGL_LIBS) $(EPOXY_LIBS)
 gl_renderer_la_CFLAGS =				\
 	$(COMPOSITOR_CFLAGS)			\
 	$(EGL_CFLAGS)				\
diff --git a/clients/simple-egl.c b/clients/simple-egl.c
index 9d401f9..5430245 100644
--- a/clients/simple-egl.c
+++ b/clients/simple-egl.c
@@ -38,7 +38,7 @@
 #include <wayland-egl.h>
 #include <wayland-cursor.h>
 
-#include <GLES2/gl2.h>
+#include <epoxy/gl.h>
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
 
diff --git a/clients/subsurfaces.c b/clients/subsurfaces.c
index 45801a8..f1461ca 100644
--- a/clients/subsurfaces.c
+++ b/clients/subsurfaces.c
@@ -37,7 +37,7 @@
 #include <wayland-client.h>
 
 #include <wayland-egl.h>
-#include <GLES2/gl2.h>
+#include <epoxy/gl.h>
 #include <EGL/egl.h>
 #include <EGL/eglext.h>
 
diff --git a/configure.ac b/configure.ac
index 076b336..31b323f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -130,6 +130,7 @@ AC_ARG_ENABLE(egl, [  --disable-egl],,
 AM_CONDITIONAL(ENABLE_EGL, test x$enable_egl = xyes)
 if test x$enable_egl = xyes; then
 	AC_DEFINE([ENABLE_EGL], [1], [Build Weston with EGL support])
+	PKG_CHECK_MODULES(EPOXY, [epoxy])
 	PKG_CHECK_MODULES(EGL, [egl glesv2])
         PKG_CHECK_MODULES([EGL_TESTS], [egl glesv2 wayland-client wayland-egl])
 	PKG_CHECK_MODULES([GL_RENDERER], [libdrm])
@@ -380,7 +381,7 @@ AC_ARG_ENABLE(simple-egl-clients,
 AM_CONDITIONAL(BUILD_SIMPLE_EGL_CLIENTS, test "x$enable_simple_egl_clients" = "xyes")
 if test x$enable_simple_egl_clients = xyes; then
   PKG_CHECK_MODULES(SIMPLE_EGL_CLIENT,
-                    [egl glesv2 wayland-client wayland-egl wayland-cursor])
+                    [epoxy egl glesv2 wayland-client wayland-egl wayland-cursor])
 fi
 
 AC_ARG_ENABLE(simple-dmabuf-intel-client,
diff --git a/libweston/gl-renderer.c b/libweston/gl-renderer.c
index 031576b..50e3ff3 100644
--- a/libweston/gl-renderer.c
+++ b/libweston/gl-renderer.c
@@ -26,8 +26,7 @@
 
 #include "config.h"
 
-#include <GLES2/gl2.h>
-#include <GLES2/gl2ext.h>
+#include <epoxy/gl.h>
 
 #include <stdbool.h>
 #include <stdint.h>
-- 
2.10.0



More information about the wayland-devel mailing list