internal Keyboard(Window window) { Window = window; for (int i = 0; i < KeysUtils.MAX_KEY_INDEX; ++i) { _lastKeys[i] = _currKeys[i] = false; _lastPress[i] = _lastRelease[i] = _lastTap[i] = 0; } _keyfunc = (window, key, scancode, action, mods) => { if (action == Glfw.REPEAT) { return; } var keys = KeysUtils.Translate(key); if (keys == Keys.Unknown) { return; } handleKey(keys, scancode, action == Glfw.PRESS); }; Glfw.SetKeyCallback(window.Handle, _keyfunc); }
public static void Deinitialise() { GC.KeepAlive(gkf); gkf = null; }
/// <summary> /// Call Graphics.Initialise() before this. /// </summary> public static void Initialise() { gkf = new Glfw.GLFWkeyfun(glfwKeyFun); Glfw.glfwSetKeyCallback(gkf); }