Эквивалент GetCursorPos () в углероде Mac

Предыстория Мы переносим наши игры на PythonOgre на Mac, и издатели требуют, чтобы мышь выходила из окна. В Windows мы используем OIS (объектно-ориентированную систему ввода) для управления мышью; то есть мы не позволяем OIS удерживать мышь внутри границ окна, а затем отслеживать курсор мыши в координатах экрана с помощью GetCursorPos()Win32 API.

Мы не можем тривиально изменить цикл Ogre3d - для этого потребуется, по крайней мере, перестроить библиотеку плюс перестроить оболочку, которая может легко занять целый рабочий день на нашей сборочной машине. Теоретически мы могли бы изменить OIS, но у нас плотный график, поэтому по тем же причинам мы бы предпочли и не играть с ним без необходимости.

Вопрос Что такое Carbon API для получения координаты курсора мыши на экране, эквивалентной Windows API GetCursorPos()?

13.10.2009 14:07:08
1 ОТВЕТ
РЕШЕНИЕ

Я считаю, что вы ищете, GetMouse (). Вы можете найти пример в примере кода Apple UIElementInspector . Это в Obj-C не Python, хотя.

РЕДАКТИРОВАТЬ: HIGetMousePosition () является предпочтительным методом, в соответствии с NSD.

1
14.10.2009 14:14:19
GetMouse () не имеет ничего общего с Objective-C, так как он существует до нескольких лет. Его первоначальная реализация была бы Паскалем. В любом случае, HIGetMousePosition () будет предпочтительным методом сегодня.
Azeem.Butt 14.10.2009 03:35:08
Да, я имел в виду, например, Objective-C. Полезно знать о HIGetMousePosition (). Я обновлю свой ответ.
Colin Gislason 14.10.2009 14:14:20
HIGetMousePosition () является новым для Leopard. Нам нужна 10.4 совместимость, поэтому мы будем использовать GetMouse (). В Python он находится в модуле Carbon.Evt, поэтому правильный вызов: result = Carbon.Evt.GetMouse (). Спасибо вам обоим!
Ivan Vučica 22.10.2009 09:26:46