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

Comparing ray/src/hd/rhd_ogl.c (file contents):
Revision 3.26 by greg, Fri Jan 7 20:33:02 2005 UTC vs.
Revision 3.29 by greg, Tue May 23 13:01:07 2006 UTC

# Line 235 | Line 235 | char  *id;
235                                          /* set window manager hints */
236          ourxwmhints.flags = InputHint|IconPixmapHint;
237          ourxwmhints.input = True;
238 <        ourxwmhints.icon_pixmap = XCreateBitmapFromData(ourdisplay,
239 <                        gwind, x11icon_bits, x11icon_width, x11icon_height);
238 >        ourxwmhints.icon_pixmap = XCreateBitmapFromData(ourdisplay, gwind,
239 >                        (char *)x11icon_bits, x11icon_width, x11icon_height);
240          XSetWMHints(ourdisplay, gwind, &ourxwmhints);
241          oursizhints.min_width = MINWIDTH;
242   #ifdef STEREO
# Line 324 | Line 324 | dev_view(                      /* assign new driver view */
324          register VIEW   *nv
325   )
326   {
327 + #ifdef STEREO
328 +        double  d;
329 + #endif
330          if (nv->type != VT_PER ||               /* check view legality */
331                          nv->horiz > 160. || nv->vert > 160.) {
332                  error(COMMAND, "illegal view type/angle");
# Line 819 | Line 822 | getframe(                              /* get focus frame */
822   )
823   {
824          int     startx = ebut->x, starty = ebut->y;
825 <        int     endx, endy;
826 <
825 >        int     endx, endy, midx, midy;
826 >        FVECT   odir, v1;
827 >        double  d, d1;
828 >                                                /* get mouse drag */
829          XMaskEvent(ourdisplay, ButtonReleaseMask, levptr(XEvent));
830          endx = levptr(XButtonReleasedEvent)->x;
831          endy = levptr(XButtonReleasedEvent)->y;
832 <        if ((endx == startx) | (endy == starty)) {
833 <                XBell(ourdisplay, 0);
832 >        midx = (startx + endx) >> 1;
833 >        midy = (starty + endy) >> 1;
834 >                                                /* set focus distance */
835 >        if (viewray(v1, odir, &odev.v,
836 >                        (midx+.5)/odev.hres, (midy+.5)/odev.vres) < -FTINY)
837                  return;
838 <        }
838 >        d = getdistance(midx, midy, odir);      /* distance from front plane */
839 > #ifdef DOBJ
840 >        d1 = dobj_trace(NULL, v1, odir);
841 >        if (d1 < d)
842 >                d = d1;
843 > #endif
844 >        if (d < .99*FHUGE)
845 >                odev.v.vdist = d + sqrt(dist2(v1, odev.v.vp));
846 >                                                /* set frame for rendering */
847 >        if ((endx == startx) | (endy == starty))
848 >                return;
849          if (endx < startx) {register int c = endx; endx = startx; startx = c;}
850          if (endy < starty) {register int c = endy; endy = starty; starty = c;}
851          sprintf(odev_args, "%.3f %.3f %.3f %.3f",

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines