| Re: color question [message #19800 is a reply to message #19690] |
Tue, 25 April 2000 00:00  |
R.Bauer
Messages: 1424 Registered: November 1998
|
Senior Member |
|
|
David Fanning wrote:
>
> 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
>
Thanks David,
sometimes the widget changes the graphics device to 0.
It was pure accident that's I found this.
I don't find DEVICE,SET_GRAPHICS_FUNCTION=0 in the widget code.
Which other reasons or programs are known to change the graphics
function.
Reimar
|
|
|
|