Back to index

tetex-bin  3.0
t1imager.h
Go to the documentation of this file.
00001 /* $XConsortium: t1imager.h,v 1.5 92/03/20 14:36:05 keith Exp $ */
00002 /* Copyright International Business Machines,Corp. 1991
00003  * All Rights Reserved
00004  *
00005  * License to use, copy, modify, and distribute this software
00006  * and its documentation for any purpose and without fee is
00007  * hereby granted, provided that the above copyright notice
00008  * appear in all copies and that both that copyright notice and
00009  * this permission notice appear in supporting documentation,
00010  * and that the name of IBM not be used in advertising or
00011  * publicity pertaining to distribution of the software without
00012  * specific, written prior permission.
00013  *
00014  * IBM PROVIDES THIS SOFTWARE "AS IS", WITHOUT ANY WARRANTIES
00015  * OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT
00016  * LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY,
00017  * FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF
00018  * THIRD PARTY RIGHTS.  THE ENTIRE RISK AS TO THE QUALITY AND
00019  * PERFORMANCE OF THE SOFTWARE, INCLUDING ANY DUTY TO SUPPORT
00020  * OR MAINTAIN, BELONGS TO THE LICENSEE.  SHOULD ANY PORTION OF
00021  * THE SOFTWARE PROVE DEFECTIVE, THE LICENSEE (NOT IBM) ASSUMES
00022  * THE ENTIRE COST OF ALL SERVICING, REPAIR AND CORRECTION.  IN
00023  * NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, INDIRECT OR
00024  * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING
00025  * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF
00026  * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
00027  * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
00028  * SOFTWARE.
00029  */
00030 
00031 #include "types.h"
00032 #include "fontmisc.h"
00033  
00034 typedef  pointer xobject;
00035 typedef  pointer location;
00036 typedef  pointer path;
00037 typedef  pointer region;
00038 typedef  pointer XYspace;
00039  
00040 #ifndef NOEXTERNS
00041 /*
00042 The following are the user entry locations to TYPE1IMAGER
00043 */
00044 extern path    t1_Bezier();
00045 extern path    t1_ClosePath();
00046 extern xobject t1_Destroy();
00047 extern xobject t1_Dup();
00048 extern char   *t1_ErrorMsg();
00049 extern void    t1_InitImager();
00050 extern region  t1_Interior();
00051 extern location  t1_ILoc();
00052 extern xobject t1_Join();
00053 extern path    t1_Line();
00054 extern xobject t1_Permanent();
00055 extern path    t1_Phantom();
00056 extern location   t1_Loc();
00057 extern xobject t1_Scale();
00058 extern xobject t1_Snap();
00059 extern location  t1_SubLoc();
00060 extern xobject t1_Temporary();
00061  
00062 #endif
00063  
00064 #ifndef   NULL
00065 #define   NULL         0
00066 #endif
00067  
00068 #ifndef   TRUE
00069 #define   TRUE          1
00070 #endif
00071  
00072 #ifndef   FALSE
00073 #define   FALSE         0
00074 #endif
00075  
00076 /*
00077 Here are some TYPE1IMAGER functions that are defined in terms of others:
00078 */
00079  
00080 #define   t1_AddLoc(p1,p2)    t1_Join(p1,p2)
00081  
00082 #ifndef   NONAMES
00083 /*
00084 Define the simple form of all the subroutine names:
00085 */
00086 #define   AddLoc(p1,p2)          t1_AddLoc(p1,p2)
00087 #define   Bezier(B,C,D)      t1_Bezier(B,C,D)
00088 #define   ClosePath(p)       t1_ClosePath(p,0)
00089 #define   Complement(area)   t1_Complement(area)
00090 #define   Destroy(o)         t1_Destroy(o)
00091 #define   Dup(o)             t1_Dup(o)
00092 #define   ErrorMsg()         t1_ErrorMsg()
00093 #define   HeadSegment(p)     t1_HeadSegment(p)
00094 #define   InitImager()       t1_InitImager()
00095 #define   Interior(p,rule)   t1_Interior(p,rule)
00096 #define   ILoc(S,x,y)        t1_ILoc(S,x,y)
00097 #define   Join(p1,p2)        t1_Join(p1,p2)
00098 #define   Line(P)            t1_Line(P)
00099 #define   Permanent(o)       t1_Permanent(o)
00100 #define   Phantom(o)         t1_Phantom(o)
00101 #define   Loc(S,x,y)         t1_Loc(S,(DOUBLE)x,(DOUBLE)y)
00102 #define   Scale(o,sx,sy)     t1_Scale(o,(DOUBLE)sx,(DOUBLE)sy)
00103 #define   Snap(o)            t1_Snap(o)
00104 #define   SubLoc(a,b)        t1_SubLoc(a,b)
00105 #define   Temporary(o)       t1_Temporary(o)
00106 #define   TermImager()       t1_TermImager()
00107 #define   Transform(o,cxx,cyx,cxy,cyy)  t1_Transform(o,(DOUBLE)cxx,(DOUBLE)cyx,\
00108     (DOUBLE)cxy,(DOUBLE)cyy)
00109  
00110 #endif
00111  
00112 #define   WINDINGRULE -2
00113 #define   EVENODDRULE -3
00114  
00115 #define   CONTINUITY  0x80   /* can be added to above rules; e.g. WINDINGRULE+CONTINUITY */
00116  
00117 /*
00118 Stroke() line style constants:
00119 */
00120  
00121 /*
00122 Coordinate space constants:
00123 */
00124 #define   IDENTITY      t1_Identity
00125 extern XYspace *IDENTITY;
00126  
00127 /*
00128 Generic null object definition:
00129 */
00130 #define    NULLOBJECT   ((xobject)NULL)
00131  
00132 /*
00133 Null path definition:
00134 */
00135 #define    NULLPATH     NULLOBJECT
00136  
00137 /*
00138 Full page and null region definition:
00139 */
00140 #define    INFINITY     t1_Infinity
00141 #ifndef NOEXTERNS
00142 extern     region       *INFINITY;
00143 #endif
00144 #ifdef NULLREGION
00145 #undef NULLREGION
00146 #endif
00147 #define    NULLREGION   NULLOBJECT
00148  
00149 #define    FF_PARSE_ERROR  5
00150 #define    FF_PATH         1
00151  
00152 extern pointer xiStub();