summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-06-14 14:42:03 +0900
committerCarsten Haitzler (Rasterman) <raster@rasterman.com>2013-06-14 14:42:03 +0900
commitc1190d45398f61bb14baa3315b4e9eb6c7c77b98 (patch)
tree24823380ef33b9f619bdfeadf75524f65168a93c
parentd44a69f911fd93e22f51c9ef839329d7d7fe9059 (diff)
downloadefl-c1190d45398f61bb14baa3315b4e9eb6c7c77b98.tar.gz
evas: gl engine: chg eglswapbuffersregion to swapbufferswithdamage extn instead.
-rw-r--r--src/modules/evas/engines/gl_x11/evas_engine.c19
1 files changed, 12 insertions, 7 deletions
diff --git a/src/modules/evas/engines/gl_x11/evas_engine.c b/src/modules/evas/engines/gl_x11/evas_engine.c
index 8939ded4ca..f6e5a5c34d 100644
--- a/src/modules/evas/engines/gl_x11/evas_engine.c
+++ b/src/modules/evas/engines/gl_x11/evas_engine.c
@@ -82,7 +82,7 @@ void (*glsym_eglDestroyImage) (EGLDisplay a, void *b) = NULL;
void (*glsym_glEGLImageTargetTexture2DOES) (int a, void *b) = NULL;
void *(*glsym_eglMapImageSEC) (void *a, void *b, int c, int d) = NULL;
unsigned int (*glsym_eglUnmapImageSEC) (void *a, void *b, int c) = NULL;
-void (*glsym_eglSwapBuffersRegion) (EGLDisplay a, void *b, EGLint c, const EGLint *d) = NULL;
+void (*glsym_eglSwapBuffersWithDamage) (EGLDisplay a, void *b, const EGLint *d, EGLint c) = NULL;
#else
@@ -629,8 +629,9 @@ gl_symbols(void)
FINDSYM(glsym_eglMapImageSEC, "eglMapImageSEC", glsym_func_void_ptr);
FINDSYM(glsym_eglUnmapImageSEC, "eglUnmapImageSEC", glsym_func_uint);
- FINDSYM(glsym_eglSwapBuffersRegion, "eglSwapBuffersRegionSEC", glsym_func_void_ptr);
- FINDSYM(glsym_eglSwapBuffersRegion, "eglSwapBuffersRegion", glsym_func_void_ptr);
+ FINDSYM(glsym_eglSwapBuffersWithDamage, "eglSwapBuffersWithDamageEXT", glsym_func_void_ptr);
+ FINDSYM(glsym_eglSwapBuffersWithDamage, "eglSwapBuffersWithDamageINTEL", glsym_func_void_ptr);
+ FINDSYM(glsym_eglSwapBuffersWithDamage, "eglSwapBuffersWithDamage", glsym_func_void_ptr);
#else
@@ -695,6 +696,10 @@ gl_extn_veto(Render_Engine *re)
{
extn_have_buffer_age = 0;
}
+ if (!strstr(str, "swap_buffers_with_damage"))
+ {
+ glsym_eglSwapBuffersWithDamage = NULL;
+ }
}
else
{
@@ -1443,7 +1448,7 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode)
{
re->info->callback.pre_swap(re->info->callback.data, re->evas);
}
- if ((glsym_eglSwapBuffersRegion) && (re->mode != MODE_FULL))
+ if ((glsym_eglSwapBuffersWithDamage) && (re->mode != MODE_FULL))
{
EGLint num = 0, *rects = NULL, i = 0;
Tilebuf_Rect *r;
@@ -1494,9 +1499,9 @@ eng_output_flush(void *data, Evas_Render_Mode render_mode)
}
i += 4;
}
- glsym_eglSwapBuffersRegion(re->win->egl_disp,
- re->win->egl_surface[0],
- num, rects);
+ glsym_eglSwapBuffersWithDamage(re->win->egl_disp,
+ re->win->egl_surface[0],
+ rects, num);
}
}
else