<> <> <> <> <> <> <> DIRECTORY ColorDisplayDefs USING [ChannelsVisible, ChannelValue, ColorDisplayType, ColorMode, ColorValue]; ColorDisplayFace: CEDAR DEFINITIONS ~ BEGIN ColorMode: TYPE ~ ColorDisplayDefs.ColorMode; ColorDisplayType: TYPE ~ ColorDisplayDefs.ColorDisplayType; ChannelValue: TYPE ~ ColorDisplayDefs.ChannelValue; ColorValue: TYPE ~ ColorDisplayDefs.ColorValue; ChannelsVisible: TYPE ~ ColorDisplayDefs.ChannelsVisible; <> globalStateSize: READONLY NAT; -- number of words required by Initialize Initialize: UNSAFE PROC [globalState: LONG POINTER]; <> <<>> InitializeCleanup: UNSAFE PROC; <> <<>> <> displayType: READONLY ColorDisplayType; -- type of display, if any width: READONLY NAT; -- display width, in pixels height: READONLY NAT; -- display height, in pixels pixelsPerInch: READONLY NAT; -- approximate number of pixels per inch SetDisplayType: PROC [type: ColorDisplayType] RETURNS [ok: BOOL]; <<... establishes a new display type. Returns TRUE iff the operation is implemented on this machine and the specified type is recognized.>> <<>> <<>> nullMode: ColorMode ~ [FALSE, 0, 0]; HasMode: PROC [mode: ColorMode] RETURNS [BOOL]; <<... indicates whether the given mode is supported.>> <<>> NextMode: PROC [mode: ColorMode _ nullMode] RETURNS [ColorMode]; <<... enumerates the available modes; enumeration starts and ends with nullMode.>> <<>> <> ColorMap: TYPE ~ LONG POINTER TO ColorMapRep; ColorMapRep: TYPE; wordsForColorMap: READONLY NAT; <<>> InitializeColorMap: UNSAFE PROC [mode: ColorMode, pointer: LONG POINTER] RETURNS [ColorMap]; <> SetColor: UNSAFE PROC [map: ColorMap, pixelA, pixelB: ChannelValue, r, g, b: ColorValue]; <<... sets a color map entry.>> <<>> GetColor: PROC [map: ColorMap, pixelA, pixelB: ChannelValue] RETURNS [r, g, b: ColorValue]; <<... gets a color map entry.>> <<>> SetR: UNSAFE PROC [map: ColorMap, in: ChannelValue, out: ColorValue]; SetG: UNSAFE PROC [map: ColorMap, in: ChannelValue, out: ColorValue]; SetB: UNSAFE PROC [map: ColorMap, in: ChannelValue, out: ColorValue]; <<... sets a red, green, or blue map entry.>> <<>> GetR: PROC [map: ColorMap, in: ChannelValue] RETURNS [out: ColorValue]; GetG: PROC [map: ColorMap, in: ChannelValue] RETURNS [out: ColorValue]; GetB: PROC [map: ColorMap, in: ChannelValue] RETURNS [out: ColorValue]; <<... gets a red, green, or blue map entry.>> <<>> <> Connect: UNSAFE PROC[mode: ColorMode, baseA, baseB: LONG POINTER, map: ColorMap]; <> Disconnect: PROC; <> TurnOn: UNSAFE PROC; <> <> TurnOff: PROC; <> <> SetVisibility: PROC[visibility: ChannelsVisible]; <> <<>> <<>> END.