diff --git a/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h b/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h index db42d1dcb9..51eee441e5 100644 --- a/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h +++ b/legacy/ecore/src/lib/ecore_evas/Ecore_Evas.h @@ -861,10 +861,14 @@ EAPI void ecore_evas_software_x11_direct_resize_set(Ecore_Evas *ee, E EAPI Eina_Bool ecore_evas_software_x11_direct_resize_get(const Ecore_Evas *ee); EAPI void ecore_evas_software_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win); -#define ECORE_EVAS_GL_X11_OPT_NONE 0 -#define ECORE_EVAS_GL_X11_OPT_INDIRECT 1 -#define ECORE_EVAS_GL_X11_OPT_VSYNC 2 -#define ECORE_EVAS_GL_X11_OPT_LAST 3 +#define ECORE_EVAS_GL_X11_OPT_NONE 0 +#define ECORE_EVAS_GL_X11_OPT_INDIRECT 1 +#define ECORE_EVAS_GL_X11_OPT_VSYNC 2 +#define ECORE_EVAS_GL_X11_OPT_SWAP_MODE_FULL 3 +#define ECORE_EVAS_GL_X11_OPT_SWAP_MODE_COPY 4 +#define ECORE_EVAS_GL_X11_OPT_SWAP_MODE_DOUBLE 5 +#define ECORE_EVAS_GL_X11_OPT_SWAP_MODE_TRIPLE 6 +#define ECORE_EVAS_GL_X11_OPT_LAST 7 EAPI Ecore_Evas *ecore_evas_gl_x11_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h); EAPI Ecore_Evas *ecore_evas_gl_x11_options_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h, const int *opt); diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c index 1aa46a2f46..77eb4f3b80 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas_x.c @@ -161,6 +161,40 @@ _ecore_evas_x_gl_window_new(Ecore_Evas *ee, Ecore_X_Window parent, int x, int y, op++; einfo->vsync = opt[op]; } +#ifdef EVAS_ENGINE_GL_X11_SWAP_MODE_EXISTS + else if (opt[op] == ECORE_EVAS_GL_X11_OPT_SWAP_MODE_FULL) + { + op++; + if ((evas_version->major >= 1) && + (evas_version->minor >= 7) && + (evas_version->minor >= 99)) + einfo->swap_mode = EVAS_ENGINE_GL_X11_SWAP_MODE_FULL; + } + else if (opt[op] == ECORE_EVAS_GL_X11_OPT_SWAP_MODE_COPY) + { + op++; + if ((evas_version->major >= 1) && + (evas_version->minor >= 7) && + (evas_version->minor >= 99)) + einfo->swap_mode = EVAS_ENGINE_GL_X11_SWAP_MODE_COPY; + } + else if (opt[op] == ECORE_EVAS_GL_X11_OPT_SWAP_MODE_DOUBLE) + { + op++; + if ((evas_version->major >= 1) && + (evas_version->minor >= 7) && + (evas_version->minor >= 99)) + einfo->swap_mode = EVAS_ENGINE_GL_X11_SWAP_MODE_DOUBLE; + } + else if (opt[op] == ECORE_EVAS_GL_X11_OPT_SWAP_MODE_TRIPLE) + { + op++; + if ((evas_version->major >= 1) && + (evas_version->minor >= 7) && + (evas_version->minor >= 99)) + einfo->swap_mode = EVAS_ENGINE_GL_X11_SWAP_MODE_TRIPLE; + } +#endif } }