[waffle] [PATCH 05/10] wegl: add EGL image create/destroy

Frank Henigman fjhenigman at google.com
Mon Mar 30 12:12:45 PDT 2015


From: Frank Henigman <fjhenigman at gmail.com>

Store EGLImageCreateKHR and EGLImageDestroyKHR in the EGL platform struct.

Signed-off-by: Frank Henigman <fjhenigman at google.com>
---
 src/waffle/egl/wegl_platform.c | 9 ++++++++-
 src/waffle/egl/wegl_platform.h | 4 ++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/waffle/egl/wegl_platform.c b/src/waffle/egl/wegl_platform.c
index 800025e..0c9eb44 100644
--- a/src/waffle/egl/wegl_platform.c
+++ b/src/waffle/egl/wegl_platform.c
@@ -72,8 +72,11 @@ wegl_platform_init(struct wegl_platform *self)
         goto error;
     }
 
+#define OPTIONAL_EGL_SYMBOL(function)                                  \
+    self->function = dlsym(self->eglHandle, #function);
+
 #define RETRIEVE_EGL_SYMBOL(function)                                  \
-    self->function = dlsym(self->eglHandle, #function);                \
+    OPTIONAL_EGL_SYMBOL(function)                                      \
     if (!self->function) {                                             \
         wcore_errorf(WAFFLE_ERROR_FATAL,                             \
                      "dlsym(\"%s\", \"" #function "\") failed: %s",    \
@@ -82,6 +85,9 @@ wegl_platform_init(struct wegl_platform *self)
         goto error;                                                    \
     }
 
+    OPTIONAL_EGL_SYMBOL(eglCreateImageKHR);
+    OPTIONAL_EGL_SYMBOL(eglDestroyImageKHR);
+
     RETRIEVE_EGL_SYMBOL(eglMakeCurrent);
     RETRIEVE_EGL_SYMBOL(eglGetProcAddress);
 
@@ -106,6 +112,7 @@ wegl_platform_init(struct wegl_platform *self)
     RETRIEVE_EGL_SYMBOL(eglDestroySurface);
     RETRIEVE_EGL_SYMBOL(eglSwapBuffers);
 
+#undef OPTIONAL_EGL_SYMBOL
 #undef RETRIEVE_EGL_SYMBOL
 
 error:
diff --git a/src/waffle/egl/wegl_platform.h b/src/waffle/egl/wegl_platform.h
index 645c3f8..7ae0490 100644
--- a/src/waffle/egl/wegl_platform.h
+++ b/src/waffle/egl/wegl_platform.h
@@ -26,6 +26,7 @@
 #pragma once
 
 #include <EGL/egl.h>
+#include <EGL/eglext.h>
 
 #include "wcore_platform.h"
 #include "wcore_util.h"
@@ -68,6 +69,9 @@ struct wegl_platform {
                                          const EGLint *attrib_list);
     EGLBoolean (*eglDestroySurface)(EGLDisplay dpy, EGLSurface surface);
     EGLBoolean (*eglSwapBuffers)(EGLDisplay dpy, EGLSurface surface);
+
+    EGLImageKHR (*eglCreateImageKHR) (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list);
+    EGLBoolean (*eglDestroyImageKHR)(EGLDisplay dpy, EGLImageKHR image);
 };
 
 DEFINE_CONTAINER_CAST_FUNC(wegl_platform,
-- 
2.2.0.rc0.207.ga3a616c



More information about the waffle mailing list