]> git.sesse.net Git - rdpsrv/blob - Xserver/lib/font/Type1/blues.h
Support RDP5 logon packets.
[rdpsrv] / Xserver / lib / font / Type1 / blues.h
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 };