2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/*
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Simple  DirectMedia  Layer 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								  Copyright  ( C )  1997 - 2022  Sam  Lantinga  < slouken @ libsdl . org > 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  This  software  is  provided  ' as - is ' ,  without  any  express  or  implied 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  warranty .   In  no  event  will  the  authors  be  held  liable  for  any  damages 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  arising  from  the  use  of  this  software . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  Permission  is  granted  to  anyone  to  use  this  software  for  any  purpose , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  including  commercial  applications ,  and  to  alter  it  and  redistribute  it 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  freely ,  subject  to  the  following  restrictions : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  1.  The  origin  of  this  software  must  not  be  misrepresented ;  you  must  not 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     claim  that  you  wrote  the  original  software .  If  you  use  this  software 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     in  a  product ,  an  acknowledgment  in  the  product  documentation  would  be 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     appreciated  but  is  not  required . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  2.  Altered  source  versions  must  be  plainly  marked  as  such ,  and  must  not  be 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     misrepresented  as  being  the  original  software . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								  3.  This  notice  may  not  be  removed  or  altered  from  any  source  distribution . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								*/  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ file  SDL_events . h 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   Include  file  for  SDL  event  handling . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# ifndef SDL_events_h_ 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_events_h_ 
  
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_stdinc.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_error.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_video.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_keyboard.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_mouse.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_joystick.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_gamecontroller.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_quit.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_gesture.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "SDL_touch.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "begin_code.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Set up for C function definitions, even when using C++ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifdef __cplusplus 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  " C "  {  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* General keyboard/mouse state definitions */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_RELEASED    0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_PRESSED 1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  The  types  of  events  that  can  be  delivered . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  enum  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FIRSTEVENT      =  0 ,      /**< Unused (do not remove) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Application events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_QUIT            =  0x100 ,  /**< User-requested quit */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* These application events have special meaning on iOS, see README-ios.md for details */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_TERMINATING ,         /**< The application is being terminated by the OS
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationWillTerminate ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onDestroy ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_LOWMEMORY ,           /**< The application is low on memory, free memory if possible.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationDidReceiveMemoryWarning ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onLowMemory ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_WILLENTERBACKGROUND ,  /**< The application is about to enter the background
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationWillResignActive ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onPause ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_DIDENTERBACKGROUND ,  /**< The application did enter the background and may not get CPU for some time
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationDidEnterBackground ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onPause ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_WILLENTERFOREGROUND ,  /**< The application is about to enter the foreground
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationWillEnterForeground ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onResume ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_APP_DIDENTERFOREGROUND ,  /**< The application is now interactive
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  iOS  in  applicationDidBecomeActive ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     Called  on  Android  in  onResume ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_LOCALECHANGED ,   /**< The user's locale preferences have changed. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /* Display events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DISPLAYEVENT    =  0x150 ,   /**< Display state change */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    /* Window events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_WINDOWEVENT     =  0x200 ,  /**< Window state change */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_SYSWMEVENT ,              /**< System specific event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Keyboard events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KEYDOWN         =  0x300 ,  /**< Key pressed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KEYUP ,                   /**< Key released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TEXTEDITING ,             /**< Keyboard text editing (composition) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TEXTINPUT ,               /**< Keyboard text input */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KEYMAPCHANGED ,           /**< Keymap changed due to a system event such as an
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                     input  language  or  keyboard  layout  change . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                */ 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_TEXTEDITING_EXT ,        /**< Extended keyboard text editing (composition) */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Mouse events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEMOTION     =  0x400 ,  /**< Mouse moved */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEBUTTONDOWN ,         /**< Mouse button pressed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEBUTTONUP ,           /**< Mouse button released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MOUSEWHEEL ,              /**< Mouse wheel motion */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Joystick events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYAXISMOTION   =  0x600 ,  /**< Joystick axis motion */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYBALLMOTION ,           /**< Joystick trackball motion */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYHATMOTION ,            /**< Joystick hat position change */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYBUTTONDOWN ,           /**< Joystick button pressed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYBUTTONUP ,             /**< Joystick button released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYDEVICEADDED ,          /**< A new joystick has been inserted into the system */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JOYDEVICEREMOVED ,        /**< An opened joystick has been removed */ 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_JOYBATTERYUPDATED ,       /**< Joystick battery level change */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Game controller events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERAXISMOTION   =  0x650 ,  /**< Game controller axis motion */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERBUTTONDOWN ,           /**< Game controller button pressed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERBUTTONUP ,             /**< Game controller button released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERDEVICEADDED ,          /**< A new Game controller has been inserted into the system */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERDEVICEREMOVED ,        /**< An opened Game controller has been removed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERDEVICEREMAPPED ,       /**< The controller mapping was updated */ 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_CONTROLLERTOUCHPADDOWN ,         /**< Game controller touchpad was touched */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERTOUCHPADMOTION ,       /**< Game controller touchpad finger was moved */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERTOUCHPADUP ,           /**< Game controller touchpad finger was lifted */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CONTROLLERSENSORUPDATE ,         /**< Game controller sensor was updated */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Touch events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FINGERDOWN       =  0x700 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FINGERUP , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FINGERMOTION , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Gesture events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DOLLARGESTURE    =  0x800 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DOLLARRECORD , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MULTIGESTURE , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Clipboard events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CLIPBOARDUPDATE  =  0x900 ,  /**< The clipboard changed */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Drag and drop events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DROPFILE         =  0x1000 ,  /**< The system requests a file open */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_DROPTEXT ,                  /**< text/plain drag-and-drop event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DROPBEGIN ,                 /**< A new set of drops is beginning (NULL filename) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DROPCOMPLETE ,              /**< Current set of drops is now complete (NULL filename) */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* Audio hotplug events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_AUDIODEVICEADDED  =  0x1100 ,  /**< A new audio device is available */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_AUDIODEVICEREMOVED ,         /**< An audio device has been removed. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /* Sensor events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_SENSORUPDATE  =  0x1200 ,      /**< A sensor was updated */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    /* Render events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_RENDER_TARGETS_RESET  =  0x2000 ,  /**< The render targets have been reset and their contents need to be updated */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_RENDER_DEVICE_RESET ,  /**< The device has been reset and all textures need to be recreated */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    /* Internal events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_POLLSENTINEL  =  0x7F00 ,  /**< Signals the end of an event poll cycle */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    /** Events ::SDL_USEREVENT through ::SDL_LASTEVENT are for your use,
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *   and  should  be  allocated  with  SDL_RegisterEvents ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_USEREVENT     =  0x8000 , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /**
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     *   This  last  event  is  only  for  bounding  internal  arrays 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								     */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_LASTEVENT     =  0xFFFF 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_EventType ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Fields  shared  by  every  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_CommonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ; 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_CommonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Display  state  change  event  data  ( event . display . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_DisplayEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_DISPLAYEVENT */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  display ;      /**< The associated display index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  event ;         /**< ::SDL_DisplayEventID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  data1 ;        /**< event dependent data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_DisplayEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Window  state  change  event  data  ( event . window . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_WindowEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_WINDOWEVENT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The associated window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  event ;         /**< ::SDL_WindowEventID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  data1 ;        /**< event dependent data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  data2 ;        /**< event dependent data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_WindowEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Keyboard  button  event  structure  ( event . key . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_KeyboardEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_KEYDOWN or ::SDL_KEYUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with keyboard focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  repeat ;        /**< Non-zero if this is a key repeat */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_Keysym  keysym ;   /**< The key that was pressed or released */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_KeyboardEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_TEXTEDITINGEVENT_TEXT_SIZE (32) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Keyboard  text  editing  event  structure  ( event . edit . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_TextEditingEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;                                 /**< ::SDL_TEXTEDITING */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;                            /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;                             /**< The window with keyboard focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  text [ SDL_TEXTEDITINGEVENT_TEXT_SIZE ] ;   /**< The editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  start ;                                /**< The start cursor of selected editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  length ;                               /**< The length of selected editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_TextEditingEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Extended  keyboard  text  editing  event  structure  ( event . editExt . * )  when  text  would  be 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   truncated  if  stored  in  the  text  buffer  SDL_TextEditingEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_TextEditingExtEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;                                 /**< ::SDL_TEXTEDITING_EXT */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;                            /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;                             /**< The window with keyboard focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char *  text ;                                  /**< The editing text, which should be freed with SDL_free(), and will not be NULL */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  start ;                                /**< The start cursor of selected editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  length ;                               /**< The length of selected editing text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_TextEditingExtEvent ;  
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_TEXTINPUTEVENT_TEXT_SIZE (32) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Keyboard  text  input  event  structure  ( event . text . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_TextInputEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;                               /**< ::SDL_TEXTINPUT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;                          /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;                           /**< The window with keyboard focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  text [ SDL_TEXTINPUTEVENT_TEXT_SIZE ] ;   /**< The input text */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_TextInputEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Mouse  motion  event  structure  ( event . motion . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MouseMotionEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MOUSEMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with mouse focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  state ;        /**< The current button state */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  x ;            /**< X coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  y ;            /**< Y coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  xrel ;         /**< The relative motion in the X direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  yrel ;         /**< The relative motion in the Y direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_MouseMotionEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Mouse  button  event  structure  ( event . button . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MouseButtonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MOUSEBUTTONDOWN or ::SDL_MOUSEBUTTONUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with mouse focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  button ;        /**< The mouse button index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  clicks ;        /**< 1 for single-click, 2 for double-click, etc. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  x ;            /**< X coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  y ;            /**< Y coordinate, relative to window */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_MouseButtonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Mouse  wheel  event  structure  ( event . wheel . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MouseWheelEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MOUSEWHEEL */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window with mouse focus, if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The mouse instance id, or SDL_TOUCH_MOUSEID */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  x ;            /**< The amount scrolled horizontally, positive to the right and negative to the left */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  y ;            /**< The amount scrolled vertically, positive away from the user and negative toward the user */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  direction ;    /**< Set to one of the SDL_MOUSEWHEEL_* defines. When FLIPPED the values in X and Y will be opposite. Multiply by -1 to change them back */ 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    float  preciseX ;      /**< The amount scrolled horizontally, positive to the right and negative to the left, with float precision (added in 2.0.18) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  preciseY ;      /**< The amount scrolled vertically, positive away from the user and negative toward the user, with float precision (added in 2.0.18) */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_MouseWheelEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  axis  motion  event  structure  ( event . jaxis . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyAxisEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYAXISMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  axis ;          /**< The joystick axis index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  value ;        /**< The axis value (range: -32768 to 32767) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  padding4 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyAxisEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  trackball  motion  event  structure  ( event . jball . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyBallEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYBALLMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  ball ;          /**< The joystick trackball index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  xrel ;         /**< The relative motion in the X direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  yrel ;         /**< The relative motion in the Y direction */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyBallEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  hat  position  change  event  structure  ( event . jhat . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyHatEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYHATMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  hat ;           /**< The joystick hat index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  value ;         /**< The hat position value.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    \ sa  : : SDL_HAT_LEFTUP  : : SDL_HAT_UP  : : SDL_HAT_RIGHTUP 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    \ sa  : : SDL_HAT_LEFT  : : SDL_HAT_CENTERED  : : SDL_HAT_RIGHT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    \ sa  : : SDL_HAT_LEFTDOWN  : : SDL_HAT_DOWN  : : SDL_HAT_RIGHTDOWN 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         *    Note  that  zero  means  the  POV  is  centered . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                         */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyHatEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  button  event  structure  ( event . jbutton . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyButtonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYBUTTONDOWN or ::SDL_JOYBUTTONUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  button ;        /**< The joystick button index */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyButtonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joystick  device  event  structure  ( event . jdevice . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyDeviceEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYDEVICEADDED or ::SDL_JOYDEVICEREMOVED */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Sint32  which ;        /**< The joystick device index for the ADDED event, instance id for the REMOVED event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyDeviceEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Joysick  battery  level  change  event  structure  ( event . jbattery . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_JoyBatteryEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_JOYBATTERYUPDATED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickPowerLevel  level ;  /**< The joystick battery level */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_JoyBatteryEvent ;  
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Game  controller  axis  motion  event  structure  ( event . caxis . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerAxisEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERAXISMOTION */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  axis ;          /**< The controller axis (SDL_GameControllerAxis) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint16  value ;        /**< The axis value (range: -32768 to 32767) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  padding4 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerAxisEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Game  controller  button  event  structure  ( event . cbutton . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerButtonEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERBUTTONDOWN or ::SDL_CONTROLLERBUTTONUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  button ;        /**< The controller button (SDL_GameControllerButton) */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  state ;         /**< ::SDL_PRESSED or ::SDL_RELEASED */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerButtonEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Controller  device  event  structure  ( event . cdevice . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerDeviceEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERDEVICEADDED, ::SDL_CONTROLLERDEVICEREMOVED, or ::SDL_CONTROLLERDEVICEREMAPPED */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Sint32  which ;        /**< The joystick device index for the ADDED event, instance id for the REMOVED or REMAPPED event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerDeviceEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Game  controller  touchpad  event  structure  ( event . ctouchpad . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerTouchpadEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERTOUCHPADDOWN or ::SDL_CONTROLLERTOUCHPADMOTION or ::SDL_CONTROLLERTOUCHPADUP */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  touchpad ;     /**< The index of the touchpad */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  finger ;       /**< The index of the finger on the touchpad */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  x ;             /**< Normalized in the range 0...1 with 0 being on the left */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  y ;             /**< Normalized in the range 0...1 with 0 being at the top */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  pressure ;      /**< Normalized in the range 0...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerTouchpadEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Game  controller  sensor  event  structure  ( event . csensor . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_ControllerSensorEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_CONTROLLERSENSORUPDATE */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoystickID  which ;  /**< The joystick instance id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  sensor ;       /**< The type of the sensor, one of the values of ::SDL_SensorType */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  data [ 3 ] ;       /**< Up to 3 values from the sensor, as defined in SDL_sensor.h */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_ControllerSensorEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Audio  device  event  structure  ( event . adevice . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_AudioDeviceEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_AUDIODEVICEADDED, or ::SDL_AUDIODEVICEREMOVED */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  which ;        /**< The audio device index for the ADDED event (valid until next SDL_GetNumAudioDevices() call), SDL_AudioDeviceID for the REMOVED event */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  iscapture ;     /**< zero if an output device, non-zero if a capture device. */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding1 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding2 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint8  padding3 ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_AudioDeviceEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Touch  finger  event  structure  ( event . tfinger . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_TouchFingerEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_FINGERMOTION or ::SDL_FINGERDOWN or ::SDL_FINGERUP */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_TouchID  touchId ;  /**< The touch device id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_FingerID  fingerId ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  x ;             /**< Normalized in the range 0...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  y ;             /**< Normalized in the range 0...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  dx ;            /**< Normalized in the range -1...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  dy ;            /**< Normalized in the range -1...1 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  pressure ;      /**< Normalized in the range 0...1 */ 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window underneath the finger, if any */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_TouchFingerEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Multiple  Finger  Gesture  Event  ( event . mgesture . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_MultiGestureEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_MULTIGESTURE */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TouchID  touchId ;  /**< The touch device id */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    float  dTheta ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  dDist ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  x ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  y ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  numFingers ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint16  padding ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_MultiGestureEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ brief  Dollar  Gesture  Event  ( event . dgesture . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_DollarGestureEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_DOLLARGESTURE or ::SDL_DOLLARRECORD */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_TouchID  touchId ;  /**< The touch device id */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_GestureID  gestureId ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  numFingers ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  error ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  x ;             /**< Normalized center of gesture */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  y ;             /**< Normalized center of gesture */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_DollarGestureEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  An  event  used  to  request  a  file  open  by  the  system  ( event . drop . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *          This  event  is  enabled  by  default ,  you  can  disable  it  with  SDL_EventState ( ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ note  If  this  event  is  enabled ,  you  must  free  the  filename  in  the  event . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_DropEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_DROPBEGIN or ::SDL_DROPFILE or ::SDL_DROPTEXT or ::SDL_DROPCOMPLETE */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    char  * file ;          /**< The file name, which should be freed with SDL_free(), is NULL on begin/complete */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The window that was dropped on, if any */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_DropEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  Sensor  event  structure  ( event . sensor . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_SensorEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_SENSORUPDATE */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  which ;        /**< The instance ID of the sensor */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    float  data [ 6 ] ;       /**< Up to 6 values from the sensor - additional values can be queried using SDL_SensorGetData() */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_SensorEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  The  " quit requested "  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_QuitEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_QUIT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_QuitEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  OS  Specific  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_OSEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_QUIT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_OSEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  A  user - defined  event  type  ( event . user . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_UserEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_USEREVENT through ::SDL_LASTEVENT-1 */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    Uint32  windowID ;     /**< The associated window if any */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Sint32  code ;         /**< User defined event code */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    void  * data1 ;         /**< User defined data pointer */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    void  * data2 ;         /**< User defined data pointer */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_UserEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								struct  SDL_SysWMmsg ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_SysWMmsg  SDL_SysWMmsg ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  A  video  driver  dependent  system  event  ( event . syswm . * ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *          This  event  is  disabled  by  default ,  you  can  enable  it  with  SDL_EventState ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ note  If  you  want  to  use  this  event ,  you  should  include  SDL_syswm . h . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  struct  SDL_SysWMEvent  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    Uint32  type ;         /**< ::SDL_SYSWMEVENT */ 
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  timestamp ;    /**< In milliseconds, populated using SDL_GetTicks() */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    SDL_SysWMmsg  * msg ;   /**< driver dependent data, defined in SDL_syswm.h */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_SysWMEvent ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *   \ brief  General  event  structure 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  union  SDL_Event  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint32  type ;                             /**< Event type, shared with all events */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_CommonEvent  common ;                  /**< Common event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DisplayEvent  display ;                /**< Display event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_WindowEvent  window ;                  /**< Window event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_KeyboardEvent  key ;                   /**< Keyboard event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TextEditingEvent  edit ;               /**< Text editing event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_TextEditingExtEvent  editExt ;         /**< Extended text editing event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_TextInputEvent  text ;                 /**< Text input event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MouseMotionEvent  motion ;             /**< Mouse motion event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MouseButtonEvent  button ;             /**< Mouse button event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MouseWheelEvent  wheel ;               /**< Mouse wheel event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyAxisEvent  jaxis ;                  /**< Joystick axis event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyBallEvent  jball ;                  /**< Joystick ball event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyHatEvent  jhat ;                    /**< Joystick hat event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyButtonEvent  jbutton ;              /**< Joystick button event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_JoyDeviceEvent  jdevice ;              /**< Joystick device change event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_JoyBatteryEvent  jbattery ;            /**< Joystick battery event data */ 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    SDL_ControllerAxisEvent  caxis ;           /**< Game Controller axis event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ControllerButtonEvent  cbutton ;       /**< Game Controller button event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ControllerDeviceEvent  cdevice ;       /**< Game Controller device event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ControllerTouchpadEvent  ctouchpad ;   /**< Game Controller touchpad event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ControllerSensorEvent  csensor ;       /**< Game Controller sensor event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_AudioDeviceEvent  adevice ;            /**< Audio device event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_SensorEvent  sensor ;                  /**< Sensor event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_QuitEvent  quit ;                      /**< Quit request event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_UserEvent  user ;                      /**< Custom event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_SysWMEvent  syswm ;                    /**< System dependent window event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_TouchFingerEvent  tfinger ;            /**< Touch finger event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_MultiGestureEvent  mgesture ;          /**< Gesture event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DollarGestureEvent  dgesture ;         /**< Gesture event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_DropEvent  drop ;                      /**< Drag and drop event data */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    /* This is necessary for ABI compatibility between Visual C++ and GCC.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       Visual  C + +  will  respect  the  push  pack  pragma  and  use  52  bytes  ( size  of 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       SDL_TextEditingEvent ,  the  largest  structure  for  32 - bit  and  64 - bit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       architectures )  for  this  union ,  and  GCC  will  use  the  alignment  of  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       largest  datatype  within  the  union ,  which  is  8  bytes  on  64 - bit 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       architectures . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       So . . .  we ' ll  add  padding  to  force  the  size  to  be  56  bytes  for  both . 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       On  architectures  where  pointers  are  16  bytes ,  this  needs  rounding  up  to 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       the  next  multiple  of  16 ,  64 ,  and  on  architectures  where  pointers  are 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								       even  larger  the  size  of  SDL_UserEvent  will  dominate  as  being  3  pointers . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								    */ 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								    Uint8  padding [ sizeof ( void  * )  < =  8  ?  56  :  sizeof ( void  * )  = =  16  ?  64  :  3  *  sizeof ( void  * ) ] ; 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								}  SDL_Event ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/* Make sure we haven't broken binary compatibility */  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								SDL_COMPILE_TIME_ASSERT ( SDL_Event ,  sizeof ( SDL_Event )  = =  sizeof ( ( ( SDL_Event  * ) NULL ) - > padding ) ) ;  
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Function prototypes */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Pump  the  event  loop ,  gathering  events  from  the  input  devices . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  This  function  updates  the  event  queue  and  internal  input  device  state . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  * * WARNING * * :  This  should  only  be  run  in  the  thread  that  initialized  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  video  subsystem ,  and  for  extra  safety ,  you  should  consider  only  doing  those 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  things  on  the  main  thread  in  any  case . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_PumpEvents ( )  gathers  all  the  pending  input  information  from  devices  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  places  it  in  the  event  queue .  Without  calls  to  SDL_PumpEvents ( )  no  events 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  would  ever  be  placed  on  the  queue .  Often  the  need  for  calls  to 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_PumpEvents ( )  is  hidden  from  the  user  since  SDL_PollEvent ( )  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_WaitEvent ( )  implicitly  call  SDL_PumpEvents ( ) .  However ,  if  you  are  not 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  polling  or  waiting  for  events  ( e . g .  you  are  filtering  them ) ,  then  you  must 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  call  SDL_PumpEvents ( )  to  force  an  event  queue  update . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_PollEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_WaitEvent 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_PumpEvents ( void ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @{ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								typedef  enum  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								{  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_ADDEVENT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_PEEKEVENT , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								    SDL_GETEVENT 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  SDL_eventaction ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Check  the  event  queue  for  messages  and  optionally  return  them . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ` action `  may  be  any  of  the  following : 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  -  ` SDL_ADDEVENT ` :  up  to  ` numevents `  events  will  be  added  to  the  back  of  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -  ` SDL_PEEKEVENT ` :  ` numevents `  events  at  the  front  of  the  event  queue , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    within  the  specified  minimum  and  maximum  type ,  will  be  returned  to  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    caller  and  will  _not_  be  removed  from  the  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -  ` SDL_GETEVENT ` :  up  to  ` numevents `  events  at  the  front  of  the  event  queue , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    within  the  specified  minimum  and  maximum  type ,  will  be  returned  to  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    caller  and  will  be  removed  from  the  queue . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  You  may  have  to  call  SDL_PumpEvents ( )  before  calling  this  function . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Otherwise ,  the  events  may  not  be  ready  to  be  filtered  when  you  call 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_PeepEvents ( ) . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  This  function  is  thread - safe . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ param  events  destination  buffer  for  the  retrieved  events 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  numevents  if  action  is  SDL_ADDEVENT ,  the  number  of  events  to  add 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                   back  to  the  event  queue ;  if  action  is  SDL_PEEKEVENT  or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                   SDL_GETEVENT ,  the  maximum  number  of  events  to  retrieve 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  action  action  to  take ;  see  [ [ # action | Remarks ] ]  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  minType  minimum  value  of  the  event  type  to  be  considered ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                 SDL_FIRSTEVENT  is  a  safe  choice 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  maxType  maximum  value  of  the  event  type  to  be  considered ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                 SDL_LASTEVENT  is  a  safe  choice 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  the  number  of  events  actually  stored  or  a  negative  error  code  on 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           failure ;  call  SDL_GetError ( )  for  more  information . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_PollEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PumpEvents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PushEvent 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_PeepEvents ( SDL_Event  *  events ,  int  numevents ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           SDL_eventaction  action , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                           Uint32  minType ,  Uint32  maxType ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @} */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Check  for  the  existence  of  a  certain  event  type  in  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  you  need  to  check  for  a  range  of  event  types ,  use  SDL_HasEvents ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  type  the  type  of  event  to  be  queried ;  see  SDL_EventType  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  SDL_TRUE  if  events  matching  ` type `  are  present ,  or  SDL_FALSE  if 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           events  matching  ` type `  are  not  present . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_HasEvents 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  SDL_bool  SDLCALL  SDL_HasEvent ( Uint32  type ) ;  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Check  for  the  existence  of  certain  event  types  in  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  you  need  to  check  for  a  single  event  type ,  use  SDL_HasEvent ( )  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  minType  the  low  end  of  event  type  to  be  queried ,  inclusive ;  see 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                 SDL_EventType  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  maxType  the  high  end  of  event  type  to  be  queried ,  inclusive ;  see 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                 SDL_EventType  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  SDL_TRUE  if  events  with  type  > =  ` minType `  and  < =  ` maxType `  are 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           present ,  or  SDL_FALSE  if  not . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_HasEvents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  SDL_bool  SDLCALL  SDL_HasEvents ( Uint32  minType ,  Uint32  maxType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Clear  events  of  a  specific  type  from  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  will  unconditionally  remove  any  events  from  the  queue  that  match 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ` type ` .  If  you  need  to  remove  a  range  of  event  types ,  use  SDL_FlushEvents ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  It ' s  also  normal  to  just  ignore  events  you  don ' t  care  about  in  your  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  loop  without  calling  this  function . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  function  only  affects  currently  queued  events .  If  you  want  to  make 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  sure  that  all  pending  OS  events  are  flushed ,  you  can  call  SDL_PumpEvents ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  on  the  main  thread  immediately  before  the  flush  call . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  type  the  type  of  event  to  be  cleared ;  see  SDL_EventType  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_FlushEvents 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_FlushEvent ( Uint32  type ) ;  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Clear  events  of  a  range  of  types  from  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  will  unconditionally  remove  any  events  from  the  queue  that  are  in  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  range  of  ` minType `  to  ` maxType ` ,  inclusive .  If  you  need  to  remove  a  single 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  event  type ,  use  SDL_FlushEvent ( )  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  It ' s  also  normal  to  just  ignore  events  you  don ' t  care  about  in  your  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  loop  without  calling  this  function . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  function  only  affects  currently  queued  events .  If  you  want  to  make 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  sure  that  all  pending  OS  events  are  flushed ,  you  can  call  SDL_PumpEvents ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  on  the  main  thread  immediately  before  the  flush  call . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  minType  the  low  end  of  event  type  to  be  cleared ,  inclusive ;  see 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                 SDL_EventType  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  maxType  the  high  end  of  event  type  to  be  cleared ,  inclusive ;  see 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                 SDL_EventType  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_FlushEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_FlushEvents ( Uint32  minType ,  Uint32  maxType ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Poll  for  currently  pending  events . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  ` event `  is  not  NULL ,  the  next  event  is  removed  from  the  queue  and  stored 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  in  the  SDL_Event  structure  pointed  to  by  ` event ` .  The  1  returned  refers  to 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  this  event ,  immediately  stored  in  the  SDL  Event  structure  - -  not  an  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  to  follow . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  ` event `  is  NULL ,  it  simply  returns  1  if  there  is  an  event  in  the  queue , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  but  will  not  remove  it  from  the  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  As  this  function  may  implicitly  call  SDL_PumpEvents ( ) ,  you  can  only  call 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  this  function  in  the  thread  that  set  the  video  mode . 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_PollEvent ( )  is  the  favored  way  of  receiving  system  events  since  it  can 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  be  done  from  the  main  loop  and  does  not  suspend  the  main  loop  while  waiting 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  on  an  event  to  be  posted . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  The  common  practice  is  to  fully  process  the  event  queue  once  every  frame , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  usually  as  a  first  step  before  updating  the  game ' s  state : 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  ` ` ` c 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  while  ( game_is_still_running )  { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *      SDL_Event  event ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *      while  ( SDL_PollEvent ( & event ) )  {   // poll until all events are handled!
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *          // decide what to do with this event.
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *      } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *      // update game state, draw the current frame
 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  } 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ` ` ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  event  the  SDL_Event  structure  to  be  filled  with  the  next  event  from 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *               the  queue ,  or  NULL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  1  if  there  is  a  pending  event  or  0  if  there  are  none  available . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_GetEventFilter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PeepEvents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PushEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_SetEventFilter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_WaitEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_WaitEventTimeout 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_PollEvent ( SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Wait  indefinitely  for  the  next  available  event . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  If  ` event `  is  not  NULL ,  the  next  event  is  removed  from  the  queue  and  stored 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  in  the  SDL_Event  structure  pointed  to  by  ` event ` . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  As  this  function  may  implicitly  call  SDL_PumpEvents ( ) ,  you  can  only  call 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  this  function  in  the  thread  that  initialized  the  video  subsystem . 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  event  the  SDL_Event  structure  to  be  filled  in  with  the  next  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *               from  the  queue ,  or  NULL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  1  on  success  or  0  if  there  was  an  error  while  waiting  for  events ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           call  SDL_GetError ( )  for  more  information . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_PollEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PumpEvents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_WaitEventTimeout 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_WaitEvent ( SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Wait  until  the  specified  timeout  ( in  milliseconds )  for  the  next  available 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  event . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  ` event `  is  not  NULL ,  the  next  event  is  removed  from  the  queue  and  stored 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  in  the  SDL_Event  structure  pointed  to  by  ` event ` . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  As  this  function  may  implicitly  call  SDL_PumpEvents ( ) ,  you  can  only  call 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  this  function  in  the  thread  that  initialized  the  video  subsystem . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ param  event  the  SDL_Event  structure  to  be  filled  in  with  the  next  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *               from  the  queue ,  or  NULL 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  timeout  the  maximum  number  of  milliseconds  to  wait  for  the  next 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                 available  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  1  on  success  or  0  if  there  was  an  error  while  waiting  for  events ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           call  SDL_GetError ( )  for  more  information .  This  also  returns  0  if 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           the  timeout  elapsed  without  an  event  arriving . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_PollEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PumpEvents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_WaitEvent 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_WaitEventTimeout ( SDL_Event  *  event ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                 int  timeout ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Add  an  event  to  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  The  event  queue  can  actually  be  used  as  a  two  way  communication  channel . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Not  only  can  events  be  read  from  the  queue ,  but  the  user  can  also  push 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  their  own  events  onto  it .  ` event `  is  a  pointer  to  the  event  structure  you 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  wish  to  push  onto  the  queue .  The  event  is  copied  into  the  queue ,  and  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  caller  may  dispose  of  the  memory  pointed  to  after  SDL_PushEvent ( )  returns . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Note :  Pushing  device  input  events  onto  the  queue  doesn ' t  modify  the  state 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  of  the  device  within  SDL . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  function  is  thread - safe ,  and  can  be  called  from  other  threads  safely . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Note :  Events  pushed  onto  the  queue  with  SDL_PushEvent ( )  get  passed  through 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  event  filter  but  events  added  with  SDL_PeepEvents ( )  do  not . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  For  pushing  application - specific  events ,  please  use  SDL_RegisterEvents ( )  to 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  get  an  event  type  that  does  not  conflict  with  other  code  that  also  wants 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  its  own  custom  event  types . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  event  the  SDL_Event  to  be  added  to  the  queue 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  1  on  success ,  0  if  the  event  was  filtered ,  or  a  negative  error 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           code  on  failure ;  call  SDL_GetError ( )  for  more  information .  A 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           common  reason  for  error  is  the  event  queue  being  full . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_PeepEvents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PollEvent 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_RegisterEvents 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  int  SDLCALL  SDL_PushEvent ( SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  A  function  pointer  used  for  callbacks  that  watch  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  userdata  what  was  passed  as  ` userdata `  to  SDL_SetEventFilter ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *         or  SDL_AddEventWatch ,  etc 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  event  the  event  that  triggered  the  callback 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  1  to  permit  event  to  be  added  to  the  queue ,  and  0  to  disallow 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           it .  When  used  with  SDL_AddEventWatch ,  the  return  value  is  ignored . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_SetEventFilter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_AddEventWatch 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								typedef  int  ( SDLCALL  *  SDL_EventFilter )  ( void  * userdata ,  SDL_Event  *  event ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Set  up  a  filter  to  process  all  events  before  they  change  internal  state  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  are  posted  to  the  internal  event  queue . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  If  the  filter  function  returns  1  when  called ,  then  the  event  will  be  added 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  to  the  internal  queue .  If  it  returns  0 ,  then  the  event  will  be  dropped  from 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  queue ,  but  the  internal  state  will  still  be  updated .  This  allows 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  selective  filtering  of  dynamically  arriving  events . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  * * WARNING * * :  Be  very  careful  of  what  you  do  in  the  event  filter  function , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  as  it  may  run  in  a  different  thread ! 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  On  platforms  that  support  it ,  if  the  quit  event  is  generated  by  an 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  interrupt  signal  ( e . g .  pressing  Ctrl - C ) ,  it  will  be  delivered  to  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  application  at  the  next  event  poll . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  There  is  one  caveat  when  dealing  with  the  : : SDL_QuitEvent  event  type .  The 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  event  filter  is  only  called  when  the  window  manager  desires  to  close  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  application  window .  If  the  event  filter  returns  1 ,  then  the  window  will  be 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  closed ,  otherwise  the  window  will  remain  open  if  possible . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Note :  Disabled  events  never  make  it  to  the  event  filter  function ;  see 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_EventState ( ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Note :  If  you  just  want  to  inspect  events  without  filtering ,  you  should  use 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_AddEventWatch ( )  instead . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Note :  Events  pushed  onto  the  queue  with  SDL_PushEvent ( )  get  passed  through 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  event  filter ,  but  events  pushed  onto  the  queue  with  SDL_PeepEvents ( )  do 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  not . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  filter  An  SDL_EventFilter  function  to  call  when  an  event  happens 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  userdata  a  pointer  that  is  passed  to  ` filter ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_AddEventWatch 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_EventState 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_GetEventFilter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PeepEvents 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_PushEvent 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_SetEventFilter ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Query  the  current  event  filter . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  function  can  be  used  to  " chain "  filters ,  by  saving  the  existing  filter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  before  replacing  it  with  a  function  that  will  call  that  saved  filter . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  filter  the  current  callback  function  will  be  stored  here 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  userdata  the  pointer  that  is  passed  to  the  current  event  filter  will 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *                  be  stored  here 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  SDL_TRUE  on  success  or  SDL_FALSE  if  there  is  no  event  filter  set . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_SetEventFilter 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  SDL_bool  SDLCALL  SDL_GetEventFilter ( SDL_EventFilter  *  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                                    void  * * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Add  a  callback  to  be  triggered  when  an  event  is  added  to  the  event  queue . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ` filter `  will  be  called  when  an  event  happens ,  and  its  return  value  is 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ignored . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  * * WARNING * * :  Be  very  careful  of  what  you  do  in  the  event  filter  function , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  as  it  may  run  in  a  different  thread ! 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  If  the  quit  event  is  generated  by  a  signal  ( e . g .  SIGINT ) ,  it  will  bypass 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  the  internal  queue  and  be  delivered  to  the  watch  callback  immediately ,  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  arrive  at  the  next  event  poll . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Note :  the  callback  is  called  for  events  posted  by  the  user  through 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  SDL_PushEvent ( ) ,  but  not  for  disabled  events ,  nor  for  events  by  a  filter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  callback  set  with  SDL_SetEventFilter ( ) ,  nor  for  events  posted  by  the  user 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  through  SDL_PeepEvents ( ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  filter  an  SDL_EventFilter  function  to  call  when  an  event  happens . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  userdata  a  pointer  that  is  passed  to  ` filter ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_DelEventWatch 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_SetEventFilter 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_AddEventWatch ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                               void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Remove  an  event  watch  callback  added  with  SDL_AddEventWatch ( ) . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  This  function  takes  the  same  input  as  SDL_AddEventWatch ( )  to  identify  and 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  delete  the  corresponding  callback . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  filter  the  function  originally  passed  to  SDL_AddEventWatch ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  userdata  the  pointer  originally  passed  to  SDL_AddEventWatch ( ) 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_AddEventWatch 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_DelEventWatch ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                               void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Run  a  specific  filter  function  on  the  current  event  queue ,  removing  any 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  events  for  which  the  filter  returns  0. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  See  SDL_SetEventFilter ( )  for  more  information .  Unlike  SDL_SetEventFilter ( ) , 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  this  function  does  not  change  the  filter  permanently ,  it  only  uses  the 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  supplied  filter  until  this  function  returns . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  filter  the  SDL_EventFilter  function  to  call  when  an  event  happens 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  userdata  a  pointer  that  is  passed  to  ` filter ` 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_GetEventFilter 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ sa  SDL_SetEventFilter 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  void  SDLCALL  SDL_FilterEvents ( SDL_EventFilter  filter ,  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								                                              void  * userdata ) ; 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @{ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_QUERY   -1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_IGNORE   0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_DISABLE  0 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_ENABLE   1 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Set  the  state  of  processing  events  by  type . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ` state `  may  be  any  of  the  following : 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -  ` SDL_QUERY ` :  returns  the  current  processing  state  of  the  specified  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -  ` SDL_IGNORE `  ( aka  ` SDL_DISABLE ` ) :  the  event  will  automatically  be  dropped 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *    from  the  event  queue  and  will  not  be  filtered 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  -  ` SDL_ENABLE ` :  the  event  will  be  processed  normally 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  type  the  type  of  event ;  see  SDL_EventType  for  details 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  state  how  to  process  the  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  ` SDL_DISABLE `  or  ` SDL_ENABLE ` ,  representing  the  processing  state 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           of  the  event  before  this  function  makes  any  changes  to  it . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2022-11-10 08:55:32 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_GetEventState 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  Uint8  SDLCALL  SDL_EventState ( Uint32  type ,  int  state ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* @} */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# define SDL_GetEventState(type) SDL_EventState(type, SDL_QUERY) 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/**
  
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  Allocate  a  set  of  user - defined  events ,  and  return  the  beginning  event 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  number  for  that  set  of  events . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Calling  this  function  with  ` numevents `  < =  0  is  an  error  and  will  return 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  ( Uint32 ) - 1. 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  Note ,  ( Uint32 ) - 1  means  the  maximum  unsigned  32 - bit  integer  value  ( or 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  0xFFFFFFFF ) ,  but  is  clearer  to  write . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ param  numevents  the  number  of  events  to  be  allocated 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ returns  the  beginning  event  number ,  or  ( Uint32 ) - 1  if  there  are  not  enough 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *           user - defined  events  left . 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								 *  \ since  This  function  is  available  since  SDL  2.0 .0 . 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 * 
							 
						 
					
						
							
								
									
										
										
										
											2021-09-08 00:49:10 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								 *  \ sa  SDL_PushEvent 
							 
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								 */ 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								extern  DECLSPEC  Uint32  SDLCALL  SDL_RegisterEvents ( int  numevents ) ;  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* Ends C function definitions when using C++ */  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# ifdef __cplusplus 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								}  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# endif 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								# include  "close_code.h" 
  
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
									
										
										
										
											2020-02-03 03:53:31 +00:00 
										
									 
								 
							 
							
								
									
										 
								
							 
							
								 
							
							
								# endif  /* SDL_events_h_ */ 
  
						 
					
						
							
								
									
										
										
										
											2019-09-09 07:01:26 +00:00 
										
									 
								 
							 
							
								
							 
							
								 
							
							
								
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							
							
								/* vi: set ts=4 sw=4 expandtab: */