code: 9ferno

ref: 568002402f2e2c18e807e80903c20337af523412
dir: /tests/drawexample.b/

View raw version
# File: draw-example(2)

implement Test;

include "sys.m";
include "draw.m";

Test: module
{
	init:	fn(ctxt: ref Draw->Context, argv: list of string);
};

init(nil: ref Draw->Context, nil: list of string)
{
	sys := load Sys Sys->PATH;
	draw := load Draw Draw->PATH;
	Display, Font, Rect, Point, Image, Screen: import draw;

	display := draw->Display.allocate(nil);
	disp := display.image;
	red := display.color(Draw->Red);
	blue := display.color(Draw->Blue);
	white := display.color(Draw->White);
	yellow := display.color(Draw->Yellow);

	red.r.max.x = 640;
	red.r.max.y = 480;
	red.clipr.min.x = 0;
	red.clipr.min.y = 0;
	red.clipr.max.x = 600;
	red.clipr.max.y = 400;
	white.r.max.x = 640;
	white.r.max.y = 480;
	white.clipr.min.x = 200;
	white.clipr.min.y = 400;
	white.clipr.max.x = 640;
	white.clipr.max.y = 480;
	sys->print("red r .min.x %d .min.y %d .max.x %d .max.y %d\n",
		red.r.min.x, red.r.min.y, red.r.max.x, red.r.max.y);
	#sys->print("red clipr .min.x %d .min.y %d .max.x %d .max.y %d\n",
	#	red.clipr.min.x, red.clipr.min.y,
	#	red.clipr.max.x, red.clipr.max.y);
	sys->print("disp r .min.x %d .min.y %d .max.x %d .max.y %d\n",
		disp.r.min.x, disp.r.min.y, disp.r.max.x, disp.r.max.y);
	sys->sleep(5000);
	disp.draw(disp.r, red, red, disp.r.min);
	sys->sleep(5000);
	disp.draw(disp.r, white, white, disp.r.min);
	sys->sleep(50000);
}