824N/A * (c) Copyright 1991-1994 Adobe Systems Incorporated. 824N/A * Permission to use, copy, modify, distribute, and sublicense this software 824N/A * and its documentation for any purpose and without fee is hereby granted, 824N/A * provided that the above copyright notices appear in all copies and that 824N/A * both those copyright notices and this permission notice appear in 824N/A * supporting documentation and that the name of Adobe Systems Incorporated 824N/A * not be used in advertising or publicity pertaining to distribution of the 824N/A * software without specific, written prior permission. No trademark license 824N/A * to use the Adobe trademarks is hereby granted. If the Adobe trademark 824N/A * "Display PostScript"(tm) is used to describe this software, its 824N/A * functionality or for any other purpose, such use shall be limited to a 824N/A * statement that this software works in conjunction with the Display 824N/A * PostScript system. Proper trademark attribution to reflect Adobe's 824N/A * ownership of the trademark shall be given whenever any such reference to 824N/A * the Display PostScript system is made. 824N/A * ADOBE MAKES NO REPRESENTATIONS ABOUT THE SUITABILITY OF THE SOFTWARE FOR 824N/A * ANY PURPOSE. IT IS PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY. 824N/A * ADOBE DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL 824N/A * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 824N/A * NON- INFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL ADOBE BE LIABLE 824N/A * TO YOU OR ANY OTHER PARTY FOR ANY SPECIAL, INDIRECT, OR CONSEQUENTIAL 824N/A * DAMAGES OR ANY DAMAGES WHATSOEVER WHETHER IN AN ACTION OF CONTRACT, 824N/A * NEGLIGENCE, STRICT LIABILITY OR ANY OTHER ACTION ARISING OUT OF OR IN 824N/A * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ADOBE WILL NOT 824N/A * PROVIDE ANY TRAINING OR OTHER SUPPORT FOR THE SOFTWARE. 824N/A * Adobe, PostScript, and Display PostScript are trademarks of Adobe Systems 824N/A * Incorporated which may be registered in certain jurisdictions 824N/A * Author: Adobe Systems Incorporated 824N/A/* === PUBLIC PROCS === */ 824N/A /* To fix dps-nx #68, Motif too slow on HP */ 824N/A /* We may have already called this routine via XDPSExtensionPresent, 824N/A so don't do it again! */ 824N/A /* Try to create a window for ClientMessage communication */ 824N/A /* Try to open a connection to an agent */ 824N/A /* DPSCAPOpenAgent only partially fills in extData, so finish it */ 824N/A /* +++ Is this all we have to do here? */ 824N/A /* Send opening handshake */ 824N/A /* Read normal reply */ 824N/A /* Read common reply prefix */ 824N/A /* read the rest of the fixed length reply */ 824N/A /* Fine, we downgrade the client */ 824N/A /* Fine, we downgrade the client */ 824N/A /* Saving this code as a reminder about what needs to be 824N/A cleaned up if we exit here */ 824N/A /* read additional data */ 824N/A /* set library extension data */ 824N/A /* Hook my extension data on the dpy */ 824N/A /* Chain my data on global list */ 824N/A /* Set function that is called after every Xlib protocol proc */ 824N/A /* All CSDPS protocol is auto-flushed */ 824N/A /* set agent arguments, if needed */ 824N/A /* must follow setting of ShuntMap at least, so safest to 824N/A do here when everything has been setup */ 824N/A /* The primary utility of this function is for DPS NX correctness, 824N/A but it also helps DPS/X do less work in tracking GC changes. */ 824N/A break;
/* Skip text contexts */ 824N/A/* New for DPS NX 2.0 */ 824N/A/* === SUPPORT PROCS === */ 824N/A /* ASSERT: called from within LockDisplay section */ 824N/A /* Always include the clip_mask */ 824N/A /* +++ HACK! Hide the gc->rects flag in arc_mode */ 824N/A /* Stupid macro insists on Display being called 'dpy' */ 824N/ACopyright 1985, 1986, 1987, 1988, 1989 by the 824N/AMassachusetts Institute of Technology 824N/APermission to use, copy, modify, distribute, and sell this software and its 824N/Adocumentation for any purpose is hereby granted without fee, provided that 824N/Athe above copyright notice appear in all copies and that both that 824N/Acopyright notice and this permission notice appear in supporting 824N/Adocumentation, and that the name of M.I.T. not be used in advertising or 824N/Apublicity pertaining to distribution of the software without specific, 824N/Awritten prior permission. M.I.T. makes no representations about the 824N/Asuitability of this software for any purpose. It is provided "as is" 824N/Awithout express or implied warranty. 824N/A /* Warning! This code assumes that "unsigned int" is 32-bits wide */ 824N/A * Note: The order of these tests are critical; the order must be the 824N/A * same as the GC mask bits in the word. 824N/A /* +++ HACK! Hide gc->rects flag in GCArcMode */ 824N/A * note: Data is a macro that uses its arguments multiple 824N/A * times, so "nvalues" is changed in a separate assignment 824N/A /* ASSERT: SyncHandle called by caller */ 824N/A /* my->extData->private_data = NIL; ???? +++ */ 824N/A /* extData freed by caller (e.g., _XFreeExtData) */ 824N/A/* === EXT CALLBACK HOOKS === */ 824N/A /* Although it seems that we should free codes here, we can't 824N/A because Xlib owns the storage */ 824N/A /* We change the GC unconditionally, since friggin' XCopyGC 824N/A clears the dirty bits of the values that are copied! */ 824N/A NULL,
"DPS NX: XGetGCValues returned False\n");
824N/A /* We have to make sure that the agent completely processes 824N/A the change to the GC. If we allow the agent to update the 824N/A GC in its own sweet time, the stupid client may delete the 824N/A GC after the agent has already queued a request to, e.g., 824N/A copy the GC, but before the request is flushed. */ 824N/A /* Notify the agent that the client deleted a GC. Let the 824N/A agent figure out if it cares. */ 824N/A /* ASSERT: called from within LockDisplay section */ 824N/A /* May need to sync changes to GC */ 824N/A /* Guarantee that everyone sees GC go away */ 824N/A /* ASSERT: SynchHandle called by caller */ 824N/A /* When GC is created, it is flushed with no dirty bits set, 824N/A so we have to notice that situation. */ 824N/A /* HERE IF (gc->dirty & DPSGCBITS || !gc->dirty) */ 824N/A NULL,
"NX: XGetGCValues returned False\n");
824N/A /* Must guarantee that gc change is registered by X server 824N/A before notification is sent to agent. */ 824N/A /* We have to make sure that the agent completely processes 824N/A the change to the GC. If we allow the agent to update the 824N/A GC in its own sweet time, the stupid client may delete the 824N/A GC after the agent has already queued a request to, e.g., 824N/A copy the GC, but before the request is flushed. */