private unsafe void MouseEvent(OpenToolkit.GraphicsLibraryFramework.Window *window1, double x, double y) { Vector2 newMouse = new Vector2((float)x, (float)y); MouseMoved?.Invoke(_mousePos - newMouse); _mousePos = newMouse; }
public unsafe GlfwWindow() { if (_windowCount++ == 0) { GLFW.Init(); } _windowHandle = GLFW.CreateWindow(1028, 720, "voxel engine", null, null); Input = new GlfwInput(_windowHandle); }
public unsafe GlfwInput(OpenToolkit.GraphicsLibraryFramework.Window *window) { _window = window; GLFW.GetCursorPos(_window, out double x, out double y); _mousePos = new Vector2((float)x, (float)y); GLFW.SetKeyCallback(window, KeyEvent); GLFW.SetCursorPosCallback(window, MouseEvent); }
private unsafe void KeyEvent(OpenToolkit.GraphicsLibraryFramework.Window *window1, Keys key, int code, InputAction action, KeyModifiers mods) { Key?k = GlfwKeyToKey(key); if (k != null) { if (action == InputAction.Press) { OnKeyPressed(k.Value); } else if (action == InputAction.Release) { OnKeyReleased(k.Value); } } }