We use glXGetProcAddress to load glXCreateContextAttribsARB ourselves,
so GLX_GLXEXT_PROTOTYPES is not needed.
find . -type f -exec chmod -x {} +
| 1 | 1 |
new file mode 100755 |
| ... | ... |
@@ -0,0 +1,175 @@ |
| 1 |
+#ifndef _MICROGLUT_ |
|
| 2 |
+#define _MICROGLUT_ |
|
| 3 |
+ |
|
| 4 |
+#ifdef __cplusplus |
|
| 5 |
+extern "C" {
|
|
| 6 |
+#endif |
|
| 7 |
+ |
|
| 8 |
+// If this is not compiled on the Mac, tell me! |
|
| 9 |
+#ifndef __APPLE__ |
|
| 10 |
+ ERROR! This is the Mac version of the MicroGlut header which will not work on other platforms! |
|
| 11 |
+#endif |
|
| 12 |
+#define GL_SILENCE_DEPRECATION |
|
| 13 |
+ |
|
| 14 |
+// Same or similar to old GLUT calls |
|
| 15 |
+void glutMainLoop(); |
|
| 16 |
+void glutCheckLoop(); |
|
| 17 |
+void glutInit(int *argcp, char **argv); |
|
| 18 |
+void glutPostRedisplay(); |
|
| 19 |
+ |
|
| 20 |
+void glutReshapeFunc(void (*func)(int width, int height)); |
|
| 21 |
+void glutDisplayFunc(void (*func)(void)); |
|
| 22 |
+void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)); |
|
| 23 |
+void glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)); |
|
| 24 |
+void glutSpecialFunc(void (*func)(unsigned char key, int x, int y)); |
|
| 25 |
+void glutSpecialUpFunc(void (*func)(unsigned char key, int x, int y)); |
|
| 26 |
+ |
|
| 27 |
+void glutMouseFunc(void (*func)(int button, int state, int x, int y)); |
|
| 28 |
+void glutPassiveMotionFunc(void (*func)(int x, int y)); |
|
| 29 |
+void glutMotionFunc(void (*func)(int x, int y)); |
|
| 30 |
+ |
|
| 31 |
+void glutInitWindowPosition (int x, int y); |
|
| 32 |
+void glutInitWindowSize (int width, int height); |
|
| 33 |
+int glutCreateWindow (const char *windowTitle); |
|
| 34 |
+ |
|
| 35 |
+void glutSwapBuffers(); |
|
| 36 |
+ |
|
| 37 |
+// glutGet constants |
|
| 38 |
+#define GLUT_ELAPSED_TIME (700) |
|
| 39 |
+#define GLUT_WINDOW_WIDTH 102 |
|
| 40 |
+#define GLUT_WINDOW_HEIGHT 103 |
|
| 41 |
+#define GLUT_QUIT_FLAG 801 |
|
| 42 |
+#define GLUT_MOUSE_POSITION_X 802 |
|
| 43 |
+#define GLUT_MOUSE_POSITION_Y 803 |
|
| 44 |
+// This looks less than perfect... |
|
| 45 |
+#define GLUT_SCREEN_WIDTH GLUT_WINDOW_WIDTH |
|
| 46 |
+#define GLUT_SCREEN_HEIGHT GLUT_WINDOW_HEIGHT |
|
| 47 |
+int glutGet(int type); |
|
| 48 |
+ |
|
| 49 |
+void glutInitDisplayMode(unsigned int mode); |
|
| 50 |
+void glutIdleFunc(void (*func)(void)); |
|
| 51 |
+ |
|
| 52 |
+// Standard GLUT timer |
|
| 53 |
+void glutTimerFunc(int millis, void (*func)(int arg), int arg); |
|
| 54 |
+// Ingemar's version |
|
| 55 |
+void glutRepeatingTimerFunc(int millis); // Old name, will be removed |
|
| 56 |
+void glutRepeatingTimer(int millis); |
|
| 57 |
+// New call for polling the keyboard, good for games |
|
| 58 |
+char glutKeyIsDown(unsigned char c); |
|
| 59 |
+// And for the mouse button(s): |
|
| 60 |
+char glutMouseIsDown(unsigned char c); |
|
| 61 |
+ |
|
| 62 |
+void glutReshapeWindow(int width, int height); |
|
| 63 |
+void glutPositionWindow(int x, int y); |
|
| 64 |
+void glutSetWindowTitle(char *title); |
|
| 65 |
+void glutInitContextVersion(int major, int minor); |
|
| 66 |
+ |
|
| 67 |
+/* Mouse buttons. */ |
|
| 68 |
+#define GLUT_LEFT_BUTTON 0 |
|
| 69 |
+// No support for middle yet |
|
| 70 |
+#define GLUT_MIDDLE_BUTTON 1 |
|
| 71 |
+#define GLUT_RIGHT_BUTTON 2 |
|
| 72 |
+ |
|
| 73 |
+/* Mouse button state. */ |
|
| 74 |
+#define GLUT_DOWN 0 |
|
| 75 |
+#define GLUT_UP 1 |
|
| 76 |
+ |
|
| 77 |
+// Only some modes supported |
|
| 78 |
+#define GLUT_STENCIL 32 |
|
| 79 |
+#define GLUT_MULTISAMPLE 128 |
|
| 80 |
+//#define GLUT_STEREO 256 |
|
| 81 |
+#define GLUT_RGB 0 |
|
| 82 |
+#define GLUT_RGBA GLUT_RGB |
|
| 83 |
+#define GLUT_ALPHA GLUT_RGB |
|
| 84 |
+#define GLUT_SINGLE 0 |
|
| 85 |
+#define GLUT_DOUBLE 2 |
|
| 86 |
+#define GLUT_DEPTH 16 |
|
| 87 |
+ |
|
| 88 |
+// Special keys. |
|
| 89 |
+#define GLUT_KEY_F1 1 |
|
| 90 |
+#define GLUT_KEY_F2 2 |
|
| 91 |
+#define GLUT_KEY_F3 3 |
|
| 92 |
+#define GLUT_KEY_F4 4 |
|
| 93 |
+#define GLUT_KEY_F5 5 |
|
| 94 |
+#define GLUT_KEY_F6 6 |
|
| 95 |
+#define GLUT_KEY_F7 7 |
|
| 96 |
+// F8 and up ignored since they are not possible on some keyboards - like mine |
|
| 97 |
+//#define GLUT_KEY_LEFT 100 |
|
| 98 |
+//#define GLUT_KEY_UP 101 |
|
| 99 |
+//#define GLUT_KEY_RIGHT 102 |
|
| 100 |
+//#define GLUT_KEY_DOWN 103 |
|
| 101 |
+//#define GLUT_KEY_PAGE_UP 104 |
|
| 102 |
+//#define GLUT_KEY_PAGE_DOWN 105 |
|
| 103 |
+//#define GLUT_KEY_HOME 106 |
|
| 104 |
+//#define GLUT_KEY_END 107 |
|
| 105 |
+//#define GLUT_KEY_INSERT 108 |
|
| 106 |
+// Re-mapped 2015-09-23: Make EVERYTHING "ordinary", no need for "special!" |
|
| 107 |
+// I know that these codes mean something else, but none of them mean any keys! |
|
| 108 |
+#define GLUT_KEY_LEFT 28 |
|
| 109 |
+#define GLUT_KEY_UP 29 |
|
| 110 |
+#define GLUT_KEY_RIGHT 30 |
|
| 111 |
+#define GLUT_KEY_DOWN 31 |
|
| 112 |
+#define GLUT_KEY_PAGE_UP 22 |
|
| 113 |
+#define GLUT_KEY_PAGE_DOWN 23 |
|
| 114 |
+#define GLUT_KEY_HOME 24 |
|
| 115 |
+#define GLUT_KEY_END 25 |
|
| 116 |
+#define GLUT_KEY_INSERT 26 |
|
| 117 |
+// Visibility |
|
| 118 |
+#define GLUT_NOT_VISIBLE 0 |
|
| 119 |
+#define GLUT_VISIBLE 1 |
|
| 120 |
+ |
|
| 121 |
+// These feel less important to me |
|
| 122 |
+#define GLUT_KEY_ESC 27 |
|
| 123 |
+#define GLUT_KEY_TAB 9 |
|
| 124 |
+#define GLUT_KEY_RETURN 13 |
|
| 125 |
+#define GLUT_KEY_SPACE ' ' |
|
| 126 |
+#define GLUT_KEY_SEMICOLON ';' |
|
| 127 |
+#define GLUT_KEY_COMMA ',' |
|
| 128 |
+#define GLUT_KEY_DECIMAL '.' |
|
| 129 |
+#define GLUT_KEY_GRAVE '`' |
|
| 130 |
+#define GLUT_KEY_QUOTE '\'' |
|
| 131 |
+#define GLUT_KEY_LBRACKET '[' |
|
| 132 |
+#define GLUT_KEY_RBRACKET ']' |
|
| 133 |
+#define GLUT_KEY_BACKSLASH '\\' |
|
| 134 |
+#define GLUT_KEY_SLASH '/' |
|
| 135 |
+#define GLUT_KEY_EQUAL '=' |
|
| 136 |
+ |
|
| 137 |
+ |
|
| 138 |
+// Menu support |
|
| 139 |
+int glutCreateMenu(void (*func)(int value)); |
|
| 140 |
+void glutAddMenuEntry(char *name, int value); |
|
| 141 |
+void glutAttachMenu(int button); |
|
| 142 |
+void glutDetachMenu(int button); |
|
| 143 |
+void glutAddSubMenu(char *name, int menu); |
|
| 144 |
+void glutSetMenu(int menu); |
|
| 145 |
+int glutGetMenu(void); |
|
| 146 |
+void glutChangeToMenuEntry(int index, char *name, int value); |
|
| 147 |
+ |
|
| 148 |
+// Visibility not-really-support |
|
| 149 |
+void glutVisibilityFunc(void (*visibility)(int status)); |
|
| 150 |
+ |
|
| 151 |
+// Move mouse pointer, conforms with GLUT |
|
| 152 |
+void glutWarpPointer(int x, int y); |
|
| 153 |
+ |
|
| 154 |
+// New calls: Show/hide mouse pointer. Great for mouse controlled games. |
|
| 155 |
+// (Untested and so far missing in Linux/Windows API) |
|
| 156 |
+// Rename to GLUT-conforming glutSetCursor? |
|
| 157 |
+void glutShowCursor(); |
|
| 158 |
+void glutHideCursor(); |
|
| 159 |
+ |
|
| 160 |
+void glutFullScreen(); |
|
| 161 |
+void glutExitFullScreen(); |
|
| 162 |
+void glutToggleFullScreen(); |
|
| 163 |
+ |
|
| 164 |
+void glutExit(); |
|
| 165 |
+ |
|
| 166 |
+// Placeholders, we only support one window, unlike FreeGlut. |
|
| 167 |
+void glutSetWindow(int win); |
|
| 168 |
+int glutGetWindow(void); |
|
| 169 |
+ |
|
| 170 |
+#ifdef __cplusplus |
|
| 171 |
+} |
|
| 172 |
+#endif |
|
| 173 |
+ |
|
| 174 |
+ |
|
| 175 |
+#endif |