forked from enlightenment/efl
* 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) SVN revision: 35137
This commit is contained in:
parent
0b77c43fb8
commit
a7dcdaeb55
|
@ -490,6 +490,7 @@ if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
|
|||
]
|
||||
)
|
||||
fi
|
||||
|
||||
if test "x$have_ecore_evas_x11" = "xyes" -o \
|
||||
"x$have_ecore_evas_x11_gl" = "yes" -o \
|
||||
"x$have_ecore_evas_xrender" = "yes" -o \
|
||||
|
@ -499,106 +500,57 @@ if test "x$have_ecore_x" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
|
|||
fi
|
||||
|
||||
dnl ecore_win32
|
||||
# TODO: We should first check if we have win32 available before checking for win32 evas
|
||||
# TODO: Need to check if we have evas before testing win32 evas engines
|
||||
PKG_CHECK_MODULES(EVAS_SOFTWARE_DDRAW, evas-software-ddraw >= 0.9.9.41,
|
||||
[ have_ddraw="yes"
|
||||
ddraw_libs="-lddraw -ldxguid" ],
|
||||
[ have_ddraw="no" ]
|
||||
)
|
||||
AC_SUBST(ddraw_libs)
|
||||
|
||||
PKG_CHECK_MODULES(EVAS_SOFTWARE_16_DDRAW, evas-software-16-ddraw >= 0.9.9.41,
|
||||
[ have_ddraw_16="yes"
|
||||
ddraw_16_libs="-lddraw -ldxguid" ],
|
||||
[ have_ddraw_16="no" ]
|
||||
)
|
||||
AC_SUBST(ddraw_16_libs)
|
||||
|
||||
PKG_CHECK_MODULES(EVAS_DIRECT3D, evas-direct3d >= 0.9.9.41,
|
||||
[ have_direct3d="yes"
|
||||
direct3d_libs="-ld3d9 -ld3dx9d" ],
|
||||
[ have_direct3d="no" ]
|
||||
)
|
||||
AC_SUBST(direct3d_libs)
|
||||
|
||||
PKG_CHECK_MODULES(EVAS_OPENGL_GLEW, evas-opengl-glew >= 0.9.9.41,
|
||||
[ have_opengl_glew="yes"
|
||||
glew_libs="-lglew32 -lgdi32" ],
|
||||
[ have_opengl_glew="no" ]
|
||||
)
|
||||
AC_SUBST(glew_libs)
|
||||
|
||||
have_win32="no"
|
||||
if test "x${have_ddraw}" = "xyes" -o "x${have_ddraw_16}" = "xyes" -o "x${have_direct3d}" = "xyes" -o "x${have_opengl_glew}" = "xyes"; then
|
||||
have_win32="yes"
|
||||
fi
|
||||
|
||||
ECORE_CHECK_MODULE([Win32], [no], [$have_win32],
|
||||
ECORE_CHECK_MODULE([Win32], [no], [yes],
|
||||
[ecore_win32_libs="-lgdi32"])
|
||||
AC_SUBST(ecore_win32_libs)
|
||||
|
||||
if test "x$have_ecore_win32" = "xyes"; then
|
||||
want_ecore_evas_software_ddraw="yes"
|
||||
ECORE_EVAS_CHECK_MODULE([software-ddraw],
|
||||
[$want_ecore_evas_software_ddraw],
|
||||
[Software DirectDraw],
|
||||
$have_ecore_win32)
|
||||
|
||||
want_ecore_evas_direct3d="yes"
|
||||
ECORE_EVAS_CHECK_MODULE([direct3d],
|
||||
[$want_ecore_evas_direct3d],
|
||||
[Direct3d],
|
||||
$have_ecore_win32)
|
||||
|
||||
want_ecore_evas_opengl_glew="yes"
|
||||
ECORE_EVAS_CHECK_MODULE([opengl-glew],
|
||||
[$want_ecore_evas_opengl_glew],
|
||||
[Glew OpenGL],
|
||||
$have_ecore_win32)
|
||||
|
||||
want_ecore_evas_software_16_ddraw="yes"
|
||||
ECORE_EVAS_CHECK_MODULE([software-16-ddraw],
|
||||
[$want_ecore_evas_software_16_ddraw],
|
||||
[16 bpp Software DirectDraw],
|
||||
$have_ecore_win32)
|
||||
|
||||
if test "x$have_ecore_evas_software_ddraw" = "xyes" -o \
|
||||
"x$have_ecore_evas_direct3d" = "yes" -o \
|
||||
"x$have_ecore_evas_opengl_glew" = "yes" -o \
|
||||
"x$have_ecore_evas_software_16_ddraw" = "yes"; then
|
||||
AC_DEFINE(BUILD_ECORE_EVAS_WIN32, 1, [Support for Win32 Engine in Ecore_Evas])
|
||||
requirements_ecore_evas="$requirements_ecore_evas ecore-win32"
|
||||
fi
|
||||
|
||||
have_ecore_evas_ddraw="no"
|
||||
if test "x${have_ecore_win32}" = "xyes" -a "x${have_ddraw}" = "xyes"; then
|
||||
AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW, 1, [Support for DirectDraw Engine in Ecore_Evas])
|
||||
have_ecore_evas_ddraw="yes"
|
||||
fi
|
||||
|
||||
have_ecore_evas_ddraw_16="no"
|
||||
if test "x${have_ecore_win32}" = "xyes" -a "x${have_ddraw_16}" = "xyes"; then
|
||||
AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW_16, 1, [Support for 16 bpp DirectDraw Engine in Ecore_Evas])
|
||||
have_ecore_evas_ddraw_16="yes"
|
||||
fi
|
||||
|
||||
have_ecore_evas_direct3d="no"
|
||||
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])
|
||||
have_ecore_evas_direct3d="yes"
|
||||
fi
|
||||
|
||||
have_ecore_evas_opengl_glew="no"
|
||||
if test "x${have_ecore_win32}" = "xyes" -a "x${have_opengl_glew}" = "xyes"; then
|
||||
AC_DEFINE(BUILD_ECORE_EVAS_GL_GLEW, 1, [Support for OpenGL with Glew Engine in Ecore_Evas])
|
||||
have_ecore_evas_opengl_glew="yes"
|
||||
fi
|
||||
dnl ecore_wince
|
||||
|
||||
ECORE_CHECK_MODULE([WinCE], [no])
|
||||
|
||||
if test "x$have_ecore_wince" = "xyes"; then
|
||||
want_ecore_evas_software_16_wince="yes"
|
||||
ECORE_EVAS_CHECK_MODULE([software-16-wince],
|
||||
[$want_ecore_evas_software_16_wince],
|
||||
[16 bpp Software Windows CE],
|
||||
$have_ecore_wince)
|
||||
|
||||
if test "x$have_ecore_evas_software_16_wince" = "xyes"; then
|
||||
requirements_ecore_evas="$requirements_ecore_evas ecore-wince"
|
||||
fi
|
||||
|
||||
have_ecore_evas_software_16_wince="no"
|
||||
if test "x$have_ecore_wince" = "xyes" -a "x$have_ecore_evas" = "xyes"; then
|
||||
want_ecore_evas_wince="yes"
|
||||
AC_ARG_ENABLE(ecore-evas-software-16-wince,
|
||||
AC_HELP_STRING(
|
||||
[--enable-ecore-evas-software-16-wince],
|
||||
[enable WinCE support in the ecore_evas module.]
|
||||
),
|
||||
[ want_ecore_evas_wince=$enableval ]
|
||||
)
|
||||
AC_MSG_CHECKING(whether ecore_evas WinCE support is to be built)
|
||||
AC_MSG_RESULT($want_ecore_evas_wince)
|
||||
|
||||
if test "x$want_ecore_evas_wince" = "xyes"; then
|
||||
PKG_CHECK_MODULES(EVAS_SOFTWARE_16_WINCE, evas-software-16-wince, [
|
||||
AC_DEFINE(BUILD_ECORE_EVAS_SOFTWARE_16_WINCE, 1, [Support for WinCE Engine in Ecore_Evas])
|
||||
have_ecore_evas_software_16_wince="yes";
|
||||
], [
|
||||
have_ecore_evas_software_16_wince="no";
|
||||
])
|
||||
fi
|
||||
|
||||
if test "x$have_ecore_evas_software_16_wince" = "xyes"; then
|
||||
requirements_ecore_evas="$requirements_ecore_evas ecore-wince"
|
||||
fi
|
||||
fi
|
||||
|
||||
dnl ecore_dfb
|
||||
PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.16,
|
||||
[ have_directfb="yes" ],
|
||||
|
@ -911,9 +863,10 @@ echo " Ecore_Evas XRender Support...: $have_ecore_evas_xrender"
|
|||
echo " Ecore_Evas X11 16bpp Support.: $have_ecore_evas_x11_16"
|
||||
|
||||
echo " Ecore_Win32..................: $have_ecore_win32"
|
||||
echo " Ecore_Evas DirectDraw Support: $have_ecore_evas_ddraw"
|
||||
echo " Ecore_Evas DirectDraw Support: $have_ecore_evas_software_ddraw"
|
||||
echo " Ecore_Evas Direct3D Support..: $have_ecore_evas_direct3d"
|
||||
echo " Ecore_Evas GL Glew Support...: $have_ecore_evas_opengl_glew"
|
||||
echo " Ecore_Evas DirectDraw 16bpp Support: $have_ecore_evas_software_16_ddraw"
|
||||
echo " Ecore_WinCE..................: $have_ecore_wince"
|
||||
echo " Ecore_Evas WinCE Support.....: $have_ecore_evas_software_16_wince"
|
||||
echo " Ecore_DFB....................: $have_ecore_directfb"
|
||||
|
|
|
@ -76,11 +76,11 @@ typedef enum _Ecore_Evas_Engine_Type
|
|||
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 @@ typedef enum _Ecore_Evas_Avoid_Damage_Type
|
|||
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,30 +165,26 @@ EAPI Ecore_Evas *ecore_evas_software_ddraw_new(Ecore_Win32_Window *parent,
|
|||
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);
|
||||
|
||||
EAPI Ecore_Evas *ecore_evas_software_wince_new(Ecore_WinCE_Window *parent,
|
||||
|
|
|
@ -67,7 +67,7 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine)
|
|||
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 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine)
|
|||
#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 @@ ecore_evas_engine_type_supported_get(Ecore_Evas_Engine_Type engine)
|
|||
#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;
|
||||
|
|
|
@ -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 @@ struct _Ecore_Evas_Engine
|
|||
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 @@ void _ecore_evas_buffer_render(Ecore_Evas *ee);
|
|||
#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
|
||||
|
|
|
@ -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 @@ _ecore_evas_win32_event_window_damage(void *data __UNUSED__, int type __UNUSED__
|
|||
|
||||
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 @@ _ecore_evas_win32_rotation_set(Ecore_Evas *ee, int rotation)
|
|||
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 @@ _ecore_evas_win32_rotation_set(Ecore_Evas *ee, int rotation)
|
|||
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 @@ _ecore_evas_win32_fullscreen_set(Ecore_Evas *ee, int on)
|
|||
/* 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,294 +992,59 @@ static const Ecore_Evas_Engine_Func _ecore_win32_engine_func =
|
|||
_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");
|
||||
driver = "software_ddraw";
|
||||
|
||||
rmethod = evas_render_method_lookup(driver);
|
||||
if (!rmethod)
|
||||
return NULL;
|
||||
return 0;
|
||||
|
||||
printf ("ecore_evas_software_ddraw_new : ecore_win32_init\n");
|
||||
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 = "software_ddraw";
|
||||
|
||||
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 */
|
||||
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);
|
||||
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;
|
||||
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;
|
||||
#else
|
||||
return NULL;
|
||||
parent = NULL;
|
||||
x = 0;
|
||||
y = 0;
|
||||
width = 0;
|
||||
height = 0;
|
||||
#endif /* BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW */
|
||||
}
|
||||
|
||||
EAPI Ecore_Win32_Window *
|
||||
ecore_evas_software_ddraw_window_get(Ecore_Evas *ee)
|
||||
{
|
||||
return (Ecore_Win32_Window *) _ecore_evas_win32_window_get(ee);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
rmethod = evas_render_method_lookup("software_16_ddraw");
|
||||
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 = "software_16_ddraw";
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
if (ecore_win32_screen_depth_get() != 16)
|
||||
{
|
||||
ecore_win32_window_del(ee->engine.win32.window);
|
||||
_ecore_evas_win32_shutdown();
|
||||
free(ee);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
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;
|
||||
return 1;
|
||||
#else
|
||||
return NULL;
|
||||
parent = NULL;
|
||||
x = 0;
|
||||
y = 0;
|
||||
width = 0;
|
||||
height = 0;
|
||||
#endif /* BUILD_ECORE_EVAS_SOFTWARE_DIRECTDRAW_16 */
|
||||
return 0;
|
||||
#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_DDRAW */
|
||||
}
|
||||
|
||||
EAPI Ecore_Win32_Window *
|
||||
ecore_evas_software_ddraw_16_window_get(Ecore_Evas *ee)
|
||||
{
|
||||
return (Ecore_Win32_Window *) _ecore_evas_win32_window_get(ee);
|
||||
}
|
||||
|
||||
EAPI Ecore_Evas *
|
||||
ecore_evas_direct3d_new(Ecore_Win32_Window *parent,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
static int
|
||||
_ecore_evas_engine_direct3d_init(Ecore_Evas *ee)
|
||||
{
|
||||
#ifdef BUILD_ECORE_EVAS_DIRECT3D
|
||||
Evas_Engine_Info_Direct3D *einfo;
|
||||
Ecore_Evas *ee;
|
||||
int rmethod;
|
||||
const char *driver;
|
||||
int rmethod;
|
||||
|
||||
rmethod = evas_render_method_lookup("direct3d");
|
||||
driver = "direct3d";
|
||||
|
||||
rmethod = evas_render_method_lookup(driver);
|
||||
if (!rmethod)
|
||||
return NULL;
|
||||
return 0;
|
||||
|
||||
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 = "direct3d";
|
||||
|
||||
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);
|
||||
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;
|
||||
}
|
||||
|
||||
einfo = (Evas_Engine_Info_Direct3D *)evas_engine_info_get(ee->evas);
|
||||
if (einfo)
|
||||
|
@ -1279,51 +1056,88 @@ ecore_evas_direct3d_new(Ecore_Win32_Window *parent,
|
|||
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_DIRECT3D */
|
||||
return 0;
|
||||
#endif /* ! BUILD_ECORE_EVAS_DIRECT3D */
|
||||
}
|
||||
|
||||
EAPI Ecore_Win32_Window *
|
||||
ecore_evas_direct3d_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);
|
||||
}
|
||||
|
||||
EAPI Ecore_Evas *
|
||||
ecore_evas_gl_glew_new(Ecore_Win32_Window *parent,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
#ifdef BUILD_ECORE_EVAS_GL_GLEW
|
||||
#ifdef BUILD_ECORE_EVAS_OPENGL_GLEW
|
||||
Evas_Engine_Info_GL_Glew *einfo;
|
||||
Ecore_Evas *ee;
|
||||
const char *driver;
|
||||
int rmethod;
|
||||
|
||||
rmethod = evas_render_method_lookup("gl_glew");
|
||||
driver = "gl_glew";
|
||||
|
||||
rmethod = evas_render_method_lookup(driver);
|
||||
if (!rmethod)
|
||||
return NULL;
|
||||
return 0;
|
||||
|
||||
ee->driver = driver;
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
return 1;
|
||||
#else
|
||||
return 0;
|
||||
#endif /* ! BUILD_ECORE_EVAS_OPENGL_GLEW */
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
driver = "software_16_ddraw";
|
||||
|
||||
rmethod = evas_render_method_lookup(driver);
|
||||
if (!rmethod)
|
||||
return 0;
|
||||
|
||||
ee->driver = driver;
|
||||
evas_output_method_set(ee->evas, rmethod);
|
||||
|
||||
if (ecore_win32_screen_depth_get() != 16)
|
||||
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.depth = ecore_win32_screen_depth_get();
|
||||
einfo->info.rotation = 0;
|
||||
evas_engine_info_set(ee->evas, (Evas_Engine_Info *)einfo);
|
||||
}
|
||||
#else
|
||||
return 0;
|
||||
#endif /* ! BUILD_ECORE_EVAS_SOFTWARE_16_DIRECTDRAW */
|
||||
}
|
||||
|
||||
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_WIN32
|
||||
Ecore_Evas *ee;
|
||||
|
||||
if (!ecore_win32_init())
|
||||
return NULL;
|
||||
|
@ -1337,8 +1151,6 @@ ecore_evas_gl_glew_new(Ecore_Win32_Window *parent,
|
|||
_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;
|
||||
|
@ -1357,7 +1169,6 @@ ecore_evas_gl_glew_new(Ecore_Win32_Window *parent,
|
|||
/* 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);
|
||||
|
||||
|
@ -1370,13 +1181,11 @@ ecore_evas_gl_glew_new(Ecore_Win32_Window *parent,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
einfo = (Evas_Engine_Info_GL_Glew *)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();
|
||||
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");
|
||||
|
@ -1400,5 +1209,112 @@ ecore_evas_gl_glew_new(Ecore_Win32_Window *parent,
|
|||
y = 0;
|
||||
width = 0;
|
||||
height = 0;
|
||||
#endif /* BUILD_ECORE_EVAS_GL_GLEW */
|
||||
#endif /* ! BUILD_ECORE_EVAS_WIN32 */
|
||||
}
|
||||
|
||||
EAPI Ecore_Evas *
|
||||
ecore_evas_software_ddraw_new(Ecore_Win32_Window *parent,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
#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 *
|
||||
ecore_evas_gl_glew_new(Ecore_Win32_Window *parent,
|
||||
int x,
|
||||
int y,
|
||||
int width,
|
||||
int height)
|
||||
{
|
||||
#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;
|
||||
x = 0;
|
||||
y = 0;
|
||||
width = 0;
|
||||
height = 0;
|
||||
#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 */
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue