ui/src/vbt/Pixmap.i3


 Copyright (C) 1992, Digital Equipment Corporation                         
 All rights reserved.                                                      
 See the file COPYRIGHT for a full description.                            
                                                                           
 Last modified on Mon Feb 24 14:01:18 PST 1992 by muller                   
<*PRAGMA LL*>
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.