Getting compor map colors.
Mark Overmars
markov at cs.ruu.nl
Thu Apr 25 23:08:48 AEST 1991
In <80085 at bu.edu.bu.edu> tjh at bucrf11.bu.edu (Tim Hall) writes:
>In article <1991Apr22.153229.7358 at cs.ruu.nl>, markov at cs.ruu.nl (Mark Overmars) writes:
>|> I have the following problem. I want to draw colormap images inside a RGB
>|> window. As a result I need to find out what the colors in the colormap are. To
>|> this end I thought I should use the routine
>|>
>|> getmcolor()
>|>
>|> Unfortunately, this routine only work when you are in colormap mode, not when
>|> you are in RGB mode. (Why?)
>
> current_window = winget(); /* Remember what the current window is */
>
> noport(); /* Open a window that never appears */
> color_window = winopen( NULL);
>
> Read the color map here.
>
> winclose( color_window );
>
> if ( current_window > 0 ) /* >= ???? I forget.... */
> winset( current_window );
The problem with this solution is that it is way too slow. Even keeping the
color window open and doing a winset on it whenever I need a colormap entry
slows the drawing of e.g. rectangles down by a factor of three (winset seems
to be an expensive call), at least on a GTX. On a 25/TG there was almost no
speed penalty (????). What I do now is to keep my own colormap and reading it in
only once. Of course, in this way I don't see it when the application changes
the colormap but it works fast. (Strangely enough, doing this on a 25/TG was
faster than drawing normal in colormap mode.)
Mark Overmars
More information about the Comp.sys.sgi
mailing list