DEFINITION MODULE FOR "C" SDL2 ; (* m2SDL - core SDL2 subsystem control, error handling and timing. GNU Modula-2 binding, mapped onto , , . Mapping notes ------------- * CARDINAL <-> Uint32 / unsigned int * INTEGER <-> int * ADDRESS <-> opaque pointers (char *, SDL_Window * escapes via SDLVideo) * ARRAY OF CHAR parameters map onto (char * ) - pass string literals or CHAR arrays directly, as documented in the GM2 "Interface to C" node. *) FROM SYSTEM IMPORT ADDRESS; EXPORT UNQUALIFIED (* --- init flags (SDL_INIT_* from SDL.h) --- *) SDLInitTimer, SDLInitAudio, SDLInitVideo, SDLInitJoystick, SDLInitHaptic, SDLInitGameController, SDLInitEvents, SDLInitSensor, SDLInitEverything, (* --- core --- *) SDL_Init, SDL_InitSubSystem, SDL_QuitSubSystem, SDL_WasInit, SDL_Quit, (* --- errors --- *) SDL_GetError, SDL_ClearError, (* --- timing --- *) SDL_Delay, SDL_GetTicks, SDL_GetTicks64, SDL_GetPerformanceCounter, SDL_GetPerformanceFrequency; CONST SDLInitTimer = 000000001H; (* 0x00000001 *) SDLInitAudio = 000000010H; (* 0x00000010 *) SDLInitVideo = 000000020H; (* 0x00000020 *) SDLInitJoystick = 000000200H; (* 0x00000200 *) SDLInitHaptic = 000001000H; (* 0x00001000 *) SDLInitGameController = 000002000H; (* 0x00002000 *) SDLInitEvents = 000004000H; (* 0x00004000 *) SDLInitSensor = 000008000H; (* 0x00008000 *) SDLInitEverything = 00000F231H; (* TIMER|AUDIO|VIDEO|EVENTS| JOYSTICK|HAPTIC|GAMECONTROLLER|SENSOR *) (* int SDL_Init(Uint32 flags) *) PROCEDURE SDL_Init (flags: CARDINAL) : INTEGER; (* int SDL_InitSubSystem(Uint32 flags) *) PROCEDURE SDL_InitSubSystem (flags: CARDINAL) : INTEGER; (* void SDL_QuitSubSystem(Uint32 flags) *) PROCEDURE SDL_QuitSubSystem (flags: CARDINAL); (* Uint32 SDL_WasInit(Uint32 flags) *) PROCEDURE SDL_WasInit (flags: CARDINAL) : CARDINAL; (* void SDL_Quit(void) *) PROCEDURE SDL_Quit (); (* const char *SDL_GetError(void) *) PROCEDURE SDL_GetError () : ADDRESS; (* void SDL_ClearError(void) *) PROCEDURE SDL_ClearError (); (* void SDL_Delay(Uint32 ms) *) PROCEDURE SDL_Delay (ms: CARDINAL); (* Uint32 SDL_GetTicks(void) *) PROCEDURE SDL_GetTicks () : CARDINAL; (* Uint64 SDL_GetTicks64(void) - LONGCARD <-> unsigned long long *) PROCEDURE SDL_GetTicks64 () : LONGCARD; (* Uint64 SDL_GetPerformanceCounter(void) *) PROCEDURE SDL_GetPerformanceCounter () : LONGCARD; (* Uint64 SDL_GetPerformanceFrequency(void) *) PROCEDURE SDL_GetPerformanceFrequency () : LONGCARD; END SDL2.