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
6bit fast clear
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