-- CGFullSample.mesa -- Last edited by Ken Pier, July 13, 1982 3:40 pm CGFullSample: DEFINITIONS = { Pointer: TYPE = LONG POINTER TO Table; MapArray: TYPE = RECORD[SEQUENCE COMPUTED CARDINAL OF CARDINAL]; Table: TYPE = MACHINE DEPENDENT RECORD [ function(0:0..3): [0..17B] _ 0, -- function mConst(0:4..4): BOOLEAN _ FALSE, -- mask value is constant (always 1) bConst(0:5..5): BOOLEAN _ FALSE, -- brick value is constant (given by bValue) sConst(0:6..6): BOOLEAN _ FALSE, -- source value is constant (given by sValue) useMap(0:7..7): BOOLEAN _ FALSE, -- look up sample values in map size(0:8..15): [0..377B] _ 8, -- sample size, for brick and source count(1:0..15): CARDINAL _ 0, -- number of samples to process bValue(2:0..15): CARDINAL _ 0, -- constant brick value, used if bConst=TRUE sValue(3:0..15): CARDINAL _ 0, -- constant source value, used if sConst=TRUE -- destination and mask information dLine(4:0..31): LONG POINTER _ NIL, -- pointer to row of destination bits mLine(6:0..31): LONG POINTER _ NIL, -- pointer to row of mask bits (ignored if mConst=TRUE) di(8:0..15): CARDINAL _ 0, -- starting bit index in destination mi(9:0..15): CARDINAL _ 0, -- starting bit index in mask (ignored if mConst=TRUE) -- source to sample mapping table (ignored if useMap=FALSE) map(10:0..31): LONG POINTER TO MapArray _ NIL, -- brick information (ignored if bConst=TRUE) bLine(12:0..31): LONG POINTER _ NIL, -- pointer to row of brick samples bi(14:0..15): CARDINAL _ 0, -- starting sample index in brick bw(15:0..15): CARDINAL _ 0, -- width of brick row, in samples -- source information (ignored if sConst=TRUE) sBase(16:0..31): LONG POINTER _ NIL, -- pointer to first word of source array sRast(18:0..15): CARDINAL _ 0, -- words per raster line in source array sSpare(19:0..15): CARDINAL _ 0, -- not used (samples per pixel?) sw(20:0..15): CARDINAL _ 0, -- width of source, in samples sh(21:0..15): CARDINAL _ 0, -- height of source, in lines sox(22:0..15): CARDINAL _ 0, -- x offset of source, in samples soy(23:0..15): CARDINAL _ 0, -- y offset of source, in lines sx(24:0..31): LONG INTEGER _ 0, -- starting x position in source * 2^16 sy(26:0..31): LONG INTEGER _ 0, -- starting y position in source * 2^16 sdx(28:0..31): LONG INTEGER _ 0, -- increment to source x position * 2^16 sdy(30:0..31): LONG INTEGER _ 0 -- increment to source y position * 2^16 ]; SAMPLE: PROC[Pointer]; -- Some day: = MACHINE CODE ... }.