Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_border.h e_canvas.c e_canvas.h e_config.c 
        e_config.h e_container.c e_error.c e_init.c e_main.c e_menu.c 
        e_popup.c e_theme.c 


Log Message:


properly virtualize ecore_evas setup

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.179
retrieving revision 1.180
diff -u -3 -r1.179 -r1.180
--- e_border.c  6 May 2005 08:33:50 -0000       1.179
+++ e_border.c  7 May 2005 13:50:37 -0000       1.180
@@ -142,8 +142,8 @@
 ecore_x_window_gravity_set(bd->bg_win, grav); \
 ecore_x_window_gravity_set(bd->client.shell_win, grav); \
 ecore_x_window_gravity_set(bd->client.win, grav); \
-ecore_x_window_gravity_set(ecore_evas_software_x11_subwindow_get(bd->bg_ecore_evas),
 grav); \
-ecore_x_window_pixel_gravity_set(ecore_evas_software_x11_subwindow_get(bd->bg_ecore_evas),
 grav);
+ecore_x_window_gravity_set(bd->bg_subwin, grav); \
+ecore_x_window_pixel_gravity_set(bd->bg_subwin, grav);
 
 /* externally accessible functions */
 int
@@ -222,12 +222,26 @@
    bd->win = ecore_x_window_override_new(bd->container->win, 0, 0, bd->w, 
bd->h);
    ecore_x_window_shape_events_select(bd->win, 1);
    e_bindings_mouse_grab(E_BINDING_CONTEXT_BORDER, bd->win);
-   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);
+   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);
+     }
    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);
-   bd->bg_win = ecore_evas_software_x11_window_get(bd->bg_ecore_evas);
    ecore_x_window_shape_events_select(bd->bg_win, 1);
    ecore_evas_name_class_set(bd->bg_ecore_evas, "E", "Frame_Window");
    ecore_evas_title_set(bd->bg_ecore_evas, "Enlightenment Frame");
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -3 -r1.43 -r1.44
--- e_border.h  5 May 2005 06:45:47 -0000       1.43
+++ e_border.h  7 May 2005 13:50:37 -0000       1.44
@@ -77,6 +77,7 @@
    Ecore_Evas     *bg_ecore_evas;
    Evas           *bg_evas;
    Ecore_X_Window  bg_win;
+   Ecore_X_Window  bg_subwin;
    Evas_Object    *bg_object;
    Evas_Object    *icon_object;
    Ecore_X_Window  event_win;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_canvas.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_canvas.c  11 Mar 2005 11:05:52 -0000      1.5
+++ e_canvas.c  7 May 2005 13:50:38 -0000       1.6
@@ -29,6 +29,22 @@
    _e_canvases = evas_list_remove(_e_canvases, ee);
 }
 
+int
+e_canvas_engine_decide(int engine)
+{
+   /* if use default - use it */
+   if (engine == E_EVAS_ENGINE_DEFAULT)
+     engine = e_config->evas_engine_default;
+   /* if engine is gl - do we support it? */
+   if (engine == E_EVAS_ENGINE_GL_X11)
+     {
+       /* if we dont - fall back to software x11 */
+       if (!ecore_evas_engine_type_supported_get(ECORE_EVAS_ENGINE_GL_X11))
+         engine = E_EVAS_ENGINE_SOFTWARE_X11;
+     }
+   return engine;
+}
+
 void
 e_canvas_recache(void)
 {
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_canvas.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- e_canvas.h  7 Feb 2005 13:51:09 -0000       1.4
+++ e_canvas.h  7 May 2005 13:50:38 -0000       1.5
@@ -8,6 +8,7 @@
 
 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);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -3 -r1.38 -r1.39
--- e_config.c  5 May 2005 08:33:17 -0000       1.38
+++ e_config.c  7 May 2005 13:50:38 -0000       1.39
@@ -135,6 +135,13 @@
        e_config->zone_desks_x_count = 4;
        e_config->zone_desks_y_count = 1;
        e_config->use_virtual_roots = 0;
+       e_config->evas_engine_default = E_EVAS_ENGINE_SOFTWARE_X11;
+       e_config->evas_engine_container = E_EVAS_ENGINE_DEFAULT;
+       e_config->evas_engine_init = E_EVAS_ENGINE_DEFAULT;
+       e_config->evas_engine_menus = E_EVAS_ENGINE_DEFAULT;
+       e_config->evas_engine_borders = E_EVAS_ENGINE_DEFAULT;
+       e_config->evas_engine_errors = E_EVAS_ENGINE_DEFAULT;
+       e_config->evas_engine_popups = E_EVAS_ENGINE_DEFAULT;
        e_config->language = strdup("");
          {
             E_Config_Module *em;
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_config.h,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -3 -r1.17 -r1.18
--- e_config.h  5 May 2005 06:45:47 -0000       1.17
+++ e_config.h  7 May 2005 13:50:38 -0000       1.18
@@ -42,6 +42,10 @@
 #ifndef E_CONFIG_H
 #define E_CONFIG_H
 
+#define E_EVAS_ENGINE_DEFAULT      0
+#define E_EVAS_ENGINE_SOFTWARE_X11 1
+#define E_EVAS_ENGINE_GL_X11       2
+
 struct _E_Config
 {
    char       *desktop_default_background;
@@ -57,6 +61,13 @@
    int         zone_desks_x_count;
    int         zone_desks_y_count;
    int         use_virtual_roots;
+   int         evas_engine_default;
+   int         evas_engine_container;
+   int         evas_engine_init;
+   int         evas_engine_menus;
+   int         evas_engine_borders;
+   int         evas_engine_errors;
+   int         evas_engine_popups;
    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.44
retrieving revision 1.45
diff -u -3 -r1.44 -r1.45
--- e_container.c       4 May 2005 06:41:40 -0000       1.44
+++ e_container.c       7 May 2005 13:50:38 -0000       1.45
@@ -73,12 +73,23 @@
      {
        con->win = con->manager->win;
      }
-   con->bg_ecore_evas = ecore_evas_software_x11_new(NULL, con->win, 0, 0, 
con->w, con->h);
-   ecore_evas_override_set(con->bg_ecore_evas, 1);
-   ecore_evas_software_x11_direct_resize_set(con->bg_ecore_evas, 1);
+   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);
+     }
    e_canvas_add(con->bg_ecore_evas);
    con->bg_evas = ecore_evas_get(con->bg_ecore_evas);
-   con->bg_win = ecore_evas_software_x11_window_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");
    ecore_evas_avoid_damage_set(con->bg_ecore_evas, 1);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_error.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- e_error.c   29 Apr 2005 11:26:42 -0000      1.19
+++ e_error.c   7 May 2005 13:50:38 -0000       1.20
@@ -60,15 +60,30 @@
    Evas_List   *l, *shapelist = NULL;
    Evas_Coord   maxw, maxh;
    E_Container *con;
+   Ecore_X_Window win;
    int          x, y;
 
    error_w = 400;
    error_h = 200;
    x = (man->w - error_w) / 2;
    y = (man->h - error_h) / 2;
-   ee = ecore_evas_software_x11_new(NULL, man->win, x, y, error_w, error_h);
-   ecore_evas_override_set(ee, 1);
-   ecore_evas_software_x11_direct_resize_set(ee, 1);
+   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);
+     }
    e_canvas_add(ee);
 
    ecore_evas_name_class_set(ee, "E", "Low_Level_Dialog");
@@ -330,13 +345,7 @@
        o = evas_object_rectangle_add(e);
        evas_object_name_set(o, "allocated");
      }
-     {
-       Ecore_X_Window win;
-       
-       win = ecore_evas_software_x11_window_get(ee);
-       e_container_window_raise(con, win, 999);
-       ecore_evas_show(ee);
-     }
+   ecore_evas_show(ee);
 }
 
 /* local subsystem functions */
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_init.c,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -3 -r1.19 -r1.20
--- e_init.c    25 Apr 2005 08:29:53 -0000      1.19
+++ e_init.c    7 May 2005 13:50:38 -0000       1.20
@@ -38,12 +38,23 @@
    root = roots[0];
    
    ecore_x_window_size_get(root, &w, &h);
-   _e_init_ecore_evas = ecore_evas_software_x11_new(NULL, root, 0, 0, w, h);
-   ecore_evas_override_set(_e_init_ecore_evas, 1);
-   ecore_evas_software_x11_direct_resize_set(_e_init_ecore_evas, 1);
+   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_canvas_add(_e_init_ecore_evas);
    _e_init_evas = ecore_evas_get(_e_init_ecore_evas);
-   _e_init_win = ecore_evas_software_x11_window_get(_e_init_ecore_evas);
    ecore_evas_name_class_set(_e_init_ecore_evas, "E", "Init_Window");
    ecore_evas_title_set(_e_init_ecore_evas, "Enlightenment Init");
    e_pointer_ecore_evas_set(_e_init_ecore_evas);
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -3 -r1.74 -r1.75
--- e_main.c    7 May 2005 04:34:25 -0000       1.74
+++ e_main.c    7 May 2005 13:50:38 -0000       1.75
@@ -190,7 +190,7 @@
      }
    _e_main_shutdown_push(e_xinerama_shutdown);
    
-   ecore_x_grab();
+//   ecore_x_grab();
    
    ecore_x_io_error_handler_set(_e_main_cb_x_fatal, NULL);
 
@@ -378,7 +378,7 @@
 
    e_managers_keys_grab();
    
-   ecore_x_ungrab();
+//   ecore_x_ungrab();
    
    e_init_title_set(_("Enlightenment"));
    e_init_version_set(VERSION);
@@ -491,7 +491,7 @@
 static int
 _e_main_x_shutdown(void)
 {
-   ecore_x_ungrab();
+//   ecore_x_ungrab();
    ecore_x_focus_reset();
    ecore_x_events_allow_all();
 
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_menu.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -3 -r1.27 -r1.28
--- e_menu.c    7 May 2005 04:34:26 -0000       1.27
+++ e_menu.c    7 May 2005 13:50:38 -0000       1.28
@@ -1021,10 +1021,23 @@
    
    if (m->realized) return;
    m->realized = 1;
-   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);
+   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);
+     }
    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);
@@ -1035,7 +1048,6 @@
    /* move cursor out to avoid event cycles during setup */
    evas_event_feed_mouse_in(m->evas, NULL);
    evas_event_feed_mouse_move(m->evas, -1000000, -1000000, NULL);
-   m->evas_win = ecore_evas_software_x11_window_get(m->ecore_evas);
    ecore_x_window_shape_events_select(m->evas_win, 1);
    ecore_evas_name_class_set(m->ecore_evas, "E", "_e_menu_window");
    ecore_evas_title_set(m->ecore_evas, "E Menu");
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_popup.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -3 -r1.1 -r1.2
--- e_popup.c   7 May 2005 04:34:26 -0000       1.1
+++ e_popup.c   7 May 2005 13:50:38 -0000       1.2
@@ -40,18 +40,32 @@
    pop->w = w;
    pop->h = h;
    pop->layer = 250;
-   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);
+   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);
+     }
    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);
    e_container_shape_resize(pop->shape, pop->w, pop->h);
    pop->evas = ecore_evas_get(pop->ecore_evas);
-   pop->evas_win = ecore_evas_software_x11_window_get(pop->ecore_evas);
    e_container_window_raise(pop->zone->container, pop->evas_win, pop->layer);
    ecore_x_window_shape_events_select(pop->evas_win, 1);
    ecore_evas_name_class_set(pop->ecore_evas, "E", "_e_popup_window");
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_theme.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- e_theme.c   3 May 2005 15:25:02 -0000       1.7
+++ e_theme.c   7 May 2005 13:50:38 -0000       1.8
@@ -40,6 +40,13 @@
        e_theme_file_set(buf, et->file);
      }
 /*
+ * this is used to sewt the theme for a CATEGORY of e17. "base" is always set
+ * to the default theme - because if a selected theme for lest say base/theme
+ * does not provide theme elements it can default back to the default theme.
+ * 
+ * the idea is you can actually set a different theme for different parts of
+ * the desktop... :)
+ * 
  * other possible categories...
  *  e_theme_file_set("base/theme/borders", "default.edj");
  *  e_theme_file_set("base/theme/menus", "default.edj");
@@ -236,6 +243,16 @@
    mappings = evas_hash_add(mappings, category, res);
 }
 
+void
+e_theme_about(E_Zone *zone, const char *file)
+{
+   static E_Popup *pop = NULL;
+   
+   if (pop) return;
+   pop = e_popup_new(zone, zone->w / 2, zone->h / 2, 1, 1);
+   e_popup_show(pop);
+}
+
 /* local subsystem functions */
 
 static Evas_Bool




-------------------------------------------------------
This SF.Net email is sponsored by: NEC IT Guy Games.
Get your fingers limbered up and give it your best shot. 4 great events, 4
opportunities to win big! Highest score wins.NEC IT Guy Games. Play to
win an NEC 61 plasma display. Visit http://www.necitguy.com/?r=20
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to