Loading opengl/libs/EGL/egl.cpp +27 −3 Original line number Diff line number Diff line Loading @@ -273,6 +273,8 @@ int gpu_release(void*, request_gpu_t* gpu); static __attribute__((noinline)) void *load_driver(const char* driver, gl_hooks_t* hooks) { //LOGD("%s", driver); char scrap[256]; void* dso = dlopen(driver, RTLD_NOW | RTLD_LOCAL); LOGE_IF(!dso, "couldn't load <%s> library (%s)", Loading Loading @@ -321,9 +323,31 @@ void *load_driver(const char* driver, gl_hooks_t* hooks) if (f == NULL) { // couldn't find the entry-point, use eglGetProcAddress() f = getProcAddress(name); } if (f == NULL) { f = (__eglMustCastToProperFunctionPointerType)gl_unimplemented; // Try without the OES postfix ssize_t index = ssize_t(strlen(name)) - 3; if ((index>0 && (index<255)) && (!strcmp(name+index, "OES"))) { strncpy(scrap, name, index); scrap[index] = 0; f = (__eglMustCastToProperFunctionPointerType)dlsym(dso, scrap); //LOGD_IF(f, "found <%s> instead", scrap); } } if (f == NULL) { // Try with the OES postfix ssize_t index = ssize_t(strlen(name)) - 3; if ((index>0 && (index<252)) && (strcmp(name+index, "OES"))) { strncpy(scrap, name, index); scrap[index] = 0; strcat(scrap, "OES"); f = (__eglMustCastToProperFunctionPointerType)dlsym(dso, scrap); //LOGD_IF(f, "found <%s> instead", scrap); } } if (f == NULL) { LOGD("%s", name); f = (__eglMustCastToProperFunctionPointerType)gl_unimplemented; } *curr++ = f; api++; Loading Loading
opengl/libs/EGL/egl.cpp +27 −3 Original line number Diff line number Diff line Loading @@ -273,6 +273,8 @@ int gpu_release(void*, request_gpu_t* gpu); static __attribute__((noinline)) void *load_driver(const char* driver, gl_hooks_t* hooks) { //LOGD("%s", driver); char scrap[256]; void* dso = dlopen(driver, RTLD_NOW | RTLD_LOCAL); LOGE_IF(!dso, "couldn't load <%s> library (%s)", Loading Loading @@ -321,9 +323,31 @@ void *load_driver(const char* driver, gl_hooks_t* hooks) if (f == NULL) { // couldn't find the entry-point, use eglGetProcAddress() f = getProcAddress(name); } if (f == NULL) { f = (__eglMustCastToProperFunctionPointerType)gl_unimplemented; // Try without the OES postfix ssize_t index = ssize_t(strlen(name)) - 3; if ((index>0 && (index<255)) && (!strcmp(name+index, "OES"))) { strncpy(scrap, name, index); scrap[index] = 0; f = (__eglMustCastToProperFunctionPointerType)dlsym(dso, scrap); //LOGD_IF(f, "found <%s> instead", scrap); } } if (f == NULL) { // Try with the OES postfix ssize_t index = ssize_t(strlen(name)) - 3; if ((index>0 && (index<252)) && (strcmp(name+index, "OES"))) { strncpy(scrap, name, index); scrap[index] = 0; strcat(scrap, "OES"); f = (__eglMustCastToProperFunctionPointerType)dlsym(dso, scrap); //LOGD_IF(f, "found <%s> instead", scrap); } } if (f == NULL) { LOGD("%s", name); f = (__eglMustCastToProperFunctionPointerType)gl_unimplemented; } *curr++ = f; api++; Loading