/*
==============================================================================
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 <conio.h>
#include <wgt5.h>
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 */
}