[1650] in Release_7.7_team

home help back first fref pref prev next nref lref last post

Re: Ultra 5 and 10 colordepth issues

daemon@ATHENA.MIT.EDU (Bill Cattey)
Tue Feb 9 19:08:53 1999

Date: Tue,  9 Feb 1999 19:08:46 -0500 (EST)
From: Bill Cattey <wdc@MIT.EDU>
To: release-team@MIT.EDU, Abby Fox <ajfox@MIT.EDU>
Cc: ccount@MIT.EDU
In-Reply-To: <199902092313.SAA10232@whirlwind>

Abby:

I expect Greg may be able to answer the specifics of the video questions.
I was wondering if a suitably nice re-wording of the following might
make its way to Tom Grayson:

It is frustrating in the extreme to try and simultaneously satisfy the
following requirements for the X service on Athena machines:

	An 8 bit default so that ancient programs written when only 8 bit
displays were present will run at all.
	A 24 bit default so that certain programs that choose not to explicitly
ask for a visual they support can run.
	A login option to control the default.
	A simple set of login options that do not confuse users.
	A simple deployment of Athena releases that do not contain custom
Xlogin coding for every kind of X server to control the 8 bit or 16 bit
default.
	Support of the vendor supplied X servers each one of which seems to 
have a unique way to set the default visual.

Were it not for the exposure to the legacy applications with 8 bit
defaults that require massive rewrites, I would like to have the Athena
X servers capable of supporting 24 bit color do so by default.

Up until the issue with ARCView, we thought we had a very good balance:
8 bit default for systems that supported more than one depth. Until
ARCView, every X application we had ever seen that supported more than
one depth took the extra half-dozen lines of code to query and use the
best one.

 If it is at all possible to obtain an enhancement from the vendor of
ARCView, the number of lines of C code to change is very small compared
to the other disruptions to the Athena release on the different
platforms that will result from trying to accomodate their special case.

The change required would be to add a routine to find out what depths
are present, and use the maximum one.  Something like this:

	int *depths, depthct, depthiter, depthmax;
	mydepth =  XDefaultDepth (mydisplay,
		XDefaultScreen(mydisplay));
	depths = XListDepths (mydisplay, 
		XDefaultScreen(mydisplay), &depthct);
	for (depthiter = depthct; depthiter >  0; depthiter--) {
		if (depths[depthiter] > mydepth )
			mydepth = depths[depthiter];
	}

Then search the source code for every other use of 
	XDefaultDepth(mydisplay,
		XDefaultScreen(mydisplay))
and replace with mydepth.

Depending on how bad the code is, this could be one hour's or one day's
work.  It is definitely a worthwhile enhancement, and makes life a LOT
easier for us.

-wdc



home help back first fref pref prev next nref lref last post