static int _evgl_api_ext_status = 0;
-void
+Eina_Bool
evgl_api_ext_init(void *getproc, const char *glueexts)
{
const char *glexts;
// GLES Extensions
glexts = (const char*)glGetString(GL_EXTENSIONS);
+ if (!glexts)
+ {
+ ERR("glGetString returned NULL! Something is very wrong...");
+ return EINA_FALSE;
+ }
+
/*
// GLUE Extensions
#ifdef GL_GLES
_evgl_api_ext_status = 1;
+ return EINA_TRUE;
}
void
/////////////////////////////////////////////////////////////////////////////////////////////////////
#define EXTENSION_SUPPORT(name) (_gl_ext_support_##name == 1)
-extern void evgl_api_ext_init(void *getproc, const char *glueexts);
+extern Eina_Bool evgl_api_ext_init(void *getproc, const char *glueexts);
extern void evgl_api_ext_get(Evas_GL_API *gl_funcs);
extern const char *evgl_api_ext_string_get();
// Initialize Extensions
if (efunc->proc_address_get && efunc->ext_string_get)
- evgl_api_ext_init(efunc->proc_address_get, efunc->ext_string_get(eng_data));
+ {
+ if (!evgl_api_ext_init(efunc->proc_address_get, efunc->ext_string_get(eng_data)))
+ {
+ ERR("Extensions failed to load. This shouldn't happen, Evas GL load fails.");
+ goto error;
+ }
+ }
else
- ERR("Proc address get function not available. Extension not initialized.");
+ ERR("Proc address get function not available. Extensions not initialized.");
if (efunc->ext_string_get)
DBG("GLUE Extension String: %s", efunc->ext_string_get(eng_data));