#include <stdio.h>
#include <process.h>
#include <malloc.h>
#include <conio.h>
#include <stdlib.h>

#include <ryosuke.h>
#include <time.h>
#include <usrlib.h>

#if 0

// void boxfill(x1,y1,x2,y2,col,log)
// 	int	x1,y1,x2,y2,log,col;
// 	{
// 	int ymin,ymax,i,xmin,xmax;
// 	ymin = _min(y1,y2);
// 	ymax = _max(y1,y2);
// 	for (i=ymin; i<=ymax; i++) {
// 		ghline(x1,x2,i,col,log);
// 		}
// 	}

void main(int argc, char *argv[])
	{
	int i,j,X1,X2,Y,X,Y1,Y2,log,xzoom,yzoom,xlen,ylen,col;
	ginit();
	gscreen(10);

	// X1 = 3;
	// X2 = 10;
	// Y  = 20;
	// log=0;
	// xzoom=yzoom=4;
	// if (argc >= 2) {
	// 	log = atoi(argv[1]);
	// 	if (argc>=5) {
	// 		X1 = atoi(argv[2]);
	// 		X2 = atoi(argv[3]);
	// 		Y  = atoi(argv[4]);
	// 		}
	// 	}
	// gscrzoom(xzoom,yzoom);

	// X  = 3;
	// Y1 = 10;
	// Y2 = 20;
	// log=0;
	// xzoom=yzoom=4;
	// if (argc >= 2) {
	// 	log = atoi(argv[1]);
	// 	if (argc>=5) {
	// 		X  = atoi(argv[2]);
	// 		Y1 = atoi(argv[3]);
	// 		Y2 = atoi(argv[4]);
	// 		}
	// 	}
	// gscrzoom(xzoom,yzoom);

	X1 = 10;
	Y1 = 10;
	X2 = 100;
	Y2 = 50;
	log= 0;
	xzoom=yzoom=4;
	if (argc >= 2) {
		log = atoi(argv[1]);
		if (argc>=6) {
			X1 = atoi(argv[2]);
			Y1 = atoi(argv[3]);
			X2 = atoi(argv[4]);
			Y2 = atoi(argv[5]);
			}
		}
	gscrzoom(xzoom,yzoom);
	gline(X1,Y1,X2,Y2,32767,log);

	// X1 = 8;
	// X2 = 50;
	// Y = 15;
	// 
 	// log=0;
 	// xzoom=yzoom=1;
 	// if (argc >= 2) {
 	// 	log = atoi(argv[1]);
	// 	if (argc>=4) {
	// 		xzoom=atoi(argv[2]);
	// 		yzoom=atoi(argv[3]);
	// 		}
	// 	}
	// gscrzoom(xzoom,yzoom);
	// gdsparea(256,256);
	// 
	// xlen=_min(256, 640/xzoom);
	// ylen=_min(256, 480/yzoom);
	// 
	// for (i=0;i<1000;i++) {
	// 	gboxfill(rand()%xlen,rand()%ylen,rand()%xlen,rand()%ylen,1+rand()%32766,log);
	// 	}


#define	GRB(g,r,b)	((g)*1024+(r)*32+(b))

#define	white	GRB(31,31,31)
#define	gray	GRB(15,15,15)

	// gpset(X1-1,Y  ,gray,DrawNORMAL);
	// gpset(X1  ,Y+1,gray,DrawNORMAL);
	// gpset(X1  ,Y-1,gray,DrawNORMAL);
	// gpset(X2+1,Y  ,gray,DrawNORMAL);
	// gpset(X2  ,Y+1,gray,DrawNORMAL);
	// gpset(X2  ,Y-1,gray,DrawNORMAL);
	// ghline(X1,X2,Y,white,log);

	// gpset(X  ,Y1-1,gray,DrawNORMAL);
	// gpset(X-1,Y1  ,gray,DrawNORMAL);
	// gpset(X+1,Y1  ,gray,DrawNORMAL);
	// gpset(X  ,Y2+1,gray,DrawNORMAL);
	// gpset(X-1,Y2  ,gray,DrawNORMAL);
	// gpset(X+1,Y2  ,gray,DrawNORMAL);
	// gvline(X,Y1,Y2,white,log);

	_getch();
	}

void main()
{
	char *p1,*p2;
	if ((p1 = calloc(1,1024*512)) == NULL)
		exit(0);
	gramscr(VPage0, 10, p1);
	gblkcpy(2,3,4,5,VPage0, 6,7,VPage0, DrawNORMAL);
}

#else


void main()
{
	char *p1;
	if ((p1 = calloc(1,1024*512)) == NULL)
		exit(0);
	ginit();
	gscreen(10);
	gscrzoom(2,2);
	gdsparea(320,240);
	gramscr(VPage0,10,p1);
	gwrtpage(VPage0);
	TIFFload("test.tif", 0,0);
	int i;
	for (i=0; i<6000; i++) {
		int dx,dy;
		dx = rand() % 300;
		dy = rand() % 220;
		gblkcpy(16,16,16,16,VPage0, dx,dy,0, DrawTPSET);
	}
	_getch();
}

#endif
