Does this command work in OSX? My fullscreen app uses mouse input to look around but it only looks as far as the edge of the desktop.

glutWarpPointer is not supported by GLUT on either MacOS9 or MacOSX. Apple stubbornly refuses to implement it on the grounds that it violates the HI guidelines (which it does – if the mouse pointer is visible).

I’ve written angry notes and rants and bug reports galore with no effect.

Probably your best bet is to implement it yourself (using the cursor device manager on MacOS9 or CoreGraphics on MacOSX), and

#define glutWarpPointer myGlutWarpPointer

This was on the mac-opengl apple list the other day. Apple has released the source to OS X GLUT and this guy has done lots of work on it.


Release 4 of GLUT for MacOS X is now available for download at:

This is more or less a complete rewrite of GLUT for MacOS X from ground up.
It fixes many, many bugs and problems and adds some new features.

The single most important change compared to previous releases is that the
menus of a GLUT application are now no longer displayed in the menu bar.
They are now always contextual menus. This change was necessary in order to
correctly support all menu related features, like the ability to attach up
to three individual menus to any top-level and subwindow. Further, the GLUT
menu API and the original X Windows implementation is based on the
assumption that menus would always work as contextual menus. This is why the
GLUT API offers no way to set the title of a menu.

An excerpt of what changed:

*) This release has a noticable performance improvement compared to
previous releases. Especially glutPostWindowRedisplay() is faster.
*) This is the first version of GLUT for MacOS X which passes all GLUT
*) Nearly 40 problems and bugs have been removed.
*) Especially support for subwindows has improved a lot.
*) Every window and subwindow can now have up to 3 menus. Previously,
only the first 3 menus which an app created were supported and all
menus created thereafter were simply ignored.
*) Menu status functions are now called at the correct time and with
correct parameters. Previously, they were called either too early or
too late and were never passed any meaningful parameters.
*) Window status functions are now invoked with the correct visibility
status. Further, the computation of visibility events is now much
faster and closer to what X Windows does.
*) glutWarpPointer() now works as documented.
*) glutInitDisplayString() now really takes capability comparators into
account. Previously, it ignored any comparator given for a capability
and picked a pixel format based on a closest match policy.
*) Added many additional cursors: wait, help, crosshair…

A list of all changes can be found in the ReadMe file accompaning the


Dietmar Planitzer

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.