#ifndef lint
static char SccsColdefId[] = "%W%  %G%";
#endif

/* Module:	Color.def
 * Purpose:	Declare and initialize color parameters
 * Modified:	{0} Michael VanHilst	initial version		  19 May 1989
 *		{n} <who> -- <does what> -- <when>
 */

struct colorRec color = {
 NULL,		/* Display *display;		display server */
 -1,		/* int screen;			screen id for display server */
 0,		/* int screen_depth;		number of hardware planes */
 NULL,		/* Visual *visual;		visual of the colormap */
 0,		/* int monochrome;		one color with fixed values */
 0,		/* int single_plane;		one plane dither or diffuse */
 0,		/* Colormap colormap;		server colormap being used */
 0,		/* int cursor_overlay;		overlay plane in use flag */
 0,		/* int ncolors;			num of reserved image colors */
 0,		/* int inverse;			forward or inverse values */
		/* int colormap_mode;		halftone, pseudo, fixed */
 VOP_PseudoColor,
 MOP_GrayScale,	/* int color_tableID;		id of predefined colorset */
 VOP_ContBias,	/* int control_mode;		ContBias, ThreshSat, gamma */
 0,		/* int control_mode_ext;	R_G_B -R|G|B, or RGB -R&G&B */
 0,		/* int colors_alloced;		if colors were alloc'ed */
 0,		/* int old_mode;		previous mode (when change) */
 0,		/* int image_plane_mask;	mask for image planes only */
 0,		/* unsigned long overlay_mask;	mask bit for overlay cursor */
 {		/* struct scalemodeRec scale;	for image scaling modes */
   SOP_Linear,	/*   int mode; */
   10,		/*   int wrap_cnt; */
   2.0,		/*   double root_power; */
   10.0 },	/*   double log_expo; */
 {		/* struct colmapRec map;	describe colormaps to use */
   0,		/*   int private_used;		flag using private colormap */
   0,		/*   int private_installed;	if private map is installed */
   1,		/*   int default_permit;	user permit to use default */
   0,		/*   int default_enable;	possible to use default */
   0,		/*   int private_permit;	user permit to use private */
   0,		/*   int private_enable;	possible to use private */
   0,		/*   Colormap default_colormap;	default colormap of root */
   0,		/*   Colormap private_colormap;	private created colormap */
   NULL,	/*   XVisualInfo *default_vinfo;	default visual info */
   NULL },	/*   XVisualInfo *private_vinfo;	private visual info */
 {		/* struct cellspecRec cells;	request for cells */
   0,		/*   int overlay;		request for overlay plane */
   200,		/*   int wanted;		desired number of cells */
   20,		/*   int min;			minimum number of cells */
   0 },		/*   int got;			actual number of cells */
 {		/* struct palletteRec hard;	read-only basic colors */
   0,		/*   int std_black;		from BlackPixel */
   0,		/*   int std_white;		from WhitePixel */
   0,		/*   int true_black;		true 0,0,0 black */
   0,		/*   int true_white;		true max,max,max white */
   0,		/*   int red; */
   0,		/*   int green; */
   0,		/*   int blue; */
   0 },		/*   int yellow; */
 {		/* struct halftoneRec halftone;	halftoning stuff */
   BOP_Dither,	/*   int mode;			dither, diffuse */
   BOP_Matrix1,	/*   int matrixID;		Matrix1, Matrix2 */
   0,		/*   int inverse;		halftone's own flag */
   0,		/*   int pad; */
   NULL,	/*   short *matrix;		dithering weight matrix */
   NULL },	/*   short *errbuf;		error diffusion error buffer */
 {		/* struct curcolorRec cur;	cursor drawing stuff */
   0,		/*   int disp_one;		color map slots for graphics */
   0,		/*   int disp_two; */
   "green",	/*   char *default_cur;		default cursor color name */
   "yellow",	/*   char *default_one;		default graphics color names */
   "red",	/*   char *default_two; */
   NULL,	/*   char *desired_cur;		user's cursor color name */
   NULL,	/*   char *desired_one;		user's graphics colors names */
   NULL,	/*   char *desired_two; */
   { 0 },	/*   XColor color_cur;		cursor color description */
   { 0 },	/*   XColor color_one;		graphics color description */
   { 0 } },	/*   XColor color_two; */
 {		/* struct gcsetRec gcset;	specifications of gc's used */
   {		  /* GCspec disp;		image display parameters */
     U_DONT_CARE,   /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* Cspec draw;		cursor drawing parameters */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* Cspec track;		cursor tracking parameters */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* Cspec undraw;		cursor erasing parameters */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* Cspec incl;		include region parameters */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* Cspec excl;		exclude region parameters */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* Cspec menu;		std_black on white */
     0,		    /* unsigned long foreground; */
     0,		    /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* GCspec red;		for drawing red lines */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* GCspec green;		for drawing green lines */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* GCspec blue;		for drawing blue lines */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* GCspec black;		for drawing black lines */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes },   /* unsigned long mask; */
   {		  /* GCspec white;		for drawing white lines */
     0,		    /* unsigned long foreground; */
     U_DONT_CARE,   /* unsigned long background; */
     GXcopy,	    /* int func; */
     AllPlanes } }, /* unsigned long mask; */
 {		/* struct colorTable ctable;	pseudocolor vertex table */
   {		  /* struct subtableRec red; */
     0,		    /* int fixed_cells;		direct cellmap (no table) */
     2,		    /* int vertex_cnt;		number of vertices defined */
     0,		    /* int map_sz;		number of cells in map */
     0,		    /* int do_gamma;		if gamma correction != 1 */
     0,		    /* int invert_order;	order inverted */
     0,		    /* int pad;			space for allignment */
     1.0,	    /* double contrast;		cell=(base*contrast)+bias */
     0.5,	    /* double bias;		base=(cell-bias)/contrast */
     1.0,	    /* double gamma;		gamma correction factor */
     { 0.0, 1.0 },  /* double cell_level[PSEUDOSZ];	cell levels */
     {-0.5, 0.5 },  /* double base_level[PSEUDOSZ];	original levels */
     { 0.0, 1.0 },  /* double intensity[PSEUDOSZ];	intensity by level */
     { 0.0 },	    /* double cellmap[COLMAPSZ];	intensity by cell */
     { 0.0 } },	    /* double gammamap[COLMAPSZ];	gamma corrected map */
   {		  /* struct subtableRec green; */
     0,		    /* int fixed_cells;		direct cellmap (no table) */
     2,		    /* int vertex_cnt;		number of vertices defined */
     0,		    /* int map_sz;		number of cells in map */
     0,		    /* int do_gamma;		if gamma correction != 1 */
     0,		    /* int invert_order;	order inverted */
     0,		    /* int pad;			space for allignment */
     1.0,	    /* double contrast;		cell=(base*contrast)+bias */
     0.5,	    /* double bias;		base=(cell-bias)/contrast */
     1.0,	    /* double gamma;		gamma correction factor */
     { 0.0, 1.0 },  /* double cell_level[PSEUDOSZ];	cell levels */
     {-0.5, 0.5 },  /* double base_level[PSEUDOSZ];	original levels */
     { 0.0, 1.0 },  /* double intensity[PSEUDOSZ];	intensity by level */
     { 0.0 },	    /* double cellmap[COLMAPSZ];	intensity by cell */
     { 0.0 } },	    /* double gammamap[COLMAPSZ];	gamma corrected map */
   {		  /* struct subtableRec blue; */
     0,		    /* int fixed_cells;		direct cellmap (no table) */
     2,		    /* int vertex_cnt;		number of vertices defined */
     0,		    /* int map_sz;		number of cells in map */
     0,		    /* int do_gamma;		if gamma correction != 1 */
     0,		    /* int invert_order;	order inverted */
     0,		    /* int pad;			space for allignment */
     1.0,	    /* double contrast;		cell=(base*contrast)+bias */
     0.5,	    /* double bias;		base=(cell-bias)/contrast */
     1.0,	    /* double gamma;		gamma correction factor */
     { 0.0, 1.0 },  /* double cell_level[PSEUDOSZ];	cell levels */
     {-0.5, 0.5 },  /* double base_level[PSEUDOSZ];	original levels */
     { 0.0, 1.0 },  /* double intensity[PSEUDOSZ];	intensity by level */
     { 0.0 },	    /* double cellmap[COLMAPSZ];	intensity by cell */
     { 0.0 } } },   /* double gammamap[COLMAPSZ];	gamma corrected map */
 { 0 },		/* unsigned long pixvalmap[COLMAPSZ];	byte to hardware val */
 { 0 }		/* XColor cellstore[COLMAPSZ];		for setting colors */
};
