Как сказал Ник Болас в своем комментарии, OpenGL ничего не знает о мышке. Вам нужно будет так или иначе взаимодействовать с системой управления окнами (через прямой Win32 / X11 / etc. API или через переносную библиотеку управления окнами в виде Qt, wxWidgets и т. Д.), Чтобы отслеживать положение мыши.
Если курсор, который вы пытаетесь нарисовать, является растровым изображением, ваша лучшая ставка, скорее всего, будет обрабатывать события входа / выхода мыши, отправленные в ваше окно, и реагировать на них, используя функцию API для изменения курсора. Это будет обрабатывать автоматическое обновление курсора при перемещении мыши и добавит минимальные накладные расходы вашему приложению (курсоры оконной системы обычно рисуют в плоскости наложения, что позволяет избежать отправки событий перерисовки в ваше окно при каждом перемещении мыши).
Если у вас есть более процедурное описание вашего курсора (то есть вы намереваетесь нарисовать его с помощью команд рисования OpenGL), вы вместо этого захотите обрабатывать события ввода / вывода мышью, используя HideCursor()/ShowCursor()
команды или эквивалентный отключить собственный курсор оконной системы, когда мышь находится над окном. Затем вы перехватите обратные вызовы перемещения мыши и перерисоваете сцену, добавив все необходимые вам команды, чтобы нарисовать курсор в позиции, указанной в событии перемещения мыши.
Первый подход определенно предпочтителен по причинам производительности и задержек, но есть некоторые типы курсоров (например, перекрестные прически на весь экран), которые не могут быть размещены таким образом.