diff --git a/nanogl.cpp b/nanogl.cpp
index 5add36a367bda8220013657d37844bc3bfb0f861..64c5f4da9eb5f8b90faec6a93af1f35590197867 100644 (file)
--- a/nanogl.cpp
+++ b/nanogl.cpp
GlESInterface* glEsImpl = NULL;
+int initialized = 0;
+
extern void InitGLStructs();
static void gl_unimplemented() {
LOGE ("Called unimplemented OpenGL ES API\n");
}
-void *nanoGL_GetProcAddress(const char *name)
+void *nanoGL_GetProcAddress(const char *procname)
{
- return dlsym(glesLib, name);
+#if defined(__MULTITEXTURE_SUPPORT__)
+ if (!strcmp(procname, "glMultiTexCoord2fARB"))
+ {
+ return (void*)&glMultiTexCoord2fARB;
+ }
+ else if (!strcmp(procname, "glActiveTextureARB"))
+ {
+ return (void*)&glActiveTexture;
+ }
+ else if (!strcmp(procname, "glClientActiveTextureARB"))
+ {
+ return (void*)&glClientActiveTexture;
+ }
+#endif
+ return dlsym(glesLib, procname);
}
static int CreateGlEsInterface( const char * name, void * lib, void * lib1, void * default_func )
*/
int nanoGL_Init()
{
+ if( initialized ) return 1;
+
const char * lib1 = "libGLESv1_CM.so"; // Has both gl* & egl* funcs SDK < 1.5
const char * lib2 = "libGLESv2.so"; // Only gl* funcs SDK >= 1.5
const char * lib3 = "libEGL.so"; // Only egl* funcs SDK >= 1.5
// Init nanoGL
InitGLStructs();
+ initialized = 1;
return 1;
}