X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=nanogl.cpp;h=5f97fedb31343614e90665792f708383dcebe332;hb=30b7a31233e8f4b52e7a93768250391db5dc32b7;hp=bd699da41c968ebe4af9455963bb0afac9e2b35a;hpb=57b822a8a58cbc7ff7edd99a1d375b559a198c9e;p=nanogl.git diff --git a/nanogl.cpp b/nanogl.cpp index bd699da..5f97fed 100644 --- a/nanogl.cpp +++ b/nanogl.cpp @@ -89,21 +89,13 @@ void APIENTRY gl_unimplemented(GLenum none) { void *nanoGL_GetProcAddress(const char *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; - } + void *addr = NULL; +#ifdef XASH_SDL + addr = SDL_GL_GetProcAddress( name ); + if( !addr ) #endif - return dlsym(glesLib, name); + addr = dlsym(glesLib, name); + return addr; } static int CreateGlEsInterface( const char * name, void * lib, void * lib1, void * default_func ) @@ -151,7 +143,11 @@ static int CreateGlEsInterface( const char * name, void * lib, void * lib1, void if ( f == NULL ) { LOGE ( "<%s> not found in libEGL.so", *api); - f = default_func; //(void*)gl_unimplemented; + if( glEsImpl->eglGetProcAddress && ( (void*)glEsImpl->eglGetProcAddress != (void*)gl_unimplemented ) ) + f = glEsImpl->eglGetProcAddress( *api ); + if(f == NULL) + f = default_func; //(void*)gl_unimplemented; + } else { LOGD ("<%s> @ 0x%p\n", *api, f); @@ -160,6 +156,9 @@ static int CreateGlEsInterface( const char * name, void * lib, void * lib1, void else { LOGE ( "libEGL.so not loaded!"); + if( glEsImpl->eglGetProcAddress && ( (void*)glEsImpl->eglGetProcAddress != (void*)gl_unimplemented ) ) + f = glEsImpl->eglGetProcAddress( *api ); + if( !f ) f = default_func; } } @@ -303,4 +302,3 @@ void nanoGL_Destroy() // release lib dlclose(glesLib); } -