/*
==============================================================================
WordUp Graphics Toolkit Version 5.0
Demonstration Program 11
Shows the use of wgetblockwidth and wgetblockheight, and demonstrates
the wresize procedure.
*** PROJECT ***
This program requires the file WGT5_WC.LIB to be linked.
*** DATA FILES ***
WGT1.PCX
WATCOM C++ VERSION
==============================================================================
*/
#include <wgt5.h>
#define TIMERSPEED 60
int timer;
int size;
int direction = -1;
void timer_routine (void)
{
timer++;
}
void main(void)
{
short i,x,y;
short oldmode;
block part1; /* part of the screen */
color pal[256];
printf ("WGT Example #11\n\n");
printf ("This program will load a bitmap from a file and display it on the screen.\n");
printf ("It will then switch back to text mode and display how big the picture is.\n");
printf ("Graphics mode is entered and the image is resized until a key is\n");
printf ("pressed.\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 ();
vga256 ();
part1 = wloadpcx ("wgt1.pcx", pal);
wsetpalette (0, 255, pal);
wnormscreen ();
wputblock (0, 0, part1, 0);
getch ();
wcls (0);
x = wgetblockwidth (part1);
y = wgetblockheight (part1);
wsetmode (oldmode);
printf ("Block width : %i\n",x);
printf ("Block height: %i\n",y);
printf ("Block size is %u bytes.",x*y+4); /* Add 4 bytes for width and height */
printf ("\nPress any key to resize...\n");
getch ();
vga256 ();
wsetpalette (0, 255, pal);
timer = 0;
size = 50;
winittimer ();
wstarttimer (timer_routine, TICKS(TIMERSPEED));
wclip (0, 0, 319, 199);
do {
if (direction > 0)
{
size += timer * 2;
timer = 0;
if (size > 50)
direction = -1;
}
else
{
size -= timer * 2;
timer = 0;
if (size < -1000)
direction = 1;
}
wresize (size, size, 319 - size, 199 - size, part1, NORMAL);
} while (!kbhit ());
getch ();
wstoptimer ();
wdonetimer ();
wfreeblock (part1);
wsetmode (oldmode);
}