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
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs