/* Include Files */
#include <stdio.h>
#include <stdlib.h>
+#include <stdarg.h>
#include <string.h>
#include <math.h>
#include <GL/freeglut.h>
-#ifdef WIN32
+#ifdef _MSC_VER
/* DUMP MEMORY LEAKS */
#include <crtdbg.h>
#endif
glEnd () ;
}
-void display_cb ( void )
+void bitmapPrintf (const char *fmt, ...)
{
- char string [ 80 ] ;
+ static char buf[256];
+ va_list args;
+
+ va_start(args, fmt);
+#if defined(WIN32) && !defined(__CYGWIN__)
+ (void) _vsnprintf (buf, sizeof(buf), fmt, args);
+#else
+ (void) vsnprintf (buf, sizeof(buf), fmt, args);
+#endif
+ va_end(args);
+ glutBitmapString ( GLUT_BITMAP_HELVETICA_12, (unsigned char*)buf ) ;
+}
+void display_cb ( void )
+{
glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ) ;
glColor3d ( 1.0, 1.0, 1.0 ) ; /* White */
/* Print the distance between the two points */
glColor3d ( 1.0, 1.0, 1.0 ) ; /* White */
- sprintf ( string, "Distance: %10.6f", distance ) ;
- glRasterPos2i ( 10, 10 ) ;
- glutBitmapString ( GLUT_BITMAP_HELVETICA_12, (unsigned char*)string ) ;
+ glRasterPos2i ( 1, 1 ) ;
+ bitmapPrintf ( "Distance: %10.6f", distance ) ;
glutSwapBuffers();
}
/* Enter the GLUT main loop */
glutMainLoop () ;
-#ifdef WIN32
+#ifdef _MSC_VER
/* DUMP MEMORY LEAK INFORMATION */
_CrtDumpMemoryLeaks () ;
#endif