Restore system colors

Hi,

I'm programming an application on Solaris (Sun Sparcstation) that draws 3D-Polygons by use of XGL, XVIEW and XLIB.

In order to visualize additional information I switch from one LUT to the next as fast as possible (several times per second). This works fine, but when my program quits the system-colors will not be restored so that the desktop remains in strange colors.

I intend to read out the current LUT when my program starts and to restore these colors when my program quits, but I still have problems reading out the current LUT at startup. The problem may be that the desktop is in RGB-Mode so that there is no 8bit-LUT in use.

The used graphics accelerator Leo ZX supports
  2*24bit double buffered graphics
  24bit Z-Buffer
  8bit Overlay
  10bit Window-ID
  6bit fast clear

Initialization-Phase:
  Xgl_color lut[256];
  ...
  canvas = (Canvas) xv_create(frame, CANVAS, WIN_DEPTH, 8, XV_VISUAL_CLASS, 3, NULL);
  win_ras = xgl_object_create(sys_st, ..., XGL_DEV_COLOR_TYPE, XGL_COLOR_INDEX, NULL);

The routine set_lut():
  cmap_info.colors = lut;
  xgl_object_set(cmap, XGL_CMAP_COLOR_TABLE, &cmap_info, NULL);
  xgl_object_set(win_ras, XGL_DEV_COLOR_MAP, cmap, NULL);

Does anybody has an idea how to restore the system-colors when my program quits?

Thanks, M. Lindner
lindnerAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

lindnerAuthor Commented:
Adjusted points to 100
0
lindnerAuthor Commented:
Adjusted points to 125
0
EricKaplanCommented:
Use a pallete for the application instead of the system's
-Eric.
0
lindnerAuthor Commented:
Hi Eric,

the question is: HOW can I do that? And HOW can I switch back to the system's palette when my program quits? Shall I use functions of XGL, XVIEW or XLIB for this? I already tried lots of ways, but up to today without success.

Yours, Lindner

0
EricKaplanCommented:
Check out any book which deals tith CGL/XVIEW/XLIB, any of them
should have the code/example/instructions about how to work, define and switch between palettes.

-Eric.
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
System Programming

From novice to tech pro — start learning today.

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.