xsrc/xfree/xc/include/DPS/dpsXuserpath.h
2014-11-06 13:19:51 +01:00

158 lines
4.7 KiB
C

/*
* dpsXuserpath.h
*
* (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
*/
/* $XFree86: xc/include/DPS/dpsXuserpath.h,v 1.2 2000/06/07 22:02:56 tsi Exp $ */
#ifndef DPS_X_DOUSERPATH_H
#define DPS_X_DOUSERPATH_H
#include <DPS/dpsXcommon.h>
#include <X11/Xlib.h>
#include <DPS/dpsconfig.h>
/* Should be 1 for high-order byte first, 0 for low-order byte first. I can
never rember which is big- and which is little-endian. */
typedef enum _DPSNumberFormat {
#if SWAPBITS == 1
dps_float = 128+48,
dps_long = 128,
dps_short = 128+32
#else /* SWAPBITS */
dps_float = 48,
dps_long = 0,
dps_short = 32
#endif /* SWAPBITS */
} DPSNumberFormat;
/* Constants for DPSDoUserPath describing what type of coordinates are
being used. Other legal values are:
For 32-bit fixed point numbers, use dps_long plus the number of bits
in the fractional part.
For 16-bit fixed point numbers, use dps_short plus the number of bits
in the fractional part.
*/
enum _DPSUserPathOp {
dps_setbbox = 0,
dps_moveto,
dps_rmoveto,
dps_lineto,
dps_rlineto,
dps_curveto,
dps_rcurveto,
dps_arc,
dps_arcn,
dps_arct,
dps_closepath,
dps_ucache
};
/* We count on the fact that this is a char, so can't put it in the above
typedef. */
typedef char DPSUserPathOp;
typedef enum _DPSUserPathAction {
dps_uappend = 176,
dps_ufill = 179,
dps_ueofill = 178,
dps_ustroke = 183,
dps_ustrokepath = 364,
dps_inufill = 93,
dps_inueofill = 92,
dps_inustroke = 312,
dps_infill = 90,
dps_ineofill = 89,
dps_instroke = 311,
dps_def = 51,
dps_put = 120,
dps_send = 113 /* This is really the null operator */
} DPSUserPathAction;
#if defined(__cplusplus) || defined(c_plusplus)
extern "C" {
#endif
extern void PSDoUserPath(DPSPointer coords,
int numCoords,
DPSNumberFormat numType,
DPSUserPathOp *ops,
int numOp,
DPSPointer bbox,
DPSUserPathAction action);
extern void DPSDoUserPath(DPSContext ctx,
DPSPointer coords,
int numCoords,
DPSNumberFormat numType,
DPSUserPathOp *ops,
int numOp,
DPSPointer bbox,
DPSUserPathAction action);
extern Bool PSHitUserPath(double x, double y,
double radius,
DPSPointer coords,
int numCoords,
DPSNumberFormat numType,
DPSUserPathOp *ops,
int numOp,
DPSPointer bbox,
DPSUserPathAction action);
extern Bool DPSHitUserPath(DPSContext ctx,
double x, double y,
double radius,
DPSPointer coords,
int numCoords,
DPSNumberFormat numType,
DPSUserPathOp *ops,
int numOp,
DPSPointer bbox,
DPSUserPathAction action);
#if defined(__cplusplus) || defined(c_plusplus)
}
#endif
#endif /* DPS_X_DOUSERPATH_H */