ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhdisp.h
Revision: 3.14
Committed: Fri Jun 20 00:25:49 2003 UTC (21 years, 4 months ago) by greg
Content type: text/plain
Branch: MAIN
Changes since 3.13: +3 -3 lines
Log Message:
Changed instances of "int4" to "int32" and "int2" to "int16"

File Contents

# User Rev Content
1 greg 3.14 /* RCSid: $Id: rhdisp.h,v 3.13 2003/02/22 02:07:24 greg Exp $ */
2 gregl 3.1 /*
3     * Header for holodeck display drivers.
4     */
5    
6     /* display requests */
7 gregl 3.4 #define DR_NOOP 0 /* to release from vain DR_ATTEN */
8 gregl 3.5 #define DR_BUNDLE 1 /* lone bundle request */
9 gregl 3.2 #define DR_ATTEN 2 /* request for attention */
10     #define DR_SHUTDOWN 3 /* shutdown request */
11     #define DR_NEWSET 4 /* new bundle set */
12 gregl 3.1 #define DR_ADDSET 5 /* add to current set */
13 gregl 3.9 #define DR_ADJSET 6 /* adjust set quantities */
14 gregl 3.5 #define DR_DELSET 7 /* delete from current set */
15 gregl 3.9 #define DR_KILL 8 /* kill rtrace process(es) */
16     #define DR_RESTART 9 /* restart rtrace */
17     #define DR_CLOBBER 10 /* clobber holodeck */
18 gwlarson 3.12 #define DR_VIEWPOINT 11 /* set desired eye position */
19 gregl 3.1
20     /* server responses */
21 gregl 3.9 #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 gregl 3.10 #define DS_OUTSECT 38 /* render from outside sections */
28 gwlarson 3.11 #define DS_EYESEP 39 /* eye separation distance */
29 gregl 3.1
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 gregl 3.3 #ifndef BIGREQSIZ
41     #define BIGREQSIZ 512 /* big request size (bytes) */
42     #endif
43    
44 gregl 3.1 typedef struct {
45 greg 3.14 int16 type; /* message type */
46     int32 nbytes; /* number of additional bytes */
47 gregl 3.1 } MSGHEAD; /* message head */
48 gregl 3.6
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 gregl 3.8 * and writing user commands from the list in rhdriver.h. If standard input
58 gregl 3.6 * 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     */