[PATCH 2/9] gles: fix lookup for GLESv1 functions
Imre Deak
imre.deak at intel.com
Wed Apr 11 08:19:32 PDT 2012
Get the function from the GLESv1 library in case it's not found in
GLESv2.
Signed-off-by: Imre Deak <imre.deak at intel.com>
---
glproc_egl.cpp | 15 +++++++++++++--
1 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/glproc_egl.cpp b/glproc_egl.cpp
index 53dd714..f6e976d 100644
--- a/glproc_egl.cpp
+++ b/glproc_egl.cpp
@@ -79,6 +79,8 @@ __getPublicProcAddress(const char *procName)
* are explicitely loading egltrace.so.
*/
void *lib = NULL;
+ void *fn = NULL;
+
if (procName[0] == 'e' && procName[1] == 'g' && procName[2] == 'l') {
static void *libEGL = NULL;
if (!libEGL) {
@@ -94,9 +96,18 @@ __getPublicProcAddress(const char *procName)
lib = libGLESv2;
}
if (lib) {
- return dlsym(lib, procName);
+ fn = dlsym(lib, procName);
+ if (!fn && procName[0] == 'g' && procName[1] == 'l') {
+ static void *libGLESv1;
+
+ if (!libGLESv1)
+ libGLESv1 = dlopen("libGLESv1_CM.so", RTLD_LOCAL | RTLD_LAZY);
+ if (libGLESv1)
+ fn = dlsym(libGLESv1, procName);
+ }
}
- return NULL;
+
+ return fn;
#else
return dlsym(RTLD_NEXT, procName);
#endif
--
1.7.5.4
More information about the apitrace
mailing list