private void OnJoystickCallback(int jid, GLFW_Enum eventType) { if (eventType == GLFW_Enum.CONNECTED) { var name = GLFW.GetJoystickName(jid); var isGamepad = GLFW.JoystickIsGamepad(jid) != 0; GLFW.GetJoystickButtons(jid, out int buttonCount); GLFW.GetJoystickAxes(jid, out int axisCount); OnJoystickConnect((uint)jid, name, (uint)buttonCount, (uint)axisCount, isGamepad); } else if (eventType == GLFW_Enum.DISCONNECTED) { OnJoystickDisconnect((uint)jid); } }
private Buttons GamepadButtonToEnum(GLFW_Enum btn) { return(btn switch { GLFW_Enum.GAMEPAD_BUTTON_A => Buttons.A, GLFW_Enum.GAMEPAD_BUTTON_B => Buttons.B, GLFW_Enum.GAMEPAD_BUTTON_X => Buttons.X, GLFW_Enum.GAMEPAD_BUTTON_Y => Buttons.Y, GLFW_Enum.GAMEPAD_BUTTON_LEFT_BUMPER => Buttons.LeftShoulder, GLFW_Enum.GAMEPAD_BUTTON_RIGHT_BUMPER => Buttons.RightShoulder, GLFW_Enum.GAMEPAD_BUTTON_BACK => Buttons.Back, GLFW_Enum.GAMEPAD_BUTTON_START => Buttons.Start, GLFW_Enum.GAMEPAD_BUTTON_GUIDE => Buttons.Select, GLFW_Enum.GAMEPAD_BUTTON_LEFT_THUMB => Buttons.LeftStick, GLFW_Enum.GAMEPAD_BUTTON_RIGHT_THUMB => Buttons.RightStick, GLFW_Enum.GAMEPAD_BUTTON_DPAD_UP => Buttons.Up, GLFW_Enum.GAMEPAD_BUTTON_DPAD_RIGHT => Buttons.Right, GLFW_Enum.GAMEPAD_BUTTON_DPAD_DOWN => Buttons.Down, GLFW_Enum.GAMEPAD_BUTTON_DPAD_LEFT => Buttons.Left, _ => Buttons.None, });
public static extern void WindowHintString(GLFW_Enum hint, [MarshalAs(UnmanagedType.LPStr)] string value);
public static extern void WindowHint(GLFW_Enum hint, int value);