diff options
author | Brian Paul <brian.paul@tungstengraphics.com> | 2008-06-10 16:14:09 -0600 |
---|---|---|
committer | Brian Paul <brian.paul@tungstengraphics.com> | 2008-06-10 16:14:09 -0600 |
commit | b9c5b0bc4b0abbe12770824371c173ad1e8d1046 (patch) | |
tree | 7676c36db6b8db50513411515878f0e3460dd76d /src/egl | |
parent | 40d1a40f294f1ed2dacfad6f5498322fc08cc2d1 (diff) |
egl: some prototype API detection code
Diffstat (limited to 'src/egl')
-rw-r--r-- | src/egl/main/eglmisc.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/src/egl/main/eglmisc.c b/src/egl/main/eglmisc.c index b5bdc3ea4b..e79223657d 100644 --- a/src/egl/main/eglmisc.c +++ b/src/egl/main/eglmisc.c @@ -54,6 +54,58 @@ _eglUpdateExtensionsString(_EGLDriver *drv) } +#if 0 /* prototype code */ + +#include <dlfcn.h> + +static EGLint +_eglFindAPIs_by_sym(void) +{ + EGLint mask = 0x0; + + if (dlsym(NULL, "glBegin")) + mask |= EGL_OPENGL_BIT; + if (dlsym(NULL, "glGetFixedv")) + mask |= EGL_OPENGL_ES_BIT; + if (dlsym(NULL, "vgSetf")) + mask |= EGL_OPENVG_BIT; + + return mask; +} + +static EGLint +_eglFindAPIs_by_lib(void) +{ + EGLint mask = 0x0; + int flag = RTLD_NOW; + void *h; + + if ((h = dlopen("libGLESv1_CM.so", flag))) { + dlclose(h); + mask |= EGL_OPENGL_ES_BIT; + } + + if ((h = dlopen("libGLESv2.so", flag))) { + dlclose(h); + mask |= EGL_OPENGL_ES2_BIT; + } + + if ((h = dlopen("libGL.so", flag))) { + dlclose(h); + mask |= EGL_OPENGL_BIT; + } + + if ((h = dlopen("libOpenVG.so", flag))) { + dlclose(h); + mask |= EGL_OPENVG_BIT; + } + + return mask; +} + +#endif + + static void _eglUpdateAPIsString(_EGLDriver *drv) { |