--- ray/src/px/x11image.c 1993/03/30 14:39:29 2.24 +++ ray/src/px/x11image.c 1993/06/18 10:22:26 2.27 @@ -624,9 +624,14 @@ XKeyPressedEvent *ekey; case 't': /* trace */ return(traceray(ekey->x, ekey->y)); case '=': /* adjust exposure */ + case '@': /* adaptation level */ if (avgbox(cval) == -1) return(-1); - n = log(.5/bright(cval))/.69315 - scale; /* truncate */ + comp = com=='@' + ? 106./pow(1.219+pow(luminance(cval)/exposure,.4),2.5)/exposure + : .5/bright(cval) ; + comp = log(comp)/.69315 - scale; + n = comp < 0 ? comp-.5 : comp+.5 ; /* round */ if (n == 0) return(0); scale_rcolors(ourras, pow(2.0, (double)n)); @@ -647,6 +652,14 @@ XKeyPressedEvent *ekey; if (fast) make_rpixmap(ourras, wind); redraw(0, 0, width, height); + return(0); + case 'f': /* turn on fast redraw */ + fast = 1; + make_rpixmap(ourras, wind); + return(0); + case 'F': /* turn off fast redraw */ + fast = 0; + free_rpixmap(ourras); return(0); case '0': /* recenter origin */ if (xoff == 0 & yoff == 0)