/* ============================================================================== WordUp Graphics Toolkit Version 5.0 Demonstration Program 27 Draws some circles, captures a block, and skews the block while rotating the colors. *** PROJECT *** This program requires the file WGT5_WC.LIB to be linked. *** DATA FILES *** NONE WATCOM C++ VERSION ============================================================================== */ #include #include void main(void) { block skewit; /* Pointer to our block */ color palette[256]; /* Our palette */ short oldmode; /* Store initial video mode */ short i = 0; /* Loop counter */ if ( !vgadetected () ) { printf("Error - VGA card required for any WGT program.\n"); exit (0); } printf ("WGT Example #27\n\n"); printf ("A bitmap is skewed left and right while the palette is rotated.\n"); printf ("Press a key to end the program at any time.\n"); printf ("\n\nPress any key to continue.\n"); getch (); oldmode = wgetmode (); /* Gets the current mode */ vga256 (); /* Initialize graphics mode */ wreadpalette (0, 255, palette); /* Store our current palette */ wcls (0); /* Clear screen with black */ for (i = 100; i > 0; i--) /* Draw 100 filled circles */ { wsetcolor (i); wfill_circle (160, 100, i); } wsetcolor (0); /* Use black as active color */ wbar (0, 0, 104, 199); /* Draw two solid rectangles */ wbar (216, 0, 319, 199); skewit = wnewblock (100, 40, 220, 160); /* Grab a block for skewing */ wcls (0); /* Clear screen with black */ do { for (i = -100; i < 100; i += 2) /* Skew image 2 pixels at a time */ { wretrace (); wskew (100, 40, skewit, i); wcolrotate (1, 100, 0, palette); /* Rotate palette too */ wsetpalette (1, 100, palette); /* And show palette changes */ } for (i = 100; i > -100; i -= 2) /* Skew image back to starting pos */ { wretrace (); wskew (100, 40, skewit, i); wcolrotate (1, 100, 0, palette); /* Rotate palette */ wsetpalette (1, 100, palette); /* Show palette changes */ } } while (!kbhit ()); /* Stop when key is pressed */ getch (); wsetmode (oldmode); /* Restore initial video mode */ }