1 /* $XConsortium: t1imager.h,v 1.5 92/03/20 14:36:05 keith Exp $ */ 2 /* Copyright International Business Machines,Corp. 1991 3 * All Rights Reserved 4 * 5 * License to use, copy, modify, and distribute this software 6 * and its documentation for any purpose and without fee is 7 * hereby granted, provided that the above copyright notice 8 * appear in all copies and that both that copyright notice and 9 * this permission notice appear in supporting documentation, 10 * and that the name of IBM not be used in advertising or 11 * publicity pertaining to distribution of the software without 12 * specific, written prior permission. 13 * 14 * IBM PROVIDES THIS SOFTWARE "AS IS", WITHOUT ANY WARRANTIES 15 * OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT 16 * LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, 17 * FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF 18 * THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE QUALITY AND 19 * PERFORMANCE OF THE SOFTWARE, INCLUDING ANY DUTY TO SUPPORT 20 * OR MAINTAIN, BELONGS TO THE LICENSEE. SHOULD ANY PORTION OF 21 * THE SOFTWARE PROVE DEFECTIVE, THE LICENSEE (NOT IBM) ASSUMES 22 * THE ENTIRE COST OF ALL SERVICING, REPAIR AND CORRECTION. IN 23 * NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR 24 * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 25 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 26 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 27 * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS 28 * SOFTWARE. 29 */ 30 31 #include "fontmisc.h" 32 33 typedef pointer xobject; 34 typedef pointer location; 35 typedef pointer path; 36 typedef pointer region; 37 typedef pointer XYspace; 38 39 #ifndef NOEXTERNS 40 /* 41 The following are the user entry locations to TYPE1IMAGER 42 */ 43 extern path t1_Bezier(); 44 extern path t1_ClosePath(); 45 extern xobject t1_Destroy(); 46 extern xobject t1_Dup(); 47 extern char *t1_ErrorMsg(); 48 extern void t1_InitImager(); 49 extern region t1_Interior(); 50 extern location t1_ILoc(); 51 extern xobject t1_Join(); 52 extern path t1_Line(); 53 extern xobject t1_Permanent(); 54 extern path t1_Phantom(); 55 extern location t1_Loc(); 56 extern xobject t1_Scale(); 57 extern xobject t1_Snap(); 58 extern location t1_SubLoc(); 59 extern xobject t1_Temporary(); 60 61 #endif 62 63 #ifndef NULL 64 #define NULL 0 65 #endif 66 67 #ifndef TRUE 68 #define TRUE 1 69 #endif 70 71 #ifndef FALSE 72 #define FALSE 0 73 #endif 74 75 /* 76 Here are some TYPE1IMAGER functions that are defined in terms of others: 77 */ 78 79 #define t1_AddLoc(p1,p2) t1_Join(p1,p2) 80 81 #ifndef NONAMES 82 /* 83 Define the simple form of all the subroutine names: 84 */ 85 #define AddLoc(p1,p2) t1_AddLoc(p1,p2) 86 #define Bezier(B,C,D) t1_Bezier(B,C,D) 87 #define ClosePath(p) t1_ClosePath(p,0) 88 #define Complement(area) t1_Complement(area) 89 #define Destroy(o) t1_Destroy(o) 90 #define Dup(o) t1_Dup(o) 91 #define ErrorMsg() t1_ErrorMsg() 92 #define HeadSegment(p) t1_HeadSegment(p) 93 #define InitImager() t1_InitImager() 94 #define Interior(p,rule) t1_Interior(p,rule) 95 #define ILoc(S,x,y) t1_ILoc(S,x,y) 96 #define Join(p1,p2) t1_Join(p1,p2) 97 #define Line(P) t1_Line(P) 98 #define Permanent(o) t1_Permanent(o) 99 #define Phantom(o) t1_Phantom(o) 100 #define Loc(S,x,y) t1_Loc(S,(double)x,(double)y) 101 #define Scale(o,sx,sy) t1_Scale(o,(double)sx,(double)sy) 102 #define Snap(o) t1_Snap(o) 103 #define SubLoc(a,b) t1_SubLoc(a,b) 104 #define Temporary(o) t1_Temporary(o) 105 #define TermImager() t1_TermImager() 106 #define Transform(o,cxx,cyx,cxy,cyy) t1_Transform(o,(double)cxx,(double)cyx,\ 107 (double)cxy,(double)cyy) 108 109 #endif 110 111 #define WINDINGRULE -2 112 #define EVENODDRULE -3 113 114 #define CONTINUITY 0x80 /* can be added to above rules; e.g. WINDINGRULE+CONTINUITY */ 115 116 /* 117 Stroke() line style constants: 118 */ 119 120 /* 121 Coordinate space constants: 122 */ 123 #define IDENTITY t1_Identity 124 extern XYspace *IDENTITY; 125 126 /* 127 Generic null object definition: 128 */ 129 #define NULLOBJECT ((xobject)NULL) 130 131 /* 132 Null path definition: 133 */ 134 #define NULLPATH NULLOBJECT 135 136 /* 137 Full page and null region definition: 138 */ 139 #define INFINITY t1_Infinity 140 #ifndef NOEXTERNS 141 extern region *INFINITY; 142 #endif 143 #define NULLREGION NULLOBJECT 144 145 #define FF_PARSE_ERROR 5 146 #define FF_PATH 1 147 148 extern pointer xiStub(); 149