1 /* $XConsortium: blues.h,v 1.2 91/10/10 11:17:52 rws Exp $ */
2 /* Copyright International Business Machines, Corp. 1991
4 * Copyright Lexmark International, Inc. 1991
6 * Portions Copyright (c) 1990 Adobe Systems Incorporated.
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.
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.
32 extern psobj *GetType1CharString();
37 #define NUMBLUEVALUES 14
38 #define NUMOTHERBLUES 10
39 #define NUMFAMILYBLUES 14
40 #define NUMFAMILYOTHERBLUES 10
41 #define NUMSTEMSNAPH 12
42 #define NUMSTEMSNAPV 12
46 #define DEFAULTBOLDSTEMWIDTH 2.0
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
60 /* see Type 1 Font Format book for explanations of these values */
61 /* Note that we're currently doing nothing for minfeature and password. */
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 */
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];
85 double ExpansionFactor;
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 */