mirror of
				https://github.com/zenorogue/hyperrogue.git
				synced 2025-10-31 05:52:59 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			763 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			763 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| // Hyperbolic Rogue -- set compiler flags, and include all the required system headers
 | |
| // Copyright (C) 2011-2018 Zeno Rogue, see 'hyper.cpp' for details
 | |
| 
 | |
| /** \file sysconfig.h
 | |
|  *  \brief set compiler flags, and include all the required system headers
 | |
|  */
 | |
| 
 | |
| #ifdef MAC
 | |
| #define ISMAC 1
 | |
| #endif
 | |
| 
 | |
| #ifdef LINUX
 | |
| #define ISLINUX 1
 | |
| #endif
 | |
| 
 | |
| #ifdef WINDOWS
 | |
| #define ISWINDOWS 1
 | |
| #define _WIN32_WINNT 0x0501
 | |
| #endif
 | |
| 
 | |
| // OS settings
 | |
| 
 | |
| #ifndef ISMAC
 | |
| #define ISMAC 0
 | |
| #endif
 | |
| 
 | |
| #ifndef ISLINUX
 | |
| #define ISLINUX 0
 | |
| #endif
 | |
| 
 | |
| #ifndef ISWINDOWS
 | |
| #define ISWINDOWS 0
 | |
| #endif
 | |
| 
 | |
| #ifndef ISPANDORA
 | |
| #define ISPANDORA 0
 | |
| #endif
 | |
| 
 | |
| #ifndef ISIOS
 | |
| #define ISIOS 0
 | |
| #endif
 | |
| 
 | |
| #ifndef ISANDROID
 | |
| #define ISANDROID 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_EXTFONT
 | |
| #define CAP_EXTFONT (ISIOS || ISANDROID || ISFAKEMOBILE)
 | |
| #endif
 | |
| 
 | |
| #ifndef ISSTEAM
 | |
| #define ISSTEAM 0
 | |
| #endif
 | |
| 
 | |
| #ifndef ISWEB
 | |
| #define ISWEB 0
 | |
| #endif
 | |
| 
 | |
| #ifndef ISFAKEMOBILE
 | |
| #define ISFAKEMOBILE 0
 | |
| #endif
 | |
| 
 | |
| #define ISMOBILE (ISIOS || ISANDROID || ISFAKEMOBILE)
 | |
| #define ISMOBWEB (ISMOBILE || ISWEB)
 | |
| 
 | |
| #ifndef ISMINI
 | |
| #define ISMINI 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_XGD
 | |
| #define CAP_XGD (ISANDROID || ISFAKEMOBILE)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_THREAD
 | |
| #define CAP_THREAD (!ISMOBILE && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ZLIB
 | |
| #define CAP_ZLIB 1
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_GMP
 | |
| #define CAP_GMP 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_URL
 | |
| #define CAP_URL 1
 | |
| #endif
 | |
| 
 | |
| #define CAP_FRAMELIMIT (!ISMOBWEB)
 | |
| 
 | |
| #if ISMOBILE
 | |
| #define EXTERNALFONT
 | |
| #endif
 | |
| 
 | |
| #ifndef NOLICENSE
 | |
| #define NOLICENSE ISSTEAM
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_VERTEXBUFFER
 | |
| #define CAP_VERTEXBUFFER (ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SHADER
 | |
| #define CAP_SHADER CAP_GL
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_NOSHADER
 | |
| #define CAP_NOSHADER (!ISMOBILE && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ANIMATIONS
 | |
| #define CAP_ANIMATIONS (!ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_FILES
 | |
| #define CAP_FILES (!ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_INV
 | |
| #define CAP_INV (!ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ANDROIDSHARE
 | |
| #define CAP_ANDROIDSHARE (ISANDROID)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SDL
 | |
| #define CAP_SDL (!ISMOBILE)
 | |
| #endif
 | |
| 
 | |
| #ifndef SDLVER
 | |
| #ifdef CAP_SDL
 | |
| #define SDLVER 1
 | |
| #else
 | |
| #define SDLVER 0
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_TIMEOFDAY
 | |
| #define CAP_TIMEOFDAY (!CAP_SDL)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_COMPASS
 | |
| #define CAP_COMPASS ISMOBILE
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SDLGFX
 | |
| #define CAP_SDLGFX (CAP_SDL && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_GL
 | |
| #define CAP_GL (ISMOBILE || CAP_SDL)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_AUDIO
 | |
| #define CAP_AUDIO ((ISMOBILE || CAP_SDL) && !ISWEB && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #define CAP_GLORNOT (CAP_GL && !ISWEB && !ISIOS) 
 | |
| 
 | |
| #ifndef CAP_DAILY
 | |
| #if ISSTEAM
 | |
| #define CAP_DAILY 1
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_DAILY
 | |
| #define CAP_DAILY 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_CERTIFY
 | |
| #define CAP_CERTIFY 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_RUG
 | |
| #define CAP_RUG (!ISMINI && CAP_GL)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SURFACE
 | |
| #define CAP_SURFACE CAP_RUG
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_KUEN_MAP
 | |
| #define CAP_KUEN_MAP 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_EDIT
 | |
| #define CAP_EDIT (CAP_FILES && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SHOT
 | |
| #define CAP_SHOT (CAP_FILES && (CAP_SVG || CAP_PNG))
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ODS
 | |
| #define CAP_ODS 1
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_VIDEO
 | |
| #define CAP_VIDEO (CAP_SHOT && ISLINUX && CAP_SDL)
 | |
| #endif
 | |
| 
 | |
| #ifndef MAXMDIM
 | |
| #define MAXMDIM 4
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_MDIM_FIXED
 | |
| #define CAP_MDIM_FIXED 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_TEXTURE
 | |
| #define CAP_TEXTURE (CAP_GL && (CAP_PNG || CAP_SDL_IMG) && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_MODEL
 | |
| #define CAP_MODEL (!ISMOBWEB && !ISMINI && CAP_SDL)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SAVE
 | |
| #define CAP_SAVE (CAP_FILES && !ISWEB && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_CONFIG
 | |
| #define CAP_CONFIG (CAP_FILES && !ISWEB && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_TRANS
 | |
| #define CAP_TRANS (!ISWEB && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_TOUR
 | |
| #define CAP_TOUR (!ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ROGUEVIZ
 | |
| #define CAP_ROGUEVIZ 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_PROFILING
 | |
| #define CAP_PROFILING 0
 | |
| #endif
 | |
| 
 | |
| #define PSEUDOKEY_WHEELDOWN 2501
 | |
| #define PSEUDOKEY_WHEELUP 2502
 | |
| #define PSEUDOKEY_RELEASE 2503
 | |
| #define PSEUDOKEY_EXIT 2504
 | |
| #define PSEUDOKEY_MENU 2505
 | |
| #define PSEUDOKEY_NOHINT 2506
 | |
| #define PSEUDOKEY_LIST_SLIDER 2507
 | |
| #define PSEUDOKEY_SELECT 2508
 | |
| 
 | |
| #ifndef CAP_PNG
 | |
| #define CAP_PNG (!ISMOBWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ORIENTATION
 | |
| #define CAP_ORIENTATION (ISMOBILE || ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_MOUSEGRAB
 | |
| #define CAP_MOUSEGRAB (!ISMOBILE)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_COMMANDLINE
 | |
| #define CAP_COMMANDLINE (!ISMOBILE)
 | |
| #endif
 | |
| 
 | |
| #define CAP_SDLAUDIO (CAP_SDL && CAP_AUDIO)
 | |
| 
 | |
| #ifndef CAP_SVG
 | |
| #define CAP_SVG (CAP_FILES && !ISMOBILE && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_WRL
 | |
| #define CAP_WRL (CAP_FILES && !ISMOBILE && !ISMINI && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_POLY
 | |
| #define CAP_POLY (CAP_SDLGFX || CAP_GL || CAP_SVG)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SHAPES
 | |
| #define CAP_SHAPES 1
 | |
| #endif
 | |
| 
 | |
| #define CAP_QUEUE CAP_POLY
 | |
| #define CAP_CURVE CAP_POLY
 | |
| 
 | |
| #ifndef CAP_SDLJOY
 | |
| #define CAP_SDLJOY (CAP_SDL && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SDL_IMG
 | |
| #define CAP_SDL_IMG 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SDLTTF
 | |
| #define CAP_SDLTTF (CAP_SDL && !ISMOBILE && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #define CAP_GLFONT (CAP_GL && !ISMOBILE)
 | |
| 
 | |
| #ifndef CAP_TABFONT
 | |
| #define CAP_TABFONT (ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_CREATEFONT
 | |
| #define CAP_CREATEFONT 0
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_FIXEDSIZE
 | |
| #define CAP_FIXEDSIZE (CAP_CREATEFONT || CAP_TABFONT ? 36 : 0)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SHMUP
 | |
| #define CAP_SHMUP (!ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_BITFIELD
 | |
| #define CAP_BITFIELD (!ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ACHIEVE
 | |
| #define CAP_ACHIEVE ISSTEAM
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SHMUP_GOOD
 | |
| #define CAP_SHMUP_GOOD (!ISMOBWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_COMPLEX2
 | |
| #define CAP_COMPLEX2 (!ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_RACING
 | |
| #define CAP_RACING (!ISMOBWEB && !ISMINI)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_VR
 | |
| #define CAP_VR (ISSTEAM && !ISMAC)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_LEGACY
 | |
| #define CAP_LEGACY 0
 | |
| #endif
 | |
| 
 | |
| #if ISMOBILE
 | |
| #define EXTRALICENSE "\n\nHyperRogue soundtrack under the Creative Commons BY-SA 3.0 license, http://creativecommons.org/licenses/by-sa/3.0/\nCrossroads, Graveyard, Land of Eternal Motion, Hall of Mirrors, Hell, R'Lyeh, Living Caves, Jungle, Desert, Icy Lands by Shawn Parrotte (http://www.shawnparrotte.com)\nCaribbean, Ivory Tower, Ocean, Palace by Will Savino (http://www.willsavino.net/)\n\n\n";
 | |
| #undef XEXTRALICENSE
 | |
| #endif
 | |
| 
 | |
| #if ISWINDOWS
 | |
| #define hyper fake_hyper // avoid "hyper" typedef in <_mingw.h>
 | |
| #define WIN32_LEAN_AND_MEAN // avoid "rad1" macro in <windows.h>
 | |
| #define NOMINMAX // avoid "min" and "max" macros in <windows.h>
 | |
| #include <windows.h>
 | |
| #include <shellapi.h>
 | |
| #endif
 | |
| 
 | |
| #include <stdio.h>
 | |
| 
 | |
| #if CAP_SDL
 | |
| #if SDLVER == 3
 | |
| #include <SDL3/SDL.h>
 | |
| #endif
 | |
| #if SDLVER == 2
 | |
| #include <SDL2/SDL.h>
 | |
| #endif
 | |
| #if SDLVER == 1
 | |
| #include <SDL/SDL.h>
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if SDLVER >= 3
 | |
| #define SDL23(x,y) y
 | |
| #else
 | |
| #define SDL23(x,y) x
 | |
| #endif
 | |
| 
 | |
| #if SDLVER >= 2
 | |
| #define SDL12(x,y) y
 | |
| #else
 | |
| #define SDL12(x,y) x
 | |
| #endif
 | |
| 
 | |
| #define SDL123(x,y,z) SDL12(x,SDL23(y,z))
 | |
| 
 | |
| #define SDL12_GetKeyState SDL12(SDL_GetKeyState, SDL_GetKeyboardState)
 | |
| #define sdl_keystate_type SDL23(Uint8, bool)
 | |
| #define KEYSTATES SDL123(SDLK_LAST, SDL_NUM_SCANCODES, SDL_SCANCODE_COUNT)
 | |
| 
 | |
| #if !ISMAC
 | |
| #undef main
 | |
| #endif
 | |
| 
 | |
| #if CAP_SDLAUDIO
 | |
| #if SDLVER == 1
 | |
| #include <SDL/SDL_mixer.h>
 | |
| #endif
 | |
| #if SDLVER == 2
 | |
| #include <SDL2/SDL_mixer.h>
 | |
| #endif
 | |
| #if SDLVER == 3
 | |
| #include <SDL3_mixer/SDL_mixer.h>
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if CAP_SDLTTF
 | |
| #if SDLVER == 1
 | |
| #include <SDL/SDL_ttf.h>
 | |
| #endif
 | |
| #if SDLVER == 2
 | |
| #include <SDL2/SDL_ttf.h>
 | |
| #endif
 | |
| #if SDLVER == 3
 | |
| #include <SDL3_ttf/SDL_ttf.h>
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if CAP_SDLGFX
 | |
| #if SDLVER == 1
 | |
| #include <SDL/SDL_gfxPrimitives.h>
 | |
| #endif
 | |
| #if SDLVER == 2
 | |
| #include <SDL2/SDL2_gfxPrimitives.h>
 | |
| #endif
 | |
| #if SDLVER == 3
 | |
| #include <SDL3_gfx/SDL3_gfxPrimitives.h>
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if !CAP_SDL && !ISFAKEMOBILE
 | |
| #define SDLK_F1  (123001)
 | |
| #define SDLK_F2  (123002)
 | |
| #define SDLK_F3  (123003)
 | |
| #define SDLK_F4  (123004)
 | |
| #define SDLK_F5  (123005)
 | |
| #define SDLK_F6  (123006)
 | |
| #define SDLK_F7  (123007)
 | |
| #define SDLK_F8  (123008)
 | |
| #define SDLK_F9  (123009)
 | |
| #define SDLK_F10 (123010)
 | |
| #define SDLK_ESCAPE (123099)
 | |
| #define SDLK_F12 (123012)
 | |
| #define SDLK_HOME (123013)
 | |
| #define SDLK_LEFT (123014)
 | |
| #define SDLK_RIGHT (123015)
 | |
| #define SDLK_END (123016)
 | |
| #define MIX_MAX_VOLUME 128
 | |
| #define SDLK_UP (123021)
 | |
| #define SDLK_DOWN (123022)
 | |
| #define SDLK_PAGEUP (123023)
 | |
| #define SDLK_PAGEDOWN (123024)
 | |
| #define SDLK_RETURN (123025)
 | |
| #define SDLK_KP1 (123031)
 | |
| #define SDLK_KP2 (123032)
 | |
| #define SDLK_KP3 (123033)
 | |
| #define SDLK_KP4 (123034)
 | |
| #define SDLK_KP5 (123035)
 | |
| #define SDLK_KP6 (123036)
 | |
| #define SDLK_KP7 (123037)
 | |
| #define SDLK_KP8 (123038)
 | |
| #define SDLK_KP9 (123039)
 | |
| #define SDLK_KP_PERIOD (123051)
 | |
| #define SDLK_KP_MINUS  (123053)
 | |
| #define SDLK_DELETE (123052)
 | |
| #define SDLK_DELETE (123052)
 | |
| #define SDLK_KP_ENTER (123054)
 | |
| #define SDLK_BACKSPACE (123055)
 | |
| #define SDLK_TAB (123056)
 | |
| #define FAKE_SDL
 | |
| typedef int SDL_Event;
 | |
| typedef unsigned int Uint32;
 | |
| #endif
 | |
| 
 | |
| #if CAP_SDL
 | |
| #define SDL_error_in(x) SDL23(((x) < 0), !(x))
 | |
| 
 | |
| #if SDLVER == 3
 | |
| #define SDL_SWSURFACE 0 /* unused parameter */
 | |
| inline SDL_Surface *SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask) {
 | |
|   return SDL_CreateSurface(width, height, SDL_GetPixelFormatForMasks(depth, Rmask, Gmask, Bmask, Amask));
 | |
|   }
 | |
| 
 | |
| inline int TTF_SizeUTF8(TTF_Font *font, const char *text, int *w, int *h) {
 | |
|   return TTF_GetStringSize(font, text, strlen(text), w, h);
 | |
|   }
 | |
| 
 | |
| inline SDL_Surface* TTF_RenderUTF8_Blended(TTF_Font *font, const char *text, SDL_Color fg) {
 | |
|   return TTF_RenderText_Blended(font, text, strlen(text), fg);
 | |
|   }
 | |
| 
 | |
| inline SDL_Surface* TTF_RenderUTF8_Solid(TTF_Font *font, const char *text, SDL_Color fg) {
 | |
|   return TTF_RenderText_Solid(font, text, strlen(text), fg);
 | |
|   }
 | |
| 
 | |
| #define Mix_GetError SDL_GetError
 | |
| #endif
 | |
| 
 | |
| #if SDLVER >= 2
 | |
| #define SDLK_KP1 SDLK_KP_1
 | |
| #define SDLK_KP2 SDLK_KP_2
 | |
| #define SDLK_KP3 SDLK_KP_3
 | |
| #define SDLK_KP4 SDLK_KP_4
 | |
| #define SDLK_KP5 SDLK_KP_5
 | |
| #define SDLK_KP6 SDLK_KP_6
 | |
| #define SDLK_KP7 SDLK_KP_7
 | |
| #define SDLK_KP8 SDLK_KP_8
 | |
| #define SDLK_KP9 SDLK_KP_9
 | |
| #define SDLK_KP0 SDLK_KP_0
 | |
| #endif
 | |
| 
 | |
| #if SDLVER < 3
 | |
| #define SDL_EVENT_QUIT SDL_QUIT
 | |
| #define SDL_EVENT_MOUSE_BUTTON_DOWN SDL_MOUSEBUTTONDOWN
 | |
| #define SDL_EVENT_MOUSE_BUTTON_UP SDL_MOUSEBUTTONUP
 | |
| #define SDL_EVENT_MOUSE_MOTION SDL_MOUSEMOTION
 | |
| #define SDL_EVENT_MOUSE_WHEEL SDL_MOUSEWHEEL
 | |
| #define SDL_EVENT_KEY_DOWN SDL_KEYDOWN
 | |
| #define SDL_EVENT_KEY_UP SDL_KEYUP
 | |
| #define SDL_EVENT_JOYSTICK_BUTTON_DOWN SDL_JOYBUTTONDOWN
 | |
| #define SDL_EVENT_JOYSTICK_HAT_MOTION SDL_JOYHATMOTION
 | |
| #define SDL_EVENT_JOYSTICK_AXIS_MOTION SDL_JOYAXISMOTION
 | |
| #define SDL_EVENT_WINDOW SDL_WINDOWEVENT
 | |
| #define SDL_EVENT_TEXT_INPUT SDL_TEXTINPUT
 | |
| 
 | |
| #define SDL_KMOD_NUM KMOD_NUM
 | |
| #define SDL_KMOD_LSHIFT KMOD_LSHIFT
 | |
| #define SDL_KMOD_LCTRL KMOD_LCTRL
 | |
| #define SDL_KMOD_LALT KMOD_LALT
 | |
| #define SDL_KMOD_RSHIFT KMOD_RSHIFT
 | |
| #define SDL_KMOD_RCTRL KMOD_RCTRL
 | |
| #define SDL_KMOD_RALT KMOD_RALT
 | |
| 
 | |
| #define SDL_DestroySurface SDL_FreeSurface
 | |
| #define SDL_FillSurfaceRect SDL_FillRect
 | |
| #define SDL_GL_DestroyContext SDL_GL_DeleteContext
 | |
| #define SDL_WINDOW_HIGH_PIXEL_DENSITY SDL_WINDOW_ALLOW_HIGHDPI
 | |
| #define SDL_CreateWindow(a,b,c,d) SDL_CreateWindow(a,SDL_WINDOWPOS_UNDEFINED,SDL_WINDOWPOS_UNDEFINED,b,c,d)
 | |
| #define SDL_GetCurrentRenderOutputSize SDL_GetRendererOutputSize
 | |
| #define SDL_GetNumJoystickButtons SDL_JoystickNumButtons
 | |
| #define SDL_GetJoystickButton SDL_JoystickGetButton
 | |
| #define SDL_GetJoystickHat SDL_JoystickGetHat
 | |
| #define SDL_GetNumJoystickHats SDL_JoystickNumHats
 | |
| #define SDL_GetNumJoystickAxes SDL_JoystickNumAxes
 | |
| #define SDL_GetJoystickAxis SDL_JoystickGetAxis
 | |
| #define SDL_OpenJoystick SDL_JoystickOpen
 | |
| #define SDL_CloseJoystick SDL_JoystickClose
 | |
| #endif
 | |
| 
 | |
| #if SDLVER >= 3
 | |
| #define SDL_GetScancodeFromKey(x) SDL_GetScancodeFromKey(x, nullptr)
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if ISWEB
 | |
| extern "C" {
 | |
|   Uint8 *SDL_GetKeyState(void*);
 | |
| }
 | |
| // inline Uint8 *SDL_GetKeyState(void *v) { static Uint8 tab[1024]; return tab; }
 | |
| #endif
 | |
| 
 | |
| 
 | |
| #ifndef CAP_GLEW
 | |
| #define CAP_GLEW (CAP_GL && !ISMOBILE && !ISMAC && !ISLINUX && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #if ISWEB
 | |
| #define GLES_ONLY
 | |
| #endif
 | |
| 
 | |
| #if CAP_GL
 | |
| #if CAP_GLEW
 | |
|   #include <GL/glew.h>
 | |
| #else
 | |
|   #define GL_GLEXT_PROTOTYPES 1
 | |
|   #if ISMAC
 | |
|     #define GL_SILENCE_DEPRECATION 1
 | |
|     #include <OpenGL/gl.h>
 | |
|     #include <OpenGL/glu.h>
 | |
|     #include <OpenGL/glext.h>
 | |
|   #elif ISIOS
 | |
|     // already included
 | |
|   #elif ISANDROID
 | |
|     #include <GLES/gl.h>
 | |
|     #include <GLES/glext.h>
 | |
|     #include <GLES2/gl2.h>
 | |
|     #include <GLES3/gl3.h>
 | |
|     #define GLES_ONLY
 | |
|   #else
 | |
|     #include <GL/gl.h>
 | |
|     #include <GL/glu.h>
 | |
|     #include <GL/glext.h>
 | |
|   #endif
 | |
| #endif
 | |
| #else
 | |
| typedef int GLint;
 | |
| typedef unsigned GLuint;
 | |
| #endif
 | |
| 
 | |
| #include <functional>
 | |
| #include <memory>
 | |
| #include <cmath>
 | |
| #include <time.h>
 | |
| #include <vector>
 | |
| #include <algorithm>
 | |
| #include <stdio.h>
 | |
| #include <stdlib.h>
 | |
| #include <string.h>
 | |
| #include <string>
 | |
| #include <cassert>
 | |
| #include <map>
 | |
| #include <queue>
 | |
| #include <sstream>
 | |
| #include <stdexcept>
 | |
| #include <array>
 | |
| #include <set>
 | |
| #include <unordered_set>
 | |
| #include <unordered_map>
 | |
| #include <random>
 | |
| #include <complex>
 | |
| #include <new>
 | |
| #include <limits.h>
 | |
| 
 | |
| #if CAP_VR
 | |
| #ifdef __MINGW32__
 | |
| #include "openvr_mingw.hpp"
 | |
| #else
 | |
| #include "openvr.h"
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if CAP_VIDEO
 | |
| #include <sys/wait.h>
 | |
| #endif
 | |
| 
 | |
| #if CAP_ZLIB
 | |
| #include <zlib.h>
 | |
| #endif
 | |
| 
 | |
| #if ISWEB
 | |
| #include <emscripten.h>
 | |
| #include <emscripten/html5.h>
 | |
| #endif
 | |
| 
 | |
| #if CAP_GMP
 | |
| #include <gmpxx.h>
 | |
| #endif
 | |
| 
 | |
| #if CAP_THREAD
 | |
| #if OLD_MINGW
 | |
| #include "mingw.thread.h"
 | |
| #include "mingw.mutex.h"
 | |
| #include "mingw.condition_variable.h"
 | |
| #else
 | |
| #include <thread>
 | |
| #include <atomic>
 | |
| #include <mutex>
 | |
| #include <condition_variable>
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #include <stdint.h>
 | |
| 
 | |
| #if ISWINDOWS
 | |
| #include "direntx.h"
 | |
| #else
 | |
| #include <dirent.h>
 | |
| #endif
 | |
| 
 | |
| #if CAP_TEXTURE
 | |
| #if CAP_SDL_IMG
 | |
| #include <SDL/SDL_image.h>
 | |
| #elif CAP_PNG
 | |
| #include <png.h>
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #if CAP_FILES
 | |
| #include <unistd.h>
 | |
| #include <sys/types.h>
 | |
| #include <sys/stat.h>
 | |
| #endif
 | |
| 
 | |
| #if CAP_TIMEOFDAY
 | |
| #include <sys/time.h>
 | |
| #endif
 | |
| 
 | |
| #ifdef BACKTRACE
 | |
| #include <execinfo.h>
 | |
| #endif
 | |
| 
 | |
| #if CAP_SDL
 | |
| union SDL_Event;
 | |
| #endif
 | |
| 
 | |
| #if ISWINDOWS
 | |
| #undef hyper  // avoid "hyper" typedef in <_mingw.h>
 | |
| #endif
 | |
| 
 | |
| #ifndef MINIMIZE_GL_CALLS
 | |
| #ifdef EMSCRIPTEN
 | |
| #define MINIMIZE_GL_CALLS 1
 | |
| #else  
 | |
| #define MINIMIZE_GL_CALLS 0
 | |
| #endif
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_GEOMETRY
 | |
| #define CAP_GEOMETRY (!(ISMINI))
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_IRR
 | |
| #define CAP_IRR CAP_GEOMETRY
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_GP
 | |
| #define CAP_GP CAP_GEOMETRY
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_ARCM
 | |
| #define CAP_ARCM CAP_GEOMETRY
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_CRYSTAL
 | |
| #define CAP_CRYSTAL CAP_GEOMETRY
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_HISTORY
 | |
| #define CAP_HISTORY 1
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_BT
 | |
| #define CAP_BT CAP_GEOMETRY
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_STARTANIM
 | |
| #define CAP_STARTANIM (!(ISMINI))
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_SOLV
 | |
| #define CAP_SOLV (MAXMDIM >= 4 && !ISWEB && !ISMOBILE)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_FIELD
 | |
| #define CAP_FIELD (!(ISMINI))
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_RAY
 | |
| #define CAP_RAY (MAXMDIM >= 4 && CAP_GL && !ISMOBILE && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_PORTALS
 | |
| #define CAP_PORTALS CAP_RAY
 | |
| #endif
 | |
| 
 | |
| #ifndef CAP_MEMORY_RESERVE
 | |
| #define CAP_MEMORY_RESERVE (!ISMOBILE && !ISWEB)
 | |
| #endif
 | |
| 
 | |
| #undef TRANSPARENT
 | 
