ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhdisp.h
Revision: 3.12
Committed: Tue Nov 24 17:05:35 1998 UTC (25 years, 11 months ago) by gwlarson
Content type: text/plain
Branch: MAIN
Changes since 3.11: +2 -1 lines
Log Message:
added eyepoint vicinity restriction for interactive samples

File Contents

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