Game Development Reference
In-Depth Information
if (f == NULL) {
LOGW( "<%s> not found in %s. Trying libEGL.so.", *api, name);
// try lib1
if ( lib1 ) {
f = dlsym(lib1, *api); // libEGL.so
if ( f == NULL ) {
LOGE ( "<%s> not found in libEGL.so", *api);
f = default_func; }
else {
LOGD ("<%s> @ 0x%p\n", *api, f);
}
}
else
f = default_func;
}
else {
LOGD ("<%s> @ 0x%p\n", *api, f);
}
*ptr++ = f;
api++;
}
return 1;
}
// Load using the dynamic loader
static int loadDriver(const char * name) {
glesLib = dlopen(name, RTLD_NOW | RTLD_LOCAL);
int rc = (glesLib) ? 1 : 0;
return rc;
}
/**
* Initialize interface
*/
int nanoGL_Init()
{
const char * lib1 = "libGLESv1_CM.so"; // Opengl ES lib
const char * lib2 = "libGLESv2.so";
const char * lib3 = "libEGL.so";
const char * driver;
// load lib1: libGLESv1_CM.so
LOGI("nanoGL: Init loading driver %s\n", lib1);
if ( ! loadDriver(lib1) )
{
LOGE("Failed to load driver %s. Trying %s\n", lib1, lib2);
Search WWH ::




Custom Search