source: trunk/src/opengl/glut/stroke.h@ 7029

Last change on this file since 7029 was 2689, checked in by jeroen, 26 years ago

* empty log message *

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