common/Linux/MicroGlut.h
b23636c9
 #ifndef _MICROGLUT_
 #define _MICROGLUT_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 // If this is compiled on the Mac or Windows, tell me!
 #ifdef __APPLE__
 	ERROR! This is NOT the Mac version of MicroGlut and will not work on the Mac!
 #endif
 #ifdef _WIN32
 	ERROR! This is NOT the Windows version of MicroGlut and will not work on Windows!
 #endif
 
 // Same or similar to old GLUT calls
 void glutMainLoop();
 void glutCheckLoop();
 void glutInit(int *argcp, char **argv);
 void glutPostRedisplay();
 
 void glutReshapeFunc(void (*func)(int width, int height));
 void glutDisplayFunc(void (*func)(void));
 void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));
 void glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y));
 void glutSpecialFunc(void (*func)(unsigned char key, int x, int y));
 void glutSpecialUpFunc(void (*func)(unsigned char key, int x, int y));
 
 void glutMouseFunc(void (*func)(int button, int state, int x, int y));
 void glutPassiveMotionFunc(void (*func)(int x, int y));
 void glutMotionFunc(void (*func)(int x, int y));
 
 void glutInitWindowPosition (int x, int y);
 void glutInitWindowSize (int width, int height);
 void glutCreateWindow (const char *windowTitle);
 
 void glutSwapBuffers();
 
 #define GLUT_ELAPSED_TIME		(700)
 #define GLUT_WINDOW_WIDTH		(102)
 #define GLUT_WINDOW_HEIGHT		(103)
 #define GLUT_MOUSE_POSITION_X		(802)
 #define GLUT_MOUSE_POSITION_Y		(803)
 // #define GLUT_QUIT_FLAG			(801)
 // To do: quit flag
 int glutGet(int type);
 
 void glutInitDisplayMode(unsigned int mode);
 void glutIdleFunc(void (*func)(void));
 
 // Standard GLUT timer
 void glutTimerFunc(int millis, void (*func)(int arg), int arg);
 // Ingemar's version
 void glutRepeatingTimer(int millis);
  // Old name, will be removed:
 #define glutRepeatingTimerFunc glutRepeatingTimer
 
 // New call for polling the keyboard, good for games
 char glutKeyIsDown(unsigned char c);
 // And the same for the mouse
 char glutMouseIsDown(unsigned char c);
 
 void glutWarpPointer( int x, int y );
 void glutShowCursor();
 void glutHideCursor();
 
 void glutReshapeWindow(int width, int height);
 void glutPositionWindow(int x, int y);
 void glutSetWindowTitle(char *title);
 void glutInitContextVersion(int major, int minor);
 
 void glutFullScreen();
 void glutExitFullScreen();
 void glutToggleFullScreen();
 void glutExit();
 
 /* Mouse buttons. */
 #define GLUT_LEFT_BUTTON		0
 // No support for middle yet
 #define GLUT_MIDDLE_BUTTON		1
 #define GLUT_RIGHT_BUTTON		2
 
 /* Mouse button  state. */
 #define GLUT_DOWN			0
 #define GLUT_UP				1
 
 // Special keys.
 // I am reusing unused ASCII codes with no mercy!
 #define GLUT_KEY_F1			1
 #define GLUT_KEY_F2			2
 #define GLUT_KEY_F3			3
 #define GLUT_KEY_F4			4
 #define GLUT_KEY_F5			5
 #define GLUT_KEY_F6			6
 #define GLUT_KEY_F7			7
 // F8 and up ignored since they are not possible on some keyboards - like mine
 #define GLUT_KEY_LEFT			28
 #define GLUT_KEY_UP				29
 #define GLUT_KEY_RIGHT			30
 #define GLUT_KEY_DOWN			31
 #define GLUT_KEY_PAGE_UP		22
 #define GLUT_KEY_PAGE_DOWN		23
 #define GLUT_KEY_HOME			24
 #define GLUT_KEY_END			25
 #define GLUT_KEY_INSERT			26
 
 #define GLUT_KEY_LEFT_SHIFT		14
 #define GLUT_KEY_RIGHT_SHIFT	15
 #define GLUT_KEY_CONTROL		16
 #define GLUT_KEY_ALT			17
 #define GLUT_KEY_COMMAND		18
 #define GLUT_KEY_KEYPAD5		19
 #define GLUT_KEY_KEYPAD_NUMLOCK	20
 
 // These obvious ones...
 #define GLUT_KEY_ESC			27
 #define GLUT_KEY_TAB			9
 #define GLUT_KEY_RETURN			13
 // more
 
 
 // Only some modes supported
 #define GLUT_STENCIL			32
 #define GLUT_MULTISAMPLE		128
 //#define GLUT_STEREO			256
 #define GLUT_RGB			0
 #define GLUT_RGBA			GLUT_RGB
 #define GLUT_ALPHA			GLUT_RGB
 #define GLUT_SINGLE			0
 #define GLUT_DOUBLE			2
 #define GLUT_DEPTH			16
 
 
 #ifdef __cplusplus
 }
 #endif
 
 
 #endif