[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: object graphics colormap bug ?

Udo Grabowski (udo.grabowski@imk.fzk.de) writes:

> We again discovered a possible bug related to colormap switching into
> private mode. We are using Idl on Solaris 2.7 with fvwm2 window manager
> on 8 bit clients. When using draw widgets with object graphics, the 
> colormap is not installed correctly when entering the window with the
> mouse, but shortly flickers to correct colors and then switches back to 
> the previous colormap, which of course gives a distorted view. We reported 
> a similar bug for Idl 5.2 a couple of month before for ordinary draw widgets
> also on CDE, that one disappeared when we upgraded to Idl 5.3. Now, on CDE
> the switching is done correctly, and also on fvwm2 for direct graphics after
> a patch from RSI was implemented. But that patch seemingly does not work for
> object graphics. Can anyone tell the internal differences for both types
> of graphic colormap switching approaches ?

I don't have the first idea about whether this is a
"bug" or not. I would certainly run it by RSI. But
I will hazard an opinion that the chances of running 
object graphics correctly on a 8-bit display are not
good. Certainly I would say nearly impossible if you 
are trying to combine direct graphics and object
graphics in the same program or session.

The two systems are just completely different. And
they use the color table in completely different ways.
Unless you are *very* careful to protect window colors
(for example, by always loading the correct color table
before drawing a graphic), there is no hope. And even
then, you will inevitably have color flashing problems.

Unless you have an extremely compelling reason to be
using object graphics on an 8-bit display, I would
be thinking about another solution.



David Fanning, Ph.D.
Fanning Software Consulting
Phone: 970-221-0438 E-Mail: davidf@dfanning.com
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Toll-Free IDL Book Orders: 1-888-461-0155