2016-03-08 8 views
0

Я использую GLFW для записи состояний джойстиков в проекте робототехники и натолкнулся на что-то странное.Почему эта программа 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, скомпилированную из источника. Пожалуйста, посоветуйте мне об этом.

EDIT: Если вы хотите знать, что должно произойти, посмотрите видео https://www.youtube.com/watch?v=mx0IUbxAQ34 на метку времени 2:09.

EDIT: Я пробовал другую библиотеку, и он правильно определяет джойстики.

Заранее спасибо.

+0

Означает ли состояние оси и кнопки правильное положение, если палка прикреплена ПРИОР к запуску программы? –

+0

Осевые состояния не обновляются корректно, по сути, по крайней мере для первого джойстика, обнаруженного GLFW. Он показывает четыре оси в массиве, все содержащие float 138690176035340265469942380959367168.000000 или что-то очень похожее, всегда начиная с 1386. Все остальные оси для других джойстиков равны 0. Во время программы значения никогда не изменяются или не обновляются. –

+1

Имеет ли проблема с проблемой «джойстика»? – elmindreda

ответ

0

Оказалось, что версия GLFW на homebrew прослушивается. Какой отклон.

По какой-то причине, когда я установил источник, он не переопределял установленные двоичные файлы доморощенного. Это привело меня к мысли, что это проблема с кодом.

Это не было.