Twilight Background Program

Howard Look howardl at landis.csd.sgi.com
Thu Jun 7 03:30:04 AEST 1990


Here's yet another little background program. It looks like the
sky at sunset. It will only run properly on 24 or more bit plane systems.

Compile it with:
cc night.c -lgl_s -lm -o night

Enjoy.

----------------------------------------------------------
Howard Look                          "What's your point ?"
Customer Support Division
Silicon Graphics
howardl at sgi.com
----------------------------------------------------------

(------- cut here --------)
#include "gl.h"
#include "device.h"

/*
A way cool background that looks like the twilight sky.
Start it up in user.ps

Howard Look
howardl at sgi.com
*/

main()
{
	int gid;
	
	imakebackground() ;

	gid = winopen("") ;
	RGBmode();
	gconfig();
	shademodel(GOURAUD);
	
	ortho2(0.0, 1.0, 0.0, 1.0) ;

	qenter(REDRAW,gid);

	while (1)
	{
		short val ;
		long dev = qread(&val) ;
		if (dev == REDRAW) draw_background() ;
	}
}

#define Y1 0.0
#define Y2 .2

draw_background()
{
    int i,j;
	static int orange[] = {255,72,0};
	static int blueish[] = {0,110,189};
	static int black[] = {0,0,0};
	static int red[] = {255,0,0};
	float v1[2],v2[2],v3[2],v4[2];

	v1[0] = v4[0] = 0.0;
	v2[0] = v3[0] = 1.0;

	v1[1] = v2[1] = 0.0;
	v3[1] = v4[1] = Y1;
	bgnpolygon();
		c3i(red);
		v2f(v1);
		v2f(v2);
		c3i(orange);
		v2f(v3);
		v2f(v4);
	endpolygon();

	v1[1] = v2[1] = Y2;
	bgnpolygon();
		c3i(orange);
		v2f(v4);
		v2f(v3);
		c3i(blueish);
		v2f(v2);
		v2f(v1);
	endpolygon();

	v3[1] = v4[1] = 1.0;
	bgnpolygon();
		c3i(blueish);
		v2f(v1);
		v2f(v2);
		c3i(black);
		v2f(v3);
		v2f(v4);
	endpolygon();

	cpack(0xFFFFFF);

    for (j=0; j<10; j++)
    {
        bgnpoint();
        for (i=0; i<256; i++)
        {
			float x[2];
			x[0] = ((float)rand())/32767.0;
			x[1] = ((float)rand())/32767.0;
			v2f(x);
        }
        endpoint();
    }

    for (j =0; j<200; j++)
    {
		float x[2],r;
		x[0] = ((float)rand())/32767.0;
		x[1] = ((float)rand())/32767.0;
		r = ((float)rand())/32767.0/500.0;
		circf(x[0],x[1],r);
    }
}



More information about the Comp.sys.sgi mailing list