platforms c-source files updated
This commit is contained in:
parent
614ed9f942
commit
fc50e055c0
5 changed files with 981 additions and 685 deletions
|
@ -89,7 +89,6 @@
|
|||
//----------------------------------------------------------------------------------
|
||||
// Types and Structures Definition
|
||||
//----------------------------------------------------------------------------------
|
||||
typedef unsigned int uint;
|
||||
|
||||
typedef struct {
|
||||
// Display data
|
||||
|
@ -207,7 +206,7 @@ static const short linuxToRaylibMap[KEYMAP_SIZE] = {
|
|||
[BTN_TL] = GAMEPAD_BUTTON_LEFT_TRIGGER_1,
|
||||
[BTN_TL2] = GAMEPAD_BUTTON_LEFT_TRIGGER_2,
|
||||
[BTN_TR] = GAMEPAD_BUTTON_RIGHT_TRIGGER_1,
|
||||
[BTN_TR2] GAMEPAD_BUTTON_RIGHT_TRIGGER_2,
|
||||
[BTN_TR2] = GAMEPAD_BUTTON_RIGHT_TRIGGER_2,
|
||||
[BTN_SELECT] = GAMEPAD_BUTTON_MIDDLE_LEFT,
|
||||
[BTN_MODE] = GAMEPAD_BUTTON_MIDDLE,
|
||||
[BTN_START] = GAMEPAD_BUTTON_MIDDLE_RIGHT,
|
||||
|
@ -399,7 +398,7 @@ int GetMonitorWidth(int monitor)
|
|||
{
|
||||
width = platform.connector->modes[platform.modeIndex].hdisplay;
|
||||
}
|
||||
|
||||
|
||||
return width;
|
||||
}
|
||||
|
||||
|
@ -416,7 +415,7 @@ int GetMonitorHeight(int monitor)
|
|||
{
|
||||
height = platform.connector->modes[platform.modeIndex].vdisplay;
|
||||
}
|
||||
|
||||
|
||||
return height;
|
||||
}
|
||||
|
||||
|
@ -480,7 +479,7 @@ const char *GetMonitorName(int monitor)
|
|||
{
|
||||
name = platform.connector->modes[platform.modeIndex].name;
|
||||
}
|
||||
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
|
@ -611,7 +610,7 @@ int SetGamepadMappings(const char *mappings)
|
|||
}
|
||||
|
||||
// Set gamepad vibration
|
||||
void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor)
|
||||
void SetGamepadVibration(int gamepad, float leftMotor, float rightMotor, float duration)
|
||||
{
|
||||
TRACELOG(LOG_WARNING, "GamepadSetVibration() not implemented on target platform");
|
||||
}
|
||||
|
@ -629,6 +628,13 @@ void SetMouseCursor(int cursor)
|
|||
TRACELOG(LOG_WARNING, "SetMouseCursor() not implemented on target platform");
|
||||
}
|
||||
|
||||
// Get physical key name.
|
||||
const char *GetKeyName(int key)
|
||||
{
|
||||
TRACELOG(LOG_WARNING, "GetKeyName() not implemented on target platform");
|
||||
return "";
|
||||
}
|
||||
|
||||
// Register all input events
|
||||
void PollInputEvents(void)
|
||||
{
|
||||
|
@ -758,7 +764,9 @@ int InitPlatform(void)
|
|||
drmModeConnector *con = drmModeGetConnector(platform.fd, res->connectors[i]);
|
||||
TRACELOG(LOG_TRACE, "DISPLAY: Connector modes detected: %i", con->count_modes);
|
||||
|
||||
if ((con->connection == DRM_MODE_CONNECTED) && (con->encoder_id))
|
||||
// In certain cases the status of the conneciton is reported as UKNOWN, but it is still connected.
|
||||
// This might be a hardware or software limitation like on Raspberry Pi Zero with composite output.
|
||||
if (((con->connection == DRM_MODE_CONNECTED) || (con->connection == DRM_MODE_UNKNOWNCONNECTION)) && (con->encoder_id))
|
||||
{
|
||||
TRACELOG(LOG_TRACE, "DISPLAY: DRM mode connected");
|
||||
platform.connector = con;
|
||||
|
@ -1029,7 +1037,7 @@ int InitPlatform(void)
|
|||
|
||||
// If graphic device is no properly initialized, we end program
|
||||
if (!CORE.Window.ready) { TRACELOG(LOG_FATAL, "PLATFORM: Failed to initialize graphic device"); return -1; }
|
||||
else SetWindowPosition(GetMonitorWidth(GetCurrentMonitor()) / 2 - CORE.Window.screen.width / 2, GetMonitorHeight(GetCurrentMonitor()) / 2 - CORE.Window.screen.height / 2);
|
||||
else SetWindowPosition(GetMonitorWidth(GetCurrentMonitor())/2 - CORE.Window.screen.width/2, GetMonitorHeight(GetCurrentMonitor())/2 - CORE.Window.screen.height/2);
|
||||
|
||||
// Set some default window flags
|
||||
CORE.Window.flags &= ~FLAG_WINDOW_HIDDEN; // false
|
||||
|
@ -1137,7 +1145,8 @@ void ClosePlatform(void)
|
|||
|
||||
// Close the evdev devices
|
||||
|
||||
if (platform.mouseFd != -1) {
|
||||
if (platform.mouseFd != -1)
|
||||
{
|
||||
close(platform.mouseFd);
|
||||
platform.mouseFd = -1;
|
||||
}
|
||||
|
@ -1471,7 +1480,6 @@ static void ConfigureEvdevDevice(char *device)
|
|||
TEST_BIT(keyBits, BTN_MOUSE)) isMouse = true;
|
||||
}
|
||||
|
||||
|
||||
if (TEST_BIT(evBits, EV_KEY))
|
||||
{
|
||||
// The first 32 keys as defined in input-event-codes.h are pretty much
|
||||
|
@ -1614,7 +1622,7 @@ static void PollKeyboardEvents(void)
|
|||
}
|
||||
}
|
||||
|
||||
TRACELOG(LOG_DEBUG, "INPUT: KEY_%s Keycode(linux): %4i KeyCode(raylib): %4i", (event.value == 0) ? "UP " : "DOWN", event.code, keycode);
|
||||
TRACELOG(LOG_DEBUG, "INPUT: KEY_%s Keycode(linux): %4i KeyCode(raylib): %4i", (event.value == 0)? "UP " : "DOWN", event.code, keycode);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1641,7 +1649,7 @@ static void PollGamepadEvents(void)
|
|||
{
|
||||
short keycodeRaylib = linuxToRaylibMap[event.code];
|
||||
|
||||
TRACELOG(LOG_DEBUG, "INPUT: Gamepad %2i: KEY_%s Keycode(linux): %4i Keycode(raylib): %4i", i, (event.value == 0) ? "UP " : "DOWN", event.code, keycodeRaylib);
|
||||
TRACELOG(LOG_DEBUG, "INPUT: Gamepad %2i: KEY_%s Keycode(linux): %4i Keycode(raylib): %4i", i, (event.value == 0)? "UP" : "DOWN", event.code, keycodeRaylib);
|
||||
|
||||
if ((keycodeRaylib != 0) && (keycodeRaylib < MAX_GAMEPAD_BUTTONS))
|
||||
{
|
||||
|
@ -1666,7 +1674,7 @@ static void PollGamepadEvents(void)
|
|||
int range = platform.gamepadAbsAxisRange[i][event.code][1];
|
||||
|
||||
// NOTE: Scaling of event.value to get values between -1..1
|
||||
CORE.Input.Gamepad.axisState[i][axisRaylib] = (2 * (float)(event.value - min) / range) - 1;
|
||||
CORE.Input.Gamepad.axisState[i][axisRaylib] = (2*(float)(event.value - min)/range) - 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1925,9 +1933,7 @@ static int FindNearestConnectorMode(const drmModeConnector *connector, uint widt
|
|||
const int nearestHeightDiff = abs(platform.connector->modes[nearestIndex].vdisplay - height);
|
||||
const int nearestFpsDiff = abs(platform.connector->modes[nearestIndex].vrefresh - fps);
|
||||
|
||||
if ((widthDiff < nearestWidthDiff) || (heightDiff < nearestHeightDiff) || (fpsDiff < nearestFpsDiff)) {
|
||||
nearestIndex = i;
|
||||
}
|
||||
if ((widthDiff < nearestWidthDiff) || (heightDiff < nearestHeightDiff) || (fpsDiff < nearestFpsDiff)) nearestIndex = i;
|
||||
}
|
||||
|
||||
return nearestIndex;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue