From b50328b46929b222a5854b67cdf37e911ca3ceeb Mon Sep 17 00:00:00 2001 From: doursse Date: Mon, 27 Aug 2007 10:20:12 +0000 Subject: [PATCH] fix ecore_evas_engine_type_supported_get and ecore_time_get on windows SVN revision: 31552 --- legacy/ecore/configure.in | 7 +++ legacy/ecore/src/lib/ecore/ecore_time.c | 51 +++++++++++++++++++- legacy/ecore/src/lib/ecore_evas/ecore_evas.c | 17 +++++-- 3 files changed, 69 insertions(+), 6 deletions(-) diff --git a/legacy/ecore/configure.in b/legacy/ecore/configure.in index 2ac4bdac00..67dd60b23f 100644 --- a/legacy/ecore/configure.in +++ b/legacy/ecore/configure.in @@ -328,6 +328,13 @@ fi ECORE_CHECK_MODULE([Win32], [no], [$have_win32], [ecore_win32_libs="$ecore_win32_libs $ddraw_libs $direct3d_libs"]) +if test "x${have_ecore_win32}" = "xyes" -a "x${have_ddraw}" = "xyes"; then + AC_DEFINE(BUILD_ECORE_EVAS_DIRECTDRAW, 1, [Support for DirectDraw Engine in Ecore_Evas]) +fi + +if test "x${have_ecore_win32}" = "xyes" -a "x${have_direct3d}" = "xyes"; then + AC_DEFINE(BUILD_ECORE_EVAS_DIRECT3D, 1, [Support for Direct3D Engine in Ecore_Evas]) +fi ECORE_CHECK_MODULE([Job], [yes]) diff --git a/legacy/ecore/src/lib/ecore/ecore_time.c b/legacy/ecore/src/lib/ecore/ecore_time.c index 1cee1937a1..483f9afced 100644 --- a/legacy/ecore/src/lib/ecore/ecore_time.c +++ b/legacy/ecore/src/lib/ecore/ecore_time.c @@ -15,7 +15,56 @@ EAPI double ecore_time_get(void) { #ifdef _WIN32 - return (double)GetTickCount() / 1000.0; + SYSTEMTIME st; + double time; + int days_nbr = 0; + int i; + + GetSystemTime(&st); + for (i = 1; i < st.wMonth; i++) + { + if ((i == 1) || + (i == 3) || + (i == 5) || + (i == 7) || + (i == 8) || + (i == 10) || + (i == 12)) + days_nbr += 31; + else if ((i == 4) || + (i == 6) || + (i == 5) || + (i == 9) || + (i == 11)) + days_nbr += 30; + else + { + /* need to fix that... */ + if ((st.wYear % 4) == 0) + { + if ((st.wYear % 400) == 0) + { + if ((st.wYear % 1000) == 0) + days_nbr += 29; + else + days_nbr += 28; + } + else + days_nbr += 29; + } + else + days_nbr += 28; + } + } + time = + (double)st.wMilliseconds / 1000.0 + + (double)st.wSecond + + (double)st.wMinute * 60.0 + + (double)st.wHour * 3600.0 + + (double)(st.wDay + days_nbr) * 86400.0 + + (double)(st.wYear - 1970) * 31536000.0; + + return time; #else # ifdef HAVE_GETTIMEOFDAY struct timeval timev; diff --git a/legacy/ecore/src/lib/ecore_evas/ecore_evas.c b/legacy/ecore/src/lib/ecore_evas/ecore_evas.c index f2064cbe3c..c026ffe6d1 100644 --- a/legacy/ecore/src/lib/ecore_evas/ecore_evas.c +++ b/legacy/ecore/src/lib/ecore_evas/ecore_evas.c @@ -25,21 +25,18 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine) #else return 0; #endif - break; case ECORE_EVAS_ENGINE_SOFTWARE_FB: #ifdef BUILD_ECORE_EVAS_FB return 1; #else return 0; #endif - break; case ECORE_EVAS_ENGINE_GL_X11: #ifdef BUILD_ECORE_EVAS_GL return 1; #else return 0; #endif - break; case ECORE_EVAS_ENGINE_XRENDER_X11: #ifdef BUILD_ECORE_EVAS_XRENDER return 1; @@ -53,19 +50,29 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine) #else return 0; #endif - break; case ECORE_EVAS_ENGINE_SOFTWARE_BUFFER: #ifdef BUILD_ECORE_EVAS_BUFFER return 1; #else return 0; #endif - break; case ECORE_EVAS_ENGINE_DIRECTFB: #ifdef BUILD_ECORE_EVAS_DIRECTFB return 1; #else return 0; +#endif + case ECORE_EVAS_ENGINE_SOFTWARE_DDRAW: +#ifdef BUILD_ECORE_EVAS_DIRECTDRAW + return 1; +#else + return 0; +#endif + case ECORE_EVAS_ENGINE_DIRECT3D: +#ifdef BUILD_ECORE_EVAS_DIRECT3D + return 1; +#else + return 0; #endif case ECORE_EVAS_ENGINE_SDL: #ifdef BUILD_ECORE_EVAS_SDL