Copyright (C) 1992, Digital Equipment Corporation
All rights reserved.
See the file COPYRIGHT for a full description.
by Steve Glassman, Mark Manasse and Greg Nelson
Last modified on Wed Oct 16 14:08:23 PDT 1996 by msm
modified on Fri Mar 11 15:30:30 PST 1994 by gnelson
modified on Mon Feb 24 13:59:53 PST 1992 by muller
<*PRAGMA LL*>
UNSAFE INTERFACE XScrnPxmp;
IMPORT Rect, ScrnPixmap, X, XScreenType, XScrnTpRep, TrestleComm;
REVEAL XScreenType.T <: T;
TYPE
T_Pub = XScrnTpRep.Public OBJECT END;
T <: T_Pub;
PROCEDURE NewOracle (st: XScreenType.T): ScrnPixmap.Oracle RAISES {};
PROCEDURE FromXPixmap ( st : XScreenType.T;
xpm : X.Pixmap;
READONLY bounds: Rect.T;
depth : INTEGER ): ScrnPixmap.T;
<* LL.sup = st.trsl *>
Construct and return the screen pixmap of type st whose contents are
those of xpm, which has the given bounds and depth.
PROCEDURE FakeCapture ( st : XScreenType.T;
w : X.Drawable;
READONLY bounds: Rect.T;
depth : INTEGER ): ScrnPixmap.T;
<* LL.sup = st.trsl *>
Construct and return the lazy screen pixmap of type st whose contents
initially reference the drawable w, which has the given bounds and
depth.
PROCEDURE FinishCapture (st: XScreenType.T; pmId: INTEGER; xpm: X.Pixmap);
<* LL.sup = st.trsl *>
Change the lazy pixmap whose id is pmId to reference the drawable xpm,
and mark the pixmap unlazy.
PROCEDURE IsLazy(st: XScreenType.T; pmId: INTEGER): BOOLEAN;
<* LL.sup = st.trsl *>
Return whether pmId is lazy
PROCEDURE GetDrawable(st: XScreenType.T; pmId: INTEGER): X.Drawable;
<* LL.sup = st.trsl *>
Return the drawable assoiciated with pmId
PROCEDURE PixmapGeneration (st: XScreenType.T; pmId: INTEGER): INTEGER;
<* LL.sup = st.trsl *>
return an integer which, together with equality of pmId, guarantees that the underlying pixmap is unchanged.
PROCEDURE PixmapDomain (st: XScreenType.T; pmId: INTEGER): Rect.T;
<* LL.sup = st.trsl *>
return the domain of the ScrnPixmap.T whose id is pmId.
PROCEDURE PixmapFromRaw (st: XScreenType.T; pm: ScrnPixmap.Raw): X.Pixmap
RAISES {TrestleComm.Failure}; <* LL.sup = st.trsl *>
END XScrnPxmp.