unsigned int (*glsym_eglSetDamageRegion) (EGLDisplay a, EGLSurface b, EGLint *c, EGLint d) = NULL;
unsigned int (*glsym_eglQueryWaylandBufferWL)(EGLDisplay a, /*struct wl_resource */void *b, EGLint c, EGLint *d) = NULL;
+void (*glsym_evas_gl_common_surface_cache_dump)(void) = NULL;
+
#else
typedef XID (*glsym_func_xid) ();
EGLSurface
evas_eglGetCurrentSurface(GL_X11_Context_Type type, EGLint readdraw)
{
- if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled())
+ if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_GL))
{
return GL_TH(eglGetCurrentSurface, readdraw);
}
- else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_evgl_thread_enabled())
+ else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_EVGL))
{
return EVGL_TH(eglGetCurrentSurface, readdraw);
}
EGLDisplay
evas_eglGetCurrentDisplay(GL_X11_Context_Type type)
{
- if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled())
+ if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_GL))
{
return GL_TH(eglGetCurrentDisplay);
}
- else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_evgl_thread_enabled())
+ else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_EVGL))
{
return EVGL_TH(eglGetCurrentDisplay);
}
EGLBoolean
evas_eglMakeCurrent(GL_X11_Context_Type type, EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)
{
- if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled())
+ if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_GL))
{
return GL_TH(eglMakeCurrent, dpy, draw, read, ctx);
}
- else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_evgl_thread_enabled())
+ else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_EVGL))
{
return EVGL_TH(eglMakeCurrent, dpy, draw, read, ctx);
}
#ifdef GL_GLES
# define SUPPORT_X11 1
# include <EGL/egl.h>
+# include <EGL/eglext.h>
# include <GLES2/gl2.h>
# include <GLES2/gl2ext.h>
# include <X11/Xlib.h>
return 0;
}
-#ifndef GL_GLES
-Eina_Bool __glXMakeContextCurrent(Display *disp, GLXDrawable glxwin,
+typedef enum
+{
+ GL_X11_CONTEXT_TYPE_EVAS = 0,
+ GL_X11_CONTEXT_TYPE_EVGL = 1
+} GL_X11_Context_Type;
+
+
+#ifdef GL_GLES
+EGLBoolean evas_eglMakeCurrent(GL_X11_Context_Type type, EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx);
+EGLContext evas_eglGetCurrentContext(GL_X11_Context_Type type);
+EGLSurface evas_eglGetCurrentSurface(GL_X11_Context_Type type, EGLint readdraw);
+EGLDisplay evas_eglGetCurrentDisplay(GL_X11_Context_Type type);
+#else
+Eina_Bool __glXMakeContextCurrent(GL_X11_Context_Type type, Display *disp, GLXDrawable glxwin,
GLXContext context);
#endif
}
return EINA_FALSE;
#else
- if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled())
+ if (type == GL_X11_CONTEXT_TYPE_EVAS && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_GL))
{
void *ret = GL_TH(glXMakeContextCurrentASYNC_begin, disp, glxwin, glxwin, context);
if (!ret) ERR("NO ASYNC RETURN!");
ERR("GOOD ASYNC RETURN TRUE!");
return EINA_TRUE;
}
- else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_evgl_thread_enabled())
+ else if (type == GL_X11_CONTEXT_TYPE_EVGL && evas_gl_thread_enabled(EVAS_GL_THREAD_TYPE_EVGL))
{
if (!EVGL_TH(glXMakeContextCurrent, disp, glxwin, glxwin, context)) return EINA_FALSE;
return EINA_TRUE;