| 82 |  | static void xnewcolr(int  ndx, int r, int g, int b); | 
| 83 |  | static int getpixels(void); | 
| 84 |  | static void freepixels(void); | 
| 85 | < | static unsigned long true_pixel(register BYTE rgb[3]); | 
| 85 | > | static unsigned long true_pixel(uby8 rgb[3]); | 
| 86 |  | static void getevent(void); | 
| 87 |  | static int ilclip(int dp[2][2], FVECT wp[2]); | 
| 88 |  | static void draw3dline(FVECT wp[2]); | 
| 91 |  | static void getframe(XButtonPressedEvent *ebut); | 
| 92 |  | static void waitabit(void); | 
| 93 |  | static void getmove(XButtonPressedEvent *ebut); | 
| 94 | < | static void getkey(register XKeyPressedEvent *ekey); | 
| 95 | < | static void fixwindow(register XExposeEvent *eexp); | 
| 96 | < | static void resizewindow(register XConfigureEvent *ersz); | 
| 94 | > | static void getkey(XKeyPressedEvent *ekey); | 
| 95 | > | static void fixwindow(XExposeEvent *eexp); | 
| 96 | > | static void resizewindow(XConfigureEvent *ersz); | 
| 97 |  |  | 
| 98 |  |  | 
| 99 |  | static int | 
| 100 |  | mytmflags(void)                 /* figure out tone mapping flags */ | 
| 101 |  | { | 
| 102 |  | extern char     *progname; | 
| 103 | < | register char   *cp, *tail; | 
| 103 | > | char    *cp, *tail; | 
| 104 |  | /* find basic name */ | 
| 105 |  | for (cp = tail = progname; *cp; cp++) | 
| 106 |  | if (*cp == '/') | 
| 116 |  | } | 
| 117 |  |  | 
| 118 |  |  | 
| 119 | < | extern void | 
| 119 | > | void | 
| 120 |  | dev_open(                       /* initialize X11 driver */ | 
| 121 |  | char  *id | 
| 122 |  | ) | 
| 190 |  | /* set window manager hints */ | 
| 191 |  | ourxwmhints.flags = InputHint|IconPixmapHint; | 
| 192 |  | ourxwmhints.input = True; | 
| 193 | < | ourxwmhints.icon_pixmap = XCreateBitmapFromData(ourdisplay, | 
| 194 | < | gwind, x11icon_bits, x11icon_width, x11icon_height); | 
| 193 | > | ourxwmhints.icon_pixmap = XCreateBitmapFromData(ourdisplay, gwind, | 
| 194 | > | (char *)x11icon_bits, x11icon_width, x11icon_height); | 
| 195 |  | XSetWMHints(ourdisplay, gwind, &ourxwmhints); | 
| 196 |  | oursizhints.min_width = MINWIDTH; | 
| 197 |  | oursizhints.min_height = MINHEIGHT; | 
| 217 |  | } | 
| 218 |  |  | 
| 219 |  |  | 
| 220 | < | extern void | 
| 220 | > | void | 
| 221 |  | dev_close(void)                 /* close our display */ | 
| 222 |  | { | 
| 223 |  | freepixels(); | 
| 235 |  | } | 
| 236 |  |  | 
| 237 |  |  | 
| 238 | < | extern void | 
| 238 | > | void | 
| 239 |  | dev_clear(void)                 /* clear our quadtree */ | 
| 240 |  | { | 
| 241 |  | qtCompost(100); | 
| 245 |  | } | 
| 246 |  |  | 
| 247 |  |  | 
| 248 | < | extern int | 
| 248 | > | int | 
| 249 |  | dev_view(                       /* assign new driver view */ | 
| 250 |  | VIEW    *nv | 
| 251 |  | ) | 
| 293 |  | } | 
| 294 |  |  | 
| 295 |  |  | 
| 296 | < | extern void | 
| 296 | > | void | 
| 297 |  | dev_section(            /* add octree for geometry rendering */ | 
| 298 | < | char    *ofn | 
| 298 | > | char    *gfn, | 
| 299 | > | char    *pfn | 
| 300 |  | ) | 
| 301 |  | { | 
| 302 |  | /* unimplemented */ | 
| 303 |  | } | 
| 304 |  |  | 
| 305 |  |  | 
| 306 | < | extern void | 
| 306 | > | void | 
| 307 |  | dev_auxcom(             /* process an auxiliary command */ | 
| 308 |  | char    *cmd, | 
| 309 |  | char    *args | 
| 314 |  | } | 
| 315 |  |  | 
| 316 |  |  | 
| 317 | < | extern VIEW * | 
| 317 | > | VIEW * | 
| 318 |  | dev_auxview(            /* return nth auxiliary view */ | 
| 319 |  | int     n, | 
| 320 |  | int     hvres[2] | 
| 327 |  | } | 
| 328 |  |  | 
| 329 |  |  | 
| 330 | < | extern int | 
| 330 | > | int | 
| 331 |  | dev_input(void)                 /* get X11 input */ | 
| 332 |  | { | 
| 333 |  | inpresflags = 0; | 
| 343 |  | } | 
| 344 |  |  | 
| 345 |  |  | 
| 346 | < | extern void | 
| 346 | > | void | 
| 347 |  | dev_paintr(             /* fill a rectangle */ | 
| 348 | < | BYTE    rgb[3], | 
| 348 | > | uby8    rgb[3], | 
| 349 |  | int  xmin, | 
| 350 |  | int  ymin, | 
| 351 |  | int  xmax, | 
| 366 |  | } | 
| 367 |  |  | 
| 368 |  |  | 
| 369 | < | extern int | 
| 369 | > | int | 
| 370 |  | dev_flush(void)                 /* flush output */ | 
| 371 |  | { | 
| 372 |  | qtUpdate(); | 
| 399 |  | getpixels(void)                         /* get the color map */ | 
| 400 |  | { | 
| 401 |  | XColor  thiscolor; | 
| 402 | < | register int  i, j; | 
| 402 | > | int  i, j; | 
| 403 |  |  | 
| 404 |  | if (ncolors > 0) | 
| 405 |  | return(ncolors); | 
| 464 |  |  | 
| 465 |  | static unsigned long | 
| 466 |  | true_pixel(                     /* return true pixel value for color */ | 
| 467 | < | register BYTE   rgb[3] | 
| 467 | > | uby8    rgb[3] | 
| 468 |  | ) | 
| 469 |  | { | 
| 470 | < | register unsigned long  rval; | 
| 470 | > | unsigned long  rval; | 
| 471 |  |  | 
| 472 |  | rval = ourvinfo.red_mask*rgb[RED]/255 & ourvinfo.red_mask; | 
| 473 |  | rval |= ourvinfo.green_mask*rgb[GRN]/255 & ourvinfo.green_mask; | 
| 506 |  | case ButtonPress: | 
| 507 |  | if (FRAMESTATE(levptr(XButtonPressedEvent)->state)) | 
| 508 |  | getframe(levptr(XButtonPressedEvent)); | 
| 509 | < | else | 
| 510 | < | getmove(levptr(XButtonPressedEvent)); | 
| 509 | > | else | 
| 510 | > | switch (levptr(XButtonPressedEvent)->button) { | 
| 511 | > | case Button4:           /* wheel up */ | 
| 512 | > | case Button5:           /* wheel down */ | 
| 513 | > | break; | 
| 514 | > | default: | 
| 515 | > | getmove(levptr(XButtonPressedEvent)); | 
| 516 | > | break; | 
| 517 | > | } | 
| 518 |  | break; | 
| 519 |  | } | 
| 520 |  | } | 
| 577 |  | static void | 
| 578 |  | draw_grids(void)                        /* draw holodeck section grids */ | 
| 579 |  | { | 
| 580 | < | static BYTE     gridrgb[3] = {0x0, 0xff, 0xff}; | 
| 580 | > | static uby8     gridrgb[3] = {0x0, 0xff, 0xff}; | 
| 581 |  | unsigned long  pixel; | 
| 582 |  |  | 
| 583 |  | if (ncolors > 0) | 
| 601 |  | VIEW    nv; | 
| 602 |  | FVECT   odir, v1; | 
| 603 |  | double  d; | 
| 604 | < | register int    li; | 
| 604 | > | int     li; | 
| 605 |  | /* start with old view */ | 
| 606 |  | nv = odev.v; | 
| 607 |  | /* change view direction */ | 
| 619 |  | VSUM(nv.vp, qtL.wp[li], odir, -1.); | 
| 620 |  | spinvector(nv.vdir, nv.vdir, nv.vup, d); | 
| 621 |  | } else if (orb) {               /* orbit up/down */ | 
| 622 | < | fcross(v1, odir, nv.vup); | 
| 623 | < | if (normalize(v1) == 0.) | 
| 622 | > | if (geodesic(odir, odir, nv.vup, | 
| 623 | > | d=MOVDEG*PI/180.*orb, GEOD_RAD) == 0.0) | 
| 624 |  | return(0); | 
| 617 | – | spinvector(odir, odir, v1, d=MOVDEG*PI/180.*orb); | 
| 625 |  | VSUM(nv.vp, qtL.wp[li], odir, -1.); | 
| 626 | < | spinvector(nv.vdir, nv.vdir, v1, d); | 
| 626 | > | geodesic(nv.vdir, nv.vdir, nv.vup, d, GEOD_RAD); | 
| 627 |  | } else if (mov) {               /* move forward/backward */ | 
| 628 |  | d = MOVPCT/100. * mov; | 
| 629 |  | VSUM(nv.vp, nv.vp, odir, d); | 
| 658 |  | midy = (starty + endy) >> 1; | 
| 659 |  | /* set focus distance */ | 
| 660 |  | if ((li = qtFindLeaf(midx, midy)) < 0) | 
| 661 | < | return(0);              /* not on window */ | 
| 661 | > | return;                 /* not on window */ | 
| 662 |  | VCOPY(v1, qtL.wp[li]); | 
| 663 |  | odev.v.vdist = sqrt(dist2(odev.v.vp, v1)); | 
| 664 |  | /* set frame for rendering */ | 
| 665 |  | if ((endx == startx) | (endy == starty)) | 
| 666 |  | return; | 
| 667 | < | if (endx < startx) {register int c = endx; endx = startx; startx = c;} | 
| 668 | < | if (endy < starty) {register int c = endy; endy = starty; starty = c;} | 
| 667 | > | if (endx < startx) {int c = endx; endx = startx; startx = c;} | 
| 668 | > | if (endy < starty) {int c = endy; endy = starty; starty = c;} | 
| 669 |  | sprintf(odev_args, "%.3f %.3f %.3f %.3f", | 
| 670 |  | (startx+.5)/odev.hres, 1.-(endy+.5)/odev.vres, | 
| 671 |  | (endx+.5)/odev.hres, 1.-(starty+.5)/odev.vres); | 
| 727 |  |  | 
| 728 |  | static void | 
| 729 |  | getkey(                         /* get input key */ | 
| 730 | < | register XKeyPressedEvent  *ekey | 
| 730 | > | XKeyPressedEvent  *ekey | 
| 731 |  | ) | 
| 732 |  | { | 
| 733 |  | Window  rootw, childw; | 
| 809 |  |  | 
| 810 |  | static void | 
| 811 |  | fixwindow(                              /* repair damage to window */ | 
| 812 | < | register XExposeEvent  *eexp | 
| 812 | > | XExposeEvent  *eexp | 
| 813 |  | ) | 
| 814 |  | { | 
| 815 |  | if (odev.hres == 0 || odev.vres == 0) { /* first exposure */ | 
| 823 |  |  | 
| 824 |  | static void | 
| 825 |  | resizewindow(                   /* resize window */ | 
| 826 | < | register XConfigureEvent  *ersz | 
| 826 | > | XConfigureEvent  *ersz | 
| 827 |  | ) | 
| 828 |  | { | 
| 829 |  | if (ersz->width == odev.hres && ersz->height == odev.vres) |