/*
	gdstest.c
	gds test sample
	lcc test gdsobj\*.obj
	1994.2.1
*/

#include <stdio.h>
#include <stdlib.h>
#include "gds.h"

#define rnd(x)	( rand() % x )
#define clstxt()	putch('\f')

void main( int argc,char **argv ){
	signed int x1,y1,x2,y2,style;
	int i,ret=89;
	unsigned char *wp;
	
	if( argc>1 ) ret = atoi(argv[1]);
	srand( ret );

	clstxt();
	/* wp の取得 */
	wp = ( unsigned char *) malloc( 100 );

	/* page 1 */
	GDS_write_page(1);
	GDS_display_page(1);
		ret = GDS_display(wp);
	ret = GDS_all_clear();
	if( ret != 0 ) puts( "gds_all_clear err" );

	GDS_point_color(wp,11);
		ret = GDS_display(wp);
		if( ret != 0 ){
			puts("gds_point_color err.");
		}
	GDS_draw_mode(wp,PSET);
		ret = GDS_display(wp);
		if( ret != 0 ){
			puts("gds_draw_mode err.");
		}
	/* ランダム 点々 */
	for(i=0;i<10000;i++){
		x1 = rnd( 640 );
		y1 = rnd( 400 );
		GDS_point_color(wp,( i % 15 ));
		GDS_point(wp,x1,y1);
		ret = GDS_display(wp);
		if( ret != 0 ){
			puts("gds_point err.");
		}
	}
	/* ランダム 横線 */
	for(i=0;i<100;i++){
		GDS_line_color(wp,( i % 15 ));
		x1 = rnd( 640 );
		y1 = y2 = i*4;
		x2 = rnd( 640 );
		style = ( i % 3 )+1;
		GDS_line_style(wp,style);
		GDS_line(wp,x1,y1,x2,y2);
		ret = GDS_display(wp);
		if( ret != 0 ){
			printf("i = %d",i);
			puts("gds_line err.");
		}
	}
	/* ランダム 縦線 */
	for(i=0;i<160;i++){
		GDS_line_color(wp,( i % 15 ));
		x1 = x2 = i*4;
		y1 = rnd( 400 );
		y2 = rnd( 400 );
		style = ( i % 3 )+1;
		GDS_line_style(wp,style);
		GDS_line(wp,x1,y1,x2,y2);
		ret = GDS_display(wp);
		if( ret != 0 ){
			printf("i = %d",i);
			puts("gds_line err.");
		}
	}

	puts("hit anykey.");
	getch();
	/* page 0 */
	GDS_write_page(0);
	GDS_display_page(0);
}
