-#include "machine.h"
-
-static bool init();
-static void cleanup();
-static void display();
-static void idle();
-static void draw_gears();
-static void reshape(int x, int y);
-static void keyb(unsigned char key, int x, int y);
-static void mouse(int bn, int st, int x, int y);
-static void motion(int x, int y);
-static void passive_motion(int x, int y);
-static Gear *pick_gear(int x, int y);
-
-static int win_width, win_height;
-
-static float cam_dist = 0.5;
-static float cam_theta, cam_phi;
-static int prev_mx, prev_my;
-static bool bnstate[8];
-
-static unsigned int start_time, prev_msec;
-static Machine *machine;
-static Gear *hover_gear, *sel_gear;
-static HitPoint pick_hit;
-static Vec3 sel_hit_pos;
+
+static bool init(int argc, char **argv);
+static void process_event(SDL_Event *ev);
+static void proc_modkeys();
+
+static SDL_Window *win;
+static SDL_GLContext ctx;
+static bool fullscreen, mouse_grabbed;
+static bool quit;
+
+static unsigned int start_time;
+static unsigned int modkeys;
+
+SDL_GameController *gamepad;
+
+static int scale_factor = 1;