Подтвердить что ты не робот

Что такое аппаратный курсор и как он работает?

Есть ли кто-нибудь, кто может объяснить, как работает аппаратный курсор? Как это соотносится с графикой, которую я рисую на экране? Я использую OpenGL для рисования, как аппаратный курсор относится к графике OpenGL?

EDIT: для тех, кто может быть заинтересован в этом в будущем, я просто реализовал то, что нужно, чтобы показать курсор с оборудованием. Реализация была в ядре, и для ее использования было достаточно простой ioctl. Прекрасно работает.

4b9b3361

Ответ 1

Аппаратный курсор означает, что графический процессор обеспечивает рисование (малого) наложения на экранной фреймбуфере, положение которого может быть изменено на двух регистрах (или около того) на графическом процессоре. Поэтому перемещение по указателю не требует перерисовки фрагментов фреймбуфера, которые ранее были заблокированы.

Отношение к OpenGL: Нет!

Ответ 2

Аппаратный курсор не отображается или не поддерживается OpenGL. Некоторая небольшая часть аппаратного обеспечения накладывает его на любое изображение, выходящее из разъема дисплея - оно вставляется непосредственно в поток бит при сканировании каждого кадра. Из-за этого его можно перемещать, изменяя пару аппаратных регистров, содержащих его координаты. В прежние времена они назывались спрайтами, и различные их числа поддерживались в разных системах.

Ответ 3

Аппаратные курсоры имеют меньшую задержку и, таким образом, обеспечивают лучший опыт, поскольку они не привязаны к частоте кадров вашей игры или двигателя, а к частоте обновления экрана.

Программные курсоры, предоставленные вами как спрайты экрана в течение цикла рендеринга, должны работать со скоростью вашего игрового движка. Таким образом, если ваша игра испытывает отставание или иным образом опускается ниже целевого fps, латентность курсора будет ухудшаться. Небольшое падение в fps игры обычно приемлемо, но незначительное снижение латентности курсора очень заметно как "вялый курсор".

Вы можете легко протестировать это, визуализировав программный курсор, оставив аппаратный курсор. (FYI, в Windows API функция курсора hw - ShowCursor). Вы обнаружите, что курсор программного обеспечения отслеживает аппаратный курсор.