static void key_press(unsigned char key, int x, int y);
static void key_release(unsigned char key, int x, int y);
static void mouse(int bn, int st, int x, int y);
+static void proc_modkeys();
static unsigned int start_time;
+static unsigned int modkeys;
int main(int argc, char **argv)
{
exit(0);
}
+unsigned int app_get_modifiers()
+{
+ return modkeys;
+}
+
static bool init()
{
glewInit();
static void key_press(unsigned char key, int x, int y)
{
+ proc_modkeys();
app_keyboard(key, true);
}
static void key_release(unsigned char key, int x, int y)
{
+ proc_modkeys();
app_keyboard(key, false);
}
int bidx = bn - GLUT_LEFT_BUTTON;
bool down = st == GLUT_DOWN;
+ proc_modkeys();
app_mouse_button(bidx, down, x, y);
}
+
+static void proc_modkeys()
+{
+ int glutmod = glutGetModifiers();
+
+ modkeys = 0;
+ if(glutmod & GLUT_ACTIVE_SHIFT) {
+ modkeys |= MOD_SHIFT;
+ }
+ if(glutmod & GLUT_ACTIVE_CTRL) {
+ modkeys |= MOD_CTRL;
+ }
+ if(glutmod & GLUT_ACTIVE_ALT) {
+ modkeys |= MOD_ALT;
+ }
+}