С выпуском Valve игр для Linux я немного поиграл в Left 4 Dead 2 и Portal 2 и заметил небольшое, но все же заметное отставание мыши (задержка), когда я не включаю опцию ввода мыши Raw . Еще одна игра, в которую я играл в Linux, Starbound, также имеет похожую задержку мыши только в Linux. Я искал информацию о необработанном вводе, но я все еще немного озадачен.
Из того, что я собрал (например, здесь), распространенный способ получения необработанного аппаратного ввода - чтение файлов */dev/input/event **. Суть в том, что в моей системе (Fedora 20) эти файлы доступны только для чтения корневой группе, и я не создал правило udev, как упомянуто в связанном посте.
Итак, мой вопрос:
Как игра читает необработанный ввод с мыши? Есть ли другой способ, чем /dev/input
?
Есть ли кросс-платформенный способ сделать это?
Бонусные вопросы (я все равно собираюсь их поискать =)):
Какой механизм ОС обеспечивает "стандартный" ввод? Например, на что полагается SDL или другая библиотека для сбора информации от оборудования?
ps: опция ввода мыши в Portal 2 в бета-версии на самом деле пока не работает, поэтому я начал обдумывать этот вопрос. Это работает в L4D2, хотя.