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