Previous 199869 Revisions Next

r34913 Saturday 7th February, 2015 at 20:41:47 UTC by Justin Kerk
Emscripten target now uses SDL2.  [Justin Kerk]
[src/osd/sdl]input.c osdsdl.h sdl.mak sdlmain.c

trunk/src/osd/sdl/input.c
r243424r243425
4141#undef DELETE
4242#endif
4343
44// Emscripten requires the SDL2 API for keyboard inputs, but nothing else
45#ifdef SDLMAME_EMSCRIPTEN
46#undef SDLMAME_SDL2
47#define SDLMAME_SDL2 1
48#endif
49
5044//============================================================
5145//  PARAMETERS
5246//============================================================
r243424r243425
498492};
499493#endif
500494
501#if defined(SDLMAME_EMSCRIPTEN)
502#undef GET_WINDOW
503#undef GET_FOCUS_WINDOW
504#define GET_WINDOW(ev) sdl_window_list
505#define GET_FOCUS_WINDOW(ev) sdl_window_list
506#endif
507
508495struct key_lookup_table
509496{
510497   int code;
r243424r243425
731718   {
732719      char *joy_name;
733720
734#if (SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN))
721#if (SDLMAME_SDL2)
735722      joy = SDL_JoystickOpen(physical_stick);
736723      joy_name = remove_spaces(machine, SDL_JoystickName(joy));
737724      SDL_JoystickClose(joy);
r243424r243425
15381525//  sdlinput_poll
15391526//============================================================
15401527
1541#if (SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN))
1528#if (SDLMAME_SDL2)
15421529INLINE sdl_window_info * window_from_id(Uint32 windowID)
15431530{
15441531   sdl_window_info *w;
r243424r243425
19311918         devinfo->joystick.balls[event.jball.ball * 2] = event.jball.xrel * INPUT_RELATIVE_PER_PIXEL;
19321919         devinfo->joystick.balls[event.jball.ball * 2 + 1] = event.jball.yrel * INPUT_RELATIVE_PER_PIXEL;
19331920         break;
1934#if (!SDLMAME_SDL2) || defined(SDLMAME_EMSCRIPTEN)
1921#if (!SDLMAME_SDL2)
19351922      case SDL_APPMOUSEFOCUS:
19361923         app_has_mouse_focus = event.active.gain;
19371924         if (!event.active.gain)
r243424r243425
20172004#endif
20182005      }
20192006   }
2020#if (SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN))
2007#if (SDLMAME_SDL2)
20212008   resize_all_windows();
20222009#endif
20232010}
trunk/src/osd/sdl/osdsdl.h
r243424r243425
1414//============================================================
1515
1616// Process events in worker thread
17#if defined(SDLMAME_WIN32) || (SDLMAME_SDL2)
17#if defined(SDLMAME_WIN32) || ((SDLMAME_SDL2) && (!defined(SDLMAME_EMSCRIPTEN)))
1818#define SDLMAME_EVENTS_IN_WORKER_THREAD (1)
1919#else
2020#define SDLMAME_EVENTS_IN_WORKER_THREAD (0)
trunk/src/osd/sdl/sdl.mak
r243424r243425
9292# add a define identifying the target osd
9393DEFS += -DOSD_SDL
9494
95# default to SDL2 for non-OS/2, non-Emscripten builds now
95# default to SDL2 for non-OS/2 builds now
9696ifndef SDL_LIBVER
9797ifneq ($(TARGETOS),os2)
98ifneq ($(TARGETOS),emscripten)
9998SDL_LIBVER = sdl2
10099else
101100SDL_LIBVER = sdl
102101endif
103else
104SDL_LIBVER = sdl
105102endif
106endif
107103
108104ifndef NO_USE_QTDEBUG
109105OBJDIRS += $(OSDOBJ)/modules/debugger/qt
r243424r243425
579575NO_DEBUGGER = 1
580576endif
581577
582# Don't pull in the system includes if we are compiling for Emscripten, which has its own headers
583ifneq ($(TARGETOS),emscripten)
584578INCPATH += `$(SDL_CONFIG) --cflags  | sed -e 's:/SDL[2]*::' -e 's:\(-D[^ ]*\)::g'`
585endif
586579CCOMFLAGS += `$(SDL_CONFIG) --cflags  | sed -e 's:/SDL[2]*::' -e 's:\(-I[^ ]*\)::g'`
587580
588581BASELIBS += `$(SDL_CONFIG) --libs`
r243424r243425
663656OSDCOREOBJS += $(SDLMAIN)
664657
665658ifdef SDL_INSTALL_ROOT
666ifneq ($(TARGETOS),emscripten)
667659INCPATH += -I$(SDL_INSTALL_ROOT)/include
668endif
669660LIBS += -L$(SDL_INSTALL_ROOT)/lib
670661#-Wl,-rpath,$(SDL_INSTALL_ROOT)/lib
671662endif
trunk/src/osd/sdl/sdlmain.c
r243424r243425
3838#include <os2.h>
3939#endif
4040
41#ifdef SDLMAME_EMSCRIPTEN
42#include <emscripten.h>
43#endif
44
4541#include "sdlinc.h"
4642
4743// MAME headers
r243424r243425
295291   MorphToPM();
296292   #endif
297293
298   #ifdef SDLMAME_EMSCRIPTEN
299   EM_ASM("SDL.defaults.copyOnLock = false; SDL.defaults.discardOnLock = true;");
300   #endif
301
302294#if defined(SDLMAME_X11) && (SDL_MAJOR_VERSION == 1) && (SDL_MINOR_VERSION == 2)
303295   if (SDL_Linked_Version()->patch < 10)
304296   /* workaround for SDL choosing a 32-bit ARGB visual */
r243424r243425
619611   if (!SDLMAME_INIT_IN_WORKER_THREAD)
620612   {
621613#if (SDLMAME_SDL2)
614#ifdef SDLMAME_EMSCRIPTEN
615      // timer brings in threads which are not supported in Emscripten
616      if (SDL_InitSubSystem(SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
617#else
622618      if (SDL_InitSubSystem(SDL_INIT_TIMER| SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
619#endif
623620#else
624621      if (SDL_Init(SDL_INIT_TIMER|SDL_INIT_VIDEO| SDL_INIT_JOYSTICK|SDL_INIT_NOPARACHUTE)) {
625622#endif
r243424r243425
655652   }
656653
657654#if (SDLMAME_SDL2)
655#ifdef SDLMAME_EMSCRIPTEN
656   SDL_EventState(SDL_TEXTINPUT, SDL_FALSE);
657#else
658658   SDL_EventState(SDL_TEXTINPUT, SDL_TRUE);
659#endif
659660#else
660661   SDL_EnableUNICODE(SDL_TRUE);
661662#endif


Previous 199869 Revisions Next


© 1997-2024 The MAME Team