summaryrefslogtreecommitdiff
path: root/inc/cgmmach.h
blob: f85d656753663f315e0df79dcdd453f8c50ad510 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
/*  Get local machine id, operating system, compiler and/or library */

#ifndef CGMMACH_H
#define CGMMACH_H

/*  C Library routines needed in standard include files */

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
#include <time.h>

/*  Current CGM version */
#define CGMVERSION   1

#define const
#define volatile
#define FREE(x) free ( (char *) x )

#ifndef NULL     /*  Null Pointer */
#define NULL     (int *) 0
#endif

/*  Define anything that has not been explicitly set  **************/

#ifndef SignChar
#define SignChar signed char
#endif
#ifndef Int16
#define Int16   short
#endif
#ifndef Char
#define Char    char
#endif
#ifndef Int
#define Int     int
#endif
#ifndef Long
#define Long    long
#endif
#ifndef Float
#define Float   float
#endif
#ifndef Double
#define Double  double
#endif

/* Define macros for some maths routines which may cause problems */

#ifndef SQRT
#define SQRT(x)  sqrt( (double) (x) )
#endif
#ifndef FABS
#define FABS(x)  fabs( (double) (x) )
#endif
#ifndef MALLOC
#define MALLOC(n,s)   malloc( (size_t) ((n)*(s)) )
#endif

/*  Define if font system needed */

#ifdef XW
#define FONTSYSTEM
#else
#ifdef POSTSCRIPT
#define FONTSYSTEM
#else
#ifdef IGL
#define FONTSYSTEM
#endif
#endif
#endif


#ifndef FIXED_BUFFER  /* Use variable communications Area by default */
#define VAR_BUFFER
#endif

#ifndef ARRAY_MAX    /*  Maximum Sizes for Interface buffer  */
#define ARRAY_MAX   1024
#endif

#ifndef STRING_MAX   /*  Maximum String length */
#define STRING_MAX  1024
#endif

#ifndef DEFOUT       /*  Default Standard Output type  */
#define DEFOUT  'T'
#endif

#ifndef ERROR_MAX    /*  Maximum Number of errors */
#define ERROR_MAX     16
#endif

#ifndef DEFVERBOSE   /*  Default Verbose mode flag */
#define DEFVERBOSE    FALSE
#endif

#ifndef DEFQUIET     /* Default quiet output flag */
#define DEFQUIET      FALSE
#endif

#ifndef DEFMOVIE     /*  Default Continuous play mode */
#define DEFMOVIE      FALSE
#endif

#ifndef DEFDOUBLE    /*  Default Double buffer mode */
#define DEFDOUBLE     FALSE
#endif

#ifndef DEFFULLSCRN  /*  Default Full screen mode */
#define DEFFULLSCRN   TRUE
#endif

#ifndef DEFRALGKSGDP /*  RAL-GKS GDPs recognised */
#define DEFRALGKSGDP  FALSE
#endif

#ifndef LPOINT       /*  Define default LPOINT commands */
#define Lpoint Point

#define LPOINT(p)          Lpoint *p
#define BEGINLIST(p)
#define STOREPOINT(p,q)    (*p).x = q.x; (*p++).y = q.y
#define STOREVALUE(p,q,r)  (*p).x = q; (*p++).y = r
#define CLOSELIST(p)
#define NEWSUBLIST(p)
#define ENDLIST(p)
#endif

#ifndef MAXFNSIZE    /*  Maximum font name size */
#define MAXFNSIZE     40
#endif

#ifndef DATADIR      /*  Directory for font & data files */
#define DATADIR      ""
#endif

#ifndef FILESEP      /*  File seperator  */
#define FILESEP      "."
#endif

#ifndef PATHDELIM    /*  Path seperator  */
#define PATHDELIM    '/'
#endif

#ifndef MAXFLSIZE       /*  Maximum length of filename - whole tree */
#define MAXFLSIZE    80
#endif

#ifndef NAMELGTH        /*  Maximum length of filename - name only */
#define NAMELGTH     8
#endif

#ifndef EXTLGTH         /*  Maximum length of filename - extension */
#define EXTLGTH      3
#endif

#ifndef LFILEDEF        /*  Maximum length of filename extra data */
#define LFILEDEF     0
#endif

#ifndef F_READ         /*  Read file mode  */
#define F_READ     'r'
#endif

#ifndef F_WRITE        /*  Write file mode  */
#define F_WRITE    'w'
#endif

#ifndef BUFF_LEN     /*  CGM output record length */
#define BUFF_LEN      (size_t) 80
#endif

#ifndef OBUFF_LEN    /*  CGM output buffer size */
#define OBUFF_LEN    (size_t) 512
#endif

#ifndef NFRAME       /*  Maximum number of frames */
#define NFRAME       100
#endif

#ifndef NMETA        /*  Maximum number of metafiles */
#define NMETA        10
#endif

#ifndef MAXPTS      /*  Maximum storage for fill area processing */
#define MAXPTS     4096
#endif

#ifndef SET_MAX      /*  Maximum number of Polygon sets ?? */
#define SET_MAX       50
#endif

#ifndef COLOUR_TAB  /*  Colour table size */
#define COLOUR_TAB  256
#endif

#ifndef COLOUR_BITS /*  Number of bit planes */
#define COLOUR_BITS   8
#endif

#ifndef PATT_TAB   /*  Pattern table size */
#define PATT_TAB   1024
#endif

#ifndef PATTERNS  /* Maximum number of Patterns */
#define PATTERNS     40
#endif

#ifndef NPOWER    /* No of entries in power-of-two table  */
#define NPOWER       32
#endif

#ifndef HASHSIZE  /* No of entries in Code hash table  */
#if CGMVERSION == 1
#define HASHSIZE     280
#endif
#if CGMVERSION == 2
#define HASHSIZE     512
#endif
#if CGMVERSION == 3
#define HASHSIZE     1024
#endif
#endif

#ifndef NULLSTR   /* Null string pointer */
#define NULLSTR  (char *) NULL
#endif

#ifdef DEBUG            /* turn on extra debugging in font package  */
#define CSETNAMES
#define DESNAMES
#endif

     /*  All the following definitions provide limits for the number
      |  of values that can be read in by the font utility; they do
      |  not cause any permanent memory to be allocated, so can be
      |  set high for safety.
      */

#ifndef MAXCSET           /*  maximum number of ISO character sets  */
#define MAXCSET   1000
#endif

#ifndef MAXFUDGE          /*  maximum number of fudge character sets  */
#define MAXFUDGE    25
#endif

#ifndef MAXFAMILY         /*  maximum number of typeface family definitions  */
#define MAXFAMILY 2000
#endif

#ifndef MAXALIAS          /*  maximum number of family aliases  */
#define MAXALIAS   200
#endif

#ifndef MAXSFONT          /*  maximum number of specific fonts  */
#define MAXFONT   2000
#endif

#ifndef MAXSOURCE         /*  maximum number of typeface sources  */
#define MAXSOURCE  100
#endif

#ifndef MAXDESIGN         /*  maximum number of ISO design groups  */
#define MAXDESIGN  200
#endif

#ifndef MAXMETHOD         /*  maximum number of output methods  */
#define MAXMETHOD    5
#endif

#ifndef MAXFPERM          /*  maximum number of fonts per method  */
#define MAXFPERM  1000
#endif

#ifndef MAXREQ            /*  maximum number of fonts per method  */
#define MAXREQ    1000
#endif

#endif /* end of cgmmach.h */