-- ColorMap.mesa -- last edited by Maureen Stone, July 5, 1982 5:50 pm -- last edited by Doug Wyatt, August 31, 1982 2:21 pm -- Color definitions and colormap routines ColorMap: CEDAR DEFINITIONS = { StandardMap: PROC; --sets up the standard color map (definition changing daily!) GrayMap: PROC; --sets up a gamma corrected gray wedge as the color map. Good for --showing AIS files SetGamma: PROC[gamma: REAL]; GetGamma: PROC RETURNS[gamma: REAL]; --gamma should be in the range [1..3] --change a colormap entry. index range depends on displaymode --all other values should be in [0..1] --ColorError will be raised if the display does not have a colormap, or if the values are out of range ColorError: SIGNAL[why: LONG STRING]; SetRGBColor: PROCEDURE[index: CARDINAL _ 0, r,g,b: REAL]; SetHSVColor: PROCEDURE[index: CARDINAL _ 0, h,s,v: REAL]; --following convert color for ColorDeviceImpl Byte: TYPE = [0..256); GrayTable: TYPE = REF GrayRec; GrayRec: TYPE = RECORD[gray: SEQUENCE length: CARDINAL OF Byte]; --returns a table that maps intensities [0..nentries) into pixel values for the current mode GetGrayTable: PROC RETURNS[GrayTable]; --Searches the colormap for all the gray values and sets up a GrayTable --Do this after you are finished setting your colormap if you want the color device --to do its best for gray images. SetUpGrayTable: PROC; --finds color in the colormap or returns a compromise (currently a gray value). --This is expensive, so the device should keep a cache. GetIndex: PROC[r,g,b: Byte] RETURNS[Byte]; --returns the color corresponding to the colormap index GetColor: PROC[index: Byte] RETURNS[r,g,b: Byte]; }.