ui/src/xvbt/XScrnTpRep.i3


Copyright (C) 1994, Digital Equipment Corp.
 by Steve Glassman, Mark Manasse and Greg Nelson 

<*PRAGMA LL*>

UNSAFE INTERFACE XScrnTpRep;

IMPORT X, PaintPrivate, Rect, Ctypes, XScreenType;

REVEAL
  XScreenType.T <: Public;

TYPE
  Public = XScreenType.Public OBJECT
             optable: REF ARRAY OF OpRecord;
             pmtable: REF ARRAY OF PixmapRecord;
             empty                                := 0
           END;

  (* If pm is a ScrnPixmap.T whose screentype is st, a T, then pm.id is
     either SolidPixmap, or pm.id is the index into st.pmtable of the
     PixmapRecord describing pm, unless st.bits = st, in which case
     SolidPixmap - pm.id is the index in st.bits.pmtable. *)

  OpRecord = RECORD
               function, fill_style              : Ctypes.int;
               plane_mask, foreground, background: Ctypes.unsigned_long;
             END;

  PixmapRecord = RECORD
                   pixmap: X.Drawable;
                   isLazy: BOOLEAN;
                   domain: Rect.T;
                   depth : INTEGER
                 END;

CONST SolidPixmap: PaintPrivate.Pixmap = -1;

END XScrnTpRep.