added glutWireTeapot
[miniglut] / miniglut.h
index 4f6a70e..666e5fc 100644 (file)
@@ -21,6 +21,14 @@ along with this program.  If not, see <https://www.gnu.org/licenses/>.
 #ifdef _WIN32
 #define WIN32_LEAN_AND_MEAN 1
 #include <windows.h>
+
+#ifdef _MSC_VER
+#pragma comment (lib, "opengl32")
+#ifndef MINIGLUT_NO_WINMM
+#pragma comment (lib, "winmm")
+#endif
+#endif /* MSVC */
+
 #endif
 #include <GL/gl.h>
 
@@ -79,10 +87,34 @@ enum {
        GLUT_ELAPSED_TIME
 };
 
+enum {
+       GLUT_KEY_HOME = 0xff50,
+       GLUT_KEY_LEFT = 0xff51,
+       GLUT_KEY_UP,
+       GLUT_KEY_RIGHT,
+       GLUT_KEY_DOWN,
+       GLUT_KEY_PAGE_UP,
+       GLUT_KEY_PAGE_DOWN,
+       GLUT_KEY_END = 0xff57,
+       GLUT_KEY_INSERT = 0xff63,
+       GLUT_KEY_F1 = 0xffbe,
+       GLUT_KEY_F2,
+       GLUT_KEY_F3,
+       GLUT_KEY_F4,
+       GLUT_KEY_F5,
+       GLUT_KEY_F6,
+       GLUT_KEY_F7,
+       GLUT_KEY_F8,
+       GLUT_KEY_F9,
+       GLUT_KEY_F10,
+       GLUT_KEY_F11,
+       GLUT_KEY_F12
+};
+
 /* returned by glutGetModifiers */
 #define GLUT_ACTIVE_SHIFT      1
-#define GLUT_ACTIVE_CTRL       2
-#define GLUT_ACTIVE_ALT                4
+#define GLUT_ACTIVE_CTRL       4
+#define GLUT_ACTIVE_ALT                8
 
 typedef void (*glut_cb)(void);
 typedef void (*glut_cb_reshape)(int x, int y);
@@ -94,6 +126,9 @@ typedef void (*glut_cb_motion)(int x, int y);
 typedef void (*glut_cb_sbmotion)(int x, int y, int z);
 typedef void (*glut_cb_sbbutton)(int bn, int state);
 
+#ifdef __cplusplus
+extern "C" {
+#endif
 
 void glutInit(int *argc, char **argv);
 void glutInitWindowPosition(int x, int y);
@@ -128,19 +163,26 @@ void glutMotionFunc(glut_cb_motion func);
 void glutPassiveMotionFunc(glut_cb_motion func);
 void glutSpaceballMotionFunc(glut_cb_sbmotion func);
 void glutSpaceballRotateFunc(glut_cb_sbmotion func);
-void glutSpaceballBittonFunc(glut_cb_sbbutton func);
+void glutSpaceballButtonFunc(glut_cb_sbbutton func);
 
 int glutGet(unsigned int s);
 int glutGetModifiers(void);
 int glutExtensionSupported(char *ext);
 
-void glutSolidSphere(float rad);
-void glutWireSphere(float rad);
+void glutSolidSphere(float rad, int slices, int stacks);
+void glutWireSphere(float rad, int slices, int stacks);
 void glutSolidCube(float sz);
 void glutWireCube(float sz);
-void glutSolidTorus(float inner_rad, float outer_rad, float sides, float rings);
-void glutWireTorus(float inner_rad, float outer_rad, float sides, float rings);
+void glutSolidCone(float base, float height, int slices, int stacks);
+void glutWireCone(float base, float height, int slices, int stacks);
+void glutSolidCylinder(float rad, float height, int slices, int stacks);
+void glutSolidTorus(float inner_rad, float outer_rad, int sides, int rings);
+void glutWireTorus(float inner_rad, float outer_rad, int sides, int rings);
 void glutSolidTeapot(float size);
 void glutWireTeapot(float size);
 
+#ifdef __cplusplus
+}      /* extern "C" */
+#endif
+
 #endif /* MINIGLUT_H_ */