*/
#include <GL/freeglut.h>
+#include <GL/freeglut_ext.h>
#include <stdarg.h>
#include <stdio.h>
static void drawWireCone(void) { glutWireCone(orad,orad,slices,stacks); } /* orad doubles as size input */
static void drawSolidCylinder(void) { glutSolidCylinder(orad,orad,slices,stacks); } /* orad doubles as size input */
static void drawWireCylinder(void) { glutWireCylinder(orad,orad,slices,stacks); } /* orad doubles as size input */
+static void drawSolidTeapot(void)
+{ glFrontFace(GL_CW); glutSolidTeapot(orad); glFrontFace(GL_CCW); /* orad doubles as size input */}
+static void drawWireTeapot(void)
+{ glFrontFace(GL_CW); glutWireTeapot(orad); glFrontFace(GL_CCW); /* orad doubles as size input */}
/*
* This structure defines an entry in our function-table.
ENTRY (RhombicDodecahedron),
ENTRY (Icosahedron),
ENTRY (SierpinskiSponge),
- /* ENTRY (Teapot), */
+ ENTRY (Teapot),
ENTRY (Torus),
ENTRY (Sphere),
ENTRY (Cone),
/* Program entry point */
-void init_resources() {
+void init_context() {
+ printf("init_context\n"); fflush(stdout);
glClearColor(1,1,1,1);
glEnable(GL_CULL_FACE);
glCullFace(GL_BACK);
glutSpecialFunc(special);
glutIdleFunc(idle);
glutMouseFunc(onMouseClick);
+ glutInitContextFunc(init_context);
glutSetOption ( GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_CONTINUE_EXECUTION ) ;
- init_resources();
glutMainLoop();
#ifdef _MSC_VER