parent
e3c28f97c7
commit
6ac579b895
31
configure.in
31
configure.in
|
@ -89,7 +89,6 @@ AC_CHECK_HEADER(Evas_Engine_Software_DDraw.h,
|
||||||
[ dummy=no ],
|
[ dummy=no ],
|
||||||
[ #include <Evas.h> ]
|
[ #include <Evas.h> ]
|
||||||
)
|
)
|
||||||
CFLAGS=$PCFLAGS
|
|
||||||
|
|
||||||
if test "x$have_xlib" = "xyes" -o "x$have_xlib_16" = "xyes" -o "x$have_xlib_render" = "xyes" -o "x$have_xlib_opengl" = "xyes" ; then
|
if test "x$have_xlib" = "xyes" -o "x$have_xlib_16" = "xyes" -o "x$have_xlib_render" = "xyes" -o "x$have_xlib_opengl" = "xyes" ; then
|
||||||
AC_PATH_XTRA
|
AC_PATH_XTRA
|
||||||
|
@ -102,6 +101,35 @@ AC_SUBST(x_cflags)
|
||||||
AC_SUBST(x_libs)
|
AC_SUBST(x_libs)
|
||||||
AC_SUBST(ddraw_libs)
|
AC_SUBST(ddraw_libs)
|
||||||
|
|
||||||
|
#######################################
|
||||||
|
## SDL
|
||||||
|
AC_ARG_WITH(sdl-config, [ --with-sdl-config=SDL_CONFIG use sdl-config specified],
|
||||||
|
[ SDL_CONFIG=$withval;
|
||||||
|
echo "using "$SDL_CONFIG" for sdl-config"; ],
|
||||||
|
[ if test -z "$SDL_CONFIG"; then
|
||||||
|
AC_PATH_PROG(SDL_CONFIG, "sdl-config", "", $PATH)
|
||||||
|
fi
|
||||||
|
])
|
||||||
|
if test -z "$SDL_CONFIG" ; then SDL_CONFIG="sdl-config"; fi
|
||||||
|
|
||||||
|
sdl_cflags=""
|
||||||
|
sdl_libs=""
|
||||||
|
|
||||||
|
have_sdl="no"
|
||||||
|
AC_CHECK_HEADER(Evas_Engine_SDL.h,
|
||||||
|
[ AC_DEFINE(HAVE_SOFTWARE_SDL, 1, [Evas Software SDL Support])
|
||||||
|
have_sdl="yes"
|
||||||
|
sdl_cflags=`$SDL_CONFIG --cflags`
|
||||||
|
sdl_libs=`$SDL_CONFIG --libs` ],
|
||||||
|
[ dummy=no ],
|
||||||
|
[ #include <Evas.h> ]
|
||||||
|
)
|
||||||
|
|
||||||
|
AC_SUBST(sdl_cflags)
|
||||||
|
AC_SUBST(sdl_libs)
|
||||||
|
|
||||||
|
CFLAGS=$PCFLAGS
|
||||||
|
|
||||||
AC_OUTPUT([
|
AC_OUTPUT([
|
||||||
Makefile
|
Makefile
|
||||||
src/Makefile
|
src/Makefile
|
||||||
|
@ -118,6 +146,7 @@ echo " Software Xlib 16 bits...: ${have_xlib_16}"
|
||||||
echo " X Render Xlib...........: ${have_xlib_render}"
|
echo " X Render Xlib...........: ${have_xlib_render}"
|
||||||
echo " Open GL Xlib............: ${have_xlib_opengl}"
|
echo " Open GL Xlib............: ${have_xlib_opengl}"
|
||||||
echo " Software DirectDraw.....: ${have_ddraw}"
|
echo " Software DirectDraw.....: ${have_ddraw}"
|
||||||
|
echo " Software SDL............: ${have_sdl}"
|
||||||
echo
|
echo
|
||||||
echo " Installation:"
|
echo " Installation:"
|
||||||
echo " prefix..................: ${prefix}"
|
echo " prefix..................: ${prefix}"
|
||||||
|
|
|
@ -2,7 +2,7 @@ MAINTAINERCLEANFILES = Makefile.in
|
||||||
INCLUDES = -I$(includedir) \
|
INCLUDES = -I$(includedir) \
|
||||||
-I$(top_srcdir) \
|
-I$(top_srcdir) \
|
||||||
-I$(top_srcdir)/src/bin \
|
-I$(top_srcdir)/src/bin \
|
||||||
@EVAS_CFLAGS@ @x_cflags@ \
|
@EVAS_CFLAGS@ @x_cflags@ @sdl_cflags@ \
|
||||||
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
|
-DPACKAGE_BIN_DIR=\"@PACKAGE_BIN_DIR@\" \
|
||||||
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
|
-DPACKAGE_LIB_DIR=\"@PACKAGE_LIB_DIR@\" \
|
||||||
-DPACKAGE_DATA_DIR=\"@PACKAGE_DATA_DIR@\"
|
-DPACKAGE_DATA_DIR=\"@PACKAGE_DATA_DIR@\"
|
||||||
|
@ -16,6 +16,7 @@ engine_gl_x11.c engine_gl_x11.h \
|
||||||
engine_xrender_x11.c engine_xrender_x11.h \
|
engine_xrender_x11.c engine_xrender_x11.h \
|
||||||
engine_software_16_x11.c engine_software_16_x11.h \
|
engine_software_16_x11.c engine_software_16_x11.h \
|
||||||
engine_software_ddraw.c engine_software_ddraw.h \
|
engine_software_ddraw.c engine_software_ddraw.h \
|
||||||
|
engine_software_sdl.c engine_software_sdl.h \
|
||||||
ui.c ui.h \
|
ui.c ui.h \
|
||||||
about.c about.h \
|
about.c about.h \
|
||||||
tests.h \
|
tests.h \
|
||||||
|
@ -58,4 +59,4 @@ image_blend_occlude2_very_many.c \
|
||||||
image_blend_occlude3_very_many.c \
|
image_blend_occlude3_very_many.c \
|
||||||
poly_blend.c
|
poly_blend.c
|
||||||
|
|
||||||
expedite_LDFLAGS = @EVAS_LIBS@ @x_libs@ @ddraw_libs@ -lm
|
expedite_LDFLAGS = @EVAS_LIBS@ @sdl_libs@ @x_libs@ @ddraw_libs@ -lm
|
||||||
|
|
|
@ -0,0 +1,174 @@
|
||||||
|
#include "main.h"
|
||||||
|
|
||||||
|
#ifndef HAVE_SOFTWARE_SDL
|
||||||
|
|
||||||
|
int
|
||||||
|
engine_software_sdl_args(int argc, char **argv)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "ERROR: No Software SDL Engine built\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
engine_software_sdl_loop(void)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
#else
|
||||||
|
#include <SDL/SDL.h>
|
||||||
|
#include <Evas_Engine_SDL.h>
|
||||||
|
|
||||||
|
int
|
||||||
|
engine_software_sdl_args(int argc, char **argv)
|
||||||
|
{
|
||||||
|
Evas_Engine_Info_SDL *einfo;
|
||||||
|
int i;
|
||||||
|
int ok = 0;
|
||||||
|
|
||||||
|
for (i = 1; i < argc; ++i)
|
||||||
|
{
|
||||||
|
if ((!strcmp(argv[i], "-e") && (i < (argc - 1))))
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
if (!strcmp(argv[i], "sdl")) ok = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!ok) return 0;
|
||||||
|
|
||||||
|
evas_output_method_set(evas, evas_render_method_lookup("software_sdl"));
|
||||||
|
|
||||||
|
einfo = (Evas_Engine_Info_SDL *) evas_engine_info_get(evas);
|
||||||
|
|
||||||
|
/* the following is specific to the engine */
|
||||||
|
einfo->info.fullscreen = 0;
|
||||||
|
einfo->info.noframe = 0;
|
||||||
|
|
||||||
|
evas_engine_info_set(evas, (Evas_Engine_Info *) einfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
engine_software_sdl_loop(void)
|
||||||
|
{
|
||||||
|
SDL_Event event;
|
||||||
|
|
||||||
|
while(SDL_PollEvent(&event))
|
||||||
|
{
|
||||||
|
switch(event.type)
|
||||||
|
{
|
||||||
|
case SDL_MOUSEMOTION:
|
||||||
|
evas_event_feed_mouse_move(evas, event.motion.x, event.motion.y, 0, NULL);
|
||||||
|
break;
|
||||||
|
case SDL_MOUSEBUTTONDOWN:
|
||||||
|
evas_event_feed_mouse_move(evas, event.button.x, event.button.y, 0, NULL);
|
||||||
|
evas_event_feed_mouse_down(evas, event.button.state, EVAS_BUTTON_NONE, 0, NULL);
|
||||||
|
break;
|
||||||
|
case SDL_MOUSEBUTTONUP:
|
||||||
|
evas_event_feed_mouse_move(evas, event.button.x, event.button.y, 0, NULL);
|
||||||
|
evas_event_feed_mouse_up(evas, event.button.state, EVAS_BUTTON_NONE, 0, NULL);
|
||||||
|
break;
|
||||||
|
case SDL_VIDEORESIZE:
|
||||||
|
evas_output_size_set(evas, event.resize.w, event.resize.w);
|
||||||
|
evas_output_size_get(evas, &win_w, &win_h);
|
||||||
|
break;
|
||||||
|
case SDL_VIDEOEXPOSE:
|
||||||
|
evas_output_size_get(evas, &win_w, &win_h);
|
||||||
|
evas_damage_rectangle_add(evas, 0, 0, win_w, win_h);
|
||||||
|
break;
|
||||||
|
case SDL_KEYDOWN:
|
||||||
|
switch (event.key.keysym.sym)
|
||||||
|
{
|
||||||
|
case SDLK_LSHIFT:
|
||||||
|
case SDLK_RSHIFT:
|
||||||
|
evas_key_modifier_on(evas, "Shift");
|
||||||
|
break;
|
||||||
|
case SDLK_RCTRL:
|
||||||
|
case SDLK_LCTRL:
|
||||||
|
evas_key_modifier_on(evas, "Control");
|
||||||
|
break;
|
||||||
|
case SDLK_MENU:
|
||||||
|
case SDLK_RALT:
|
||||||
|
case SDLK_LALT:
|
||||||
|
evas_key_modifier_on(evas, "Alt");
|
||||||
|
break;
|
||||||
|
case SDLK_LSUPER:
|
||||||
|
case SDLK_RSUPER:
|
||||||
|
evas_key_modifier_on(evas, "Super");
|
||||||
|
break;
|
||||||
|
case SDLK_CAPSLOCK:
|
||||||
|
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Caps_Lock"))
|
||||||
|
evas_key_lock_off(evas, "Caps_Lock");
|
||||||
|
else
|
||||||
|
evas_key_lock_on(evas, "Caps_Lock");
|
||||||
|
break;
|
||||||
|
case SDLK_NUMLOCK:
|
||||||
|
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Num_Lock"))
|
||||||
|
evas_key_lock_off(evas, "Num_Lock");
|
||||||
|
else
|
||||||
|
evas_key_lock_on(evas, "Num_Lock");
|
||||||
|
break;
|
||||||
|
case SDLK_SCROLLOCK:
|
||||||
|
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Scroll_Lock"))
|
||||||
|
evas_key_lock_off(evas, "Scroll_Lock");
|
||||||
|
else
|
||||||
|
evas_key_lock_on(evas, "Scroll_Lock");
|
||||||
|
break;
|
||||||
|
case SDLK_ESCAPE: evas_event_feed_key_down(evas, "Escape", "Escape", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_RETURN: evas_event_feed_key_down(evas, "Return", "Return", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_LEFT: evas_event_feed_key_down(evas, "Left", "Left", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_RIGHT: evas_event_feed_key_down(evas, "Right", "Right", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_q:
|
||||||
|
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Caps_Lock"))
|
||||||
|
evas_event_feed_key_down(evas, "Q", "Q", NULL, NULL, 0, NULL);
|
||||||
|
else
|
||||||
|
evas_event_feed_key_down(evas, "q", "q", NULL, NULL, 0, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SDL_KEYUP:
|
||||||
|
switch (event.key.keysym.sym)
|
||||||
|
{
|
||||||
|
case SDLK_LSHIFT:
|
||||||
|
case SDLK_RSHIFT:
|
||||||
|
evas_key_modifier_off(evas, "Shift");
|
||||||
|
break;
|
||||||
|
case SDLK_RCTRL:
|
||||||
|
case SDLK_LCTRL:
|
||||||
|
evas_key_modifier_off(evas, "Control");
|
||||||
|
break;
|
||||||
|
case SDLK_MENU:
|
||||||
|
case SDLK_RALT:
|
||||||
|
case SDLK_LALT:
|
||||||
|
evas_key_modifier_off(evas, "Alt");
|
||||||
|
break;
|
||||||
|
case SDLK_LSUPER:
|
||||||
|
case SDLK_RSUPER:
|
||||||
|
evas_key_modifier_off(evas, "Super");
|
||||||
|
break;
|
||||||
|
case SDLK_ESCAPE: evas_event_feed_key_up(evas, "Escape", "Escape", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_RETURN: evas_event_feed_key_up(evas, "Return", "Return", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_LEFT: evas_event_feed_key_up(evas, "Left", "Left", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_RIGHT: evas_event_feed_key_up(evas, "Right", "Right", NULL, NULL, 0, NULL); break;
|
||||||
|
case SDLK_q:
|
||||||
|
if (evas_key_lock_is_set(evas_key_lock_get(evas), "Caps_Lock"))
|
||||||
|
evas_event_feed_key_up(evas, "Q", "Q", NULL, NULL, 0, NULL);
|
||||||
|
else
|
||||||
|
evas_event_feed_key_up(evas, "q", "q", NULL, NULL, 0, NULL);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case SDL_QUIT:
|
||||||
|
case SDL_SYSWMEVENT:
|
||||||
|
case SDL_USEREVENT:
|
||||||
|
case SDL_ACTIVEEVENT:
|
||||||
|
case SDL_JOYAXISMOTION:
|
||||||
|
case SDL_JOYBALLMOTION:
|
||||||
|
case SDL_JOYHATMOTION:
|
||||||
|
case SDL_JOYBUTTONDOWN:
|
||||||
|
case SDL_JOYBUTTONUP:
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
|
@ -0,0 +1,7 @@
|
||||||
|
#ifndef ENGINE_SOFTWARE_SDL_H
|
||||||
|
#define ENGINE_SOFTWARE_SDL_H
|
||||||
|
|
||||||
|
int engine_software_sdl_args(int argc, char **argv);
|
||||||
|
void engine_software_sdl_loop(void);
|
||||||
|
|
||||||
|
#endif
|
|
@ -1090,7 +1090,6 @@ static void
|
||||||
_engine_args(int argc, char **argv)
|
_engine_args(int argc, char **argv)
|
||||||
{
|
{
|
||||||
/* FIXME: parse args for geometry, engine etc. */
|
/* FIXME: parse args for geometry, engine etc. */
|
||||||
|
|
||||||
if (engine_software_x11_args(argc, argv))
|
if (engine_software_x11_args(argc, argv))
|
||||||
loop_func = engine_software_x11_loop;
|
loop_func = engine_software_x11_loop;
|
||||||
if (engine_gl_x11_args(argc, argv))
|
if (engine_gl_x11_args(argc, argv))
|
||||||
|
@ -1101,6 +1100,8 @@ _engine_args(int argc, char **argv)
|
||||||
loop_func = engine_software_16_x11_loop;
|
loop_func = engine_software_16_x11_loop;
|
||||||
if (engine_software_ddraw_args(argc, argv))
|
if (engine_software_ddraw_args(argc, argv))
|
||||||
loop_func = engine_software_ddraw_loop;
|
loop_func = engine_software_ddraw_loop;
|
||||||
|
if (engine_software_sdl_args(argc, argv))
|
||||||
|
loop_func = engine_software_sdl_loop;
|
||||||
if (!loop_func)
|
if (!loop_func)
|
||||||
{
|
{
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
|
@ -1110,7 +1111,7 @@ _engine_args(int argc, char **argv)
|
||||||
" -e ENGINE\n"
|
" -e ENGINE\n"
|
||||||
"\n"
|
"\n"
|
||||||
"Where ENGINE can be one of:\n"
|
"Where ENGINE can be one of:\n"
|
||||||
" x11 xr gl x11-16 ddraw\n"
|
" x11 xr gl x11-16 ddraw sdl\n"
|
||||||
);
|
);
|
||||||
exit(-1);
|
exit(-1);
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,6 +15,7 @@
|
||||||
#include "engine_xrender_x11.h"
|
#include "engine_xrender_x11.h"
|
||||||
#include "engine_software_16_x11.h"
|
#include "engine_software_16_x11.h"
|
||||||
#include "engine_software_ddraw.h"
|
#include "engine_software_ddraw.h"
|
||||||
|
#include "engine_software_sdl.h"
|
||||||
#include "ui.h"
|
#include "ui.h"
|
||||||
#include "about.h"
|
#include "about.h"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue