/* ============================================================================== WordUp Graphics Toolkit Version 5.0 Demonstration Program 3 Clears the screen with random colours until you hit a key, and times how fast the system is at writing to video memory. It will report the highest frame rate possible for copying 64k to the video card. *** PROJECT *** This program requires the file WGT5_WC.LIB to be linked. *** DATA FILES *** NONE WATCOM C++ VERSION ============================================================================== */ #include #define TIMERSPEED 60 /* timer_routine is called 60 times per second */ int timer; /* Counts how many times it has been called */ int clearcount; /* Counts the number of screen clears. */ void timer_routine (void) { timer++; } void main(void) { short x; short y; short oldmode; printf ("WGT Example #3\n\n"); printf ("This program will use the wcls routine to clear the screen\n"); printf ("using random colors as fast as it can until you press a key.\n"); printf ("It will then report the highest frame rate possible on your computer.\n"); printf ("\n\nPress any key to continue.\n"); getch (); if ( !vgadetected() ) { printf("Error - VGA card required for any WGT program.\n"); exit(0); } oldmode = wgetmode(); /* Store current video mode */ vga256(); /* Initialize WGT system */ clearcount = 0; timer = 0; winittimer (); wstarttimer (timer_routine, TICKS(TIMERSPEED)); while (!kbhit()) { /* Try including wretrace to see the difference */ // wretrace (); /* Wait for VBLANK to prevent "shearing" */ wcls(rand() % 256); /* Clear with random color out of 256 */ clearcount++; } wstoptimer (); wdonetimer (); getch(); wsetmode(oldmode); /* Restore old video mode */ printf ("%f frames per second\n", (float)clearcount / ((float)timer / (float)TIMERSPEED)); printf ("This is the highest frame rate your computer can produce for full screen\n"); printf ("animation.\n"); }