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.30 by gwlarson, Wed Aug 19 17:43:08 1998 UTC vs.
Revision 3.34 by gwlarson, Thu Nov 5 14:27:02 1998 UTC

# Line 88 | Line 88 | char   *argv[];
88                                  printview();
89                          if (inp & DFL(DC_LASTVIEW))
90                                  new_view(NULL);
91                        if (inp & DFL(DC_RESUME)) {
92                                serv_request(DR_NOOP, 0, NULL);
93                                pause = 0;
94                        }
95                        if (inp & DFL(DC_PAUSE))
96                                pause = 1;
97                        if (inp & DFL(DC_REDRAW))
98                                imm_mode = beam_sync(1) > 0;
91                          if (inp & DFL(DC_KILL)) {
92                                  serv_request(DR_KILL, 0, NULL);
93                                  pause = 0;
# Line 106 | Line 98 | char   *argv[];
98                                  serv_request(DR_RESTART, 0, NULL);
99                                  pause = 0;
100                          }
101 +                        if (inp & DFL(DC_RESUME)) {
102 +                                serv_request(DR_NOOP, 0, NULL);
103 +                                pause = 0;
104 +                        }
105 +                        if (inp & DFL(DC_PAUSE))
106 +                                pause = 1;
107 +                        if (inp & DFL(DC_REDRAW))
108 +                                imm_mode = beam_sync(1) > 0;
109                          if (inp & DFL(DC_QUIT))
110                                  serv_request(DR_SHUTDOWN, 0, NULL);
111                  }
112 <                if (rdy & RDY_SIN)              /* user input from sstdin */
112 >                if (rdy & RDY_SIN && !imm_mode) /* user input from sstdin */
113                          switch (usr_input()) {
114                          case DC_PAUSE:
115                                  pause = 1;
# Line 289 | Line 289 | again:
289                          }
290                          copystruct(v, viewhist + ((nhist-1)%VIEWHISTLEN));
291                          goto again;
292 <                }
293 <        beam_sync(0);           /* update server */
292 >                }      
293 >                                /* update server */
294 >        imm_mode = beam_sync(0) > 0;
295                                  /* record new view */
296          if (v < viewhist || v >= viewhist+VIEWHISTLEN) {
297                  copystruct(viewhist + (nhist%VIEWHISTLEN), v);
# Line 312 | Line 313 | usr_input()                    /* get user input and process it */
313                  sstdin = NULL;
314                  return(-1);
315          }
316 <        if (!*cmd)
316 >        if (*cmd == '\n')
317                  return(DC_RESUME);
318          for (args = cmd; *args && !isspace(*args); args++)
319                  ;
# Line 428 | Line 429 | serv_result()                  /* get next server result and process
429                          tmodesw = tnow;
430                  }
431   #endif
432 <                imm_mode = msg.type==DS_STARTIMM;
432 >                if (!(imm_mode = msg.type==DS_STARTIMM))
433 >                        dev_flush();
434                  goto noargs;
435          case DS_ACKNOW:
436          case DS_SHUTDOWN:
# Line 457 | Line 459 | char   *p;
459   {
460          MSGHEAD msg;
461          int     m;
462 +                                /* consistency checks */
463 + #ifdef DEBUG
464 +        if (nbytes < 0 || nbytes > 0 & p == NULL)
465 +                error(CONSISTENCY, "bad buffer handed to serv_request");
466 + #endif
467                                  /* get server's attention for big request */
468          if (nbytes >= BIGREQSIZ-sizeof(MSGHEAD)) {
469                  serv_request(DR_ATTEN, 0, NULL);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines