Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_border.c e_canvas.c e_canvas.h e_config.c e_config.h e_container.c e_dnd.c e_error.c e_init.c e_menu.c e_popup.c e_win.c e_zone.c Log Message: 1. centralise canvas creation. 2. allow xrender to be (*hard-coded) chosen. =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.438 retrieving revision 1.439 diff -u -3 -r1.438 -r1.439 --- e_border.c 29 Sep 2005 15:01:04 -0000 1.438 +++ e_border.c 3 Oct 2005 07:36:22 -0000 1.439 @@ -226,23 +226,9 @@ e_bindings_mouse_grab(E_BINDING_CONTEXT_BORDER, bd->win); e_bindings_wheel_grab(E_BINDING_CONTEXT_BORDER, bd->win); e_focus_setup(bd); - if (e_canvas_engine_decide(e_config->evas_engine_borders) == - E_EVAS_ENGINE_GL_X11) - { - bd->bg_ecore_evas = ecore_evas_gl_x11_new(NULL, bd->win, - 0, 0, bd->w, bd->h); - ecore_evas_gl_x11_direct_resize_set(bd->bg_ecore_evas, 1); - bd->bg_win = ecore_evas_gl_x11_window_get(bd->bg_ecore_evas); - bd->bg_subwin = ecore_evas_gl_x11_subwindow_get(bd->bg_ecore_evas); - } - else - { - bd->bg_ecore_evas = ecore_evas_software_x11_new(NULL, bd->win, - 0, 0, bd->w, bd->h); - ecore_evas_software_x11_direct_resize_set(bd->bg_ecore_evas, 1); - bd->bg_win = ecore_evas_software_x11_window_get(bd->bg_ecore_evas); - bd->bg_subwin = ecore_evas_software_x11_subwindow_get(bd->bg_ecore_evas); - } + bd->bg_ecore_evas = e_canvas_new(e_config->evas_engine_borders, bd->win, + 0, 0, bd->w, bd->h, 1, 0, + &(bd->bg_win), &(bd->bg_subwin)); e_canvas_add(bd->bg_ecore_evas); bd->event_win = ecore_x_window_input_new(bd->win, 0, 0, bd->w, bd->h); bd->bg_evas = ecore_evas_get(bd->bg_ecore_evas); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_canvas.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e_canvas.c 7 May 2005 13:50:38 -0000 1.6 +++ e_canvas.c 3 Oct 2005 07:36:23 -0000 1.7 @@ -94,3 +94,46 @@ evas_image_cache_reload(e); } } + +Ecore_Evas * +e_canvas_new(int engine_hint, Ecore_X_Window win, int x, int y, int w, int h, + int direct_resize, int override, Ecore_X_Window *win_ret, + Ecore_X_Window *subwin_ret) +{ + Ecore_Evas *ee; + + if (e_canvas_engine_decide(engine_hint) == E_EVAS_ENGINE_GL_X11) + { + ee = ecore_evas_gl_x11_new(NULL, win, x, y, w, h); + if (ee) + { + ecore_evas_override_set(ee, override); + if (direct_resize) ecore_evas_gl_x11_direct_resize_set(ee, 1); + if (win_ret) *win_ret = ecore_evas_gl_x11_window_get(ee); + if (subwin_ret) *subwin_ret = ecore_evas_gl_x11_subwindow_get(ee); + } + } + else if (e_canvas_engine_decide(engine_hint) == E_EVAS_ENGINE_XRENDER_X11) + { + ee = ecore_evas_xrender_x11_new(NULL, win, x, y, w, h); + if (ee) + { + ecore_evas_override_set(ee, override); + if (direct_resize) ecore_evas_xrender_x11_direct_resize_set(ee, 1); + if (win_ret) *win_ret = ecore_evas_xrender_x11_window_get(ee); + if (subwin_ret) *subwin_ret = ecore_evas_xrender_x11_subwindow_get(ee); + } + } + else + { + ee = ecore_evas_software_x11_new(NULL, win, x, y, w, h); + if (ee) + { + ecore_evas_override_set(ee, override); + if (direct_resize) ecore_evas_software_x11_direct_resize_set(ee, 1); + if (win_ret) *win_ret = ecore_evas_software_x11_window_get(ee); + if (subwin_ret) *subwin_ret = ecore_evas_software_x11_subwindow_get(ee); + } + } + return ee; +} =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_canvas.h,v retrieving revision 1.5 retrieving revision 1.6 diff -u -3 -r1.5 -r1.6 --- e_canvas.h 7 May 2005 13:50:38 -0000 1.5 +++ e_canvas.h 3 Oct 2005 07:36:23 -0000 1.6 @@ -6,12 +6,13 @@ #ifndef E_CANVAS_H #define E_CANVAS_H -EAPI void e_canvas_add(Ecore_Evas *ee); -EAPI void e_canvas_del(Ecore_Evas *ee); -EAPI int e_canvas_engine_decide(int engine); -EAPI void e_canvas_recache(void); -EAPI void e_canvas_cache_flush(void); -EAPI void e_canvas_cache_reload(void); - +EAPI void e_canvas_add(Ecore_Evas *ee); +EAPI void e_canvas_del(Ecore_Evas *ee); +EAPI int e_canvas_engine_decide(int engine); +EAPI void e_canvas_recache(void); +EAPI void e_canvas_cache_flush(void); +EAPI void e_canvas_cache_reload(void); +EAPI Ecore_Evas *e_canvas_new(int engine_hint, Ecore_X_Window win, int x, int y, int w, int h, int direct_resize, int override, Ecore_X_Window *win_ret, Ecore_X_Window *subwin_ret); + #endif #endif =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v retrieving revision 1.106 retrieving revision 1.107 diff -u -3 -r1.106 -r1.107 --- e_config.c 27 Sep 2005 22:50:56 -0000 1.106 +++ e_config.c 3 Oct 2005 07:36:23 -0000 1.107 @@ -408,6 +408,8 @@ e_config->evas_engine_errors = E_EVAS_ENGINE_DEFAULT; e_config->evas_engine_popups = E_EVAS_ENGINE_DEFAULT; e_config->evas_engine_drag = E_EVAS_ENGINE_DEFAULT; + e_config->evas_engine_win = E_EVAS_ENGINE_DEFAULT; + e_config->evas_engine_zone = E_EVAS_ENGINE_DEFAULT; e_config->language = strdup(""); e_config->window_placement_policy = E_WINDOW_PLACEMENT_SMART; e_config->focus_policy = E_FOCUS_MOUSE; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v retrieving revision 1.56 retrieving revision 1.57 diff -u -3 -r1.56 -r1.57 --- e_config.h 27 Sep 2005 22:50:56 -0000 1.56 +++ e_config.h 3 Oct 2005 07:36:23 -0000 1.57 @@ -55,6 +55,7 @@ #define E_EVAS_ENGINE_DEFAULT 0 #define E_EVAS_ENGINE_SOFTWARE_X11 1 #define E_EVAS_ENGINE_GL_X11 2 +#define E_EVAS_ENGINE_XRENDER_X11 3 struct _E_Config { @@ -86,6 +87,8 @@ int evas_engine_errors; int evas_engine_popups; int evas_engine_drag; + int evas_engine_win; + int evas_engine_zone; char *language; Evas_List *modules; Evas_List *font_fallbacks; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_container.c,v retrieving revision 1.88 retrieving revision 1.89 diff -u -3 -r1.88 -r1.89 --- e_container.c 28 Sep 2005 13:30:49 -0000 1.88 +++ e_container.c 3 Oct 2005 07:36:23 -0000 1.89 @@ -88,24 +88,12 @@ { con->win = con->manager->win; } - if (e_canvas_engine_decide(e_config->evas_engine_container) == - E_EVAS_ENGINE_GL_X11) - { - con->bg_ecore_evas = ecore_evas_gl_x11_new(NULL, con->win, 0, 0, con->w, con->h); - ecore_evas_gl_x11_direct_resize_set(con->bg_ecore_evas, 1); - ecore_evas_override_set(con->bg_ecore_evas, 1); - con->bg_win = ecore_evas_gl_x11_window_get(con->bg_ecore_evas); - } - else - { - con->bg_ecore_evas = ecore_evas_software_x11_new(NULL, con->win, 0, 0, con->w, con->h); - ecore_evas_software_x11_direct_resize_set(con->bg_ecore_evas, 1); - ecore_evas_override_set(con->bg_ecore_evas, 1); - con->bg_win = ecore_evas_software_x11_window_get(con->bg_ecore_evas); - } + con->bg_ecore_evas = e_canvas_new(e_config->evas_engine_container, con->win, + 0, 0, con->w, con->h, 1, 1, + &(con->bg_win), NULL); + e_canvas_add(con->bg_ecore_evas); con->event_win = ecore_x_window_input_new(con->bg_win, 0, 0, con->w, con->h); ecore_x_window_show(con->event_win); - e_canvas_add(con->bg_ecore_evas); con->bg_evas = ecore_evas_get(con->bg_ecore_evas); ecore_evas_name_class_set(con->bg_ecore_evas, "E", "Background_Window"); ecore_evas_title_set(con->bg_ecore_evas, "Enlightenment Background"); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_dnd.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -3 -r1.30 -r1.31 --- e_dnd.c 5 Sep 2005 15:24:07 -0000 1.30 +++ e_dnd.c 3 Oct 2005 07:36:23 -0000 1.31 @@ -151,25 +151,9 @@ drag->layer = 250; drag->container = container; e_object_ref(E_OBJECT(drag->container)); - if (e_canvas_engine_decide(e_config->evas_engine_drag) == - E_EVAS_ENGINE_GL_X11) - { - drag->ecore_evas = ecore_evas_gl_x11_new(NULL, - drag->container->win, - drag->x, drag->y, - drag->w, drag->h); - ecore_evas_gl_x11_direct_resize_set(drag->ecore_evas, 1); - drag->evas_win = ecore_evas_gl_x11_window_get(drag->ecore_evas); - } - else - { - drag->ecore_evas = ecore_evas_software_x11_new(NULL, - drag->container->win, - drag->x, drag->y, - drag->w, drag->h); - ecore_evas_software_x11_direct_resize_set(drag->ecore_evas, 1); - drag->evas_win = ecore_evas_software_x11_window_get(drag->ecore_evas); - } + drag->ecore_evas = e_canvas_new(e_config->evas_engine_drag, drag->container->win, + drag->x, drag->y, drag->w, drag->h, 1, 1, + &(drag->evas_win), NULL); e_canvas_add(drag->ecore_evas); drag->shape = e_container_shape_add(drag->container); e_container_shape_move(drag->shape, drag->x, drag->y); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_error.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -3 -r1.28 -r1.29 --- e_error.c 20 Sep 2005 18:22:01 -0000 1.28 +++ e_error.c 3 Oct 2005 07:36:23 -0000 1.29 @@ -70,24 +70,12 @@ error_h = 200; x = (man->w - error_w) / 2; y = (man->h - error_h) / 2; - if (e_canvas_engine_decide(e_config->evas_engine_errors) == - E_EVAS_ENGINE_GL_X11) - { - ee = ecore_evas_gl_x11_new(NULL, man->win, x, y, error_w, error_h); - ecore_evas_gl_x11_direct_resize_set(ee, 1); - ecore_evas_override_set(ee, 1); - win = ecore_evas_gl_x11_window_get(ee); - e_container_window_raise(con, win, 999); - } - else - { - ee = ecore_evas_software_x11_new(NULL, man->win, x, y, error_w, error_h); - ecore_evas_software_x11_direct_resize_set(ee, 1); - ecore_evas_override_set(ee, 1); - win = ecore_evas_software_x11_window_get(ee); - e_container_window_raise(con, win, 999); - } + ee = e_canvas_new(e_config->evas_engine_errors, man->win, + x, y, error_w, error_h, 1, 0, + &win, NULL); e_canvas_add(ee); + ecore_evas_override_set(ee, 1); + e_container_window_raise(con, win, 999); ecore_evas_name_class_set(ee, "E", "Low_Level_Dialog"); ecore_evas_title_set(ee, "Enlightenment: Low Level Dialog"); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_init.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -3 -r1.29 -r1.30 --- e_init.c 28 Sep 2005 13:30:49 -0000 1.29 +++ e_init.c 3 Oct 2005 07:36:23 -0000 1.30 @@ -42,21 +42,9 @@ root = roots[0]; ecore_x_window_size_get(root, &w, &h); - if (e_canvas_engine_decide(e_config->evas_engine_init) == - E_EVAS_ENGINE_GL_X11) - { - _e_init_ecore_evas = ecore_evas_gl_x11_new(NULL, root, 0, 0, w, h); - ecore_evas_gl_x11_direct_resize_set(_e_init_ecore_evas, 1); - ecore_evas_override_set(_e_init_ecore_evas, 1); - _e_init_win = ecore_evas_gl_x11_window_get(_e_init_ecore_evas); - } - else - { - _e_init_ecore_evas = ecore_evas_software_x11_new(NULL, root, 0, 0, w, h); - ecore_evas_software_x11_direct_resize_set(_e_init_ecore_evas, 1); - ecore_evas_override_set(_e_init_ecore_evas, 1); - _e_init_win = ecore_evas_software_x11_window_get(_e_init_ecore_evas); - } + _e_init_ecore_evas = e_canvas_new(e_config->evas_engine_init, root, + 0, 0, w, h, 1, 1, + &(_e_init_win), NULL); e_canvas_add(_e_init_ecore_evas); _e_init_evas = ecore_evas_get(_e_init_ecore_evas); ecore_evas_name_class_set(_e_init_ecore_evas, "E", "Init_Window"); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_menu.c,v retrieving revision 1.40 retrieving revision 1.41 diff -u -3 -r1.40 -r1.41 --- e_menu.c 5 Sep 2005 15:24:07 -0000 1.40 +++ e_menu.c 3 Oct 2005 07:36:23 -0000 1.41 @@ -1157,23 +1157,9 @@ if (m->realized) return; m->realized = 1; - if (e_canvas_engine_decide(e_config->evas_engine_menus) == - E_EVAS_ENGINE_GL_X11) - { - m->ecore_evas = ecore_evas_gl_x11_new(NULL, m->zone->container->win, - m->cur.x, m->cur.y, - m->cur.w, m->cur.h); - ecore_evas_gl_x11_direct_resize_set(m->ecore_evas, 1); - m->evas_win = ecore_evas_gl_x11_window_get(m->ecore_evas); - } - else - { - m->ecore_evas = ecore_evas_software_x11_new(NULL, m->zone->container->win, - m->cur.x, m->cur.y, - m->cur.w, m->cur.h); - ecore_evas_software_x11_direct_resize_set(m->ecore_evas, 1); - m->evas_win = ecore_evas_software_x11_window_get(m->ecore_evas); - } + m->ecore_evas = e_canvas_new(e_config->evas_engine_menus, m->zone->container->win, + m->cur.x, m->cur.y, m->cur.w, m->cur.h, 1, 1, + &(m->evas_win), NULL); e_canvas_add(m->ecore_evas); m->shape = e_container_shape_add(m->zone->container); e_container_shape_move(m->shape, m->cur.x, m->cur.y); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_popup.c,v retrieving revision 1.7 retrieving revision 1.8 diff -u -3 -r1.7 -r1.8 --- e_popup.c 22 Sep 2005 12:47:45 -0000 1.7 +++ e_popup.c 3 Oct 2005 07:36:23 -0000 1.8 @@ -57,27 +57,9 @@ pop->w = w; pop->h = h; pop->layer = 250; - if (e_canvas_engine_decide(e_config->evas_engine_popups) == - E_EVAS_ENGINE_GL_X11) - { - pop->ecore_evas = ecore_evas_gl_x11_new(NULL, - pop->zone->container->win, - pop->zone->x + pop->x, - pop->zone->y + pop->y, - pop->w, pop->h); - ecore_evas_gl_x11_direct_resize_set(pop->ecore_evas, 1); - pop->evas_win = ecore_evas_gl_x11_window_get(pop->ecore_evas); - } - else - { - pop->ecore_evas = ecore_evas_software_x11_new(NULL, - pop->zone->container->win, - pop->zone->x + pop->x, - pop->zone->y + pop->y, - pop->w, pop->h); - ecore_evas_software_x11_direct_resize_set(pop->ecore_evas, 1); - pop->evas_win = ecore_evas_software_x11_window_get(pop->ecore_evas); - } + pop->ecore_evas = e_canvas_new(e_config->evas_engine_popups, pop->zone->container->win, + pop->zone->x + pop->x, pop->zone->y + pop->y, pop->w, pop->h, 1, 1, + &(pop->evas_win), NULL); e_canvas_add(pop->ecore_evas); pop->shape = e_container_shape_add(pop->zone->container); e_container_shape_move(pop->shape, pop->zone->x + pop->x, pop->zone->y + pop->y); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_win.c,v retrieving revision 1.6 retrieving revision 1.7 diff -u -3 -r1.6 -r1.7 --- e_win.c 24 Sep 2005 09:04:39 -0000 1.6 +++ e_win.c 3 Oct 2005 07:36:23 -0000 1.7 @@ -43,24 +43,15 @@ win->container = con; /* TODO: Maybe use an own config for windows? */ win->engine = e_canvas_engine_decide(e_config->evas_engine_errors); - if (win->engine == E_EVAS_ENGINE_GL_X11) - { - win->ecore_evas = ecore_evas_gl_x11_new(NULL, con->manager->root, - 0, 0, 1, 1); - win->evas_win = ecore_evas_gl_x11_window_get(win->ecore_evas); - } - else - { - win->ecore_evas = ecore_evas_software_x11_new(NULL, con->manager->root, - 0, 0, 1, 1); - win->evas_win = ecore_evas_software_x11_window_get(win->ecore_evas); - } + win->ecore_evas = e_canvas_new(e_config->evas_engine_win, con->manager->root, + 0, 0, 1, 1, 0, 0, + &(win->evas_win), NULL); + e_canvas_add(win->ecore_evas); ecore_evas_data_set(win->ecore_evas, "E_Win", win); ecore_evas_callback_move_set(win->ecore_evas, _e_win_cb_move); ecore_evas_callback_resize_set(win->ecore_evas, _e_win_cb_resize); ecore_evas_callback_delete_request_set(win->ecore_evas, _e_win_cb_delete); win->evas = ecore_evas_get(win->ecore_evas); - e_canvas_add(win->ecore_evas); ecore_evas_name_class_set(win->ecore_evas, "E", "_e_internal_window"); ecore_evas_title_set(win->ecore_evas, "E"); win->x = 0; =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_zone.c,v retrieving revision 1.78 retrieving revision 1.79 diff -u -3 -r1.78 -r1.79 --- e_zone.c 29 Sep 2005 15:43:37 -0000 1.78 +++ e_zone.c 3 Oct 2005 07:36:23 -0000 1.79 @@ -106,13 +106,11 @@ evas_object_event_callback_add(o, EVAS_CALLBACK_MOUSE_MOVE, _e_zone_cb_bg_mouse_move, zone); /* TODO: config the ecore_evas type. */ - zone->black_ecore_evas = ecore_evas_software_x11_new(NULL, zone->container->win, - 0, 0, zone->w, zone->h); - ecore_evas_software_x11_direct_resize_set(zone->black_ecore_evas, 1); - ecore_evas_override_set(zone->black_ecore_evas, 1); + zone->black_ecore_evas = e_canvas_new(e_config->evas_engine_zone, zone->container->win, + 0, 0, zone->w, zone->h, 1, 1, + &(zone->black_win), NULL); + e_canvas_add(zone->black_ecore_evas); ecore_evas_layer_set(zone->black_ecore_evas, 6); - - zone->black_win = ecore_evas_software_x11_window_get(zone->black_ecore_evas); zone->black_evas = ecore_evas_get(zone->black_ecore_evas); o = evas_object_rectangle_add(zone->black_evas); @@ -628,6 +626,11 @@ Evas_List *l; int x, y; + if (zone->black_ecore_evas) + { + e_canvas_del(zone->black_ecore_evas); + ecore_evas_free(zone->black_ecore_evas); + } if (zone->cur_mouse_action) { e_object_unref(E_OBJECT(zone->cur_mouse_action)); ------------------------------------------------------- This SF.Net email is sponsored by: Power Architecture Resource Center: Free content, downloads, discussions, and more. http://solutions.newsforge.com/ibmarch.tmpl _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs