The Pixmap interface

A Pixmap.T is a screen-independent specification of a pixmap. Many procedures interpret Pixmap.Ts as textures, by tiling the plane with translated copies of the pixmap. There are three predefined pixmaps:

The locking level is LL.sup <= VBT.mu for all of the procedures in this interface.

INTERFACE Pixmap;

TYPE T = RECORD pm: INTEGER END; Predefined = [0..2];

CONST 
  Solid = T{0};
  Empty = T{1};
  Gray = T{2}; 
  

Solid represents a pixmap of all ones. Empty represents a pixmap of all zeros. Gray represents a checkerboard of ones and zeros.

The domains of these pixmaps may vary from screentype to screentype, but they will always be non-empty.

When used on a screentype st, they will have type st.bits (see the PaintOp interface).

TYPE Raw <: ROOT;

A Pixmap.Raw represents a pixmap as a packed array of pixels. The ScrnPixmap interface reveals the representation.

PROCEDURE FromBitmap(bits: Raw): T;

Return a pixmap that looks like bits on all screens.

FromBitmap causes a checked runtime error if the depth of bits is not one. On a screentype st, it will have type st.bits.

END Pixmap.