mirror of
https://github.com/holub/mame
synced 2025-04-24 09:20:02 +03:00
Emscripten target now uses SDL2. [Justin Kerk]
This commit is contained in:
parent
3cbfac80cb
commit
2756a23b1a
@ -41,12 +41,6 @@
|
||||
#undef DELETE
|
||||
#endif
|
||||
|
||||
// Emscripten requires the SDL2 API for keyboard inputs, but nothing else
|
||||
#ifdef SDLMAME_EMSCRIPTEN
|
||||
#undef SDLMAME_SDL2
|
||||
#define SDLMAME_SDL2 1
|
||||
#endif
|
||||
|
||||
//============================================================
|
||||
// PARAMETERS
|
||||
//============================================================
|
||||
@ -498,13 +492,6 @@ static kt_table sdl_key_trans_table[] =
|
||||
};
|
||||
#endif
|
||||
|
||||
#if defined(SDLMAME_EMSCRIPTEN)
|
||||
#undef GET_WINDOW
|
||||
#undef GET_FOCUS_WINDOW
|
||||
#define GET_WINDOW(ev) sdl_window_list
|
||||
#define GET_FOCUS_WINDOW(ev) sdl_window_list
|
||||
#endif
|
||||
|
||||
struct key_lookup_table
|
||||
{
|
||||
int code;
|
||||
@ -731,7 +718,7 @@ static void sdlinput_register_joysticks(running_machine &machine)
|
||||
{
|
||||
char *joy_name;
|
||||
|
||||
#if (SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN))
|
||||
#if (SDLMAME_SDL2)
|
||||
joy = SDL_JoystickOpen(physical_stick);
|
||||
joy_name = remove_spaces(machine, SDL_JoystickName(joy));
|
||||
SDL_JoystickClose(joy);
|
||||
@ -1538,7 +1525,7 @@ INT32 normalize_absolute_axis(INT32 raw, INT32 rawmin, INT32 rawmax)
|
||||
// sdlinput_poll
|
||||
//============================================================
|
||||
|
||||
#if (SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN))
|
||||
#if (SDLMAME_SDL2)
|
||||
INLINE sdl_window_info * window_from_id(Uint32 windowID)
|
||||
{
|
||||
sdl_window_info *w;
|
||||
@ -1931,7 +1918,7 @@ void sdlinput_poll(running_machine &machine)
|
||||
devinfo->joystick.balls[event.jball.ball * 2] = event.jball.xrel * INPUT_RELATIVE_PER_PIXEL;
|
||||
devinfo->joystick.balls[event.jball.ball * 2 + 1] = event.jball.yrel * INPUT_RELATIVE_PER_PIXEL;
|
||||
break;
|
||||
#if (!SDLMAME_SDL2) || defined(SDLMAME_EMSCRIPTEN)
|
||||
#if (!SDLMAME_SDL2)
|
||||
case SDL_APPMOUSEFOCUS:
|
||||
app_has_mouse_focus = event.active.gain;
|
||||
if (!event.active.gain)
|
||||
@ -2017,7 +2004,7 @@ void sdlinput_poll(running_machine &machine)
|
||||
#endif
|
||||
}
|
||||
}
|
||||
#if (SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN))
|
||||
#if (SDLMAME_SDL2)
|
||||
resize_all_windows();
|
||||
#endif
|
||||
}
|
||||
|
@ -14,7 +14,7 @@
|
||||
//============================================================
|
||||
|
||||
// Process events in worker thread
|
||||
#if defined(SDLMAME_WIN32) || (SDLMAME_SDL2)
|
||||
#if defined(SDLMAME_WIN32) || ((SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN)))
|
||||
#define SDLMAME_EVENTS_IN_WORKER_THREAD (1)
|
||||
#else
|
||||
#define SDLMAME_EVENTS_IN_WORKER_THREAD (0)
|
||||
|
@ -92,17 +92,13 @@ OSDOBJ = $(OBJ)/osd
|
||||
# add a define identifying the target osd
|
||||
DEFS += -DOSD_SDL
|
||||
|
||||
# default to SDL2 for non-OS/2, non-Emscripten builds now
|
||||
# default to SDL2 for non-OS/2 builds now
|
||||
ifndef SDL_LIBVER
|
||||
ifneq ($(TARGETOS),os2)
|
||||
ifneq ($(TARGETOS),emscripten)
|
||||
SDL_LIBVER = sdl2
|
||||
else
|
||||
SDL_LIBVER = sdl
|
||||
endif
|
||||
else
|
||||
SDL_LIBVER = sdl
|
||||
endif
|
||||
endif
|
||||
|
||||
ifndef NO_USE_QTDEBUG
|
||||
@ -579,10 +575,7 @@ ifeq ($(NO_X11),1)
|
||||
NO_DEBUGGER = 1
|
||||
endif
|
||||
|
||||
# Don't pull in the system includes if we are compiling for Emscripten, which has its own headers
|
||||
ifneq ($(TARGETOS),emscripten)
|
||||
INCPATH += `$(SDL_CONFIG) --cflags | sed -e 's:/SDL[2]*::' -e 's:\(-D[^ ]*\)::g'`
|
||||
endif
|
||||
CCOMFLAGS += `$(SDL_CONFIG) --cflags | sed -e 's:/SDL[2]*::' -e 's:\(-I[^ ]*\)::g'`
|
||||
|
||||
BASELIBS += `$(SDL_CONFIG) --libs`
|
||||
@ -663,9 +656,7 @@ ifeq ($(BASE_TARGETOS),win32)
|
||||
OSDCOREOBJS += $(SDLMAIN)
|
||||
|
||||
ifdef SDL_INSTALL_ROOT
|
||||
ifneq ($(TARGETOS),emscripten)
|
||||
INCPATH += -I$(SDL_INSTALL_ROOT)/include
|
||||
endif
|
||||
LIBS += -L$(SDL_INSTALL_ROOT)/lib
|
||||
#-Wl,-rpath,$(SDL_INSTALL_ROOT)/lib
|
||||
endif
|
||||
|
@ -38,10 +38,6 @@
|
||||
#include <os2.h>
|
||||
#endif
|
||||
|
||||
#ifdef SDLMAME_EMSCRIPTEN
|
||||
#include <emscripten.h>
|
||||
#endif
|
||||
|
||||
#include "sdlinc.h"
|
||||
|
||||
// MAME headers
|
||||
@ -295,10 +291,6 @@ int main(int argc, char *argv[])
|
||||
MorphToPM();
|
||||
#endif
|
||||
|
||||
#ifdef SDLMAME_EMSCRIPTEN
|
||||
EM_ASM("SDL.defaults.copyOnLock = false; SDL.defaults.discardOnLock = true;");
|
||||
#endif
|
||||
|
||||
#if defined(SDLMAME_X11) && (SDL_MAJOR_VERSION == 1) && (SDL_MINOR_VERSION == 2)
|
||||
if (SDL_Linked_Version()->patch < 10)
|
||||
/* workaround for SDL choosing a 32-bit ARGB visual */
|
||||
@ -619,7 +611,12 @@ void sdl_osd_interface::init(running_machine &machine)
|
||||
if (!SDLMAME_INIT_IN_WORKER_THREAD)
|
||||
{
|
||||
#if (SDLMAME_SDL2)
|
||||
#ifdef SDLMAME_EMSCRIPTEN
|
||||
// timer brings in threads which are not supported in Emscripten
|
||||
if (SDL_InitSubSystem(SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
|
||||
#else
|
||||
if (SDL_InitSubSystem(SDL_INIT_TIMER| SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
|
||||
#endif
|
||||
#else
|
||||
if (SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
|
||||
#endif
|
||||
@ -655,7 +652,11 @@ void sdl_osd_interface::init(running_machine &machine)
|
||||
}
|
||||
|
||||
#if (SDLMAME_SDL2)
|
||||
#ifdef SDLMAME_EMSCRIPTEN
|
||||
SDL_EventState(SDL_TEXTINPUT, SDL_FALSE);
|
||||
#else
|
||||
SDL_EventState(SDL_TEXTINPUT, SDL_TRUE);
|
||||
#endif
|
||||
#else
|
||||
SDL_EnableUNICODE(SDL_TRUE);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user