Continued preparing Bochs for SDL2 support

- added new symbol BX_WITH_SDL2 and prepared build system
- TODO #1: add new option --with-sdl2 to configure script
- TODO #2: add new file sdl2.cc (porting seems hard to do - writing from scratch
  might be better)
This commit is contained in:
Volker Ruppert 2014-06-23 19:37:58 +00:00
parent c188a6ba5d
commit 3c0ad43092
8 changed files with 23 additions and 7 deletions

View File

@ -97,6 +97,7 @@ X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
GUI_LINK_OPTS_X = $(X_LIBS) $(X_PRE_LIBS)
GUI_LINK_OPTS_SDL = @GUI_LINK_OPTS_SDL@
GUI_LINK_OPTS_SDL2 = @GUI_LINK_OPTS_SDL2@
GUI_LINK_OPTS_SVGA = -lvga -lvgagl
GUI_LINK_OPTS_RFB = @RFB_LIBS@
GUI_LINK_OPTS_VNCSRV = @GUI_LINK_OPTS_VNCSRV@

View File

@ -890,6 +890,9 @@ void bx_init_options()
#if BX_WITH_SDL
"sdl",
#endif
#if BX_WITH_SDL2
"sdl2",
#endif
#if BX_WITH_SVGA
"svga",
#endif

View File

@ -287,6 +287,7 @@
#define BX_WITH_VNCSRV 0
#define BX_WITH_AMIGAOS 0
#define BX_WITH_SDL 0
#define BX_WITH_SDL2 0
#define BX_WITH_SVGA 0
#define BX_WITH_WX 0

View File

@ -53,6 +53,7 @@ BX_INCDIRS = -I.. -I$(srcdir)/.. -I../iodev -I$(srcdir)/../iodev -I../@INSTRUMEN
GUI_OBJS_X11 = x.o
GUI_OBJS_SDL = sdl.o
GUI_OBJS_SDL2 = sdl2.o
GUI_OBJS_SVGA = svga.o
GUI_OBJS_WIN32 = win32.o
GUI_OBJS_MACOS = macintosh.o
@ -71,6 +72,7 @@ X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
GUI_LINK_OPTS_X = $(X_LIBS) $(X_PRE_LIBS)
GUI_LINK_OPTS_SDL = @GUI_LINK_OPTS_SDL@
GUI_LINK_OPTS_SDL2 = @GUI_LINK_OPTS_SDL2@
GUI_LINK_OPTS_SVGA = -lvga -lvgagl
GUI_LINK_OPTS_RFB = @RFB_LIBS@
GUI_LINK_OPTS_RFB_VCPP = user32.lib @RFB_LIBS@
@ -122,6 +124,9 @@ libbx_x.la: x.lo
libbx_sdl.la: sdl.lo
$(LIBTOOL) --mode=link --tag CXX $(CXX) -module $< -o $@ -rpath $(PLUGIN_PATH) $(GUI_LINK_OPTS_SDL)
libbx_sdl2.la: sdl2.lo
$(LIBTOOL) --mode=link --tag CXX $(CXX) -module $< -o $@ -rpath $(PLUGIN_PATH) $(GUI_LINK_OPTS_SDL2)
libbx_svga.la: svga.lo
$(LIBTOOL) --mode=link --tag CXX $(CXX) -module $< -o $@ -rpath $(PLUGIN_PATH) $(GUI_LINK_OPTS_SVGA)
@ -163,6 +168,9 @@ bx_wx.dll: $(GUI_OBJS_WX) $(GUI_OBJS_WX_SUPPORT)
bx_sdl.dll: $(GUI_OBJS_SDL)
$(CXX) $(CXXFLAGS) -shared -o bx_sdl.dll $(GUI_OBJS_SDL) $(WIN32_DLL_IMPORT_LIBRARY) $(GUI_LINK_OPTS_SDL)
bx_sdl2.dll: $(GUI_OBJS_SDL2)
$(CXX) $(CXXFLAGS) -shared -o bx_sdl2.dll $(GUI_OBJS_SDL2) $(WIN32_DLL_IMPORT_LIBRARY) $(GUI_LINK_OPTS_SDL2)
bx_vncsrv.dll: $(GUI_OBJS_VNCSRV)
$(CXX) $(CXXFLAGS) -shared -o bx_vncsrv.dll $(GUI_OBJS_VNCSRV) $(WIN32_DLL_IMPORT_LIBRARY) $(GUI_LINK_OPTS_VNCSRV)

View File

@ -24,13 +24,11 @@
#include "soundmod.h"
#include "soundsdl.h"
#if BX_WITH_SDL && BX_SUPPORT_SOUNDLOW
#if (BX_WITH_SDL || BX_WITH_SDL2) && BX_SUPPORT_SOUNDLOW
#define LOG_THIS
#if BX_WITH_SDL
#include <SDL.h>
#endif
#define BX_SOUND_SDL_BUFSIZE BX_SOUNDLOW_WAVEPACKETSIZE * 8
@ -174,4 +172,4 @@ int bx_sound_sdl_c::closewaveoutput()
return BX_SOUNDLOW_OK;
}
#endif // BX_WITH_SDL
#endif // BX_WITH_SDL || BX_WITH_SDL2

View File

@ -21,7 +21,7 @@
// Lowlevel sound output support for SDL written by Volker Ruppert
#if BX_WITH_SDL
#if BX_WITH_SDL || BX_WITH_SDL2
#include "bochs.h"
@ -43,4 +43,4 @@ private:
bx_bool WaveOpen;
};
#endif // BX_WITH_SDL
#endif // BX_WITH_SDL || BX_WITH_SDL2

View File

@ -32,7 +32,7 @@
#include <locale.h>
#endif
#if BX_WITH_SDL
#if BX_WITH_SDL || BX_WITH_SDL2
// since SDL redefines main() to SDL_main(), we must include SDL.h so that the
// C language prototype is found. Otherwise SDL_main() will get its name
// mangled and not match what the SDL library is expecting.
@ -898,6 +898,10 @@ bx_bool load_and_init_display_lib(void)
if (!strcmp(gui_name, "sdl"))
PLUG_load_plugin (sdl, PLUGTYPE_OPTIONAL);
#endif
#if BX_WITH_SDL2
if (!strcmp(gui_name, "sdl2"))
PLUG_load_plugin (sdl2, PLUGTYPE_OPTIONAL);
#endif
#if BX_WITH_SVGA
if (!strcmp(gui_name, "svga"))
PLUG_load_plugin (svga, PLUGTYPE_OPTIONAL);

View File

@ -423,6 +423,7 @@ DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(macintosh)
DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(nogui)
DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(rfb)
DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(sdl)
DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(sdl2)
DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(svga)
DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(term)
DECLARE_PLUGIN_INIT_FINI_FOR_MODULE(vncsrv)