Mouse clicks are handled on the EventQueue. All OpenGL calls must be made from the same thread you created the context on.
You could try the following solutions:
- Calculate transformation matrices yourself (what you should be doing anyway IMHO
), and make the matrix available to your mouse handlers
- Let OpenGL calculate the matrix using lookAt, translatef, etc., then get the matrix from OpenGL and make it available to your mouse handlers