Render_Engine *re;
Outbuf *ob;
- if (!(re = (Render_Engine *)data)) return NULL;
+ if (!(re = (Render_Engine *)data))
+ {
+ ERR("Invalid Render Engine Data!");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_NOT_INITIALIZED);
+ return NULL;
+ }
if (!(ob = eng_get_ob(re))) return NULL;
if (!(surface = calloc(1, sizeof(Evgl_wl_Surface))))
if (!surface->wl_surf)
{
ERR("Could not create wl_surface: %m");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_BAD_DISPLAY);
return NULL;
}
surface->egl_win = wl_egl_window_create(surface->wl_surf, 1, 1);
if (!surface->egl_win)
{
ERR("Could not create wl_egl window: %m");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_BAD_DISPLAY);
return NULL;
}
+
return (void *)surface;
}
{
Evgl_wl_Surface* surface;
- if (!win) return 0;
+ if (!win)
+ {
+ ERR("Inavlid native window.");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_BAD_NATIVE_WINDOW);
+ return 0;
+ }
+
surface = (Evgl_wl_Surface*)win;
if (surface->egl_win)
wl_egl_window_destroy((struct wl_egl_window *)surface->egl_win);
EGLSurface surface = EGL_NO_SURFACE;
Evgl_wl_Surface* evgl_surface;
- if (!(re = (Render_Engine *)data)) return NULL;
+ if (!(re = (Render_Engine *)data))
+ {
+ ERR("Invalid Render Engine Data!");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_NOT_INITIALIZED);
+ return NULL;
+ }
if (!(ob = eng_get_ob(re))) return NULL;
if (!(evgl_surface = (Evgl_wl_Surface *)win)) return NULL;
if (!(evgl_surface->egl_win)) return NULL;
Render_Engine *re;
Outbuf *ob;
- if (!(re = (Render_Engine *)data)) return 0;
+ if (!(re = (Render_Engine *)data))
+ {
+ ERR("Invalid Render Engine Data!");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_NOT_INITIALIZED);
+ return 0;
+ }
if (!(ob = eng_get_ob(re))) return 0;
- if (!surface) return 0;
+ if (!surface)
+ {
+ ERR("Invalid surface.");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_BAD_SURFACE);
+ return 0;
+ }
eglDestroySurface(ob->egl_disp, (EGLSurface)surface);
return 1;
}
Render_Engine *re;
Outbuf *ob;
- if (!(re = (Render_Engine *)data)) return 0;
+ if (!(re = (Render_Engine *)data))
+ {
+ ERR("Invalid Render Input Data. Engine: %p", data);
+ glsym_evas_gl_common_error_set(data, EVAS_GL_NOT_INITIALIZED);
+ return 0;
+ }
if (!(ob = eng_get_ob(re))) return 0;
- if (!ctxt) return 0;
+ if (!ctxt)
+ {
+ ERR("Invalid Render Input Data. Context: %p", ctxt);
+ glsym_evas_gl_common_error_set(data, EVAS_GL_BAD_CONTEXT);
+ return 0;
+ }
eglDestroyContext(ob->egl_disp, (EGLContext)ctxt);
return 1;
EGLSurface surf;
int ret = 0;
- if (!(re = (Render_Engine *)data)) return 0;
+ if (!(re = (Render_Engine *)data))
+ {
+ ERR("Invalid Render Engine Data!");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_NOT_INITIALIZED);
+ return 0;
+ }
if (!(ob = eng_get_ob(re))) return 0;
ctx = (EGLContext)ctxt;
EGL_NO_SURFACE, EGL_NO_CONTEXT);
if (!ret)
{
- ERR("eglMakeCurrent Failed: %#x", eglGetError());
+ int err = eglGetError();
+ glsym_evas_gl_common_error_set(err - EGL_SUCCESS);
+ ERR("eglMakeCurrent() failed! Error Code=%#x", err);
return 0;
}
return 1;
ret = eglMakeCurrent(ob->egl_disp, surf, surf, ctx);
if (!ret)
{
- ERR("eglMakeCurrent Failed: %#x", eglGetError());
+ int err = eglGetError();
+ glsym_evas_gl_common_error_set(err - EGL_SUCCESS);
+ ERR("eglMakeCurrent() failed! Error Code=%#x", err);
return 0;
}
}
Render_Engine *re;
Outbuf *ob;
- if (!(re = (Render_Engine *)data)) return NULL;
+ if (!(re = (Render_Engine *)data))
+ {
+ ERR("Invalid Render Engine Data!");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_NOT_INITIALIZED);
+ return NULL;
+ }
if (!(ob = eng_get_ob(re))) return NULL;
return eglQueryString(ob->egl_disp, EGL_EXTENSIONS);
Render_Engine *re;
Outbuf *ob;
- if (!(re = (Render_Engine *)data)) return 0;
+ if (!(re = (Render_Engine *)data))
+ {
+ ERR("Invalid Render Engine Data!");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_NOT_INITIALIZED);
+ return 0;
+ }
if (!(ob = eng_get_ob(re))) return 0;
if (ob->gl_context)
return ob->gl_context->rot;
-
- return 0;
+ else
+ {
+ ERR("Unable to retrieve rotation angle.");
+ glsym_evas_gl_common_error_set(data, EVAS_GL_BAD_CONTEXT);
+ return 0;
+ }
}
static void *
#endif
}
+static int
+eng_gl_error_get(void *data)
+{
+ int err;
+
+ if ((err = glsym_evas_gl_common_error_get(data)) != EVAS_GL_SUCCESS)
+ goto end;
+
+ err = eglGetError() - EGL_SUCCESS;
+
+end:
+ glsym_evas_gl_common_error_set(data, EVAS_GL_SUCCESS);
+ return err;
+}
static void
_native_cb_bind(void *data EINA_UNUSED, void *image)
eina_hash_del(ob->gl_context->shared->native_wl_hash, &wlid, img);
if (n->egl_surface)
{
+ int err;
if (glsym_eglDestroyImage)
{
glsym_eglDestroyImage(ob->egl_disp, n->egl_surface);
- if (eglGetError() != EGL_SUCCESS)
- ERR("eglDestroyImage() failed.");
+ if ((err = eglGetError()) != EGL_SUCCESS)
+ {
+ ERR("eglDestroyImage() failed.");
+ glsym_evas_gl_common_error_set(err - EGL_SUCCESS);
+ }
}
else
ERR("Try eglDestroyImage on EGL with no support");
ORD(image_native_set);
ORD(gl_current_context_get);
+ ORD(gl_error_get);
gl_symbols();