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

Re: color question



R.Bauer (R.Bauer@fz-juelich.de) writes:

> I have true_color mode and I have already set device,decomposed=0.
> 
> If I start a widget sometimes the color table is destroyed and I have to
> start a new idl session to get my colors back.
> 
> Any ideas are welcome.

Start a new IDL session!? I can't imagine anything
coming to that, *especially* on a 24-bit display. 
Did you try re-loading your color table? That should
fix things, I soul think.

There are all kinds of ways color tables can be trashed.
For example, some other program can load one. :-)

Normally in widget programs we have to protect our
program's colors. This is usually done by setting up the
colors just the way you want them in the widget definition
module. Then getting the color vectors and storing them
in your info structure. Finally, you load the color vectors
at the same time you do a WSET to make sure you are drawing
into the correct window. (You ARE doing a WSET, aren't you?
You better be!) The code looks something like this:

   WSet, info.windowIndexNo
   TVLCT, info.r, info.g, info.b, info.start
       ... graphics commands here....

The other way you can protect colors is to write and
display colors in a DEVICE DECOMPOSED-INDEPENDENT fashion.
See my GetColor and TVImage programs, for example.

Cheers,

David

--
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