A bug was reported against xscreensaver in Debian
(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=105372)
which is really a deficiency in XFree.  They asked me to
forward my comments here...

Anyway, the original complaint is this: when xscreensaver is fading
the whole screen to black, very bright colors don't fade (but
less-than-fully-saturated colors do.)  It looks pretty funny.

This is because the new gamma interface in XFree 4 gives me 
insufficient control. 

There are three systems on which xscreensaver can fade the screen to
black:

  - any X server running in PseudoColor mode (using colormap hackery)
  - the SGI server, in any depth (using gamma fade)
  - the XFree 4 server, in any depth (using gamma fade)

It works great on the first two, and screws up on XFree 4.

The reason gamma fade works fine on SGI is that their UI for setting
the monitor's gamma lets me actually specify a *curve* for the gamma
response of the monitor.  So I do it by ramping all points on that
curve down proportionally, until all colors/saturations are faded to
black.

The XFree interface only lets me specify a gamma value, not a curve.
It generates a curve from that number in the traditional way, and the
curve generated does not touch fully saturated colors.  So only colors
at low-to-medium saturation levels are faded properly.

Furthermore, the XFree interface doesn't let me ramp all the way down
to black: it signals an X error if you give it a gamma less than 0.1
(or something like that.)  That means that it never fades all the way
to black, and you see a slight jump at the very end.  

So, while it's nice that XFree finally gave us some control over gamma,
they didn't give us enough control.  Because of that, xscreensaver's
fading looks kinda hokey on XFree (while it works great on SGIs, and in
8-bit mode.)

So, please provide a gamma interface where I can specify the transfer
map for each input value: something along the lines of, letting me give
you an array of 255 values where I can map input intensity to output
intensity.  (The SGI interface uses three such maps, for R, G, and B.)

-- 
Jamie Zawinski
[EMAIL PROTECTED]             http://www.jwz.org/
[EMAIL PROTECTED]       http://www.dnalounge.com/
_______________________________________________
Xpert mailing list
[EMAIL PROTECTED]
http://XFree86.Org/mailman/listinfo/xpert

Reply via email to