Keys:
- <tt>Esc </tt> Quit
- <tt>q Q </tt> Quit
+ - <tt>i I </tt> Show info
- <tt>= + </tt> Increase \a slices
- <tt>- _ </tt> Decreate \a slices
- <tt>, < </tt> Decreate \a stacks
#include <stdlib.h>
#ifdef WIN32
-#include <crtdbg.h> // DUMP MEMORY LEAKS
+/* DUMP MEMORY LEAKS */
+#include <crtdbg.h>
#endif
/*
static double orad = 1.0;
static int depth = 4;
static double offset[ 3 ] = { 0, 0, 0 };
-
+static GLboolean show_info = GL_TRUE;
/*
* These one-liners draw particular objects, fetching appropriate
glutBitmapWidth(font, ' ') * col,
- glutBitmapHeight(font) * (row+2) + viewport[3]
);
- glutBitmapString (font, buf);
+ glutBitmapString (font, (unsigned char*)buf);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glEnable(GL_LIGHTING);
- printf ( "Shape %d slides %d stacks %d\n", function_index, slices, stacks ) ;
-
glColor3d(1,0,0);
glPushMatrix();
glDisable(GL_LIGHTING);
glColor3d(0.1,0.1,0.4);
-/* shapesPrintf (1, 3, "Shape PgUp PgDn: %s", table [function_index].name);
- shapesPrintf (2, 3, " Slices +-: %d Stacks <>: %d", slices, stacks);
- shapesPrintf (3, 3, " nSides +-: %d nRings <>: %d", slices, stacks);
- shapesPrintf (4, 3, " Depth (): %d", depth);
- shapesPrintf (5, 3, " Outer radius Up Down : %f", orad);
- shapesPrintf (6, 3, " Inner radius Left Right: %f", irad);
-*/
+ if( show_info ) {
+ shapesPrintf (1, 3, "Shape PgUp PgDn: %s", table [function_index].name);
+ shapesPrintf (2, 3, "Slices +-: %d Stacks <>: %d", slices, stacks);
+ shapesPrintf (3, 3, "nSides +-: %d nRings <>: %d", slices, stacks);
+ shapesPrintf (4, 3, "Depth (): %d", depth);
+ shapesPrintf (5, 3, "Outer radius Up Down : %f", orad);
+ shapesPrintf (6, 3, "Inner radius Left Right: %f", irad);
+ } else {
+ printf ( "Shape %d slides %d stacks %d\n", function_index, slices, stacks ) ;
+ }
+
glutSwapBuffers();
}
case 'Q':
case 'q': glutLeaveMainLoop () ; break;
+ case 'I':
+ case 'i': show_info = ( show_info == GL_TRUE ) ? GL_FALSE : GL_TRUE; break;
+
case '=':
case '+': slices++; break;
glutMainLoop();
#ifdef WIN32
- _CrtDumpMemoryLeaks () ; // DUMP MEMORY LEAK INFORMATION
+ /* DUMP MEMORY LEAK INFORMATION */
+ _CrtDumpMemoryLeaks () ;
#endif
return EXIT_SUCCESS;
if( event.type == KeyPress )
{
- keyboard_cb = FETCH_WCB( *window, Keyboard );
- special_cb = FETCH_WCB( *window, Special );
+ keyboard_cb = (FGCBKeyboard)( FETCH_WCB( *window, Keyboard ));
+ special_cb = (FGCBSpecial) ( FETCH_WCB( *window, Special ));
}
else
{
- keyboard_cb = FETCH_WCB( *window, KeyboardUp );
- special_cb = FETCH_WCB( *window, SpecialUp );
+ keyboard_cb = (FGCBKeyboard)( FETCH_WCB( *window, KeyboardUp ));
+ special_cb = (FGCBSpecial) ( FETCH_WCB( *window, SpecialUp ));
}
/* Is there a keyboard/special callback hooked for this window? */