ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhdisp.h
Revision: 3.13
Committed: Sat Feb 22 02:07:24 2003 UTC (21 years, 8 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R5
Changes since 3.12: +1 -4 lines
Log Message:
Changes and check-in for 3.5 release
Includes new source files and modifications not recorded for many years
See ray/doc/notes/ReleaseNotes for notes between 3.1 and 3.5 release

File Contents

# Content
1 /* RCSid: $Id$ */
2 /*
3 * Header for holodeck display drivers.
4 */
5
6 /* display requests */
7 #define DR_NOOP 0 /* to release from vain DR_ATTEN */
8 #define DR_BUNDLE 1 /* lone bundle request */
9 #define DR_ATTEN 2 /* request for attention */
10 #define DR_SHUTDOWN 3 /* shutdown request */
11 #define DR_NEWSET 4 /* new bundle set */
12 #define DR_ADDSET 5 /* add to current set */
13 #define DR_ADJSET 6 /* adjust set quantities */
14 #define DR_DELSET 7 /* delete from current set */
15 #define DR_KILL 8 /* kill rtrace process(es) */
16 #define DR_RESTART 9 /* restart rtrace */
17 #define DR_CLOBBER 10 /* clobber holodeck */
18 #define DR_VIEWPOINT 11 /* set desired eye position */
19
20 /* server responses */
21 #define DS_BUNDLE 32 /* computed bundle */
22 #define DS_ACKNOW 33 /* acknowledge request for attention */
23 #define DS_SHUTDOWN 34 /* end process and close connection */
24 #define DS_ADDHOLO 35 /* register new holodeck */
25 #define DS_STARTIMM 36 /* begin immediate bundle set */
26 #define DS_ENDIMM 37 /* end immediate bundle set */
27 #define DS_OUTSECT 38 /* render from outside sections */
28 #define DS_EYESEP 39 /* eye separation distance */
29
30 /*
31 * Normally, the server channel has priority, with the display process
32 * checking it frequently for new data. However, when the display process
33 * makes a request for attention (DR_ATTEN), the server will finish its
34 * current operations and flush its buffers, sending an acknowledge
35 * message (DS_ACKNOW) when it's done. This then allows the
36 * display process to send a long request to the holodeck server.
37 * Priority returns to normal after the following request.
38 */
39
40 #ifndef BIGREQSIZ
41 #define BIGREQSIZ 512 /* big request size (bytes) */
42 #endif
43
44 typedef struct {
45 int2 type; /* message type */
46 int4 nbytes; /* number of additional bytes */
47 } MSGHEAD; /* message head */
48
49 /*
50 * The display process is started with three arguments. The first argument
51 * is the short name of the holodeck file, appropriate for window naming, etc.
52 * The second and third arguments are the file descriptor numbers assigned to
53 * the server's standard output and input, respectively. The stdin and stdout
54 * of the display process are used for normal communication with the server,
55 * and are connected to pipes going each way. It is entirely appropriate
56 * for the display process to borrow the server's stdin and stdout for reading
57 * and writing user commands from the list in rhdriver.h. If standard input
58 * is not available for reading, then a descriptor of -1 will be passed.
59 * The standard output will always be available for writing, though it
60 * may go to /dev/null.
61 */