Beispiel #1
0
        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;
        }
Beispiel #2
0
        public unsafe GlfwWindow()
        {
            if (_windowCount++ == 0)
            {
                GLFW.Init();
            }
            _windowHandle = GLFW.CreateWindow(1028, 720, "voxel engine", null, null);

            Input = new GlfwInput(_windowHandle);
        }
Beispiel #3
0
        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);
        }
Beispiel #4
0
        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);
                }
            }
        }