Remove CVS keywords.
[mesa.git] / src / glut / glx / stroke.h
1
2 /*****************************************************************
3 Copyright (c) 1989,1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
4
5 All Rights Reserved
6
7 Permission to use, copy, modify, and distribute this software and its
8 documentation for any purpose and without fee is hereby granted,
9 provided that the above copyright notice appear in all copies and that
10 both that copyright notice and this permission notice appear in
11 supporting documentation, and that the names of Sun Microsystems,
12 the X Consortium, and MIT not be used in advertising or publicity
13 pertaining to distribution of the software without specific, written
14 prior permission.
15
16 SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17 INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT
18 SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
19 DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
20 WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
21 ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
22 SOFTWARE.
23
24 ******************************************************************/
25
26 #ifndef WFONT_INCLUDED
27 #define WFONT_INCLUDED
28
29 #define WFONT_MAGIC 0x813
30 #define WFONT_MAGIC_PLUS 0x715
31 #define WFONT_MAGIC_PEX 0x70686e74
32 #define START_PROPS 0x100
33 #define START_DISPATCH(_num_props) (START_PROPS + 160 * _num_props)
34 #define START_PATH(_num_ch_, _num_props) (START_DISPATCH(_num_props) + sizeof(Dispatch) * _num_ch_)
35 #define NUM_DISPATCH 128
36
37 typedef struct {
38 unsigned short x;
39 unsigned short y;
40 } Path_point2dpx;
41
42 typedef struct {
43 float x;
44 float y;
45 } Path_point2df;
46
47 typedef struct {
48 int x;
49 int y;
50 int z;
51 } Path_point3di;
52
53 typedef struct {
54 float x;
55 float y;
56 float z;
57 } Path_point3df;
58
59 typedef struct {
60 float x;
61 float y;
62 float z;
63 float w;
64 } Path_point4df;
65
66 typedef union {
67 Path_point2dpx *pt2dpx;
68 Path_point2df *pt2df;
69 Path_point3di *pt3di;
70 Path_point3df *pt3df;
71 Path_point4df *pt4df;
72 } Path_pt_ptr;
73
74 typedef enum {
75 PATH_2DF,
76 PATH_2DPX,
77 PATH_3DF,
78 PATH_3DI,
79 PATH_4DF
80 } Path_type;
81
82 typedef struct {
83 int n_pts; /* number of points in the subpath */
84 Path_pt_ptr pts; /* pointer to them */
85 int closed; /* true if the subpath is closed */
86 int dcmp_flag; /* flag for pgon dcmp, pgon type
87 * and dcmped triangle type */
88 } Path_subpath;
89
90 typedef struct {
91 Path_type type; /* type of vertices in this path */
92 int n_subpaths; /* number of subpaths */
93 int n_vertices; /* total number of vertices */
94 Path_subpath *subpaths; /* array of subpaths */
95 } Path;
96
97 typedef Path *Path_handle;
98
99 typedef struct {
100 char propname[80]; /* font property name */
101 char propvalue[80]; /* font property value */
102 } Property;
103
104 typedef struct {
105 int magic; /* magic number */
106 char name[80]; /* name of this font */
107 float top, /* extreme values */
108 bottom, max_width;
109 int num_ch; /* no. of fonts in the set */
110 int num_props; /* no. of font properties */
111 Property *properties; /* array of properties */
112 } Font_header;
113
114 typedef struct {
115 float center, /* center of the character */
116 right; /* right edge */
117 long offset; /* offset in the file of the character
118 * * description */
119 } Dispatch;
120
121 typedef struct {
122 float center, right;
123 Path strokes;
124 } Ch_font;
125
126 typedef struct {
127 char name[80];
128 float top, bottom, max_width;
129 int num_ch; /* # characters in the font */
130 Ch_font **ch_data;
131 } Phg_font;
132
133 #endif /*WFONT_INCLUDED */