1 /* $XConsortium: blues.h,v 1.2 91/10/10 11:17:52 rws Exp $ */ 2 /* Copyright International Business Machines, Corp. 1991 3 * All Rights Reserved 4 * Copyright Lexmark International, Inc. 1991 5 * All Rights Reserved 6 * Portions Copyright (c) 1990 Adobe Systems Incorporated. 7 * All Rights Reserved 8 * 9 * License to use, copy, modify, and distribute this software and its 10 * documentation for any purpose and without fee is hereby granted, 11 * provided that the above copyright notice appear in all copies and that 12 * both that copyright notice and this permission notice appear in 13 * supporting documentation, and that the name of IBM or Lexmark or Adobe 14 * not be used in advertising or publicity pertaining to distribution of 15 * the software without specific, written prior permission. 16 * 17 * IBM, LEXMARK, AND ADOBE PROVIDE THIS SOFTWARE "AS IS", WITHOUT ANY 18 * WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT 19 * LIMITED TO ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A 20 * PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE 21 * ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE SOFTWARE, INCLUDING 22 * ANY DUTY TO SUPPORT OR MAINTAIN, BELONGS TO THE LICENSEE. SHOULD ANY 23 * PORTION OF THE SOFTWARE PROVE DEFECTIVE, THE LICENSEE (NOT IBM, 24 * LEXMARK, OR ADOBE) ASSUMES THE ENTIRE COST OF ALL SERVICING, REPAIR AND 25 * CORRECTION. IN NO EVENT SHALL IBM, LEXMARK, OR ADOBE BE LIABLE FOR ANY 26 * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER 27 * RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF 28 * CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN 29 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 30 */ 31 32 extern psobj *GetType1CharString(); 33 34 #define TOPLEFT 1 35 #define BOTTOMRIGHT 2 36 37 #define NUMBLUEVALUES 14 38 #define NUMOTHERBLUES 10 39 #define NUMFAMILYBLUES 14 40 #define NUMFAMILYOTHERBLUES 10 41 #define NUMSTEMSNAPH 12 42 #define NUMSTEMSNAPV 12 43 #define NUMSTDHW 1 44 #define NUMSTDVW 1 45 46 #define DEFAULTBOLDSTEMWIDTH 2.0 47 48 #define MAXALIGNMENTZONES ((NUMBLUEVALUES+NUMOTHERBLUES)/2) 49 #define DEFAULTBLUESCALE 0.039625 50 #define DEFAULTBLUESHIFT 7 51 #define DEFAULTBLUEFUZZ 1 52 #define DEFAULTSTDHW 0 53 #define DEFAULTSTDVW 0 54 #define DEFAULTFORCEBOLD FALSE 55 #define DEFAULTLANGUAGEGROUP 0 56 #define DEFAULTRNDSTEMUP FALSE 57 #define DEFAULTLENIV 4 58 #define DEFAULTEXPANSIONFACTOR 0.06 59 60 /* see Type 1 Font Format book for explanations of these values */ 61 /* Note that we're currently doing nothing for minfeature and password. */ 62 struct blues_struct { 63 struct blues_struct *next; /* ptr to next Blues structure in list */ 64 int numBlueValues; /* # of BlueValues in following array */ 65 int BlueValues[NUMBLUEVALUES]; 66 int numOtherBlues; /* # of OtherBlues values in following array */ 67 int OtherBlues[NUMOTHERBLUES]; 68 int numFamilyBlues; /* # of FamilyBlues values in following array */ 69 int FamilyBlues[NUMFAMILYBLUES]; 70 int numFamilyOtherBlues; /* # of FamilyOtherBlues values in */ 71 int FamilyOtherBlues[NUMFAMILYOTHERBLUES]; /* this array */ 72 double BlueScale; 73 int BlueShift; 74 int BlueFuzz; 75 double StdHW; 76 double StdVW; 77 int numStemSnapH; /* # of StemSnapH values in following array */ 78 double StemSnapH[NUMSTEMSNAPH]; 79 int numStemSnapV; /* # of StemSnapV values in following array */ 80 double StemSnapV[NUMSTEMSNAPV]; 81 int ForceBold; 82 int LanguageGroup; 83 int RndStemUp; 84 int lenIV; 85 double ExpansionFactor; 86 }; 87 88 /* the alignment zone structure -- somewhat similar to the stem structure */ 89 /* see Adobe Type1 Font Format book about the terms used in this structure */ 90 struct alignmentzone { 91 int topzone; /* TRUE if a topzone, FALSE if a bottom zone */ 92 double bottomy, topy; /* interval of this alignment zone */ 93 }; 94