- static bool oldButtonDown = false;
- static int oldx, oldy;
- if (buttons == 3 && !oldButtonDown)
- {
- oldButtonDown = true;
- view.ToggleGPUTransform();
- oldx = x;
- oldy = y;
- return;
- }
- if (buttons == 2 && !oldButtonDown)
- {
- oldButtonDown = true;
- view.ToggleGPURendering();
- oldx = x;
- oldy = y;
- }
- if (buttons && !oldButtonDown)
- {
- // We're beginning a drag.
- oldButtonDown = true;
- oldx = x;
- oldy = y;
- scr.SetMouseCursor(Screen::CursorMove);
- }
- if (buttons)
- {
- #if REAL == REAL_RATIONAL
- view.Translate(Real(oldx, scr.ViewportWidth()) -Real(x,scr.ViewportWidth()), Real(oldy, scr.ViewportHeight()) - Real(y,scr.ViewportHeight()));
- #else
- view.Translate(Real(oldx-x)/Real(scr.ViewportWidth()), Real(oldy-y)/Real(scr.ViewportHeight()));
- #endif
- }
- else
- {
- oldButtonDown = false;
- scr.SetMouseCursor(Screen::CursorArrow);
- }