ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhdisp.c
(Generate patch)

Comparing ray/src/hd/rhdisp.c (file contents):
Revision 3.1 by gregl, Wed Nov 19 18:01:03 1997 UTC vs.
Revision 3.3 by gregl, Fri Nov 21 15:11:43 1997 UTC

# Line 29 | Line 29 | main(argc, argv)
29   int     argc;
30   char    *argv[];
31   {
32 <        int     rdy, inp, res = 0;
32 >        int     rdy, inp, res = 0, pause = 0;
33  
34          progname = argv[0];
35          if (argc != 2)
# Line 39 | Line 39 | char   *argv[];
39                                          /* enter main loop */
40          do {
41                  rdy = disp_wait();
42 <                if (rdy & DEV_READY) {
43 <                        inp = dev_input();      /* take residual action here */
42 >                if (rdy & DEV_READY) {          /* get user input */
43 >                        inp = dev_input();
44 >                        if (inp & DEV_NEWVIEW)
45 >                                new_view(&odev.v);
46                          if (inp & DEV_SHUTDOWN)
47                                  serv_request(DR_SHUTDOWN, 0, NULL);
48 <                        else if (inp & DEV_NEWVIEW)
49 <                                new_view(&odev.v);
48 >                        if (inp & DEV_WAIT)
49 >                                pause = 1;
50 >                        if (inp & DEV_RESUME) {
51 >                                serv_request(DR_NOOP, 0, NULL);
52 >                                pause = 0;
53 >                        }
54                  }
55 <                if (rdy & SERV_READY)
56 <                        res = serv_result();    /* processes result, also */
55 >                if (rdy & SERV_READY) {         /* get server result */
56 >                        res = serv_result();
57 >                        if (pause && res != DS_SHUTDOWN) {
58 >                                serv_request(DR_ATTEN, 0, NULL);
59 >                                while ((res = serv_result()) != DS_ACKNOW &&
60 >                                                res != DS_SHUTDOWN)
61 >                                        ;
62 >                        }
63 >                }
64          } while (res != DS_SHUTDOWN);
65                                          /* all done */
66          quit(0);
# Line 229 | Line 242 | char   *p;
242                  fwrite(p, 1, nbytes, stdout);
243          if (fflush(stdout) < 0)
244                  error(SYSTEM, "write error in serv_request");
245 + }
246 +
247 +
248 + eputs(s)                        /* put error message to stderr */
249 + register char  *s;
250 + {
251 +        static int  midline = 0;
252 +
253 +        if (!*s)
254 +                return;
255 +        if (!midline++) {       /* prepend line with program name */
256 +                fputs(progname, stderr);
257 +                fputs(": ", stderr);
258 +        }
259 +        fputs(s, stderr);
260 +        if (s[strlen(s)-1] == '\n') {
261 +                fflush(stderr);
262 +                midline = 0;
263 +        }
264   }
265  
266  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines