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

Comparing ray/src/rt/x11.c (file contents):
Revision 2.11 by greg, Mon Mar 8 12:51:45 1993 UTC vs.
Revision 2.15 by greg, Fri Sep 9 16:16:06 1994 UTC

# Line 11 | Line 11 | static char SCCSid[] = "$SunId$ LBL";
11   */
12  
13   #include  <stdio.h>
14 <
14 > #include  <math.h>
15   #include  <sys/ioctl.h>
16  
17   #include  <X11/Xlib.h>
# Line 78 | Line 78 | static struct driver  x11_driver = {
78          x11_comout, x11_comin, x11_flush, 1.0
79   };
80  
81 < static int  getpixels(), xnewcolr(), freepixels(),
82 <                getevent(), getkey(), fixwindow();
81 > static int  getpixels(), xnewcolr(), freepixels(), resizewindow(),
82 >                getevent(), getkey(), fixwindow(), x11_getc();
83   static unsigned long  true_pixel();
84  
85  
# Line 125 | Line 125 | char  *name, *id;
125                  ourwhite = WhitePixel(ourdisplay,ourscreen);
126          }
127                                          /* set gamma */
128 <        if ((gv = getenv("GAMMA")) != NULL)
128 >        if ((gv = XGetDefault(ourdisplay, "radiance", "gamma")) != NULL
129 >                        || (gv = getenv("GAMMA")) != NULL)
130                  make_gmap(atof(gv));
131          else
132                  make_gmap(GAMMA);
# Line 260 | Line 261 | int  xmin, ymin, xmax, ymax;
261   static
262   x11_flush()                     /* flush output */
263   {
264 +        int     n;
265 +        register char   *buf;
266 +
267          XNoOp(ourdisplay);
268          while (XPending(ourdisplay) > 0)
269                  getevent();
270 + #ifdef FIONREAD
271 +        if (ioctl(0, FIONREAD, &n) == 0 && n) {         /* from stdin */
272 +                buf = getcombuf(&x11_driver);
273 +                n = read(0, buf, n);
274 +                buf[n] = '\0';
275 +        }
276 + #endif
277   }
278  
279  
# Line 270 | Line 281 | static
281   x11_comin(inp, prompt)          /* read in a command line */
282   char  *inp, *prompt;
283   {
284 <        extern int  x11_getc();
285 <
275 <        if (prompt != NULL)
284 >        if (prompt != NULL) {
285 >                x11_flush();            /* make sure we get everything */
286                  if (fromcombuf(inp, &x11_driver))
287                          return;
288 <                else
289 <                        xt_puts(prompt, comline);
288 >                xt_puts(prompt, comline);
289 >        }
290          xt_cursor(comline, TBLKCURS);
291          editline(inp, x11_getc, x11_comout);
292          xt_cursor(comline, TNOCURS);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines