X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fgltrackball.c;h=93d4c54263ef97e2610616d794013e10f0acbc5d;hb=6f5482d73adb0165c0130bb47d852644ab0c4869;hp=e3c0cd42402fdb781b03a48a0be8e502d4c7f9c9;hpb=6b1c86cf395f59389e4ece4ea8f4bea2c332745b;p=xscreensaver diff --git a/hacks/glx/gltrackball.c b/hacks/glx/gltrackball.c index e3c0cd42..93d4c542 100644 --- a/hacks/glx/gltrackball.c +++ b/hacks/glx/gltrackball.c @@ -1,4 +1,4 @@ -/* gltrackball, Copyright (c) 2002-2008 Jamie Zawinski +/* gltrackball, Copyright (c) 2002-2012 Jamie Zawinski * GL-flavored wrapper for trackball.c * * Permission to use, copy, modify, distribute, and sell this software and its @@ -12,20 +12,25 @@ #include #include +#include #ifdef HAVE_CONFIG_H # include "config.h" #endif -#ifdef HAVE_COCOA -# include -#else +#ifndef HAVE_COCOA # include #endif +#ifdef HAVE_JWZGLES +# include "jwzgles.h" +#endif /* HAVE_JWZGLES */ + #include "trackball.h" #include "gltrackball.h" +extern double current_device_rotation (void); /* Bah, it's in fps.h */ + struct trackball_state { int x, y; GLfloat q[4]; @@ -43,6 +48,16 @@ gltrackball_init (void) return ts; } +/* Reset the trackball to the default unrotated state. + */ +void +gltrackball_reset (trackball_state *ts) +{ + memset (ts, 0, sizeof(*ts)); + trackball (ts->q, 0, 0, 0, 0); +} + + /* Begin tracking the mouse: Call this when the mouse button goes down. x and y are the mouse position relative to the window. w and h are the size of the window.