Hi Emil, This patch prevents piglit from linking:
[ 98%] CMakeFiles/ext_image_dma_buf_import-sample_rgb.dir/sample_common.c.o: In function `sample_and_destroy_img': piglit/tests/spec/ext_image_dma_buf_import/sample_common.c:107: undefined reference to `eglDestroyImageKHR' Is there a corresponding patch for piglit that hasn't yet been pushed? It looks like this patch can't be cleanly reverted at this point. thanks, Mark Emil Velikov <emil.l.veli...@gmail.com> writes: > The EGL 1.3, 1.4 and 1.5 spec explicitly mentions that providing > static symbols for functions provided by EGL extensions is not portable. > Considering that relatively recently we've seen a non-mesa desktop EGL > implementation, the fact that we opt for such behaviour has gone > unnoticed. > > To encourage devs against writing such non-portable code, let's hide the > symbols similar to the official binary driver from NVIDIA. > > Gents, > > Considering your experience with mesa and other vendors' EGL > implementations would you envision any conflicts that this may cause ? > > Thanks > > Cc: Brian Paul <bri...@vmware.com> > Cc: Chad Versace <chad.vers...@intel.com> > Cc: Daniel Kurtz <djku...@chromium.org> > Signed-off-by: Emil Velikov <emil.l.veli...@gmail.com> > --- > src/egl/main/eglapi.c | 265 > ++++++++++++++++++++++----------------------- > src/egl/main/egltypedefs.h | 2 - > 2 files changed, 132 insertions(+), 135 deletions(-) > > diff --git a/src/egl/main/eglapi.c b/src/egl/main/eglapi.c > index 3f02c5c..9e6cb2f 100644 > --- a/src/egl/main/eglapi.c > +++ b/src/egl/main/eglapi.c > @@ -270,7 +270,7 @@ eglGetDisplay(EGLNativeDisplayType nativeDisplay) > return _eglGetDisplayHandle(dpy); > } > > -EGLDisplay EGLAPIENTRY > +static EGLDisplay EGLAPIENTRY > eglGetPlatformDisplayEXT(EGLenum platform, void *native_display, > const EGLint *attrib_list) > { > @@ -697,7 +697,7 @@ eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, > } > > > -EGLSurface EGLAPIENTRY > +static EGLSurface EGLAPIENTRY > eglCreatePlatformWindowSurfaceEXT(EGLDisplay dpy, EGLConfig config, > void *native_window, > const EGLint *attrib_list) > @@ -750,7 +750,7 @@ eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, > attrib_list); > } > > -EGLSurface EGLAPIENTRY > +static EGLSurface EGLAPIENTRY > eglCreatePlatformPixmapSurfaceEXT(EGLDisplay dpy, EGLConfig config, > void *native_pixmap, > const EGLint *attrib_list) > @@ -921,7 +921,7 @@ eglSwapBuffers(EGLDisplay dpy, EGLSurface surface) > > #ifdef EGL_EXT_swap_buffers_with_damage > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglSwapBuffersWithDamageEXT(EGLDisplay dpy, EGLSurface surface, > EGLint *rects, EGLint n_rects) > { > @@ -1108,117 +1108,9 @@ eglGetError(void) > } > > > -__eglMustCastToProperFunctionPointerType EGLAPIENTRY > -eglGetProcAddress(const char *procname) > -{ > - static const struct { > - const char *name; > - _EGLProc function; > - } egl_functions[] = { > - /* core functions should not be queryable, but, well... */ > -#ifdef _EGL_GET_CORE_ADDRESSES > - /* alphabetical order */ > - { "eglBindAPI", (_EGLProc) eglBindAPI }, > - { "eglBindTexImage", (_EGLProc) eglBindTexImage }, > - { "eglChooseConfig", (_EGLProc) eglChooseConfig }, > - { "eglCopyBuffers", (_EGLProc) eglCopyBuffers }, > - { "eglCreateContext", (_EGLProc) eglCreateContext }, > - { "eglCreatePbufferFromClientBuffer", (_EGLProc) > eglCreatePbufferFromClientBuffer }, > - { "eglCreatePbufferSurface", (_EGLProc) eglCreatePbufferSurface }, > - { "eglCreatePixmapSurface", (_EGLProc) eglCreatePixmapSurface }, > - { "eglCreateWindowSurface", (_EGLProc) eglCreateWindowSurface }, > - { "eglDestroyContext", (_EGLProc) eglDestroyContext }, > - { "eglDestroySurface", (_EGLProc) eglDestroySurface }, > - { "eglGetConfigAttrib", (_EGLProc) eglGetConfigAttrib }, > - { "eglGetConfigs", (_EGLProc) eglGetConfigs }, > - { "eglGetCurrentContext", (_EGLProc) eglGetCurrentContext }, > - { "eglGetCurrentDisplay", (_EGLProc) eglGetCurrentDisplay }, > - { "eglGetCurrentSurface", (_EGLProc) eglGetCurrentSurface }, > - { "eglGetDisplay", (_EGLProc) eglGetDisplay }, > - { "eglGetError", (_EGLProc) eglGetError }, > - { "eglGetProcAddress", (_EGLProc) eglGetProcAddress }, > - { "eglInitialize", (_EGLProc) eglInitialize }, > - { "eglMakeCurrent", (_EGLProc) eglMakeCurrent }, > - { "eglQueryAPI", (_EGLProc) eglQueryAPI }, > - { "eglQueryContext", (_EGLProc) eglQueryContext }, > - { "eglQueryString", (_EGLProc) eglQueryString }, > - { "eglQuerySurface", (_EGLProc) eglQuerySurface }, > - { "eglReleaseTexImage", (_EGLProc) eglReleaseTexImage }, > - { "eglReleaseThread", (_EGLProc) eglReleaseThread }, > - { "eglSurfaceAttrib", (_EGLProc) eglSurfaceAttrib }, > - { "eglSwapBuffers", (_EGLProc) eglSwapBuffers }, > - { "eglSwapInterval", (_EGLProc) eglSwapInterval }, > - { "eglTerminate", (_EGLProc) eglTerminate }, > - { "eglWaitClient", (_EGLProc) eglWaitClient }, > - { "eglWaitGL", (_EGLProc) eglWaitGL }, > - { "eglWaitNative", (_EGLProc) eglWaitNative }, > -#endif /* _EGL_GET_CORE_ADDRESSES */ > -#ifdef EGL_MESA_drm_display > - { "eglGetDRMDisplayMESA", (_EGLProc) eglGetDRMDisplayMESA }, > -#endif > - { "eglCreateImageKHR", (_EGLProc) eglCreateImageKHR }, > - { "eglDestroyImageKHR", (_EGLProc) eglDestroyImageKHR }, > - { "eglCreateSyncKHR", (_EGLProc) eglCreateSyncKHR }, > - { "eglCreateSync64KHR", (_EGLProc) eglCreateSync64KHR }, > - { "eglDestroySyncKHR", (_EGLProc) eglDestroySyncKHR }, > - { "eglClientWaitSyncKHR", (_EGLProc) eglClientWaitSyncKHR }, > - { "eglWaitSyncKHR", (_EGLProc) eglWaitSyncKHR }, > - { "eglSignalSyncKHR", (_EGLProc) eglSignalSyncKHR }, > - { "eglGetSyncAttribKHR", (_EGLProc) eglGetSyncAttribKHR }, > -#ifdef EGL_NOK_swap_region > - { "eglSwapBuffersRegionNOK", (_EGLProc) eglSwapBuffersRegionNOK }, > -#endif > -#ifdef EGL_MESA_drm_image > - { "eglCreateDRMImageMESA", (_EGLProc) eglCreateDRMImageMESA }, > - { "eglExportDRMImageMESA", (_EGLProc) eglExportDRMImageMESA }, > -#endif > -#ifdef EGL_WL_bind_wayland_display > - { "eglBindWaylandDisplayWL", (_EGLProc) eglBindWaylandDisplayWL }, > - { "eglUnbindWaylandDisplayWL", (_EGLProc) eglUnbindWaylandDisplayWL }, > - { "eglQueryWaylandBufferWL", (_EGLProc) eglQueryWaylandBufferWL }, > -#endif > -#ifdef EGL_WL_create_wayland_buffer_from_image > - { "eglCreateWaylandBufferFromImageWL", (_EGLProc) > eglCreateWaylandBufferFromImageWL }, > -#endif > - { "eglPostSubBufferNV", (_EGLProc) eglPostSubBufferNV }, > -#ifdef EGL_EXT_swap_buffers_with_damage > - { "eglSwapBuffersWithDamageEXT", (_EGLProc) > eglSwapBuffersWithDamageEXT }, > -#endif > - { "eglGetPlatformDisplayEXT", (_EGLProc) eglGetPlatformDisplayEXT }, > - { "eglCreatePlatformWindowSurfaceEXT", (_EGLProc) > eglCreatePlatformWindowSurfaceEXT }, > - { "eglCreatePlatformPixmapSurfaceEXT", (_EGLProc) > eglCreatePlatformPixmapSurfaceEXT }, > - { "eglGetSyncValuesCHROMIUM", (_EGLProc) eglGetSyncValuesCHROMIUM }, > -#ifdef EGL_MESA_dma_buf_image_export > - { "eglExportDMABUFImageQueryMESA", (_EGLProc) > eglExportDMABUFImageQueryMESA }, > - { "eglExportDMABUFImageMESA", (_EGLProc) eglExportDMABUFImageMESA }, > -#endif > - { NULL, NULL } > - }; > - EGLint i; > - _EGLProc ret; > - > - if (!procname) > - RETURN_EGL_SUCCESS(NULL, NULL); > - > - ret = NULL; > - if (strncmp(procname, "egl", 3) == 0) { > - for (i = 0; egl_functions[i].name; i++) { > - if (strcmp(egl_functions[i].name, procname) == 0) { > - ret = egl_functions[i].function; > - break; > - } > - } > - } > - if (!ret) > - ret = _eglGetDriverProc(procname); > - > - RETURN_EGL_SUCCESS(NULL, ret); > -} > - > - > #ifdef EGL_MESA_drm_display > > -EGLDisplay EGLAPIENTRY > +static EGLDisplay EGLAPIENTRY > eglGetDRMDisplayMESA(int fd) > { > _EGLDisplay *dpy = _eglFindDisplay(_EGL_PLATFORM_DRM, (void *) (intptr_t) > fd); > @@ -1329,7 +1221,7 @@ eglReleaseThread(void) > } > > > -EGLImageKHR EGLAPIENTRY > +static EGLImageKHR EGLAPIENTRY > eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, > EGLClientBuffer buffer, const EGLint *attr_list) > { > @@ -1358,7 +1250,7 @@ eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, > EGLenum target, > } > > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1423,21 +1315,21 @@ _eglCreateSync(EGLDisplay dpy, EGLenum type, const > EGLint *attrib_list, > } > > > -EGLSyncKHR EGLAPIENTRY > +static EGLSyncKHR EGLAPIENTRY > eglCreateSyncKHR(EGLDisplay dpy, EGLenum type, const EGLint *attrib_list) > { > return _eglCreateSync(dpy, type, attrib_list, NULL, EGL_FALSE); > } > > > -EGLSyncKHR EGLAPIENTRY > +static EGLSyncKHR EGLAPIENTRY > eglCreateSync64KHR(EGLDisplay dpy, EGLenum type, const EGLAttribKHR > *attrib_list) > { > return _eglCreateSync(dpy, type, NULL, attrib_list, EGL_TRUE); > } > > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1456,7 +1348,7 @@ eglDestroySyncKHR(EGLDisplay dpy, EGLSyncKHR sync) > } > > > -EGLint EGLAPIENTRY > +static EGLint EGLAPIENTRY > eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags, > EGLTimeKHR timeout) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1477,7 +1369,7 @@ eglClientWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, > EGLint flags, EGLTimeKHR t > } > > > -EGLint EGLAPIENTRY > +static EGLint EGLAPIENTRY > eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint flags) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1503,7 +1395,7 @@ eglWaitSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint > flags) > } > > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLenum mode) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1519,7 +1411,7 @@ eglSignalSyncKHR(EGLDisplay dpy, EGLSyncKHR sync, > EGLenum mode) > } > > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, EGLint attribute, > EGLint *value) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1538,7 +1430,7 @@ eglGetSyncAttribKHR(EGLDisplay dpy, EGLSyncKHR sync, > EGLint attribute, EGLint *v > > #ifdef EGL_NOK_swap_region > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface surface, > EGLint numRects, const EGLint *rects) > { > @@ -1568,7 +1460,7 @@ eglSwapBuffersRegionNOK(EGLDisplay dpy, EGLSurface > surface, > > #ifdef EGL_MESA_drm_image > > -EGLImageKHR EGLAPIENTRY > +static EGLImageKHR EGLAPIENTRY > eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint *attr_list) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1586,7 +1478,7 @@ eglCreateDRMImageMESA(EGLDisplay dpy, const EGLint > *attr_list) > RETURN_EGL_EVAL(disp, ret); > } > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, > EGLint *name, EGLint *handle, EGLint *stride) > { > @@ -1611,7 +1503,7 @@ eglExportDRMImageMESA(EGLDisplay dpy, EGLImageKHR image, > #ifdef EGL_WL_bind_wayland_display > struct wl_display; > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1629,7 +1521,7 @@ eglBindWaylandDisplayWL(EGLDisplay dpy, struct > wl_display *display) > RETURN_EGL_EVAL(disp, ret); > } > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1647,7 +1539,7 @@ eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct > wl_display *display) > RETURN_EGL_EVAL(disp, ret); > } > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglQueryWaylandBufferWL(EGLDisplay dpy, struct wl_resource *buffer, > EGLint attribute, EGLint *value) > { > @@ -1668,7 +1560,7 @@ eglQueryWaylandBufferWL(EGLDisplay dpy, struct > wl_resource *buffer, > #endif > > #ifdef EGL_WL_create_wayland_buffer_from_image > -struct wl_buffer * EGLAPIENTRY > +static struct wl_buffer * EGLAPIENTRY > eglCreateWaylandBufferFromImageWL(EGLDisplay dpy, EGLImageKHR image) > { > _EGLDisplay *disp = _eglLockDisplay(dpy); > @@ -1690,7 +1582,7 @@ eglCreateWaylandBufferFromImageWL(EGLDisplay dpy, > EGLImageKHR image) > } > #endif > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, > EGLint x, EGLint y, EGLint width, EGLint height) > { > @@ -1709,7 +1601,7 @@ eglPostSubBufferNV(EGLDisplay dpy, EGLSurface surface, > RETURN_EGL_EVAL(disp, ret); > } > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglGetSyncValuesCHROMIUM(EGLDisplay display, EGLSurface surface, > EGLuint64KHR *ust, EGLuint64KHR *msc, > EGLuint64KHR *sbc) > @@ -1732,7 +1624,7 @@ eglGetSyncValuesCHROMIUM(EGLDisplay display, EGLSurface > surface, > } > > #ifdef EGL_MESA_image_dma_buf_export > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglExportDMABUFImageQueryMESA(EGLDisplay dpy, EGLImageKHR image, > EGLint *fourcc, EGLint *nplanes, > EGLuint64KHR *modifiers) > @@ -1754,7 +1646,7 @@ eglExportDMABUFImageQueryMESA(EGLDisplay dpy, > EGLImageKHR image, > RETURN_EGL_EVAL(disp, ret); > } > > -EGLBoolean EGLAPIENTRY > +static EGLBoolean EGLAPIENTRY > eglExportDMABUFImageMESA(EGLDisplay dpy, EGLImageKHR image, > int *fds, EGLint *strides, EGLint *offsets) > { > @@ -1774,3 +1666,110 @@ eglExportDMABUFImageMESA(EGLDisplay dpy, EGLImageKHR > image, > RETURN_EGL_EVAL(disp, ret); > } > #endif > + > +__eglMustCastToProperFunctionPointerType EGLAPIENTRY > +eglGetProcAddress(const char *procname) > +{ > + static const struct { > + const char *name; > + _EGLProc function; > + } egl_functions[] = { > + /* core functions should not be queryable, but, well... */ > +#ifdef _EGL_GET_CORE_ADDRESSES > + /* alphabetical order */ > + { "eglBindAPI", (_EGLProc) eglBindAPI }, > + { "eglBindTexImage", (_EGLProc) eglBindTexImage }, > + { "eglChooseConfig", (_EGLProc) eglChooseConfig }, > + { "eglCopyBuffers", (_EGLProc) eglCopyBuffers }, > + { "eglCreateContext", (_EGLProc) eglCreateContext }, > + { "eglCreatePbufferFromClientBuffer", (_EGLProc) > eglCreatePbufferFromClientBuffer }, > + { "eglCreatePbufferSurface", (_EGLProc) eglCreatePbufferSurface }, > + { "eglCreatePixmapSurface", (_EGLProc) eglCreatePixmapSurface }, > + { "eglCreateWindowSurface", (_EGLProc) eglCreateWindowSurface }, > + { "eglDestroyContext", (_EGLProc) eglDestroyContext }, > + { "eglDestroySurface", (_EGLProc) eglDestroySurface }, > + { "eglGetConfigAttrib", (_EGLProc) eglGetConfigAttrib }, > + { "eglGetConfigs", (_EGLProc) eglGetConfigs }, > + { "eglGetCurrentContext", (_EGLProc) eglGetCurrentContext }, > + { "eglGetCurrentDisplay", (_EGLProc) eglGetCurrentDisplay }, > + { "eglGetCurrentSurface", (_EGLProc) eglGetCurrentSurface }, > + { "eglGetDisplay", (_EGLProc) eglGetDisplay }, > + { "eglGetError", (_EGLProc) eglGetError }, > + { "eglGetProcAddress", (_EGLProc) eglGetProcAddress }, > + { "eglInitialize", (_EGLProc) eglInitialize }, > + { "eglMakeCurrent", (_EGLProc) eglMakeCurrent }, > + { "eglQueryAPI", (_EGLProc) eglQueryAPI }, > + { "eglQueryContext", (_EGLProc) eglQueryContext }, > + { "eglQueryString", (_EGLProc) eglQueryString }, > + { "eglQuerySurface", (_EGLProc) eglQuerySurface }, > + { "eglReleaseTexImage", (_EGLProc) eglReleaseTexImage }, > + { "eglReleaseThread", (_EGLProc) eglReleaseThread }, > + { "eglSurfaceAttrib", (_EGLProc) eglSurfaceAttrib }, > + { "eglSwapBuffers", (_EGLProc) eglSwapBuffers }, > + { "eglSwapInterval", (_EGLProc) eglSwapInterval }, > + { "eglTerminate", (_EGLProc) eglTerminate }, > + { "eglWaitClient", (_EGLProc) eglWaitClient }, > + { "eglWaitGL", (_EGLProc) eglWaitGL }, > + { "eglWaitNative", (_EGLProc) eglWaitNative }, > +#endif /* _EGL_GET_CORE_ADDRESSES */ > +#ifdef EGL_MESA_drm_display > + { "eglGetDRMDisplayMESA", (_EGLProc) eglGetDRMDisplayMESA }, > +#endif > + { "eglCreateImageKHR", (_EGLProc) eglCreateImageKHR }, > + { "eglDestroyImageKHR", (_EGLProc) eglDestroyImageKHR }, > + { "eglCreateSyncKHR", (_EGLProc) eglCreateSyncKHR }, > + { "eglCreateSync64KHR", (_EGLProc) eglCreateSync64KHR }, > + { "eglDestroySyncKHR", (_EGLProc) eglDestroySyncKHR }, > + { "eglClientWaitSyncKHR", (_EGLProc) eglClientWaitSyncKHR }, > + { "eglWaitSyncKHR", (_EGLProc) eglWaitSyncKHR }, > + { "eglSignalSyncKHR", (_EGLProc) eglSignalSyncKHR }, > + { "eglGetSyncAttribKHR", (_EGLProc) eglGetSyncAttribKHR }, > +#ifdef EGL_NOK_swap_region > + { "eglSwapBuffersRegionNOK", (_EGLProc) eglSwapBuffersRegionNOK }, > +#endif > +#ifdef EGL_MESA_drm_image > + { "eglCreateDRMImageMESA", (_EGLProc) eglCreateDRMImageMESA }, > + { "eglExportDRMImageMESA", (_EGLProc) eglExportDRMImageMESA }, > +#endif > +#ifdef EGL_WL_bind_wayland_display > + { "eglBindWaylandDisplayWL", (_EGLProc) eglBindWaylandDisplayWL }, > + { "eglUnbindWaylandDisplayWL", (_EGLProc) eglUnbindWaylandDisplayWL }, > + { "eglQueryWaylandBufferWL", (_EGLProc) eglQueryWaylandBufferWL }, > +#endif > +#ifdef EGL_WL_create_wayland_buffer_from_image > + { "eglCreateWaylandBufferFromImageWL", (_EGLProc) > eglCreateWaylandBufferFromImageWL }, > +#endif > + { "eglPostSubBufferNV", (_EGLProc) eglPostSubBufferNV }, > +#ifdef EGL_EXT_swap_buffers_with_damage > + { "eglSwapBuffersWithDamageEXT", (_EGLProc) > eglSwapBuffersWithDamageEXT }, > +#endif > + { "eglGetPlatformDisplayEXT", (_EGLProc) eglGetPlatformDisplayEXT }, > + { "eglCreatePlatformWindowSurfaceEXT", (_EGLProc) > eglCreatePlatformWindowSurfaceEXT }, > + { "eglCreatePlatformPixmapSurfaceEXT", (_EGLProc) > eglCreatePlatformPixmapSurfaceEXT }, > + { "eglGetSyncValuesCHROMIUM", (_EGLProc) eglGetSyncValuesCHROMIUM }, > +#ifdef EGL_MESA_dma_buf_image_export > + { "eglExportDMABUFImageQueryMESA", (_EGLProc) > eglExportDMABUFImageQueryMESA }, > + { "eglExportDMABUFImageMESA", (_EGLProc) eglExportDMABUFImageMESA }, > +#endif > + { NULL, NULL } > + }; > + EGLint i; > + _EGLProc ret; > + > + if (!procname) > + RETURN_EGL_SUCCESS(NULL, NULL); > + > + ret = NULL; > + if (strncmp(procname, "egl", 3) == 0) { > + for (i = 0; egl_functions[i].name; i++) { > + if (strcmp(egl_functions[i].name, procname) == 0) { > + ret = egl_functions[i].function; > + break; > + } > + } > + } > + if (!ret) > + ret = _eglGetDriverProc(procname); > + > + RETURN_EGL_SUCCESS(NULL, ret); > +} > diff --git a/src/egl/main/egltypedefs.h b/src/egl/main/egltypedefs.h > index e90959a..a0b13f2 100644 > --- a/src/egl/main/egltypedefs.h > +++ b/src/egl/main/egltypedefs.h > @@ -31,8 +31,6 @@ > #ifndef EGLTYPEDEFS_INCLUDED > #define EGLTYPEDEFS_INCLUDED > > -#define EGL_EGLEXT_PROTOTYPES > - > #include <EGL/egl.h> > #include <EGL/eglext.h> > > -- > 2.3.5 > > _______________________________________________ > mesa-dev mailing list > mesa-dev@lists.freedesktop.org > http://lists.freedesktop.org/mailman/listinfo/mesa-dev _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev