1 |
greg |
3.1 |
/* Copyright (c) 1997 Regents of the University of California */ |
2 |
|
|
|
3 |
|
|
/* SCCSid "$SunId$ LBL" */ |
4 |
|
|
|
5 |
|
|
/* |
6 |
greg |
3.2 |
* Header file for OpenGL display process. |
7 |
greg |
3.1 |
*/ |
8 |
|
|
|
9 |
greg |
3.2 |
#ifndef MEM_PTR |
10 |
|
|
#define MEM_PTR char * |
11 |
|
|
#endif |
12 |
|
|
#ifndef int4 |
13 |
|
|
#define int4 int /* assume 32-bit integers */ |
14 |
|
|
#endif |
15 |
greg |
3.1 |
|
16 |
greg |
3.3 |
/* request types */ |
17 |
|
|
#define GD_R_ViewSync 0 /* synchronize current view */ |
18 |
|
|
#define GD_R_SetView 1 /* set new view parameters */ |
19 |
|
|
#define GD_R_AddBg 2 /* add background rectangle */ |
20 |
|
|
#define GD_R_DelBg 3 /* delete background rectangle */ |
21 |
|
|
#define GD_R_Error 4 /* error to report */ |
22 |
|
|
#define GD_R_Init 5 /* initialize connection */ |
23 |
|
|
#define GD_NREQ 6 /* number of requests */ |
24 |
greg |
3.2 |
|
25 |
|
|
/* error codes */ |
26 |
greg |
3.3 |
#define GD_OK 0 /* normal return value */ |
27 |
|
|
#define GD_E_UNRECOG 1 /* unrecognized request */ |
28 |
|
|
#define GD_E_ARGMISS 2 /* missing argument(s) */ |
29 |
|
|
#define GD_E_NOMEMOR 3 /* out of memory */ |
30 |
|
|
#define GD_E_CONNECT 4 /* can't establish connection */ |
31 |
|
|
#define GD_NERRS 5 /* number of errors */ |
32 |
greg |
3.2 |
|
33 |
greg |
3.3 |
extern char *gdErrMsg[GD_NERRS]; /* our error message list */ |
34 |
greg |
3.2 |
|
35 |
greg |
3.3 |
/* request structure */ |
36 |
|
|
#define GD_ARG0 4 /* minimum argument length */ |
37 |
greg |
3.1 |
typedef struct { |
38 |
greg |
3.3 |
short type; /* request type */ |
39 |
|
|
unsigned int4 id; /* unique identifier */ |
40 |
|
|
unsigned int4 alen; /* argument buffer length */ |
41 |
|
|
unsigned char args[GD_ARG0]; /* followed by the actual arguments */ |
42 |
|
|
} GDrequest; /* a GL display request */ |
43 |
greg |
3.1 |
|
44 |
greg |
3.3 |
typedef struct { |
45 |
|
|
int cno; /* connection number */ |
46 |
|
|
int xres, yres; /* display window size (renderable area) */ |
47 |
|
|
int fdout; /* send descriptor */ |
48 |
|
|
FILE *fpin; /* receive stream */ |
49 |
|
|
} GDconnect; /* display server/client connection */ |
50 |
greg |
3.1 |
|
51 |
greg |
3.3 |
/* argument lengths */ |
52 |
|
|
#define GD_L_REAL 5 /* reals are 5 bytes */ |
53 |
|
|
#define gdStrLen(s) (strlen(s)+1) /* strings are nul-terminated */ |
54 |
greg |
3.2 |
|
55 |
|
|
#define gdFree(p) free((MEM_PTR)(p)) |
56 |
|
|
|
57 |
greg |
3.3 |
extern GDrequest *gdRecvRequest(); |
58 |
|
|
extern GDconnect *gdOpen(); |
59 |
|
|
extern int4 gdGetInt(); |
60 |
|
|
extern double gdGetReal(); |