use pre-post swap callbacks and expose for gl

SVN revision: 45515
This commit is contained in:
Carsten Haitzler 2010-01-24 11:01:39 +00:00
parent c12557d8f0
commit 8742a16770
2 changed files with 33 additions and 1 deletions

View File

@ -153,7 +153,8 @@ EAPI Ecore_X_Window ecore_evas_gl_x11_window_get(const Ecore_Evas *ee);
EAPI void ecore_evas_gl_x11_direct_resize_set(Ecore_Evas *ee, int on);
EAPI int ecore_evas_gl_x11_direct_resize_get(const Ecore_Evas *ee);
EAPI void ecore_evas_gl_x11_extra_event_window_add(Ecore_Evas *ee, Ecore_X_Window win);
EAPI void ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee, void *data, void (*pre_cb) (void *data, Evas *e), void (*post_cb) (void *data, Evas *e));
EAPI Ecore_Evas *ecore_evas_xrender_x11_new(const char *disp_name, Ecore_X_Window parent, int x, int y, int w, int h);
EAPI Ecore_X_Window ecore_evas_xrender_x11_window_get(const Ecore_Evas *ee);
EAPI void ecore_evas_xrender_x11_direct_resize_set(Ecore_Evas *ee, int on);

View File

@ -124,6 +124,7 @@ _ecore_evas_x_gl_window_new(Ecore_Evas *ee, Ecore_X_Window parent, int x, int y,
einfo->info.colormap = einfo->func.best_colormap_get(ecore_x_display_get(), screen);
einfo->info.drawable = win;
einfo->info.depth = einfo->func.best_depth_get(ecore_x_display_get(), screen);
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
ecore_x_window_defaults_set(win);
}
@ -2738,6 +2739,36 @@ ecore_evas_gl_x11_extra_event_window_add(Ecore_Evas *ee __UNUSED__, Ecore_X_Wind
}
#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */
/**
* To be documented.
*
* FIXME: To be fixed.
*/
#ifdef BUILD_ECORE_EVAS_OPENGL_X11
EAPI void
ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee, void *data, void (*pre_cb) (void *data, Evas *e), void (*post_cb) (void *data, Evas *e))
{
Evas_Engine_Info_GL_X11 *einfo;
if (!(!strcmp(ee->driver, "opengl_x11"))) return;
einfo = (Evas_Engine_Info_GL_X11 *)evas_engine_info_get(ee->evas);
if (einfo)
{
einfo->callback.pre_swap = pre_cb;
einfo->callback.pre_swap = post_cb;
einfo->callback.data = data;
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
}
}
#else
EAPI void
ecore_evas_gl_x11_pre_post_swap_callback_set(const Ecore_Evas *ee, void *data, void (*pre_cb) (void *data, Evas *e), void (*post_cb) (void *data, Evas *e))
{
return;
}
#endif /* ! BUILD_ECORE_EVAS_OPENGL_X11 */
/**
* To be documented.
*