update RGFW (rename joystick to gamepad to avoid misunderstandings
This commit is contained in:
parent
3729901903
commit
0e2c219741
270
src/external/RGFW.h
vendored
270
src/external/RGFW.h
vendored
|
|
@ -345,12 +345,12 @@ typedef RGFW_ENUM(u8, RGFW_event_types) {
|
||||||
|
|
||||||
RGFW_Event.button holds which mouse button was pressed
|
RGFW_Event.button holds which mouse button was pressed
|
||||||
*/
|
*/
|
||||||
RGFW_jsButtonPressed, /*!< a joystick button was pressed */
|
RGFW_gpButtonPressed, /*!< a gamepad button was pressed */
|
||||||
RGFW_jsButtonReleased, /*!< a joystick button was released */
|
RGFW_gpButtonReleased, /*!< a gamepad button was released */
|
||||||
RGFW_jsAxisMove, /*!< an axis of a joystick was moved*/
|
RGFW_gpAxisMove, /*!< an axis of a gamepad was moved*/
|
||||||
/*! joystick event note
|
/*! gamepad event note
|
||||||
RGFW_Event.joystick holds which joystick was altered, if any
|
RGFW_Event.gamepad holds which gamepad was altered, if any
|
||||||
RGFW_Event.button holds which joystick button was pressed
|
RGFW_Event.button holds which gamepad button was pressed
|
||||||
|
|
||||||
RGFW_Event.axis holds the data of all the axis
|
RGFW_Event.axis holds the data of all the axis
|
||||||
RGFW_Event.axisCount says how many axis there are
|
RGFW_Event.axisCount says how many axis there are
|
||||||
|
|
@ -399,26 +399,26 @@ typedef RGFW_ENUM(u8, RGFW_event_types) {
|
||||||
#define RGFW_CAPSLOCK (1L << 1)
|
#define RGFW_CAPSLOCK (1L << 1)
|
||||||
#define RGFW_NUMLOCK (1L << 2)
|
#define RGFW_NUMLOCK (1L << 2)
|
||||||
|
|
||||||
/*! joystick button codes (based on xbox/playstation), you may need to change these values per controller */
|
/*! gamepad button codes (based on xbox/playstation), you may need to change these values per controller */
|
||||||
#ifndef RGFW_joystick_codes
|
#ifndef RGFW_gamepad_codes
|
||||||
typedef RGFW_ENUM(u8, RGFW_joystick_codes) {
|
typedef RGFW_ENUM(u8, RGFW_gamepad_codes) {
|
||||||
RGFW_JS_A = 0, /*!< or PS X button */
|
RGFW_GP_A = 0, /*!< or PS X button */
|
||||||
RGFW_JS_B = 1, /*!< or PS circle button */
|
RGFW_GP_B = 1, /*!< or PS circle button */
|
||||||
RGFW_JS_Y = 2, /*!< or PS triangle button */
|
RGFW_GP_Y = 2, /*!< or PS triangle button */
|
||||||
RGFW_JS_X = 3, /*!< or PS square button */
|
RGFW_GP_X = 3, /*!< or PS square button */
|
||||||
RGFW_JS_START = 9, /*!< start button */
|
RGFW_GP_START = 9, /*!< start button */
|
||||||
RGFW_JS_SELECT = 8, /*!< select button */
|
RGFW_GP_SELECT = 8, /*!< select button */
|
||||||
RGFW_JS_HOME = 10, /*!< home button */
|
RGFW_GP_HOME = 10, /*!< home button */
|
||||||
RGFW_JS_UP = 13, /*!< dpad up */
|
RGFW_GP_UP = 13, /*!< dpad up */
|
||||||
RGFW_JS_DOWN = 14, /*!< dpad down*/
|
RGFW_GP_DOWN = 14, /*!< dpad down*/
|
||||||
RGFW_JS_LEFT = 15, /*!< dpad left */
|
RGFW_GP_LEFT = 15, /*!< dpad left */
|
||||||
RGFW_JS_RIGHT = 16, /*!< dpad right */
|
RGFW_GP_RIGHT = 16, /*!< dpad right */
|
||||||
RGFW_JS_L1 = 4, /*!< left bump */
|
RGFW_GP_L1 = 4, /*!< left bump */
|
||||||
RGFW_JS_L2 = 5, /*!< left trigger*/
|
RGFW_GP_L2 = 5, /*!< left trigger*/
|
||||||
RGFW_JS_R1 = 6, /*!< right bumper */
|
RGFW_GP_R1 = 6, /*!< right bumper */
|
||||||
RGFW_JS_R2 = 7, /*!< right trigger */
|
RGFW_GP_R2 = 7, /*!< right trigger */
|
||||||
RGFW_JS_L3 = 11, /* left thumb stick */
|
RGFW_GP_L3 = 11, /* left thumb stick */
|
||||||
RGFW_JS_R3 = 12 /*!< right thumb stick */
|
RGFW_GP_R3 = 12 /*!< right thumb stick */
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
@ -490,10 +490,10 @@ typedef struct RGFW_Event {
|
||||||
|
|
||||||
u8 lockState;
|
u8 lockState;
|
||||||
|
|
||||||
u8 button; /* !< which mouse (or joystick) button was pressed */
|
u8 button; /* !< which mouse (or gamepad) button was pressed */
|
||||||
double scroll; /*!< the raw mouse scroll value */
|
double scroll; /*!< the raw mouse scroll value */
|
||||||
|
|
||||||
u16 joystick; /*! which joystick this event applies to (if applicable to any) */
|
u16 gamepad; /*! which gamepad this event applies to (if applicable to any) */
|
||||||
u8 axisesCount; /*!< number of axises */
|
u8 axisesCount; /*!< number of axises */
|
||||||
|
|
||||||
u8 whichAxis; /* which axis was effected */
|
u8 whichAxis; /* which axis was effected */
|
||||||
|
|
@ -876,10 +876,10 @@ typedef void (* RGFW_windowrefreshfunc)(RGFW_window* win);
|
||||||
typedef void (* RGFW_keyfunc)(RGFW_window* win, u32 keycode, char keyName[16], u8 lockState, b8 pressed);
|
typedef void (* RGFW_keyfunc)(RGFW_window* win, u32 keycode, char keyName[16], u8 lockState, b8 pressed);
|
||||||
/*! RGFW_mouseButtonPressed / RGFW_mouseButtonReleased, the window that got the event, the button that was pressed, the scroll value, if it was a press (else it's a release) */
|
/*! RGFW_mouseButtonPressed / RGFW_mouseButtonReleased, the window that got the event, the button that was pressed, the scroll value, if it was a press (else it's a release) */
|
||||||
typedef void (* RGFW_mousebuttonfunc)(RGFW_window* win, u8 button, double scroll, b8 pressed);
|
typedef void (* RGFW_mousebuttonfunc)(RGFW_window* win, u8 button, double scroll, b8 pressed);
|
||||||
/*! RGFW_jsButtonPressed / RGFW_jsButtonReleased, the window that got the event, the button that was pressed, the scroll value, if it was a press (else it's a release) */
|
/*!gp /gp, the window that got the event, the button that was pressed, the scroll value, if it was a press (else it's a release) */
|
||||||
typedef void (* RGFW_jsButtonfunc)(RGFW_window* win, u16 joystick, u8 button, b8 pressed);
|
typedef void (* RGFW_gpButtonfunc)(RGFW_window* win, u16 gamepad, u8 button, b8 pressed);
|
||||||
/*! RGFW_jsAxisMove, the window that got the event, the joystick in question, the axis values and the amount of axises */
|
/*! RGFW_gpAxisMove, the window that got the event, the gamepad in question, the axis values and the amount of axises */
|
||||||
typedef void (* RGFW_jsAxisfunc)(RGFW_window* win, u16 joystick, RGFW_point axis[2], u8 axisesCount);
|
typedef void (* RGFW_gpAxisfunc)(RGFW_window* win, u16 gamepad, RGFW_point axis[2], u8 axisesCount);
|
||||||
|
|
||||||
|
|
||||||
/*! RGFW_dnd, the window that had the drop, the drop data and the amount files dropped returns previous callback function (if it was set) */
|
/*! RGFW_dnd, the window that had the drop, the drop data and the amount files dropped returns previous callback function (if it was set) */
|
||||||
|
|
@ -911,9 +911,9 @@ RGFWDEF RGFW_keyfunc RGFW_setKeyCallback(RGFW_keyfunc func);
|
||||||
/*! set callback for a mouse button (press / release ) event returns previous callback function (if it was set) */
|
/*! set callback for a mouse button (press / release ) event returns previous callback function (if it was set) */
|
||||||
RGFWDEF RGFW_mousebuttonfunc RGFW_setMouseButtonCallback(RGFW_mousebuttonfunc func);
|
RGFWDEF RGFW_mousebuttonfunc RGFW_setMouseButtonCallback(RGFW_mousebuttonfunc func);
|
||||||
/*! set callback for a controller button (press / release ) event returns previous callback function (if it was set) */
|
/*! set callback for a controller button (press / release ) event returns previous callback function (if it was set) */
|
||||||
RGFWDEF RGFW_jsButtonfunc RGFW_setjsButtonCallback(RGFW_jsButtonfunc func);
|
RGFWDEF RGFW_gpButtonfunc RGFW_setgpButtonCallback(RGFW_gpButtonfunc func);
|
||||||
/*! set callback for a joystick axis mov event returns previous callback function (if it was set) */
|
/*! set callback for a gamepad axis mov event returns previous callback function (if it was set) */
|
||||||
RGFWDEF RGFW_jsAxisfunc RGFW_setjsAxisCallback(RGFW_jsAxisfunc func);
|
RGFWDEF RGFW_gpAxisfunc RGFW_setgpAxisCallback(RGFW_gpAxisfunc func);
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
@ -944,15 +944,15 @@ RGFWDEF RGFW_jsAxisfunc RGFW_setjsAxisCallback(RGFW_jsAxisfunc func);
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
/** * @defgroup joystick
|
/** * @defgroup gamepad
|
||||||
* @{ */
|
* @{ */
|
||||||
|
|
||||||
/*! joystick count starts at 0*/
|
/*! gamepad count starts at 0*/
|
||||||
/*!< register joystick to window based on a number (the number is based on when it was connected eg. /dev/js0)*/
|
/*!< register gamepad to window based on a number (the number is based on when it was connected eg. /dev/js0)*/
|
||||||
RGFWDEF u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber);
|
RGFWDEF u16 RGFW_registerGamepad(RGFW_window* win, i32 gpNumber);
|
||||||
RGFWDEF u16 RGFW_registerJoystickF(RGFW_window* win, char* file);
|
RGFWDEF u16 RGFW_registerGamepadF(RGFW_window* win, char* file);
|
||||||
|
|
||||||
RGFWDEF u32 RGFW_isPressedJS(RGFW_window* win, u16 controller, u8 button);
|
RGFWDEF u32 RGFW_isPressedGP(RGFW_window* win, u16 controller, u8 button);
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
|
|
@ -1449,11 +1449,11 @@ char RGFW_keyCodeToCharAuto(u32 keycode, u8 lockState) { return RGFW_keyCodeToCh
|
||||||
this is the end of keycode data
|
this is the end of keycode data
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* joystick data */
|
/* gamepad data */
|
||||||
u8 RGFW_jsPressed[4][16]; /*!< if a key is currently pressed or not (per joystick) */
|
u8 RGFW_gpPressed[4][16]; /*!< if a key is currently pressed or not (per gamepad) */
|
||||||
|
|
||||||
i32 RGFW_joysticks[4]; /*!< limit of 4 joysticks at a time */
|
i32 RGFW_gamepads[4]; /*!< limit of 4 gamepads at a time */
|
||||||
u16 RGFW_joystickCount; /*!< the actual amount of joysticks */
|
u16 RGFW_gamepadCount; /*!< the actual amount of gamepads */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
event callback defines start here
|
event callback defines start here
|
||||||
|
|
@ -1475,8 +1475,8 @@ void RGFW_dndInitfuncEMPTY(RGFW_window* win, RGFW_point point) {RGFW_UNUSED(win)
|
||||||
void RGFW_windowrefreshfuncEMPTY(RGFW_window* win) {RGFW_UNUSED(win); }
|
void RGFW_windowrefreshfuncEMPTY(RGFW_window* win) {RGFW_UNUSED(win); }
|
||||||
void RGFW_keyfuncEMPTY(RGFW_window* win, u32 keycode, char keyName[16], u8 lockState, b8 pressed) {RGFW_UNUSED(win); RGFW_UNUSED(keycode); RGFW_UNUSED(keyName); RGFW_UNUSED(lockState); RGFW_UNUSED(pressed);}
|
void RGFW_keyfuncEMPTY(RGFW_window* win, u32 keycode, char keyName[16], u8 lockState, b8 pressed) {RGFW_UNUSED(win); RGFW_UNUSED(keycode); RGFW_UNUSED(keyName); RGFW_UNUSED(lockState); RGFW_UNUSED(pressed);}
|
||||||
void RGFW_mousebuttonfuncEMPTY(RGFW_window* win, u8 button, double scroll, b8 pressed) {RGFW_UNUSED(win); RGFW_UNUSED(button); RGFW_UNUSED(scroll); RGFW_UNUSED(pressed);}
|
void RGFW_mousebuttonfuncEMPTY(RGFW_window* win, u8 button, double scroll, b8 pressed) {RGFW_UNUSED(win); RGFW_UNUSED(button); RGFW_UNUSED(scroll); RGFW_UNUSED(pressed);}
|
||||||
void RGFW_jsButtonfuncEMPTY(RGFW_window* win, u16 joystick, u8 button, b8 pressed){RGFW_UNUSED(win); RGFW_UNUSED(joystick); RGFW_UNUSED(button); RGFW_UNUSED(pressed); }
|
void RGFW_gpButtonfuncEMPTY(RGFW_window* win, u16 gamepad, u8 button, b8 pressed){RGFW_UNUSED(win); RGFW_UNUSED(gamepad); RGFW_UNUSED(button); RGFW_UNUSED(pressed); }
|
||||||
void RGFW_jsAxisfuncEMPTY(RGFW_window* win, u16 joystick, RGFW_point axis[2], u8 axisesCount){RGFW_UNUSED(win); RGFW_UNUSED(joystick); RGFW_UNUSED(axis); RGFW_UNUSED(axisesCount); }
|
void RGFW_gpAxisfuncEMPTY(RGFW_window* win, u16 gamepad, RGFW_point axis[2], u8 axisesCount){RGFW_UNUSED(win); RGFW_UNUSED(gamepad); RGFW_UNUSED(axis); RGFW_UNUSED(axisesCount); }
|
||||||
|
|
||||||
#ifdef RGFW_ALLOC_DROPFILES
|
#ifdef RGFW_ALLOC_DROPFILES
|
||||||
void RGFW_dndfuncEMPTY(RGFW_window* win, char** droppedFiles, u32 droppedFilesCount) {RGFW_UNUSED(win); RGFW_UNUSED(droppedFiles); RGFW_UNUSED(droppedFilesCount);}
|
void RGFW_dndfuncEMPTY(RGFW_window* win, char** droppedFiles, u32 droppedFilesCount) {RGFW_UNUSED(win); RGFW_UNUSED(droppedFiles); RGFW_UNUSED(droppedFilesCount);}
|
||||||
|
|
@ -1495,8 +1495,8 @@ RGFW_dndfunc RGFW_dndCallback = RGFW_dndfuncEMPTY;
|
||||||
RGFW_dndInitfunc RGFW_dndInitCallback = RGFW_dndInitfuncEMPTY;
|
RGFW_dndInitfunc RGFW_dndInitCallback = RGFW_dndInitfuncEMPTY;
|
||||||
RGFW_keyfunc RGFW_keyCallback = RGFW_keyfuncEMPTY;
|
RGFW_keyfunc RGFW_keyCallback = RGFW_keyfuncEMPTY;
|
||||||
RGFW_mousebuttonfunc RGFW_mouseButtonCallback = RGFW_mousebuttonfuncEMPTY;
|
RGFW_mousebuttonfunc RGFW_mouseButtonCallback = RGFW_mousebuttonfuncEMPTY;
|
||||||
RGFW_jsButtonfunc RGFW_jsButtonCallback = RGFW_jsButtonfuncEMPTY;
|
RGFW_gpButtonfunc RGFW_gpButtonCallback = RGFW_gpButtonfuncEMPTY;
|
||||||
RGFW_jsAxisfunc RGFW_jsAxisCallback = RGFW_jsAxisfuncEMPTY;
|
RGFW_gpAxisfunc RGFW_gpAxisCallback = RGFW_gpAxisfuncEMPTY;
|
||||||
|
|
||||||
void RGFW_window_checkEvents(RGFW_window* win, i32 waitMS) {
|
void RGFW_window_checkEvents(RGFW_window* win, i32 waitMS) {
|
||||||
RGFW_window_eventWait(win, waitMS);
|
RGFW_window_eventWait(win, waitMS);
|
||||||
|
|
@ -1567,14 +1567,14 @@ RGFW_mousebuttonfunc RGFW_setMouseButtonCallback(RGFW_mousebuttonfunc func) {
|
||||||
RGFW_mouseButtonCallback = func;
|
RGFW_mouseButtonCallback = func;
|
||||||
return prev;
|
return prev;
|
||||||
}
|
}
|
||||||
RGFW_jsButtonfunc RGFW_setjsButtonCallback(RGFW_jsButtonfunc func) {
|
RGFW_gpButtonfunc RGFW_setgpButtonCallback(RGFW_gpButtonfunc func) {
|
||||||
RGFW_jsButtonfunc prev = (RGFW_jsButtonCallback == RGFW_jsButtonfuncEMPTY) ? NULL : RGFW_jsButtonCallback;
|
RGFW_gpButtonfunc prev = (RGFW_gpButtonCallback == RGFW_gpButtonfuncEMPTY) ? NULL : RGFW_gpButtonCallback;
|
||||||
RGFW_jsButtonCallback = func;
|
RGFW_gpButtonCallback = func;
|
||||||
return prev;
|
return prev;
|
||||||
}
|
}
|
||||||
RGFW_jsAxisfunc RGFW_setjsAxisCallback(RGFW_jsAxisfunc func) {
|
RGFW_gpAxisfunc RGFW_setgpAxisCallback(RGFW_gpAxisfunc func) {
|
||||||
RGFW_jsAxisfunc prev = (RGFW_jsAxisCallback == RGFW_jsAxisfuncEMPTY) ? NULL : RGFW_jsAxisCallback;
|
RGFW_gpAxisfunc prev = (RGFW_gpAxisCallback == RGFW_gpAxisfuncEMPTY) ? NULL : RGFW_gpAxisCallback;
|
||||||
RGFW_jsAxisCallback = func;
|
RGFW_gpAxisCallback = func;
|
||||||
return prev;
|
return prev;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|
@ -1636,7 +1636,7 @@ RGFW_window* RGFW_window_basic_init(RGFW_rect rect, u16 args) {
|
||||||
win->r = rect;
|
win->r = rect;
|
||||||
win->event.inFocus = 1;
|
win->event.inFocus = 1;
|
||||||
win->event.droppedFilesCount = 0;
|
win->event.droppedFilesCount = 0;
|
||||||
RGFW_joystickCount = 0;
|
RGFW_gamepadCount = 0;
|
||||||
win->_winArgs = 0;
|
win->_winArgs = 0;
|
||||||
win->event.lockState = 0;
|
win->event.lockState = 0;
|
||||||
|
|
||||||
|
|
@ -1815,9 +1815,9 @@ u32 RGFW_window_checkFPS(RGFW_window* win, u32 fpsCap) {
|
||||||
return output_fps;
|
return output_fps;
|
||||||
}
|
}
|
||||||
|
|
||||||
u32 RGFW_isPressedJS(RGFW_window* win, u16 c, u8 button) {
|
u32 RGFW_isPressedGP(RGFW_window* win, u16 c, u8 button) {
|
||||||
RGFW_UNUSED(win);
|
RGFW_UNUSED(win);
|
||||||
return RGFW_jsPressed[c][button];
|
return RGFW_gpPressed[c][button];
|
||||||
}
|
}
|
||||||
|
|
||||||
#if defined(RGFW_X11) || defined(RGFW_WINDOWS)
|
#if defined(RGFW_X11) || defined(RGFW_WINDOWS)
|
||||||
|
|
@ -2275,33 +2275,33 @@ This is where OS specific stuff starts
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
RGFW_Event* RGFW_linux_updateJoystick(RGFW_window* win) {
|
RGFW_Event* RGFW_linux_updateGamepad(RGFW_window* win) {
|
||||||
u8 i;
|
u8 i;
|
||||||
for (i = 0; i < RGFW_joystickCount; i++) {
|
for (i = 0; i < RGFW_gamepadCount; i++) {
|
||||||
struct js_event e;
|
struct js_event e;
|
||||||
|
|
||||||
|
|
||||||
if (RGFW_joysticks[i] == 0)
|
if (RGFW_gamepads[i] == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
i32 flags = fcntl(RGFW_joysticks[i], F_GETFL, 0);
|
i32 flags = fcntl(RGFW_gamepads[i], F_GETFL, 0);
|
||||||
fcntl(RGFW_joysticks[i], F_SETFL, flags | O_NONBLOCK);
|
fcntl(RGFW_gamepads[i], F_SETFL, flags | O_NONBLOCK);
|
||||||
|
|
||||||
ssize_t bytes;
|
ssize_t bytes;
|
||||||
while ((bytes = read(RGFW_joysticks[i], &e, sizeof(e))) > 0) {
|
while ((bytes = read(RGFW_gamepads[i], &e, sizeof(e))) > 0) {
|
||||||
switch (e.type) {
|
switch (e.type) {
|
||||||
case JS_EVENT_BUTTON:
|
case JS_EVENT_BUTTON:
|
||||||
win->event.type = e.value ? RGFW_jsButtonPressed : RGFW_jsButtonReleased;
|
win->event.type = e.value ? RGFW_gpButtonPressed : RGFW_gpButtonReleased;
|
||||||
win->event.button = e.number;
|
win->event.button = e.number;
|
||||||
RGFW_jsPressed[i][e.number + 1] = e.value;
|
RGFW_gpPressed[i][e.number + 1] = e.value;
|
||||||
RGFW_jsButtonCallback(win, i, e.number, e.value);
|
RGFW_gpButtonCallback(win, i, e.number, e.value);
|
||||||
|
|
||||||
return &win->event;
|
return &win->event;
|
||||||
case JS_EVENT_AXIS: {
|
case JS_EVENT_AXIS: {
|
||||||
size_t axis = e.number / 2;
|
size_t axis = e.number / 2;
|
||||||
if (axis == 2) axis = 1;
|
if (axis == 2) axis = 1;
|
||||||
|
|
||||||
ioctl(RGFW_joysticks[i], JSIOCGAXES, &win->event.axisesCount);
|
ioctl(RGFW_gamepads[i], JSIOCGAXES, &win->event.axisesCount);
|
||||||
win->event.axisesCount = 2;
|
win->event.axisesCount = 2;
|
||||||
|
|
||||||
if (axis < 3) {
|
if (axis < 3) {
|
||||||
|
|
@ -2312,10 +2312,10 @@ This is where OS specific stuff starts
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
win->event.type = RGFW_jsAxisMove;
|
win->event.type = RGFW_gpAxisMove;
|
||||||
win->event.joystick = i;
|
win->event.gamepad = i;
|
||||||
win->event.whichAxis = axis;
|
win->event.whichAxis = axis;
|
||||||
RGFW_jsAxisCallback(win, i, win->event.axis, win->event.axisesCount);
|
RGFW_gpAxisCallback(win, i, win->event.axis, win->event.axisesCount);
|
||||||
return &win->event;
|
return &win->event;
|
||||||
}
|
}
|
||||||
default: break;
|
default: break;
|
||||||
|
|
@ -2788,7 +2788,7 @@ Start of Linux / Unix defines
|
||||||
win->event.type = 0;
|
win->event.type = 0;
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
RGFW_Event* event = RGFW_linux_updateJoystick(win);
|
RGFW_Event* event = RGFW_linux_updateGamepad(win);
|
||||||
if (event != NULL)
|
if (event != NULL)
|
||||||
return event;
|
return event;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -3965,8 +3965,8 @@ Start of Linux / Unix defines
|
||||||
}
|
}
|
||||||
|
|
||||||
u8 i;
|
u8 i;
|
||||||
for (i = 0; i < RGFW_joystickCount; i++)
|
for (i = 0; i < RGFW_gamepadCount; i++)
|
||||||
close(RGFW_joysticks[i]);
|
close(RGFW_gamepads[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* set cleared display / window to NULL for error checking */
|
/* set cleared display / window to NULL for error checking */
|
||||||
|
|
@ -3989,43 +3989,43 @@ Start of Linux / Unix defines
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <poll.h>
|
#include <poll.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
u16 RGFW_registerJoystickF(RGFW_window* win, char* file) {
|
u16 RGFW_registerGamepadF(RGFW_window* win, char* file) {
|
||||||
assert(win != NULL);
|
assert(win != NULL);
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
|
|
||||||
i32 js = open(file, O_RDONLY);
|
i32 js = open(file, O_RDONLY);
|
||||||
|
|
||||||
if (js && RGFW_joystickCount < 4) {
|
if (js && RGFW_gamepadCount < 4) {
|
||||||
RGFW_joystickCount++;
|
RGFW_gamepadCount++;
|
||||||
|
|
||||||
RGFW_joysticks[RGFW_joystickCount - 1] = open(file, O_RDONLY);
|
RGFW_gamepads[RGFW_gamepadCount - 1] = open(file, O_RDONLY);
|
||||||
|
|
||||||
u8 i;
|
u8 i;
|
||||||
for (i = 0; i < 16; i++)
|
for (i = 0; i < 16; i++)
|
||||||
RGFW_jsPressed[RGFW_joystickCount - 1][i] = 0;
|
RGFW_gpPressed[RGFW_gamepadCount - 1][i] = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
else {
|
else {
|
||||||
#ifdef RGFW_PRINT_ERRORS
|
#ifdef RGFW_PRINT_ERRORS
|
||||||
RGFW_error = 1;
|
RGFW_error = 1;
|
||||||
fprintf(stderr, "Error RGFW_registerJoystickF : Cannot open file %s\n", file);
|
fprintf(stderr, "Error RGFW_registerGamepadF : Cannot open file %s\n", file);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return RGFW_joystickCount - 1;
|
return RGFW_gamepadCount - 1;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) {
|
u16 RGFW_registerGamepad(RGFW_window* win, i32 gpNumber) {
|
||||||
assert(win != NULL);
|
assert(win != NULL);
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
char file[15];
|
char file[15];
|
||||||
sprintf(file, "/dev/input/js%i", jsNumber);
|
sprintf(file, "/dev/input/js%i", gpNumber);
|
||||||
|
|
||||||
return RGFW_registerJoystickF(win, file);
|
return RGFW_registerGamepadF(win, file);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -4061,7 +4061,7 @@ Start of Linux / Unix defines
|
||||||
{ ConnectionNumber(win->src.display), POLLIN, 0 },
|
{ ConnectionNumber(win->src.display), POLLIN, 0 },
|
||||||
#endif
|
#endif
|
||||||
{ RGFW_eventWait_forceStop[0], POLLIN, 0 },
|
{ RGFW_eventWait_forceStop[0], POLLIN, 0 },
|
||||||
#ifdef __linux__ /* blank space for 4 joystick files*/
|
#ifdef __linux__ /* blank space for 4 gamepad files*/
|
||||||
{ -1, POLLIN, 0 }, {-1, POLLIN, 0 }, {-1, POLLIN, 0 }, {-1, POLLIN, 0}
|
{ -1, POLLIN, 0 }, {-1, POLLIN, 0 }, {-1, POLLIN, 0 }, {-1, POLLIN, 0}
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
@ -4069,11 +4069,11 @@ Start of Linux / Unix defines
|
||||||
u8 index = 2;
|
u8 index = 2;
|
||||||
|
|
||||||
#if defined(__linux__)
|
#if defined(__linux__)
|
||||||
for (i = 0; i < RGFW_joystickCount; i++) {
|
for (i = 0; i < RGFW_gamepadCount; i++) {
|
||||||
if (RGFW_joysticks[i] == 0)
|
if (RGFW_gamepads[i] == 0)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
fds[index].fd = RGFW_joysticks[i];
|
fds[index].fd = RGFW_gamepads[i];
|
||||||
index++;
|
index++;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -4759,7 +4759,7 @@ static const struct wl_callback_listener wl_surface_frame_listener = {
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef __linux__
|
#ifdef __linux__
|
||||||
RGFW_Event* event = RGFW_linux_updateJoystick(win);
|
RGFW_Event* event = RGFW_linux_updateGamepad(win);
|
||||||
if (event != NULL)
|
if (event != NULL)
|
||||||
return event;
|
return event;
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -5085,7 +5085,7 @@ static const struct wl_callback_listener wl_surface_frame_listener = {
|
||||||
#define wglGetSwapIntervalEXT wglGetSwapIntervalEXTSrc
|
#define wglGetSwapIntervalEXT wglGetSwapIntervalEXTSrc
|
||||||
|
|
||||||
|
|
||||||
void* RGFWjoystickApi = NULL;
|
void* RGFWgamepadApi = NULL;
|
||||||
|
|
||||||
/* these two wgl functions need to be preloaded */
|
/* these two wgl functions need to be preloaded */
|
||||||
typedef HGLRC (WINAPI *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hdc, HGLRC hglrc, const int *attribList);
|
typedef HGLRC (WINAPI *PFNWGLCREATECONTEXTATTRIBSARBPROC)(HDC hdc, HGLRC hglrc, const int *attribList);
|
||||||
|
|
@ -5652,23 +5652,23 @@ RGFW_UNUSED(win); /*!< if buffer rendering is not being used */
|
||||||
|
|
||||||
|
|
||||||
u8 RGFW_xinput2RGFW[] = {
|
u8 RGFW_xinput2RGFW[] = {
|
||||||
RGFW_JS_A, /* or PS X button */
|
RGFW_GP_A, /* or PS X button */
|
||||||
RGFW_JS_B, /* or PS circle button */
|
RGFW_GP_B, /* or PS circle button */
|
||||||
RGFW_JS_X, /* or PS square button */
|
RGFW_GP_X, /* or PS square button */
|
||||||
RGFW_JS_Y, /* or PS triangle button */
|
RGFW_GP_Y, /* or PS triangle button */
|
||||||
RGFW_JS_R1, /* right bumper */
|
RGFW_GP_R1, /* right bumper */
|
||||||
RGFW_JS_L1, /* left bump */
|
RGFW_GP_L1, /* left bump */
|
||||||
RGFW_JS_L2, /* left trigger*/
|
RGFW_GP_L2, /* left trigger*/
|
||||||
RGFW_JS_R2, /* right trigger */
|
RGFW_GP_R2, /* right trigger */
|
||||||
0, 0, 0, 0, 0, 0, 0, 0,
|
0, 0, 0, 0, 0, 0, 0, 0,
|
||||||
RGFW_JS_UP, /* dpad up */
|
RGFW_GP_UP, /* dpad up */
|
||||||
RGFW_JS_DOWN, /* dpad down*/
|
RGFW_GP_DOWN, /* dpad down*/
|
||||||
RGFW_JS_LEFT, /* dpad left */
|
RGFW_GP_LEFT, /* dpad left */
|
||||||
RGFW_JS_RIGHT, /* dpad right */
|
RGFW_GP_RIGHT, /* dpad right */
|
||||||
RGFW_JS_START, /* start button */
|
RGFW_GP_START, /* start button */
|
||||||
RGFW_JS_SELECT,/* select button */
|
RGFW_GP_SELECT,/* select button */
|
||||||
RGFW_JS_L3,
|
RGFW_GP_L3,
|
||||||
RGFW_JS_R3,
|
RGFW_GP_R3,
|
||||||
};
|
};
|
||||||
|
|
||||||
static i32 RGFW_checkXInput(RGFW_window* win, RGFW_Event* e) {
|
static i32 RGFW_checkXInput(RGFW_window* win, RGFW_Event* e) {
|
||||||
|
|
@ -5689,10 +5689,10 @@ RGFW_UNUSED(win); /*!< if buffer rendering is not being used */
|
||||||
if (keystroke.VirtualKey > VK_PAD_RTHUMB_PRESS)
|
if (keystroke.VirtualKey > VK_PAD_RTHUMB_PRESS)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
// RGFW_jsButtonPressed + 1 = RGFW_jsButtonReleased
|
//gp + 1 = RGFW_gpButtonReleased
|
||||||
e->type = RGFW_jsButtonPressed + !(keystroke.Flags & XINPUT_KEYSTROKE_KEYDOWN);
|
e->type = RGFW_gpButtonPressed + !(keystroke.Flags & XINPUT_KEYSTROKE_KEYDOWN);
|
||||||
e->button = RGFW_xinput2RGFW[keystroke.VirtualKey - 0x5800];
|
e->button = RGFW_xinput2RGFW[keystroke.VirtualKey - 0x5800];
|
||||||
RGFW_jsPressed[i][e->button] = !(keystroke.Flags & XINPUT_KEYSTROKE_KEYDOWN);
|
RGFW_gpPressed[i][e->button] = !(keystroke.Flags & XINPUT_KEYSTROKE_KEYDOWN);
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
@ -5730,7 +5730,7 @@ RGFW_UNUSED(win); /*!< if buffer rendering is not being used */
|
||||||
if (axis1.x != e->axis[0].x || axis1.y != e->axis[0].y){
|
if (axis1.x != e->axis[0].x || axis1.y != e->axis[0].y){
|
||||||
win->event.whichAxis = 0;
|
win->event.whichAxis = 0;
|
||||||
|
|
||||||
e->type = RGFW_jsAxisMove;
|
e->type = RGFW_gpAxisMove;
|
||||||
|
|
||||||
e->axis[0] = axis1;
|
e->axis[0] = axis1;
|
||||||
|
|
||||||
|
|
@ -5739,7 +5739,7 @@ RGFW_UNUSED(win); /*!< if buffer rendering is not being used */
|
||||||
|
|
||||||
if (axis2.x != e->axis[1].x || axis2.y != e->axis[1].y) {
|
if (axis2.x != e->axis[1].x || axis2.y != e->axis[1].y) {
|
||||||
win->event.whichAxis = 1;
|
win->event.whichAxis = 1;
|
||||||
e->type = RGFW_jsAxisMove;
|
e->type = RGFW_gpAxisMove;
|
||||||
e->axis[1] = axis2;
|
e->axis[1] = axis2;
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
@ -6538,19 +6538,19 @@ RGFW_UNUSED(win); /*!< if buffer rendering is not being used */
|
||||||
CloseClipboard();
|
CloseClipboard();
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) {
|
u16 RGFW_registerGamepad(RGFW_window* win, i32 gpNumber) {
|
||||||
assert(win != NULL);
|
assert(win != NULL);
|
||||||
|
|
||||||
RGFW_UNUSED(jsNumber)
|
RGFW_UNUSED(gpNumber)
|
||||||
|
|
||||||
return RGFW_registerJoystickF(win, (char*) "");
|
return RGFW_registerGamepadF(win, (char*) "");
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 RGFW_registerJoystickF(RGFW_window* win, char* file) {
|
u16 RGFW_registerGamepadF(RGFW_window* win, char* file) {
|
||||||
assert(win != NULL);
|
assert(win != NULL);
|
||||||
RGFW_UNUSED(file)
|
RGFW_UNUSED(file)
|
||||||
|
|
||||||
return RGFW_joystickCount - 1;
|
return RGFW_gamepadCount - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
void RGFW_window_moveMouse(RGFW_window* win, RGFW_point p) {
|
void RGFW_window_moveMouse(RGFW_window* win, RGFW_point p) {
|
||||||
|
|
@ -8148,20 +8148,20 @@ RGFW_UNUSED(win); /*!< if buffer rendering is not being used */
|
||||||
NSPasteBoard_setString(NSPasteboard_generalPasteboard(), text, NSPasteboardTypeString);
|
NSPasteBoard_setString(NSPasteboard_generalPasteboard(), text, NSPasteboardTypeString);
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 RGFW_registerJoystick(RGFW_window* win, i32 jsNumber) {
|
u16 RGFW_registerGamepad(RGFW_window* win, i32 gpNumber) {
|
||||||
RGFW_UNUSED(jsNumber);
|
RGFW_UNUSED(gpNumber);
|
||||||
|
|
||||||
assert(win != NULL);
|
assert(win != NULL);
|
||||||
|
|
||||||
return RGFW_registerJoystickF(win, (char*) "");
|
return RGFW_registerGamepadF(win, (char*) "");
|
||||||
}
|
}
|
||||||
|
|
||||||
u16 RGFW_registerJoystickF(RGFW_window* win, char* file) {
|
u16 RGFW_registerGamepadF(RGFW_window* win, char* file) {
|
||||||
RGFW_UNUSED(file);
|
RGFW_UNUSED(file);
|
||||||
|
|
||||||
assert(win != NULL);
|
assert(win != NULL);
|
||||||
|
|
||||||
return RGFW_joystickCount - 1;
|
return RGFW_gamepadCount - 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef RGFW_OPENGL
|
#ifdef RGFW_OPENGL
|
||||||
|
|
@ -8541,7 +8541,7 @@ EM_BOOL Emscripten_on_gamepad(int eventType, const EmscriptenGamepadEvent *gamep
|
||||||
if (gamepadEvent->index >= 4)
|
if (gamepadEvent->index >= 4)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
RGFW_joysticks[gamepadEvent->index] = gamepadEvent->connected;
|
RGFW_gamepads[gamepadEvent->index] = gamepadEvent->connected;
|
||||||
|
|
||||||
return 1; // The event was consumed by the callback handler
|
return 1; // The event was consumed by the callback handler
|
||||||
}
|
}
|
||||||
|
|
@ -8761,7 +8761,7 @@ RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) {
|
||||||
emscripten_sample_gamepad_data();
|
emscripten_sample_gamepad_data();
|
||||||
/* check gamepads */
|
/* check gamepads */
|
||||||
for (int i = 0; (i < emscripten_get_num_gamepads()) && (i < 4); i++) {
|
for (int i = 0; (i < emscripten_get_num_gamepads()) && (i < 4); i++) {
|
||||||
if (RGFW_joysticks[i] == 0)
|
if (RGFW_gamepads[i] == 0)
|
||||||
continue;
|
continue;
|
||||||
EmscriptenGamepadEvent gamepadState;
|
EmscriptenGamepadEvent gamepadState;
|
||||||
|
|
||||||
|
|
@ -8771,11 +8771,11 @@ RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) {
|
||||||
// Register buttons data for every connected gamepad
|
// Register buttons data for every connected gamepad
|
||||||
for (int j = 0; (j < gamepadState.numButtons) && (j < 16); j++) {
|
for (int j = 0; (j < gamepadState.numButtons) && (j < 16); j++) {
|
||||||
u32 map[] = {
|
u32 map[] = {
|
||||||
RGFW_JS_A, RGFW_JS_B, RGFW_JS_X, RGFW_JS_Y,
|
RGFW_GP_A, RGFW_GP_B, RGFW_GP_X, RGFW_GP_Y,
|
||||||
RGFW_JS_L1, RGFW_JS_R1, RGFW_JS_L2, RGFW_JS_R2,
|
RGFW_GP_L1, RGFW_GP_R1, RGFW_GP_L2, RGFW_GP_R2,
|
||||||
RGFW_JS_SELECT, RGFW_JS_START,
|
RGFW_GP_SELECT, RGFW_GP_START,
|
||||||
RGFW_JS_L3, RGFW_JS_R3,
|
RGFW_GP_L3, RGFW_GP_R3,
|
||||||
RGFW_JS_UP, RGFW_JS_DOWN, RGFW_JS_LEFT, RGFW_JS_RIGHT
|
RGFW_GP_UP, RGFW_GP_DOWN, RGFW_GP_LEFT, RGFW_GP_RIGHT
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -8783,15 +8783,15 @@ RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) {
|
||||||
if (button == 404)
|
if (button == 404)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (RGFW_jsPressed[i][button] != gamepadState.digitalButton[j]) {
|
if (RGFW_gpPressed[i][button] != gamepadState.digitalButton[j]) {
|
||||||
if (gamepadState.digitalButton[j])
|
if (gamepadState.digitalButton[j])
|
||||||
win->event.type = RGFW_jsButtonPressed;
|
win->event.type = RGFW_gpButtonPressed;
|
||||||
else
|
else
|
||||||
win->event.type = RGFW_jsButtonReleased;
|
win->event.type = RGFW_gpButtonReleased;
|
||||||
|
|
||||||
win->event.joystick = i;
|
win->event.gamepad = i;
|
||||||
win->event.button = map[j];
|
win->event.button = map[j];
|
||||||
RGFW_jsPressed[i][button] = gamepadState.digitalButton[j];
|
RGFW_gpPressed[i][button] = gamepadState.digitalButton[j];
|
||||||
return &win->event;
|
return &win->event;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -8803,8 +8803,8 @@ RGFW_Event* RGFW_window_checkEvent(RGFW_window* win) {
|
||||||
) {
|
) {
|
||||||
win->event.axis[j / 2].x = (i8)(gamepadState.axis[j] * 100.0f);
|
win->event.axis[j / 2].x = (i8)(gamepadState.axis[j] * 100.0f);
|
||||||
win->event.axis[j / 2].y = (i8)(gamepadState.axis[j + 1] * 100.0f);
|
win->event.axis[j / 2].y = (i8)(gamepadState.axis[j + 1] * 100.0f);
|
||||||
win->event.type = RGFW_jsAxisMove;
|
win->event.type = RGFW_gpAxisMove;
|
||||||
win->event.joystick = i;
|
win->event.gamepad = i;
|
||||||
win->event.whichAxis = j / 2;
|
win->event.whichAxis = j / 2;
|
||||||
return &win->event;
|
return &win->event;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -865,24 +865,24 @@ char RSGL_keystrToChar(const char *str)
|
||||||
return '\0';
|
return '\0';
|
||||||
}
|
}
|
||||||
|
|
||||||
int RGFW_jsConvTable[18] = {
|
int RGFW_gpConvTable[18] = {
|
||||||
[RGFW_JS_Y] = GAMEPAD_BUTTON_RIGHT_FACE_UP,
|
[RGFW_GP_Y] = GAMEPAD_BUTTON_RIGHT_FACE_UP,
|
||||||
[RGFW_JS_B] = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT,
|
[RGFW_GP_B] = GAMEPAD_BUTTON_RIGHT_FACE_RIGHT,
|
||||||
[RGFW_JS_A] = GAMEPAD_BUTTON_RIGHT_FACE_DOWN,
|
[RGFW_GP_A] = GAMEPAD_BUTTON_RIGHT_FACE_DOWN,
|
||||||
[RGFW_JS_X] = GAMEPAD_BUTTON_RIGHT_FACE_LEFT,
|
[RGFW_GP_X] = GAMEPAD_BUTTON_RIGHT_FACE_LEFT,
|
||||||
[RGFW_JS_L1] = GAMEPAD_BUTTON_LEFT_TRIGGER_1,
|
[RGFW_GP_L1] = GAMEPAD_BUTTON_LEFT_TRIGGER_1,
|
||||||
[RGFW_JS_R1] = GAMEPAD_BUTTON_RIGHT_TRIGGER_1,
|
[RGFW_GP_R1] = GAMEPAD_BUTTON_RIGHT_TRIGGER_1,
|
||||||
[RGFW_JS_L2] = GAMEPAD_BUTTON_LEFT_TRIGGER_2,
|
[RGFW_GP_L2] = GAMEPAD_BUTTON_LEFT_TRIGGER_2,
|
||||||
[RGFW_JS_R2] = GAMEPAD_BUTTON_RIGHT_TRIGGER_2,
|
[RGFW_GP_R2] = GAMEPAD_BUTTON_RIGHT_TRIGGER_2,
|
||||||
[RGFW_JS_SELECT] = GAMEPAD_BUTTON_MIDDLE_LEFT,
|
[RGFW_GP_SELECT] = GAMEPAD_BUTTON_MIDDLE_LEFT,
|
||||||
[RGFW_JS_HOME] = GAMEPAD_BUTTON_MIDDLE,
|
[RGFW_GP_HOME] = GAMEPAD_BUTTON_MIDDLE,
|
||||||
[RGFW_JS_START] = GAMEPAD_BUTTON_MIDDLE_RIGHT,
|
[RGFW_GP_START] = GAMEPAD_BUTTON_MIDDLE_RIGHT,
|
||||||
[RGFW_JS_UP] = GAMEPAD_BUTTON_LEFT_FACE_UP,
|
[RGFW_GP_UP] = GAMEPAD_BUTTON_LEFT_FACE_UP,
|
||||||
[RGFW_JS_RIGHT] = GAMEPAD_BUTTON_LEFT_FACE_RIGHT,
|
[RGFW_GP_RIGHT] = GAMEPAD_BUTTON_LEFT_FACE_RIGHT,
|
||||||
[RGFW_JS_DOWN] = GAMEPAD_BUTTON_LEFT_FACE_DOWN,
|
[RGFW_GP_DOWN] = GAMEPAD_BUTTON_LEFT_FACE_DOWN,
|
||||||
[RGFW_JS_LEFT] = GAMEPAD_BUTTON_LEFT_FACE_LEFT,
|
[RGFW_GP_LEFT] = GAMEPAD_BUTTON_LEFT_FACE_LEFT,
|
||||||
[RGFW_JS_L3] = GAMEPAD_BUTTON_LEFT_THUMB,
|
[RGFW_GP_L3] = GAMEPAD_BUTTON_LEFT_THUMB,
|
||||||
[RGFW_JS_R3] = GAMEPAD_BUTTON_RIGHT_THUMB,
|
[RGFW_GP_R3] = GAMEPAD_BUTTON_RIGHT_THUMB,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -959,15 +959,15 @@ void PollInputEvents(void)
|
||||||
|
|
||||||
while (RGFW_window_checkEvent(platform.window))
|
while (RGFW_window_checkEvent(platform.window))
|
||||||
{
|
{
|
||||||
if ((platform.window->event.type >= RGFW_jsButtonPressed) && (platform.window->event.type <= RGFW_jsAxisMove))
|
if ((platform.window->event.type >= RGFW_gpButtonPressed) && (platform.window->event.type <= RGFW_gpAxisMove))
|
||||||
{
|
{
|
||||||
if (!CORE.Input.Gamepad.ready[platform.window->event.joystick])
|
if (!CORE.Input.Gamepad.ready[platform.window->event.gamepad])
|
||||||
{
|
{
|
||||||
CORE.Input.Gamepad.ready[platform.window->event.joystick] = true;
|
CORE.Input.Gamepad.ready[platform.window->event.gamepad] = true;
|
||||||
CORE.Input.Gamepad.axisCount[platform.window->event.joystick] = platform.window->event.axisesCount;
|
CORE.Input.Gamepad.axisCount[platform.window->event.gamepad] = platform.window->event.axisesCount;
|
||||||
CORE.Input.Gamepad.name[platform.window->event.joystick][0] = '\0';
|
CORE.Input.Gamepad.name[platform.window->event.gamepad][0] = '\0';
|
||||||
CORE.Input.Gamepad.axisState[platform.window->event.joystick][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f;
|
CORE.Input.Gamepad.axisState[platform.window->event.gamepad][GAMEPAD_AXIS_LEFT_TRIGGER] = -1.0f;
|
||||||
CORE.Input.Gamepad.axisState[platform.window->event.joystick][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f;
|
CORE.Input.Gamepad.axisState[platform.window->event.gamepad][GAMEPAD_AXIS_RIGHT_TRIGGER] = -1.0f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1112,24 +1112,24 @@ void PollInputEvents(void)
|
||||||
CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition;
|
CORE.Input.Touch.position[0] = CORE.Input.Mouse.currentPosition;
|
||||||
touchAction = 2;
|
touchAction = 2;
|
||||||
} break;
|
} break;
|
||||||
case RGFW_jsButtonPressed:
|
case RGFW_gpButtonPressed:
|
||||||
{
|
{
|
||||||
int button = RGFW_jsConvTable[event->button];
|
int button = RGFW_gpConvTable[event->button];
|
||||||
|
|
||||||
if (button >= 0)
|
if (button >= 0)
|
||||||
{
|
{
|
||||||
CORE.Input.Gamepad.currentButtonState[event->joystick][button] = 1;
|
CORE.Input.Gamepad.currentButtonState[event->gamepad][button] = 1;
|
||||||
CORE.Input.Gamepad.lastButtonPressed = button;
|
CORE.Input.Gamepad.lastButtonPressed = button;
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
case RGFW_jsButtonReleased:
|
case RGFW_gpButtonReleased:
|
||||||
{
|
{
|
||||||
int button = RGFW_jsConvTable[event->button];
|
int button = RGFW_gpConvTable[event->button];
|
||||||
|
|
||||||
CORE.Input.Gamepad.currentButtonState[event->joystick][button] = 0;
|
CORE.Input.Gamepad.currentButtonState[event->gamepad][button] = 0;
|
||||||
if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0;
|
if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0;
|
||||||
} break;
|
} break;
|
||||||
case RGFW_jsAxisMove:
|
case RGFW_gpAxisMove:
|
||||||
{
|
{
|
||||||
int axis = -1;
|
int axis = -1;
|
||||||
|
|
||||||
|
|
@ -1137,19 +1137,19 @@ void PollInputEvents(void)
|
||||||
switch(event->whichAxis) {
|
switch(event->whichAxis) {
|
||||||
case 0:
|
case 0:
|
||||||
{
|
{
|
||||||
CORE.Input.Gamepad.axisState[event->joystick][GAMEPAD_AXIS_LEFT_X] = event->axis[0].x / 100.0f;
|
CORE.Input.Gamepad.axisState[event->gamepad][GAMEPAD_AXIS_LEFT_X] = event->axis[0].x / 100.0f;
|
||||||
CORE.Input.Gamepad.axisState[event->joystick][GAMEPAD_AXIS_LEFT_Y] = event->axis[0].y / 100.0f;
|
CORE.Input.Gamepad.axisState[event->gamepad][GAMEPAD_AXIS_LEFT_Y] = event->axis[0].y / 100.0f;
|
||||||
} break;
|
} break;
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
CORE.Input.Gamepad.axisState[event->joystick][GAMEPAD_AXIS_RIGHT_X] = event->axis[1].x / 100.0f;
|
CORE.Input.Gamepad.axisState[event->gamepad][GAMEPAD_AXIS_RIGHT_X] = event->axis[1].x / 100.0f;
|
||||||
CORE.Input.Gamepad.axisState[event->joystick][GAMEPAD_AXIS_RIGHT_Y] = event->axis[1].y / 100.0f;
|
CORE.Input.Gamepad.axisState[event->gamepad][GAMEPAD_AXIS_RIGHT_Y] = event->axis[1].y / 100.0f;
|
||||||
} break;
|
} break;
|
||||||
case 2: axis = GAMEPAD_AXIS_LEFT_TRIGGER;
|
case 2: axis = GAMEPAD_AXIS_LEFT_TRIGGER;
|
||||||
case 3: { if (axis == -1) axis = GAMEPAD_AXIS_RIGHT_TRIGGER;
|
case 3: { if (axis == -1) axis = GAMEPAD_AXIS_RIGHT_TRIGGER;
|
||||||
int button = (axis == GAMEPAD_AXIS_LEFT_TRIGGER)? GAMEPAD_BUTTON_LEFT_TRIGGER_2 : GAMEPAD_BUTTON_RIGHT_TRIGGER_2;
|
int button = (axis == GAMEPAD_AXIS_LEFT_TRIGGER)? GAMEPAD_BUTTON_LEFT_TRIGGER_2 : GAMEPAD_BUTTON_RIGHT_TRIGGER_2;
|
||||||
int pressed = (value > 0.1f);
|
int pressed = (value > 0.1f);
|
||||||
CORE.Input.Gamepad.currentButtonState[event->joystick][button] = pressed;
|
CORE.Input.Gamepad.currentButtonState[event->gamepad][button] = pressed;
|
||||||
|
|
||||||
if (pressed) CORE.Input.Gamepad.lastButtonPressed = button;
|
if (pressed) CORE.Input.Gamepad.lastButtonPressed = button;
|
||||||
else if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0;
|
else if (CORE.Input.Gamepad.lastButtonPressed == button) CORE.Input.Gamepad.lastButtonPressed = 0;
|
||||||
|
|
@ -1316,7 +1316,7 @@ int InitPlatform(void)
|
||||||
#ifdef RGFW_X11
|
#ifdef RGFW_X11
|
||||||
for (int i = 0; (i < 4) && (i < MAX_GAMEPADS); i++)
|
for (int i = 0; (i < 4) && (i < MAX_GAMEPADS); i++)
|
||||||
{
|
{
|
||||||
RGFW_registerJoystick(platform.window, i);
|
RGFW_registergamepad(platform.window, i);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user