SDL3 Events.
This commit is contained in:
@@ -1453,7 +1453,8 @@ void luaCallInit() {
|
||||
|
||||
|
||||
void luaCallUpdate() {
|
||||
#if defined PLATFORM_DESKTOP_SDL2 && defined LUA_EVENTS
|
||||
// #if defined PLATFORM_DESKTOP_SDL2 && defined LUA_EVENTS
|
||||
#if ( defined PLATFORM_DESKTOP_SDL2 || defined PLATFORM_DESKTOP_SDL3 ) && defined LUA_EVENTS
|
||||
platformSendEvents();
|
||||
#endif
|
||||
lua_State* L = state->luaState;
|
||||
|
||||
@@ -161,377 +161,378 @@ static void platformSendEvents() {
|
||||
|
||||
Event occurs whenever a user presses or releases a button on a keyboard. Type SDL_KEYUP or SDL_KEYDOWN
|
||||
*/
|
||||
case SDL_KEYUP:
|
||||
case SDL_KEYDOWN:
|
||||
{
|
||||
lua_createtable( L, 7, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.key.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.key.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
lua_pushinteger( L, event.key.repeat );
|
||||
lua_setfield( L, -2, "repeating" ); /* repeat is Lua keyword. */
|
||||
lua_pushinteger( L, event.key.keysym.scancode );
|
||||
lua_setfield( L, -2, "scancode" );
|
||||
lua_pushinteger( L, event.key.keysym.sym );
|
||||
lua_setfield( L, -2, "sym" );
|
||||
lua_pushinteger( L, event.key.keysym.mod );
|
||||
lua_setfield( L, -2, "mod" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_KEYUP:
|
||||
case SDL_KEYDOWN:
|
||||
{
|
||||
lua_createtable( L, 7, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.key.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.key.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
lua_pushinteger( L, event.key.repeat );
|
||||
lua_setfield( L, -2, "repeating" ); /* repeat is Lua keyword. */
|
||||
lua_pushinteger( L, event.key.keysym.scancode );
|
||||
lua_setfield( L, -2, "scancode" );
|
||||
lua_pushinteger( L, event.key.keysym.sym );
|
||||
lua_setfield( L, -2, "sym" );
|
||||
lua_pushinteger( L, event.key.keysym.mod );
|
||||
lua_setfield( L, -2, "mod" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_WindowEvent = { int type, int timestamp, int event, int data1, int data2 }
|
||||
|
||||
Event occurs when an event of type SDL_WINDOWEVENT is reported. Type SDL_WINDOWEVENT
|
||||
*/
|
||||
case SDL_WINDOWEVENT:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.window.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.window.event );
|
||||
lua_setfield( L, -2, "event" );
|
||||
lua_pushinteger( L, event.window.data1 );
|
||||
lua_setfield( L, -2, "data1" );
|
||||
lua_pushinteger( L, event.window.data2 );
|
||||
lua_setfield( L, -2, "data2" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_WINDOWEVENT:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.window.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.window.event );
|
||||
lua_setfield( L, -2, "event" );
|
||||
lua_pushinteger( L, event.window.data1 );
|
||||
lua_setfield( L, -2, "data1" );
|
||||
lua_pushinteger( L, event.window.data2 );
|
||||
lua_setfield( L, -2, "data2" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_MouseMotionEvent = { int type, int timestamp, int which, int state, int x, int y, int xrel, int yrel }
|
||||
|
||||
Event occurs whenever a user moves the mouse within the application window or when SDL_WarpMouseInWindow() is called. Type SDL_MOUSEMOTION
|
||||
*/
|
||||
case SDL_MOUSEMOTION:
|
||||
{
|
||||
lua_createtable( L, 8, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.motion.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.motion.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.motion.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
lua_pushinteger( L, event.motion.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushinteger( L, event.motion.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
lua_pushinteger( L, event.motion.xrel );
|
||||
lua_setfield( L, -2, "xrel" );
|
||||
lua_pushinteger( L, event.motion.yrel );
|
||||
lua_setfield( L, -2, "yrel" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_MOUSEMOTION:
|
||||
{
|
||||
lua_createtable( L, 8, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.motion.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.motion.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.motion.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
lua_pushinteger( L, event.motion.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushinteger( L, event.motion.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
lua_pushinteger( L, event.motion.xrel );
|
||||
lua_setfield( L, -2, "xrel" );
|
||||
lua_pushinteger( L, event.motion.yrel );
|
||||
lua_setfield( L, -2, "yrel" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_MouseButtonEvent = { int type, int timestamp, int which, int button, int state, int x, int y }
|
||||
|
||||
Event occurs whenever a user presses or releases a button on a mouse. Type SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP
|
||||
*/
|
||||
case SDL_MOUSEBUTTONDOWN:
|
||||
case SDL_MOUSEBUTTONUP:
|
||||
{
|
||||
lua_createtable( L, 7, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.button.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.button.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.button.button );
|
||||
lua_setfield( L, -2, "button" );
|
||||
lua_pushinteger( L, event.button.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
lua_pushinteger( L, event.button.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushinteger( L, event.button.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_MOUSEBUTTONDOWN:
|
||||
case SDL_MOUSEBUTTONUP:
|
||||
{
|
||||
lua_createtable( L, 7, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.button.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.button.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.button.button );
|
||||
lua_setfield( L, -2, "button" );
|
||||
lua_pushinteger( L, event.button.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
lua_pushinteger( L, event.button.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushinteger( L, event.button.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_MouseWheelEvent = { int type, int timestamp, int which, int x, int y }
|
||||
|
||||
Event occurs whenever a user moves the mouse wheel. Type SDL_MOUSEWHEEL
|
||||
*/
|
||||
case SDL_MOUSEWHEEL:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.wheel.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.wheel.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.wheel.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushinteger( L, event.wheel.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_MOUSEWHEEL:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.wheel.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.wheel.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.wheel.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushinteger( L, event.wheel.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_JoyAxisEvent = { int type, int timestamp, int which, int axis, int value }
|
||||
|
||||
Event occurs whenever a user moves an axis on the joystick. Type SDL_JOYAXISMOTION
|
||||
*/
|
||||
case SDL_JOYAXISMOTION:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jaxis.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jaxis.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jaxis.axis );
|
||||
lua_setfield( L, -2, "axis" );
|
||||
lua_pushinteger( L, event.jaxis.value );
|
||||
lua_setfield( L, -2, "value" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_JOYAXISMOTION:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jaxis.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jaxis.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jaxis.axis );
|
||||
lua_setfield( L, -2, "axis" );
|
||||
lua_pushinteger( L, event.jaxis.value );
|
||||
lua_setfield( L, -2, "value" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_JoyBallEvent = { int type, int timestamp, int which, int ball, int xrel, int yrel }
|
||||
|
||||
Event occurs when a user moves a trackball on the joystick. Type SDL_JOYBALLMOTION
|
||||
*/
|
||||
case SDL_JOYBALLMOTION:
|
||||
{
|
||||
lua_createtable( L, 6, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jball.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jball.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jball.ball );
|
||||
lua_setfield( L, -2, "ball" );
|
||||
lua_pushinteger( L, event.jball.xrel );
|
||||
lua_setfield( L, -2, "xrel" );
|
||||
lua_pushinteger( L, event.jball.yrel );
|
||||
lua_setfield( L, -2, "yrel" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_JOYBALLMOTION:
|
||||
{
|
||||
lua_createtable( L, 6, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jball.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jball.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jball.ball );
|
||||
lua_setfield( L, -2, "ball" );
|
||||
lua_pushinteger( L, event.jball.xrel );
|
||||
lua_setfield( L, -2, "xrel" );
|
||||
lua_pushinteger( L, event.jball.yrel );
|
||||
lua_setfield( L, -2, "yrel" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_JoyHatEvent = { int type, int timestamp, int which, int hat, int value }
|
||||
|
||||
Event occurs whenever a user moves a hat on the joystick. Type SDL_JOYHATMOTION
|
||||
*/
|
||||
case SDL_JOYHATMOTION:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jhat.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jhat.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jhat.hat );
|
||||
lua_setfield( L, -2, "hat" );
|
||||
lua_pushinteger( L, event.jhat.value );
|
||||
lua_setfield( L, -2, "value" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_JOYHATMOTION:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jhat.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jhat.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jhat.hat );
|
||||
lua_setfield( L, -2, "hat" );
|
||||
lua_pushinteger( L, event.jhat.value );
|
||||
lua_setfield( L, -2, "value" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_JoyButtonEvent = { int type, int timestamp, int which, int button, int state }
|
||||
|
||||
Event occurs whenever a user presses or releases a button on a joystick. Type SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP
|
||||
*/
|
||||
case SDL_JOYBUTTONDOWN:
|
||||
case SDL_JOYBUTTONUP:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jbutton.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jbutton.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jbutton.button );
|
||||
lua_setfield( L, -2, "button" );
|
||||
lua_pushinteger( L, event.jbutton.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_JOYBUTTONDOWN:
|
||||
case SDL_JOYBUTTONUP:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jbutton.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jbutton.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.jbutton.button );
|
||||
lua_setfield( L, -2, "button" );
|
||||
lua_pushinteger( L, event.jbutton.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_JoyDeviceEvent = { int type, int timestamp, int which }
|
||||
|
||||
Event occurs whenever a user connects or disconnects a joystick. Type SDL_JOYDEVICEADDED or SDL_JOYDEVICEREMOVED
|
||||
*/
|
||||
case SDL_JOYDEVICEADDED:
|
||||
case SDL_JOYDEVICEREMOVED:
|
||||
{
|
||||
lua_createtable( L, 3, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jdevice.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jdevice.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_JOYDEVICEADDED:
|
||||
case SDL_JOYDEVICEREMOVED:
|
||||
{
|
||||
lua_createtable( L, 3, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.jdevice.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.jdevice.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_ControllerAxisEvent = { int type, int timestamp, int which, int axis, int value }
|
||||
|
||||
Event occurs whenever a user moves an axis on the controller. Type SDL_CONTROLLERAXISMOTION
|
||||
*/
|
||||
case SDL_CONTROLLERAXISMOTION:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.caxis.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.caxis.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.caxis.axis );
|
||||
lua_setfield( L, -2, "axis" );
|
||||
lua_pushinteger( L, event.caxis.value );
|
||||
lua_setfield( L, -2, "value" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_CONTROLLERAXISMOTION:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.caxis.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.caxis.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.caxis.axis );
|
||||
lua_setfield( L, -2, "axis" );
|
||||
lua_pushinteger( L, event.caxis.value );
|
||||
lua_setfield( L, -2, "value" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_ControllerButtonEvent = { int type, int timestamp, int which, int button, int state }
|
||||
|
||||
Event occurs whenever a user presses or releases a button on a controller. Type SDL_CONTROLLERBUTTONDOWN or SDL_CONTROLLERBUTTONUP
|
||||
*/
|
||||
case SDL_CONTROLLERBUTTONDOWN:
|
||||
case SDL_CONTROLLERBUTTONUP:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.cbutton.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.cbutton.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.cbutton.button );
|
||||
lua_setfield( L, -2, "button" );
|
||||
lua_pushinteger( L, event.cbutton.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_CONTROLLERBUTTONDOWN:
|
||||
case SDL_CONTROLLERBUTTONUP:
|
||||
{
|
||||
lua_createtable( L, 5, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.cbutton.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.cbutton.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
lua_pushinteger( L, event.cbutton.button );
|
||||
lua_setfield( L, -2, "button" );
|
||||
lua_pushinteger( L, event.cbutton.state );
|
||||
lua_setfield( L, -2, "state" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_ControllerDeviceEvent = { int type, int timestamp, int which }
|
||||
|
||||
Event occurs whenever a user connects, disconnects or remaps a controller. Type SDL_CONTROLLERDEVICEADDED, SDL_CONTROLLERDEVICEREMOVED or SDL_CONTROLLERDEVICEREMAPPED
|
||||
*/
|
||||
case SDL_CONTROLLERDEVICEADDED:
|
||||
case SDL_CONTROLLERDEVICEREMOVED:
|
||||
case SDL_CONTROLLERDEVICEREMAPPED:
|
||||
{
|
||||
lua_createtable( L, 3, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.cdevice.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.cdevice.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_CONTROLLERDEVICEADDED:
|
||||
case SDL_CONTROLLERDEVICEREMOVED:
|
||||
case SDL_CONTROLLERDEVICEREMAPPED:
|
||||
{
|
||||
lua_createtable( L, 3, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.cdevice.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.cdevice.which );
|
||||
lua_setfield( L, -2, "which" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_TouchFingerEvent = { int type, int timestamp, int touchId, int fingerId, float x, float y, float dx, float dy, float pressure }
|
||||
|
||||
Event occurs when an event of type SDL_FINGERMOTION, SDL_FINGERDOWN, or SDL_FINGERUP is reported. Type SDL_FINGERMOTION, SDL_FINGERDOWN or SDL_FINGERUP
|
||||
*/
|
||||
case SDL_FINGERMOTION:
|
||||
case SDL_FINGERDOWN:
|
||||
case SDL_FINGERUP:
|
||||
{
|
||||
lua_createtable( L, 9, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.tfinger.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.tfinger.touchId );
|
||||
lua_setfield( L, -2, "touchId" );
|
||||
lua_pushinteger( L, event.tfinger.fingerId );
|
||||
lua_setfield( L, -2, "fingerId" );
|
||||
lua_pushnumber( L, event.tfinger.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushnumber( L, event.tfinger.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
lua_pushnumber( L, event.tfinger.dx );
|
||||
lua_setfield( L, -2, "dx" );
|
||||
lua_pushnumber( L, event.tfinger.dy );
|
||||
lua_setfield( L, -2, "dy" );
|
||||
lua_pushnumber( L, event.tfinger.pressure );
|
||||
lua_setfield( L, -2, "pressure" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_FINGERMOTION:
|
||||
case SDL_FINGERDOWN:
|
||||
case SDL_FINGERUP:
|
||||
{
|
||||
lua_createtable( L, 9, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.tfinger.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.tfinger.touchId );
|
||||
lua_setfield( L, -2, "touchId" );
|
||||
lua_pushinteger( L, event.tfinger.fingerId );
|
||||
lua_setfield( L, -2, "fingerId" );
|
||||
lua_pushnumber( L, event.tfinger.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushnumber( L, event.tfinger.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
lua_pushnumber( L, event.tfinger.dx );
|
||||
lua_setfield( L, -2, "dx" );
|
||||
lua_pushnumber( L, event.tfinger.dy );
|
||||
lua_setfield( L, -2, "dy" );
|
||||
lua_pushnumber( L, event.tfinger.pressure );
|
||||
lua_setfield( L, -2, "pressure" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_MultiGestureEvent = { int type, int timestamp, int touchId, float dTheta, float dDist, float x, float y, int numFingers }
|
||||
|
||||
Event occurs when type SDL_MULTIGESTURE is reported. Type SDL_MULTIGESTURE
|
||||
*/
|
||||
case SDL_MULTIGESTURE:
|
||||
{
|
||||
lua_createtable( L, 8, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.mgesture.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.mgesture.touchId );
|
||||
lua_setfield( L, -2, "touchId" );
|
||||
lua_pushnumber( L, event.mgesture.dTheta );
|
||||
lua_setfield( L, -2, "dTheta" );
|
||||
lua_pushnumber( L, event.mgesture.dDist );
|
||||
lua_setfield( L, -2, "dDist" );
|
||||
lua_pushnumber( L, event.mgesture.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushnumber( L, event.mgesture.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
lua_pushinteger( L, event.mgesture.numFingers );
|
||||
lua_setfield( L, -2, "numFingers" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
case SDL_MULTIGESTURE:
|
||||
{
|
||||
lua_createtable( L, 8, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.mgesture.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.mgesture.touchId );
|
||||
lua_setfield( L, -2, "touchId" );
|
||||
lua_pushnumber( L, event.mgesture.dTheta );
|
||||
lua_setfield( L, -2, "dTheta" );
|
||||
lua_pushnumber( L, event.mgesture.dDist );
|
||||
lua_setfield( L, -2, "dDist" );
|
||||
lua_pushnumber( L, event.mgesture.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushnumber( L, event.mgesture.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
lua_pushinteger( L, event.mgesture.numFingers );
|
||||
lua_setfield( L, -2, "numFingers" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/*
|
||||
> SDL_DollarGestureEvent = { int type, int timestamp, int touchId, int gestureId, int numFingers, float error, float x, float y }
|
||||
|
||||
Event occurs an event of type SDL_DOLLARGESTURE or SDL_DOLLARRECORD is reported. Type SDL_DOLLARGESTURE or SDL_DOLLARRECORD
|
||||
*/
|
||||
case SDL_DOLLARGESTURE:
|
||||
case SDL_DOLLARRECORD:
|
||||
{
|
||||
lua_createtable( L, 8, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.dgesture.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.dgesture.touchId );
|
||||
lua_setfield( L, -2, "touchId" );
|
||||
lua_pushinteger( L, event.dgesture.gestureId );
|
||||
lua_setfield( L, -2, "gestureId" );
|
||||
lua_pushinteger( L, event.dgesture.numFingers );
|
||||
lua_setfield( L, -2, "numFingers" );
|
||||
lua_pushnumber( L, event.dgesture.error );
|
||||
lua_setfield( L, -2, "error" );
|
||||
lua_pushnumber( L, event.dgesture.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushnumber( L, event.dgesture.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
case SDL_DOLLARGESTURE:
|
||||
case SDL_DOLLARRECORD:
|
||||
{
|
||||
lua_createtable( L, 8, 0 );
|
||||
lua_pushinteger( L, event.type );
|
||||
lua_setfield( L, -2, "type" );
|
||||
lua_pushinteger( L, event.dgesture.timestamp );
|
||||
lua_setfield( L, -2, "timestamp" );
|
||||
lua_pushinteger( L, event.dgesture.touchId );
|
||||
lua_setfield( L, -2, "touchId" );
|
||||
lua_pushinteger( L, event.dgesture.gestureId );
|
||||
lua_setfield( L, -2, "gestureId" );
|
||||
lua_pushinteger( L, event.dgesture.numFingers );
|
||||
lua_setfield( L, -2, "numFingers" );
|
||||
lua_pushnumber( L, event.dgesture.error );
|
||||
lua_setfield( L, -2, "error" );
|
||||
lua_pushnumber( L, event.dgesture.x );
|
||||
lua_setfield( L, -2, "x" );
|
||||
lua_pushnumber( L, event.dgesture.y );
|
||||
lua_setfield( L, -2, "y" );
|
||||
call = true;
|
||||
}
|
||||
break;
|
||||
/* End of events. */
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if ( call ) {
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -18,6 +18,11 @@ bool stateInit( int argn, const char** argc, const char* basePath ) {
|
||||
state->mouseOffset = (Vector2){ 0, 0 };
|
||||
state->mouseScale = (Vector2){ 1, 1 };
|
||||
|
||||
#if defined PLATFORM_DESKTOP_SDL2 || defined PLATFORM_DESKTOP_SDL3
|
||||
state->SDL_eventQueue = malloc( PLATFORM_SDL_EVENT_QUEUE_LEN * sizeof( SDL_Event ) );
|
||||
state->SDL_eventQueueLen = 0;
|
||||
#endif
|
||||
|
||||
return state->run;
|
||||
}
|
||||
|
||||
@@ -29,10 +34,6 @@ void stateContextInit() {
|
||||
state->defaultTexture = (Texture){ 1, 1, 1, 1, 7 };
|
||||
state->shapesTexture = (Texture){ 1, 1, 1, 1, 7 };
|
||||
state->RLGLcurrentShaderLocs = malloc( RL_MAX_SHADER_LOCATIONS * sizeof( int ) );
|
||||
#ifdef PLATFORM_DESKTOP_SDL2
|
||||
state->SDL_eventQueue = malloc( PLATFORM_SDL_EVENT_QUEUE_LEN * sizeof( SDL_Event ) );
|
||||
state->SDL_eventQueueLen = 0;
|
||||
#endif
|
||||
int* defaultShaderLocs = rlGetShaderLocsDefault();
|
||||
|
||||
for ( int i = 0; i < RL_MAX_SHADER_LOCATIONS; i++ ) {
|
||||
|
||||
Reference in New Issue
Block a user