static void _ecore_evas_wl_transparent_set(Ecore_Evas *ee, int transparent);
static void _ecore_evas_wl_rotation_set(Ecore_Evas *ee, int rotation, int resize);
static struct wayland_tbm_client *tbm_client;
-static void *tbm_queue;
static Ecore_Evas_Engine_Func _ecore_wl_engine_func =
{
Ecore_Evas_Engine_Wl_Data *wdata;
Ecore_Evas_Interface_Wayland *iface;
Ecore_Evas *ee;
- int _ecore_evas_wl_init_count = -1;
int method = 0;
int fx = 0, fy = 0, fw = 0, fh = 0;
ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
- _ecore_evas_wl_init_count = _ecore_evas_wl_common_init();
+ _ecore_evas_wl_common_init();
ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_wl_engine_func;
ee->engine.data = wdata;
static void
_ecore_evas_wl_free(Ecore_Evas *ee)
{
- Evas_Engine_Info_Wayland_Shm *einfo;
-
LOGFN(__FILE__, __LINE__, __FUNCTION__);
if (!ee) return;
EVGL_Resource *rsc;
EVGL_Context *ctx;
+ EINA_SAFETY_ON_NULL_RETURN(_gles3_api.glFramebufferParameteri);
+
if (!(rsc=_evgl_tls_resource_get()))
{
ERR("Unable to execute GL command. Error retrieving tls");
}
}
- glFramebufferParameteri(target, pname, param);
+ _gles3_api.glFramebufferParameteri(target, pname, param);
}
#endif
}
}
- glFramebufferTexture(target, attachment, texture, level);
+ _gles3_api.glFramebufferTexture(target, attachment, texture, level);
}
EVGL_Resource *rsc;
EVGL_Context *ctx;
+ EINA_SAFETY_ON_NULL_RETURN(_gles3_api.glGetFramebufferParameteriv);
+
if (!(rsc=_evgl_tls_resource_get()))
{
ERR("Unable to execute GL command. Error retrieving tls");
}
}
- glGetFramebufferParameteriv(target, pname, params);
+ _gles3_api.glGetFramebufferParameteriv(target, pname, params);
}
#endif
void
Eina_Bool target_is_fbo = EINA_FALSE;
unsigned int drawbuffer;
+ if (!_gles3_api.glDrawBuffers) return;
+
ctx = evas_gl_common_current_context_get();
if (!ctx)
{
if (!bufs)
{
- glDrawBuffers(n, bufs);
+ _gles3_api.glDrawBuffers(n, bufs);
return;
}
if (*bufs == GL_BACK)
{
drawbuffer = GL_COLOR_ATTACHMENT0;
- glDrawBuffers(n, &drawbuffer);
+ _gles3_api.glDrawBuffers(n, &drawbuffer);
}
else if ((*bufs & GL_COLOR_ATTACHMENT0) == GL_COLOR_ATTACHMENT0)
{
}
else
{
- glDrawBuffers(n, bufs);
+ _gles3_api.glDrawBuffers(n, bufs);
}
}
else
}
else
{
- glDrawBuffers(n, bufs);
+ _gles3_api.glDrawBuffers(n, bufs);
}
}
EVGL_Context *ctx;
Eina_Bool target_is_fbo = EINA_FALSE;
+ if (!_gles3_api.glReadBuffer) return;
+
ctx = evas_gl_common_current_context_get();
if (!ctx)
{
{
if (src == GL_BACK)
{
- glReadBuffer(GL_COLOR_ATTACHMENT0);
+ _gles3_api.glReadBuffer(GL_COLOR_ATTACHMENT0);
}
else if((src & GL_COLOR_ATTACHMENT0) == GL_COLOR_ATTACHMENT0)
{
}
else
{
- glReadBuffer(src);
+ _gles3_api.glReadBuffer(src);
}
}
else
{
- glReadBuffer(src);
+ _gles3_api.glReadBuffer(src);
}
}
_EVASGL_FUNCTION_BEGIN(GLuint, glGetProgramResourceIndex, (GLuint program, GLenum programInterface, const GLchar *name), (program, programInterface, name))
_EVASGL_FUNCTION_BEGIN_VOID( glGetProgramResourceName, (GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name), (program, programInterface, index, bufSize, length, name))
_EVASGL_FUNCTION_BEGIN_VOID( glGetProgramResourceiv, (GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params), (program, programInterface, index, propCount, props, bufSize, length, params))
-_EVASGL_FUNCTION_BEGIN(GLuint, glGetProgramResourceLocation, (GLuint program, GLenum programInterface, const GLchar *name), (program, programInterface, name))
+_EVASGL_FUNCTION_BEGIN(GLint, glGetProgramResourceLocation, (GLuint program, GLenum programInterface, const GLchar *name), (program, programInterface, name))
_EVASGL_FUNCTION_BEGIN_VOID( glUseProgramStages, (GLuint pipeline, GLbitfield stages, GLuint program), (pipeline, stages, program))
_EVASGL_FUNCTION_BEGIN_VOID( glActiveShaderProgram, (GLuint pipeline, GLuint program), (pipeline, program))
_EVASGL_FUNCTION_BEGIN(GLuint, glCreateShaderProgramv, (GLenum type, GLsizei count, const GLchar *const*strings), (type, count, strings))
thread_data->egl_surf);
}
-EAPI EGLSurface
+EAPI EGLBoolean
eglDestroySurface_evgl_thread_cmd(EGLDisplay egl_disp, EGLSurface egl_surf)
{
if (!evas_evgl_thread_enabled())
EGLSurface (*eglGetCurrentSurface_evgl_thread_cmd)(EGLint readdraw);
EGLDisplay (*eglGetCurrentDisplay_evgl_thread_cmd)(void);
EGLSurface (*eglCreateWindowSurface_evgl_thread_cmd)(EGLDisplay egl_disp, EGLConfig egl_config, EGLNativeWindowType egl_win, EGLint const * attrib_list);
-EGLSurface (*eglDestroySurface_evgl_thread_cmd)(EGLDisplay egl_disp, EGLSurface egl_surf);
+EGLBoolean (*eglDestroySurface_evgl_thread_cmd)(EGLDisplay egl_disp, EGLSurface egl_surf);
EGLContext (*eglCreateContext_evgl_thread_cmd)(EGLDisplay display, EGLConfig config, EGLContext share_context, EGLint const * attrib_list);
EGLBoolean (*eglDestroyContext_evgl_thread_cmd)(EGLDisplay display, EGLContext context);
char const *(*eglQueryString_evgl_thread_cmd)(EGLDisplay display, EGLint name);
EAPI EGLSurface eglGetCurrentSurface_evgl_thread_cmd(EGLint readdraw);
EAPI EGLDisplay eglGetCurrentDisplay_evgl_thread_cmd(void);
EAPI EGLSurface eglCreateWindowSurface_evgl_thread_cmd(EGLDisplay egl_disp, EGLConfig egl_config, EGLNativeWindowType egl_win, EGLint const * attrib_list);
-EAPI EGLSurface eglDestroySurface_evgl_thread_cmd(EGLDisplay egl_disp, EGLSurface egl_surf);
+EAPI EGLBoolean eglDestroySurface_evgl_thread_cmd(EGLDisplay egl_disp, EGLSurface egl_surf);
EAPI EGLContext eglCreateContext_evgl_thread_cmd(EGLDisplay display, EGLConfig config, EGLContext share_context, EGLint const * attrib_list);
EAPI EGLBoolean eglDestroyContext_evgl_thread_cmd(EGLDisplay display, EGLContext context);
EAPI char const *eglQueryString_evgl_thread_cmd(EGLDisplay display, EGLint name);
extern EGLSurface (*eglGetCurrentSurface_evgl_thread_cmd)(EGLint readdraw);
extern EGLDisplay (*eglGetCurrentDisplay_evgl_thread_cmd)(void);
extern EGLSurface (*eglCreateWindowSurface_evgl_thread_cmd)(EGLDisplay egl_disp, EGLConfig egl_config, EGLNativeWindowType egl_win, EGLint const * attrib_list);
-extern EGLSurface (*eglDestroySurface_evgl_thread_cmd)(EGLDisplay egl_disp, EGLSurface egl_surf);
+extern EGLBoolean (*eglDestroySurface_evgl_thread_cmd)(EGLDisplay egl_disp, EGLSurface egl_surf);
extern EGLContext (*eglCreateContext_evgl_thread_cmd)(EGLDisplay display, EGLConfig config, EGLContext share_context, EGLint const * attrib_list);
extern EGLBoolean (*eglDestroyContext_evgl_thread_cmd)(EGLDisplay display, EGLContext context);
extern char const *(*eglQueryString_evgl_thread_cmd)(EGLDisplay display, EGLint name);
# include "evas_gl_thread_evgl_api_generated.h"
EAPI void
+glTexImage2DEVAS_evgl_thread_cmd(int finish_mode, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
+EAPI void
glTexSubImage2DEVAS_thread_cmd(int thread_push, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
#else /* ! EVAS_GL_RENDER_THREAD_COMPILE_FOR_GL_GENERIC */
# include "evas_gl_thread_gl_link_generated.h"
# include "evas_gl_thread_evgl_link_generated.h"
+extern void (*glTexImage2DEVAS_evgl_thread_cmd)(int finish_mode, GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const void *pixels);
extern void (*glTexSubImage2DEVAS_thread_cmd)(int thread_push, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *pixels);
extern void _gl_thread_link_init();
}
//reset
- if (num_surface != tbuf_info->num_surface)
+ if ((unsigned int)num_surface != tbuf_info->num_surface)
{
s->frame_age = 0;
{
unsigned int diff;
diff = s->frame_age - tbuf_info->age + 1;
- if (diff > num_surface) return MODE_FULL;
+ if (diff > (unsigned int)num_surface) return MODE_FULL;
switch(diff)
{
case 1:
| EVAS GL API | GLuint | glGetProgramResourceIndex | GLuint program, GLenum programInterface, const GLchar *name | finish | noext | | |
| EVAS GL API | void | glGetProgramResourceName | GLuint program, GLenum programInterface, GLuint index, GLsizei bufSize, GLsizei *length, GLchar *name | finish | noext | | |
| EVAS GL API | void | glGetProgramResourceiv | GLuint program, GLenum programInterface, GLuint index, GLsizei propCount, const GLenum *props, GLsizei bufSize, GLsizei *length, GLint *params | finish | noext | | |
-| EVAS GL API | GLint |glGetProgramResourceLocation | GLuint program, GLenum programInterface, const GLchar *name | finish | noext | | |
+| EVAS GL API | GLint | glGetProgramResourceLocation | GLuint program, GLenum programInterface, const GLchar *name | finish | noext | | |
| EVAS GL API | void | glUseProgramStages | GLuint pipeline, GLbitfield stages, GLuint program | finish | noext | | |
| EVAS GL API | void | glActiveShaderProgram | GLuint pipeline, GLuint program | finish | noext | | |
| EVAS GL API | GLuint | glCreateShaderProgramv | GLenum type, GLsizei count, const GLchar *const*strings | finish | noext | | |