/*
 * XDPSswraps.psw
 *
 * (c) Copyright 1990-1994 Adobe Systems Incorporated.
 * All rights reserved.
 * 
 * Permission to use, copy, modify, distribute, and sublicense this software
 * and its documentation for any purpose and without fee is hereby granted,
 * provided that the above copyright notices appear in all copies and that
 * both those copyright notices and this permission notice appear in
 * supporting documentation and that the name of Adobe Systems Incorporated
 * not be used in advertising or publicity pertaining to distribution of the
 * software without specific, written prior permission.  No trademark license
 * to use the Adobe trademarks is hereby granted.  If the Adobe trademark
 * "Display PostScript"(tm) is used to describe this software, its
 * functionality or for any other purpose, such use shall be limited to a
 * statement that this software works in conjunction with the Display
 * PostScript system.  Proper trademark attribution to reflect Adobe's
 * ownership of the trademark shall be given whenever any such reference to
 * the Display PostScript system is made.
 * 
 * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR
 * ANY PURPOSE.  IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY.
 * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
 * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
 * NON- INFRINGEMENT OF THIRD PARTY RIGHTS.  IN NO EVENT SHALL ADOBE BE LIABLE
 * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL
 * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT,
 * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN
 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.  ADOBE WILL NOT
 * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE.
 * 
 * Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems
 * Incorporated which may be registered in certain jurisdictions
 * 
 * Author:  Adobe Systems Incorporated
 */

defineps _DPSSSetContextParameters(DPSContext ctxt;
				   int gc, drawable, drawableHeight,
				   map, rgbBase, redMax, redMult,
				   greenMax, greenMult, blueMax, blueMult,
				   grayBase, grayMax, grayMult;
				   boolean doGC, doDrawable, doRGB, doGray)
    $Adobe$DPS$Lib$Dict begin
	currentXgcdrawablecolor
	/colorinfo exch def

	doGC {
	    4 -1 roll pop gc 4 1 roll
	} if

	doDrawable {
	    pop pop 0 drawableHeight
	    3 -1 roll pop drawable 3 1 roll
	} if

	doRGB {
	    colorinfo 3 redMax put
	    colorinfo 4 redMult put
	    colorinfo 5 greenMax put
	    colorinfo 6 greenMult put
	    colorinfo 7 blueMax put
	    colorinfo 8 blueMult put
	    colorinfo 9 rgbBase put
	    colorinfo 10 map put
	} if

	doGray {
	    colorinfo 0 grayMax put
	    colorinfo 1 grayMult put
	    colorinfo 2 grayBase put
	    colorinfo 10 map put
	} if

	colorinfo setXgcdrawablecolor
    end
endps

defineps _DPSSSetContextDrawable(DPSContext ctxt;
				 int drawable, drawableHeight)
    currentXgcdrawable
    pop pop pop drawable 0 drawableHeight 
    setXgcdrawable
endps

defineps _DPSSInstallDPSlibDict(DPSContext c)
    userdict /$Adobe$DPS$Lib$Dict 20 dict put
endps

defineps _DPSSCaptureGState(DPSContext c; int gs)
    gs gstate defineuserobject
endps

defineps _DPSSUpdateGState(DPSContext c; userobject gs)
    gs currentgstate pop
endps

defineps _DPSSRestoreGState(DPSContext c; userobject gs)
    gs setgstate
endps

defineps _DPSSDefineUserObject(DPSContext c; int uo)
    uo exch defineuserobject
endps

defineps _DPSSUndefineUserObject(DPSContext c; int uo)
    uo undefineuserobject
endps

