Общая программа слишком сложна для отображения здесь. В основном, просто обратите внимание на зеленые выделения в моем недавнем коммите git . Я очень новичок в DirectInput, поэтому я ожидаю, что сделал несколько ошибок. Я очень внимательно изучил документацию MSDN, поэтому обещаю, что я не просто добавлю это и напишу на нем FIX IT FOR ME. :)
По сути, я думаю, что сузил свою проблему до области кода вокруг Engine :: getEvent (строка 238+). Я не понимаю, как работают эти функции, и я перепутал некоторые части для достижения разных результатов. Моя цель здесь состоит в том, чтобы просто читать события клавиатуры напрямую и выводить эти необработанные числа на экран (о значениях чисел я расскажу позже). Проблема здесь связана с KEYBOARD_BUFFER_SIZE. Если я сделаю его маленьким, программа, кажется, работает нормально, но не выводит никаких событий. Если я увеличу его, он будет работать немного лучше, но он начнет замедляться, а затем зависать (у окна OpenGL просто вращающийся цветной куб). Как правильно захватить события клавиатуры?
Я проверил возвращаемые значения на всех шагах настройки выше в коде. Все они возвращают DI_OK просто отлично.