Enlightenment CVS committal

Author  : doursse
Project : e17
Module  : libs/ecore

Dir     : e17/libs/ecore/src/lib/ecore_evas


Modified Files:
        Ecore_Evas.h ecore_evas.c ecore_evas_private.h 
        ecore_evas_win32.c 


Log Message:


 * use ECORE_EVAS_CHECK_MODULE for Windows modules
  (other modules will follow later)
 * update Windows ecore evas module accordingly
 * factorize win32 code before cedric changes :p
 * add warning for vc++ (patch from Dmitriy Mazovka)


===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_evas/Ecore_Evas.h,v
retrieving revision 1.40
retrieving revision 1.41
diff -u -3 -r1.40 -r1.41
--- Ecore_Evas.h        30 Jun 2008 08:39:36 -0000      1.40
+++ Ecore_Evas.h        17 Jul 2008 06:06:34 -0000      1.41
@@ -76,11 +76,11 @@
    ECORE_EVAS_ENGINE_DIRECTFB,
    ECORE_EVAS_ENGINE_SOFTWARE_X11_16,
    ECORE_EVAS_ENGINE_SOFTWARE_DDRAW,
-   ECORE_EVAS_ENGINE_SOFTWARE_DDRAW_16,
+   ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW,
    ECORE_EVAS_ENGINE_DIRECT3D,
-   ECORE_EVAS_ENGINE_GL_GLEW,
+   ECORE_EVAS_ENGINE_OPENGL_GLEW,
    ECORE_EVAS_ENGINE_SDL,
-   ECORE_EVAS_ENGINE_SOFTWARE_WINCE,
+   ECORE_EVAS_ENGINE_SOFTWARE_16_WINCE,
 } Ecore_Evas_Engine_Type;
 
 typedef enum _Ecore_Evas_Avoid_Damage_Type
@@ -89,7 +89,7 @@
    ECORE_EVAS_AVOID_DAMAGE_EXPOSE = 1,
    ECORE_EVAS_AVOID_DAMAGE_BUILT_IN = 2
 } Ecore_Evas_Avoid_Damage_Type;
-   
+
 #ifndef _ECORE_X_H
 #define _ECORE_X_WINDOW_PREDEF
 typedef unsigned int Ecore_X_Window;
@@ -165,29 +165,25 @@
                                                    int                 width,
                                                    int                 height);
 
-EAPI Ecore_Win32_Window *ecore_evas_software_ddraw_window_get(Ecore_Evas *ee);
-
 EAPI Ecore_Evas     *ecore_evas_software_ddraw_16_new(Ecore_Win32_Window 
*parent,
                                                       int                 x,
                                                       int                 y,
                                                       int                 
width,
                                                       int                 
height);
 
-EAPI Ecore_Win32_Window *ecore_evas_software_ddraw_16_window_get(Ecore_Evas 
*ee);
-
 EAPI Ecore_Evas     *ecore_evas_direct3d_new(Ecore_Win32_Window *parent,
                                              int                 x,
                                              int                 y,
                                              int                 width,
                                              int                 height);
 
-EAPI Ecore_Win32_Window *ecore_evas_direct3d_window_get(Ecore_Evas *ee);
-
 EAPI Ecore_Evas *ecore_evas_gl_glew_new(Ecore_Win32_Window *parent,
                                         int                 x,
                                         int                 y,
                                         int                 width,
                                         int                 height);
+
+EAPI Ecore_Win32_Window *ecore_evas_win32_window_get(Ecore_Evas *ee);
 
 EAPI Ecore_Evas     *ecore_evas_sdl_new(const char* name, int w, int h, int 
fullscreen, int hwsurface, int noframe, int alpha);
 
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_evas/ecore_evas.c,v
retrieving revision 1.49
retrieving revision 1.50
diff -u -3 -r1.49 -r1.50
--- ecore_evas.c        30 Jun 2008 08:39:36 -0000      1.49
+++ ecore_evas.c        17 Jul 2008 06:06:34 -0000      1.50
@@ -67,7 +67,7 @@
        return 0;
 #endif
       case ECORE_EVAS_ENGINE_SOFTWARE_DDRAW:
-#ifdef BUILD_ECORE_EVAS_DIRECTDRAW
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
        return 1;
 #else
        return 0;
@@ -78,8 +78,8 @@
 #else
        return 0;
 #endif
-      case ECORE_EVAS_ENGINE_GL_GLEW:
-#ifdef BUILD_ECORE_EVAS_GL_GLEW
+      case ECORE_EVAS_ENGINE_OPENGL_GLEW:
+#ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
        return 1;
 #else
        return 0;
@@ -90,8 +90,14 @@
 #else
         return 0;
 #endif
-      case ECORE_EVAS_ENGINE_SOFTWARE_WINCE:
-#ifdef BUILD_ECORE_EVAS_WINCE
+      case ECORE_EVAS_ENGINE_SOFTWARE_16_DDRAW:
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
+       return 1;
+#else
+       return 0;
+#endif
+      case ECORE_EVAS_ENGINE_SOFTWARE_16_WINCE:
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
        return 1;
 #else
        return 0;
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_private.h,v
retrieving revision 1.43
retrieving revision 1.44
diff -u -3 -r1.43 -r1.44
--- ecore_evas_private.h        30 Jun 2008 08:39:36 -0000      1.43
+++ ecore_evas_private.h        17 Jul 2008 06:06:34 -0000      1.44
@@ -65,18 +65,18 @@
 #ifdef BUILD_ECORE_EVAS_BUFFER
 # include <Evas_Engine_Buffer.h>
 #endif
-#ifdef BUILD_ECORE_WIN32
+#ifdef BUILD_ECORE_EVAS_WIN32
 # include "Ecore_Win32.h"
-# ifdef BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW
+# ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
 #  include <Evas_Engine_Software_DDraw.h>
 # endif
-# ifdef BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW_16
+# ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DDRAW
 #  include <Evas_Engine_Software_16_DDraw.h>
 # endif
 # ifdef BUILD_ECORE_EVAS_DIRECT3D
 #  include <Evas_Engine_Direct3D.h>
 # endif
-# ifdef BUILD_ECORE_EVAS_GL_GLEW
+# ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
 #  include <Evas_Engine_GL_Glew.h>
 # endif
 #endif
@@ -194,7 +194,7 @@
       Ecore_DirectFB_Window *window;
    } directfb;
 #endif
-#ifdef BUILD_ECORE_WIN32
+#ifdef BUILD_ECORE_EVAS_WIN32
    struct {
       Ecore_Win32_Window *parent;
       Ecore_Win32_Window *window;
@@ -303,7 +303,7 @@
 #ifdef BUILD_ECORE_EVAS_DIRECTFB
 int _ecore_evas_directfb_shutdown(void);
 #endif
-#ifdef BUILD_ECORE_WIN32
+#ifdef BUILD_ECORE_EVAS_WIN32
 int _ecore_evas_win32_shutdown(void);
 #endif
 #ifdef BUILD_ECORE_EVAS_SOFTWARE_16_WINCE
===================================================================
RCS file: /cvs/e/e17/libs/ecore/src/lib/ecore_evas/ecore_evas_win32.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- ecore_evas_win32.c  30 Jun 2008 08:39:36 -0000      1.7
+++ ecore_evas_win32.c  17 Jul 2008 06:06:34 -0000      1.8
@@ -2,20 +2,24 @@
  * vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
  */
 
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
 #include <stdlib.h> /* for NULL */
 
-#include "config.h"
 #include "Ecore.h"
 #include "ecore_private.h"
-#include "ecore_evas_private.h"
-#include "Ecore_Evas.h"
-#ifdef BUILD_ECORE_WIN32
+#ifdef BUILD_ECORE_EVAS_WIN32
 # include "Ecore_Win32.h"
 # include "ecore_win32_private.h"
-#endif /* BUILD_ECORE_WIN32 */
+#endif /* BUILD_ECORE_EVAS_WIN32 */
 
+#include "ecore_evas_private.h"
+#include "Ecore_Evas.h"
 
-#ifdef BUILD_ECORE_WIN32
+
+#ifdef BUILD_ECORE_EVAS_WIN32
 
 #define ECORE_EVAS_EVENT_COUNT 14
 
@@ -416,7 +420,11 @@
 
    if (ee->prop.avoid_damage)
      {
-#warning [ECORE] [WIN32] No Region code
+#ifdef _MSC_VER
+# pragma message ("[ECORE] [WIN32] No Region code")
+#else
+# warning [ECORE] [WIN32] No Region code
+#endif /* ! _MSC_VER */
      }
    else
      {
@@ -682,8 +690,10 @@
    if (ee->rotation == rotation) return;
    rot_dif = ee->rotation - rotation;
    if (rot_dif < 0) rot_dif = -rot_dif;
+
    if (!strcmp(ee->driver, "software_ddraw"))
      {
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
        Evas_Engine_Info_Software_DDraw *einfo;
 
        einfo = (Evas_Engine_Info_Software_DDraw 
*)evas_engine_info_get(ee->evas);
@@ -743,6 +753,7 @@
          evas_damage_rectangle_add(ee->evas, 0, 0, ee->h, ee->w);
        else
          evas_damage_rectangle_add(ee->evas, 0, 0, ee->w, ee->h);
+#endif /* BUILD_ECORE_EVAS_SOFTWARE_DDRAW */
      }
 }
 
@@ -917,19 +928,20 @@
 /*    else */
 /*      _ecore_evas_win32_state_update(ee); */
 }
-#endif
+
+#endif /* BUILD_ECORE_EVAS_WIN32 */
 
 static void *
 _ecore_evas_win32_window_get(Ecore_Evas *ee)
 {
-#ifdef BUILD_ECORE_WIN32
+#ifdef BUILD_ECORE_EVAS_WIN32
    return ee->engine.win32.window;
 #else
    return NULL;
-#endif /* BUILD_ECORE_WIN32 */
+#endif /* BUILD_ECORE_EVAS_WIN32 */
 }
 
-#ifdef BUILD_ECORE_WIN32
+#ifdef BUILD_ECORE_EVAS_WIN32
 static const Ecore_Evas_Engine_Func _ecore_win32_engine_func =
 {
    _ecore_evas_win32_free,
@@ -980,249 +992,152 @@
      _ecore_evas_win32_window_get
 };
 
-#endif /* BUILD_ECORE_WIN32 */
+#endif /* BUILD_ECORE_EVAS_WIN32 */
 
 /* API */
 
-EAPI Ecore_Evas *
-ecore_evas_software_ddraw_new(Ecore_Win32_Window *parent,
-                              int                 x,
-                              int                 y,
-                              int                 width,
-                              int                 height)
+static int
+_ecore_evas_engine_software_ddraw_init(Ecore_Evas *ee)
 {
-#ifdef BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
    Evas_Engine_Info_Software_DDraw *einfo;
-   Ecore_Evas                      *ee;
+   const char                      *driver;
    int                              rmethod;
 
-   rmethod = evas_render_method_lookup("software_ddraw");
-   if (!rmethod)
-     return NULL;
-
-   printf ("ecore_evas_software_ddraw_new : ecore_win32_init\n");
-   if (!ecore_win32_init())
-     return NULL;
+   driver = "software_ddraw";
 
-   ee = calloc(1, sizeof(Ecore_Evas));
-   if (!ee)
-     return NULL;
+   rmethod = evas_render_method_lookup(driver);
+   if (!rmethod)
+     return 0;
 
-   ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
+   ee->driver = driver;
+   evas_output_method_set(ee->evas, rmethod);
 
-   _ecore_evas_win32_init();
+   einfo = (Evas_Engine_Info_Software_DDraw *)evas_engine_info_get(ee->evas);
+   if (einfo)
+     {
+        /* FIXME: REDRAW_DEBUG missing for now */
+        einfo->info.window = ((struct _Ecore_Win32_Window 
*)ee->engine.win32.window)->window;
+        einfo->info.depth = ecore_win32_screen_depth_get();
+        einfo->info.rotation = 0;
+       evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+     }
 
-   ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_win32_engine_func;
+   return 1;
+#else
+   return 0;
+#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_DDRAW */
+}
 
-   ee->driver = "software_ddraw";
+static int
+_ecore_evas_engine_direct3d_init(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_EVAS_DIRECT3D
+   Evas_Engine_Info_Direct3D *einfo;
+   const char                *driver;
+   int                        rmethod;
 
-   if (width < 1) width = 1;
-   if (height < 1) height = 1;
-   ee->x = x;
-   ee->y = y;
-   ee->w = width;
-   ee->h = height;
+   driver = "direct3d";
 
-   ee->prop.max.w = 32767;
-   ee->prop.max.h = 32767;
-   ee->prop.layer = 4;
-   ee->prop.request_pos = 0;
-   ee->prop.sticky = 0;
-   /* FIXME: sticky to add */
+   rmethod = evas_render_method_lookup(driver);
+   if (!rmethod)
+     return 0;
 
-   /* init evas here */
-   printf ("ecore_evas_software_ddraw_new : evas_new\n");
-   ee->evas = evas_new();
-   evas_data_attach_set(ee->evas, ee);
-   printf ("ecore_evas_software_ddraw_new : evas_output_method_set\n");
+   ee->driver = driver;
    evas_output_method_set(ee->evas, rmethod);
-   printf ("ecore_evas_software_ddraw_new : evas_output_size_set\n");
-   evas_output_size_set(ee->evas, width, height);
-   printf ("ecore_evas_software_ddraw_new : evas_output_viewport_set\n");
-   evas_output_viewport_set(ee->evas, 0, 0, width, height);
 
-   ee->engine.win32.parent = parent;
-   printf ("ecore_evas_software_ddraw_new : ecore_win32_window_new\n");
-   ee->engine.win32.window = ecore_win32_window_new(parent, x, y, width, 
height);
-   if (!ee->engine.win32.window)
-     {
-        _ecore_evas_win32_shutdown();
-        free(ee);
-        return NULL;
-     }
-
-   printf ("ecore_evas_software_ddraw_new : evas_engine_info_get\n");
-   einfo = (Evas_Engine_Info_Software_DDraw *)evas_engine_info_get(ee->evas);
+   einfo = (Evas_Engine_Info_Direct3D *)evas_engine_info_get(ee->evas);
    if (einfo)
      {
         /* FIXME: REDRAW_DEBUG missing for now */
         einfo->info.window = ((struct _Ecore_Win32_Window 
*)ee->engine.win32.window)->window;
-        einfo->info.depth = ecore_win32_screen_depth_get();;
+        einfo->info.depth = ecore_win32_screen_depth_get();
         einfo->info.rotation = 0;
-        printf ("ecore_evas_software_ddraw_new : evas_engine_info_set\n");
        evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
      }
 
-   evas_key_modifier_add(ee->evas, "Shift");
-   evas_key_modifier_add(ee->evas, "Control");
-   evas_key_modifier_add(ee->evas, "Alt");
-   evas_key_modifier_add(ee->evas, "Meta");
-   evas_key_modifier_add(ee->evas, "Hyper");
-   evas_key_modifier_add(ee->evas, "Super");
-   evas_key_lock_add(ee->evas, "Caps_Lock");
-   evas_key_lock_add(ee->evas, "Num_Lock");
-   evas_key_lock_add(ee->evas, "Scroll_Lock");
-
-   ecore_evases = _ecore_list2_prepend(ecore_evases, ee);
-   ecore_evases_hash = evas_hash_add(ecore_evases_hash, 
_ecore_evas_win32_winid_str_get(ee->engine.win32.window), ee);
-
-   return ee;
+   return 1;
 #else
-   return NULL;
-   parent = NULL;
-   x = 0;
-   y = 0;
-   width = 0;
-   height = 0;
-#endif /* BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW */
+   return 0;
+#endif /* ! BUILD_ECORE_EVAS_DIRECT3D */
 }
 
-EAPI Ecore_Win32_Window *
-ecore_evas_software_ddraw_window_get(Ecore_Evas *ee)
+static int
+_ecore_evas_engine_opengl_glew_init(Ecore_Evas *ee)
 {
-   return (Ecore_Win32_Window *) _ecore_evas_win32_window_get(ee);
-}
+#ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
+   Evas_Engine_Info_GL_Glew *einfo;
+   const char               *driver;
+   int                       rmethod;
 
-EAPI Ecore_Evas *
-ecore_evas_software_ddraw_16_new(Ecore_Win32_Window *parent,
-                                 int                 x,
-                                 int                 y,
-                                 int                 width,
-                                 int                 height)
-{
-#ifdef BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW_16
-   Evas_Engine_Info_Software_16_DDraw *einfo;
-   Ecore_Evas                         *ee;
-   int                                 rmethod;
+   driver = "gl_glew";
 
-   rmethod = evas_render_method_lookup("software_16_ddraw");
+   rmethod = evas_render_method_lookup(driver);
    if (!rmethod)
-     return NULL;
-
-   if (!ecore_win32_init())
-     return NULL;
+     return 0;
 
-   ee = calloc(1, sizeof(Ecore_Evas));
-   if (!ee)
-     return NULL;
-
-   ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
+   ee->driver = driver;
+   evas_output_method_set(ee->evas, rmethod);
 
-   _ecore_evas_win32_init();
+   einfo = (Evas_Engine_Info_GL_Glew *)evas_engine_info_get(ee->evas);
+   if (einfo)
+     {
+        /* FIXME: REDRAW_DEBUG missing for now */
+        einfo->info.window = ((struct _Ecore_Win32_Window 
*)ee->engine.win32.window)->window;
+        einfo->info.depth = ecore_win32_screen_depth_get();
+       evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+     }
 
-   ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_win32_engine_func;
+   return 1;
+#else
+   return 0;
+#endif /* ! BUILD_ECORE_EVAS_OPENGL_GLEW */
+}
 
-   ee->driver = "software_16_ddraw";
+static int
+_ecore_evas_engine_software_16_ddraw_init(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DIRECTDRAW
+   Evas_Engine_Info_Software_DDraw *einfo;
+   const char                      *driver;
+   int                              rmethod;
 
-   if (width < 1) width = 1;
-   if (height < 1) height = 1;
-   ee->x = x;
-   ee->y = y;
-   ee->w = width;
-   ee->h = height;
+   driver = "software_16_ddraw";
 
-   ee->prop.max.w = 32767;
-   ee->prop.max.h = 32767;
-   ee->prop.layer = 4;
-   ee->prop.request_pos = 0;
-   ee->prop.sticky = 0;
-   /* FIXME: sticky to add */
+   rmethod = evas_render_method_lookup(driver);
+   if (!rmethod)
+     return 0;
 
-   /* init evas here */
-   ee->evas = evas_new();
-   evas_data_attach_set(ee->evas, ee);
+   ee->driver = driver;
    evas_output_method_set(ee->evas, rmethod);
-   evas_output_size_set(ee->evas, width, height);
-   evas_output_viewport_set(ee->evas, 0, 0, width, height);
-
-   ee->engine.win32.parent = parent;
-   ee->engine.win32.window = ecore_win32_window_new(parent, x, y, width, 
height);
-   if (!ee->engine.win32.window)
-     {
-        _ecore_evas_win32_shutdown();
-        free(ee);
-        return NULL;
-     }
 
    if (ecore_win32_screen_depth_get() != 16)
-     {
-        ecore_win32_window_del(ee->engine.win32.window);
-        _ecore_evas_win32_shutdown();
-        free(ee);
-        return NULL;
-     }
+     return 0;
 
    einfo = (Evas_Engine_Info_Software_16_DDraw 
*)evas_engine_info_get(ee->evas);
    if (einfo)
      {
         /* FIXME: REDRAW_DEBUG missing for now */
         einfo->info.window = ((struct _Ecore_Win32_Window 
*)ee->engine.win32.window)->window;
-/*         einfo->info.object = 
ecore_win32_ddraw_object_get(ee->engine.win32.window); */
-/*         einfo->info.surface_primary = 
ecore_win32_ddraw_surface_primary_get(ee->engine.win32.window); */
-/*         einfo->info.surface_back = 
ecore_win32_ddraw_surface_back_get(ee->engine.win32.window); */
-/*         einfo->info.surface_source = 
ecore_win32_ddraw_surface_source_get(ee->engine.win32.window); */
-/*         einfo->info.depth = 
ecore_win32_ddraw_depth_get(ee->engine.win32.window); */
         einfo->info.depth = ecore_win32_screen_depth_get();
-        printf ("ecore_evas_software_ddraw_16_new depth : %d\n", 
einfo->info.depth);
         einfo->info.rotation = 0;
        evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
      }
-
-   evas_key_modifier_add(ee->evas, "Shift");
-   evas_key_modifier_add(ee->evas, "Control");
-   evas_key_modifier_add(ee->evas, "Alt");
-   evas_key_modifier_add(ee->evas, "Meta");
-   evas_key_modifier_add(ee->evas, "Hyper");
-   evas_key_modifier_add(ee->evas, "Super");
-   evas_key_lock_add(ee->evas, "Caps_Lock");
-   evas_key_lock_add(ee->evas, "Num_Lock");
-   evas_key_lock_add(ee->evas, "Scroll_Lock");
-
-   ecore_evases = _ecore_list2_prepend(ecore_evases, ee);
-   ecore_evases_hash = evas_hash_add(ecore_evases_hash, 
_ecore_evas_win32_winid_str_get(ee->engine.win32.window), ee);
-
-   return ee;
 #else
-   return NULL;
-   parent = NULL;
-   x = 0;
-   y = 0;
-   width = 0;
-   height = 0;
-#endif /* BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW_16 */
-}
-
-EAPI Ecore_Win32_Window *
-ecore_evas_software_ddraw_16_window_get(Ecore_Evas *ee)
-{
-   return (Ecore_Win32_Window *) _ecore_evas_win32_window_get(ee);
+   return 0;
+#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_DIRECTDRAW */
 }
 
-EAPI Ecore_Evas *
-ecore_evas_direct3d_new(Ecore_Win32_Window *parent,
-                        int                 x,
-                        int                 y,
-                        int                 width,
-                        int                 height)
+static Ecore_Evas *
+_ecore_evas_win32_new_internal(int (*_ecore_evas_engine_init)(Ecore_Evas *ee),
+                               Ecore_Win32_Window *parent,
+                               int                 x,
+                               int                 y,
+                               int                 width,
+                               int                 height)
 {
-#ifdef BUILD_ECORE_EVAS_DIRECT3D
-   Evas_Engine_Info_Direct3D *einfo;
-   Ecore_Evas                 *ee;
-   int                         rmethod;
-
-   rmethod = evas_render_method_lookup("direct3d");
-   if (!rmethod)
-     return NULL;
+#ifdef BUILD_ECORE_EVAS_WIN32
+   Ecore_Evas *ee;
 
    if (!ecore_win32_init())
      return NULL;
@@ -1236,8 +1151,6 @@
    _ecore_evas_win32_init();
 
    ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_win32_engine_func;
- 
-   ee->driver = "direct3d";
 
    if (width < 1) width = 1;
    if (height < 1) height = 1;
@@ -1256,7 +1169,6 @@
    /* init evas here */
    ee->evas = evas_new();
    evas_data_attach_set(ee->evas, ee);
-   evas_output_method_set(ee->evas, rmethod);
    evas_output_size_set(ee->evas, width, height);
    evas_output_viewport_set(ee->evas, 0, 0, width, height);
 
@@ -1269,14 +1181,11 @@
         return NULL;
      }
 
-   einfo = (Evas_Engine_Info_Direct3D *)evas_engine_info_get(ee->evas);
-   if (einfo)
+   if (!_ecore_evas_engine_init(ee))
      {
-        /* FIXME: REDRAW_DEBUG missing for now */
-        einfo->info.window = ((struct _Ecore_Win32_Window 
*)ee->engine.win32.window)->window;
-        einfo->info.depth = ecore_win32_screen_depth_get();
-        einfo->info.rotation = 0;
-       evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
+        _ecore_evas_win32_shutdown();
+        free(ee);
+        return NULL;
      }
 
    evas_key_modifier_add(ee->evas, "Shift");
@@ -1300,13 +1209,79 @@
    y = 0;
    width = 0;
    height = 0;
-#endif /* BUILD_ECORE_EVAS_DIRECT3D */
+#endif /* ! BUILD_ECORE_EVAS_WIN32 */
 }
 
-EAPI Ecore_Win32_Window *
-ecore_evas_direct3d_window_get(Ecore_Evas *ee)
+EAPI Ecore_Evas *
+ecore_evas_software_ddraw_new(Ecore_Win32_Window *parent,
+                              int                 x,
+                              int                 y,
+                              int                 width,
+                              int                 height)
 {
-   return (Ecore_Win32_Window *) _ecore_evas_win32_window_get(ee);
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_DDRAW
+   return 
_ecore_evas_win32_new_internal(_ecore_evas_engine_software_ddraw_init,
+                                         parent,
+                                         x,
+                                         y,
+                                         width,
+                                         height);
+#else
+   return NULL;
+   parent = NULL;
+   x = 0;
+   y = 0;
+   width = 0;
+   height = 0;
+#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_DDRAW */
+}
+
+EAPI Ecore_Evas *
+ecore_evas_software_16_ddraw_new(Ecore_Win32_Window *parent,
+                                 int                 x,
+                                 int                 y,
+                                 int                 width,
+                                 int                 height)
+{
+#ifdef BUILD_ECORE_EVAS_SOFTWARE_16_DIRECTDRAW
+   return 
_ecore_evas_win32_new_internal(_ecore_evas_engine_software_16_ddraw_init,
+                                         parent,
+                                         x,
+                                         y,
+                                         width,
+                                         height);
+#else
+   return NULL;
+   parent = NULL;
+   x = 0;
+   y = 0;
+   width = 0;
+   height = 0;
+#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_DIRECTDRAW */
+}
+
+EAPI Ecore_Evas *
+ecore_evas_direct3d_new(Ecore_Win32_Window *parent,
+                        int                 x,
+                        int                 y,
+                        int                 width,
+                        int                 height)
+{
+#ifdef BUILD_ECORE_EVAS_DIRECT3D
+   return _ecore_evas_win32_new_internal(_ecore_evas_engine_direct3d_init,
+                                         parent,
+                                         x,
+                                         y,
+                                         width,
+                                         height);
+#else
+   return NULL;
+   parent = NULL;
+   x = 0;
+   y = 0;
+   width = 0;
+   height = 0;
+#endif /* ! BUILD_ECORE_EVAS_DIRECT3D */
 }
 
 EAPI Ecore_Evas *
@@ -1316,83 +1291,13 @@
                        int                 width,
                        int                 height)
 {
-#ifdef BUILD_ECORE_EVAS_GL_GLEW
-   Evas_Engine_Info_GL_Glew *einfo;
-   Ecore_Evas               *ee;
-   int                       rmethod;
-
-   rmethod = evas_render_method_lookup("gl_glew");
-   if (!rmethod)
-     return NULL;
-
-   if (!ecore_win32_init())
-     return NULL;
-
-   ee = calloc(1, sizeof(Ecore_Evas));
-   if (!ee)
-     return NULL;
-
-   ECORE_MAGIC_SET(ee, ECORE_MAGIC_EVAS);
-
-   _ecore_evas_win32_init();
-
-   ee->engine.func = (Ecore_Evas_Engine_Func *)&_ecore_win32_engine_func;
- 
-   ee->driver = "gl_glew";
-
-   if (width < 1) width = 1;
-   if (height < 1) height = 1;
-   ee->x = x;
-   ee->y = y;
-   ee->w = width;
-   ee->h = height;
-
-   ee->prop.max.w = 32767;
-   ee->prop.max.h = 32767;
-   ee->prop.layer = 4;
-   ee->prop.request_pos = 0;
-   ee->prop.sticky = 0;
-   /* FIXME: sticky to add */
-
-   /* init evas here */
-   ee->evas = evas_new();
-   evas_data_attach_set(ee->evas, ee);
-   evas_output_method_set(ee->evas, rmethod);
-   evas_output_size_set(ee->evas, width, height);
-   evas_output_viewport_set(ee->evas, 0, 0, width, height);
-
-   ee->engine.win32.parent = parent;
-   ee->engine.win32.window = ecore_win32_window_new(parent, x, y, width, 
height);
-   if (!ee->engine.win32.window)
-     {
-        _ecore_evas_win32_shutdown();
-        free(ee);
-        return NULL;
-     }
-
-   einfo = (Evas_Engine_Info_GL_Glew *)evas_engine_info_get(ee->evas);
-   if (einfo)
-     {
-        /* FIXME: REDRAW_DEBUG missing for now */
-        einfo->info.window = ((struct _Ecore_Win32_Window 
*)ee->engine.win32.window)->window;
-        einfo->info.depth = ecore_win32_screen_depth_get();
-       evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
-     }
-
-   evas_key_modifier_add(ee->evas, "Shift");
-   evas_key_modifier_add(ee->evas, "Control");
-   evas_key_modifier_add(ee->evas, "Alt");
-   evas_key_modifier_add(ee->evas, "Meta");
-   evas_key_modifier_add(ee->evas, "Hyper");
-   evas_key_modifier_add(ee->evas, "Super");
-   evas_key_lock_add(ee->evas, "Caps_Lock");
-   evas_key_lock_add(ee->evas, "Num_Lock");
-   evas_key_lock_add(ee->evas, "Scroll_Lock");
-
-   ecore_evases = _ecore_list2_prepend(ecore_evases, ee);
-   ecore_evases_hash = evas_hash_add(ecore_evases_hash, 
_ecore_evas_win32_winid_str_get(ee->engine.win32.window), ee);
-
-   return ee;
+#ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
+   return _ecore_evas_win32_new_internal(_ecore_evas_engine_opengl_glew_init,
+                                         parent,
+                                         x,
+                                         y,
+                                         width,
+                                         height);
 #else
    return NULL;
    parent = NULL;
@@ -1400,5 +1305,16 @@
    y = 0;
    width = 0;
    height = 0;
-#endif /* BUILD_ECORE_EVAS_GL_GLEW */
+#endif /* BUILD_ECORE_EVAS_OPENGL_GLEW */
+}
+
+EAPI Ecore_Win32_Window *
+ecore_evas_win32_window_get(Ecore_Evas *ee)
+{
+#ifdef BUILD_ECORE_EVAS_WIN32
+   return (Ecore_Win32_Window *) _ecore_evas_win32_window_get(ee);
+#else
+   return NULL;
+   ee = NULL;
+#endif /* BUILD_ECORE_EVAS_WIN32 */
 }



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to