#!/usr/local/bin/cz --
use b

int r1=180

Main()
	paper()
#	space(640, 480)
#	space(320, 240)
	gprint_anchor(0, 0)
	font("helvetica-medium", 200)
	cstr s = args ? join(' ', arg) : "Hello World!"
	num tw = text_width(s)
	int fs = (int)(200*(w-r1*2)/tw * 0.95)
	font("helvetica-medium", fs)
	col(black)
	move(0, 0)
	gsayf(s)
	Paint()

	with_pixel_type(shiny)

def shiny(pixel_type)
	new(v, vec, XPoint)
	pixel_type *px = (pixel_type *)pixel(vid, 1, 1)
	for(y, 1, h-1)
		for(x, 1, w-1)
			pixel_type o = *px
			if o == black &&
			  (px[-1] != black || px[1] != black || px[-w] != black || px[w] != black)
				XPoint *p = vec_push(v)
				p->x = x-w_2
				p->y = h_2-1-y
			++px
		px += 2
	clear()

	back(r, r1+1)
#		Sayf("%d", r)
		font("helvetica-medium", fs)
		hsv((r*16) % 360, 1, r*1.0/r1)
		for_vec(i, v, XPoint)
			circle(i->x, i->y, r)
		Paint()

	font("helvetica-medium", fs)
	col(black)
	move(0, 0)
	gsayf(s)
	Paint()

# assuming 32 bit colour again:
def r(x) x >> 16 & 0xFF
def g(x) x >> 8 & 0xFF
def b(x) x & 0xFF

def fastrgb32(r0, g0, b0) (long)r0<<16 | (long)g0<<8 | (long)b0

def fnp 3
#def fn(o, x0, x1, x2, x3) iclamp(pow(avg(pow(o, fnp), pow(x0, fnp), pow(x1, fnp), pow(x2, fnp), pow(x3, fnp)), 1.0/fnp)*1.001, 0, 255)

#def fn(o, x0, x1, x2, x3) iclamp(toss() ? avg(o, x0, x1, x2, x3) : max(o, x0, x1, x2, x3)*0.8, 0, 255)
def fn(o, x0, x1, x2, x3) avg(o, x0, x1, x2, x3)
