//	include section
	#include <GL/glut.h>	// alternately "glut.h" for Macintosh
	// other includes as needed

//	typedef and global data section
	// as needed

//	function template section
	void doMyInit(void);
	void display(void);
	void reshape(int,int);
	void idle(void);
	//	others as defined

//	initialization function
	void doMyInit(void) {
		set up basic OpenGL parameters and environment
		set up projection transformation (ortho or perspective)
	}

//	reshape function
	void reshape(int w, int h) {
		set up projection transformation with new window
			dimensions w and h
		post redisplay
	}

//	display function
	void display(void){
		set up viewing transformation as in later chapters
		define the geometry, transformations, appearance you need
		post redisplay
	}

//	idle function
	void idle(void) {
		update anything that changes between steps of the program
		post redisplay
	}

//	other graphics and application functions
	// as needed

//	main function -- set up the system, turn it over to events
	void main(int argc, char** argv) {
	//	initialize system through GLUT and your own initialization
		glutInit(&argc,argv);
		glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB);
		glutInitWindowSize(windW,windH);
		glutInitWindowPosition(topLeftX,topLeftY);
		glutCreateWindow("A Sample Program");
		doMyInit();

	//	define callbacks for events as needed; this is pretty minimal
		glutDisplayFunc(display);
		glutReshapeFunc(reshape);
		glutIdleFunc(idle);

	//	go into main event loop
		glutMainLoop();
	}

