--- ray/src/px/x11image.c 1990/03/12 15:14:53 1.6 +++ ray/src/px/x11image.c 1990/10/13 21:31:48 1.8 @@ -308,7 +308,9 @@ getras() /* get raster file */ if (ourras == NULL) goto fail; getmono(); - } else if (XMatchVisualInfo(thedisplay,ourscreen,24,TrueColor,&vinfo)) { + } else if (XMatchVisualInfo(thedisplay,ourscreen,24,TrueColor,&vinfo) + /* kludge for DirectColor */ + || XMatchVisualInfo(thedisplay,ourscreen,24,DirectColor,&vinfo)) { ourdata = (unsigned char *)malloc(xmax*ymax*3); if (ourdata == NULL) goto fail; @@ -443,9 +445,10 @@ XKeyPressedEvent *ekey; XBell(thedisplay, 0); return(-1); } - viewray(rorg, rdir, &ourview, + if (viewray(rorg, rdir, &ourview, (ekey->x-xoff+.5)/xmax, - (ymax-1-ekey->y+yoff+.5)/ymax); + (ymax-1-ekey->y+yoff+.5)/ymax) < 0) + return(-1); printf("%e %e %e ", rorg[0], rorg[1], rorg[2]); printf("%e %e %e\n", rdir[0], rdir[1], rdir[2]); fflush(stdout);