Я использую GLFW для записи состояний джойстиков в проекте робототехники, и наткнулся на что-то странное.
На Macbook Air, работающем 10.11.3, GLFW возвращает состояние джойстиков только в начале программы. Однако в документации утверждается, что она обновляет состояние каждый раз, когда вызывается функция джойстика. Использование функции присутствия джойстика и имени джойстика только возвращает исходное состояние.
Я не могу раскрыть свой код. Тем не менее, я использую ImGui, и одной из его примеров программ должно быть достаточно. Чтобы воспроизвести проблему, запустите проект opengl3_example с этими изменениями:
Сразу после линии ImGui_ImplGlfwGL3_NewFrame();
, Добавь это:
for (int i = 0; i < 15; i++)
{
if (glfwJoystickPresent(i) != GL_TRUE)
{
printf("There are %d joysticks detected.\n",i); break;
}
}
В моем случае, если программа запускается без подключенных джойстиков, а один из них подключается после запуска программы, он будет утверждать, что все равно будет подключено 0 джойстиков. Проблемы выходят за рамки этой функции, так как состояния кнопок и осей также не обновляются.
Я использую последнюю версию GLFW 3.1.2, скомпилированную из исходного кода. Пожалуйста, сообщите мне об этом.
РЕДАКТИРОВАТЬ: Если вы хотите знать, что должно произойти, посмотрите на видео https://www.youtube.com/watch?v=mx0IUbxAQ34 на отметке времени 2:09.
РЕДАКТИРОВАТЬ: я пробовал другую библиотеку, и она правильно определяет джойстики.
Заранее спасибо.
Оказывается, версия GLFW на домашнем пиве прослушивается. Что за антиклимакс.
По какой-то причине, когда я установил из исходного кода, он не перекрывал установленные двоичные файлы homebrew. Это привело меня к мысли, что это проблема с кодом.
Не было
Других решений пока нет …