Loading opengl/libs/EGL/Loader.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -188,12 +188,17 @@ void* Loader::open(egl_connection_t* cnx) LOG_ALWAYS_FATAL_IF(!hnd, "couldn't find an OpenGL ES implementation"); LOG_ALWAYS_FATAL_IF(!hnd, "couldn't find an OpenGL ES implementation"); #if defined(__LP64__) #if defined(__LP64__) cnx->libEgl = load_wrapper("/system/lib64/libEGL.so"); cnx->libGles2 = load_wrapper("/system/lib64/libGLESv2.so"); cnx->libGles2 = load_wrapper("/system/lib64/libGLESv2.so"); cnx->libGles1 = load_wrapper("/system/lib64/libGLESv1_CM.so"); cnx->libGles1 = load_wrapper("/system/lib64/libGLESv1_CM.so"); #else #else cnx->libEgl = load_wrapper("/system/lib/libEGL.so"); cnx->libGles2 = load_wrapper("/system/lib/libGLESv2.so"); cnx->libGles2 = load_wrapper("/system/lib/libGLESv2.so"); cnx->libGles1 = load_wrapper("/system/lib/libGLESv1_CM.so"); cnx->libGles1 = load_wrapper("/system/lib/libGLESv1_CM.so"); #endif #endif LOG_ALWAYS_FATAL_IF(!cnx->libEgl, "couldn't load system EGL wrapper libraries"); LOG_ALWAYS_FATAL_IF(!cnx->libGles2 || !cnx->libGles1, LOG_ALWAYS_FATAL_IF(!cnx->libGles2 || !cnx->libGles1, "couldn't load system OpenGL ES wrapper libraries"); "couldn't load system OpenGL ES wrapper libraries"); Loading opengl/libs/EGL/eglApi.cpp +5 −2 Original line number Original line Diff line number Diff line Loading @@ -877,11 +877,14 @@ EGLint eglGetError(void) return err; return err; } } static __eglMustCastToProperFunctionPointerType findBuiltinGLWrapper( static __eglMustCastToProperFunctionPointerType findBuiltinWrapper( const char* procname) { const char* procname) { const egl_connection_t* cnx = &gEGLImpl; const egl_connection_t* cnx = &gEGLImpl; void* proc = NULL; void* proc = NULL; proc = dlsym(cnx->libEgl, procname); if (proc) return (__eglMustCastToProperFunctionPointerType)proc; proc = dlsym(cnx->libGles2, procname); proc = dlsym(cnx->libGles2, procname); if (proc) return (__eglMustCastToProperFunctionPointerType)proc; if (proc) return (__eglMustCastToProperFunctionPointerType)proc; Loading Loading @@ -912,7 +915,7 @@ __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname) addr = findProcAddress(procname, sExtensionMap, NELEM(sExtensionMap)); addr = findProcAddress(procname, sExtensionMap, NELEM(sExtensionMap)); if (addr) return addr; if (addr) return addr; addr = findBuiltinGLWrapper(procname); addr = findBuiltinWrapper(procname); if (addr) return addr; if (addr) return addr; // this protects accesses to sGLExtentionMap and sGLExtentionSlot // this protects accesses to sGLExtentionMap and sGLExtentionSlot Loading opengl/libs/EGL/egldefs.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -44,6 +44,7 @@ struct egl_connection_t { EGLint minor; EGLint minor; egl_t egl; egl_t egl; void* libEgl; void* libGles1; void* libGles1; void* libGles2; void* libGles2; }; }; Loading Loading
opengl/libs/EGL/Loader.cpp +5 −0 Original line number Original line Diff line number Diff line Loading @@ -188,12 +188,17 @@ void* Loader::open(egl_connection_t* cnx) LOG_ALWAYS_FATAL_IF(!hnd, "couldn't find an OpenGL ES implementation"); LOG_ALWAYS_FATAL_IF(!hnd, "couldn't find an OpenGL ES implementation"); #if defined(__LP64__) #if defined(__LP64__) cnx->libEgl = load_wrapper("/system/lib64/libEGL.so"); cnx->libGles2 = load_wrapper("/system/lib64/libGLESv2.so"); cnx->libGles2 = load_wrapper("/system/lib64/libGLESv2.so"); cnx->libGles1 = load_wrapper("/system/lib64/libGLESv1_CM.so"); cnx->libGles1 = load_wrapper("/system/lib64/libGLESv1_CM.so"); #else #else cnx->libEgl = load_wrapper("/system/lib/libEGL.so"); cnx->libGles2 = load_wrapper("/system/lib/libGLESv2.so"); cnx->libGles2 = load_wrapper("/system/lib/libGLESv2.so"); cnx->libGles1 = load_wrapper("/system/lib/libGLESv1_CM.so"); cnx->libGles1 = load_wrapper("/system/lib/libGLESv1_CM.so"); #endif #endif LOG_ALWAYS_FATAL_IF(!cnx->libEgl, "couldn't load system EGL wrapper libraries"); LOG_ALWAYS_FATAL_IF(!cnx->libGles2 || !cnx->libGles1, LOG_ALWAYS_FATAL_IF(!cnx->libGles2 || !cnx->libGles1, "couldn't load system OpenGL ES wrapper libraries"); "couldn't load system OpenGL ES wrapper libraries"); Loading
opengl/libs/EGL/eglApi.cpp +5 −2 Original line number Original line Diff line number Diff line Loading @@ -877,11 +877,14 @@ EGLint eglGetError(void) return err; return err; } } static __eglMustCastToProperFunctionPointerType findBuiltinGLWrapper( static __eglMustCastToProperFunctionPointerType findBuiltinWrapper( const char* procname) { const char* procname) { const egl_connection_t* cnx = &gEGLImpl; const egl_connection_t* cnx = &gEGLImpl; void* proc = NULL; void* proc = NULL; proc = dlsym(cnx->libEgl, procname); if (proc) return (__eglMustCastToProperFunctionPointerType)proc; proc = dlsym(cnx->libGles2, procname); proc = dlsym(cnx->libGles2, procname); if (proc) return (__eglMustCastToProperFunctionPointerType)proc; if (proc) return (__eglMustCastToProperFunctionPointerType)proc; Loading Loading @@ -912,7 +915,7 @@ __eglMustCastToProperFunctionPointerType eglGetProcAddress(const char *procname) addr = findProcAddress(procname, sExtensionMap, NELEM(sExtensionMap)); addr = findProcAddress(procname, sExtensionMap, NELEM(sExtensionMap)); if (addr) return addr; if (addr) return addr; addr = findBuiltinGLWrapper(procname); addr = findBuiltinWrapper(procname); if (addr) return addr; if (addr) return addr; // this protects accesses to sGLExtentionMap and sGLExtentionSlot // this protects accesses to sGLExtentionMap and sGLExtentionSlot Loading
opengl/libs/EGL/egldefs.h +1 −0 Original line number Original line Diff line number Diff line Loading @@ -44,6 +44,7 @@ struct egl_connection_t { EGLint minor; EGLint minor; egl_t egl; egl_t egl; void* libEgl; void* libGles1; void* libGles1; void* libGles2; void* libGles2; }; }; Loading