private static void mousebutton_Callback(Window *window, MouseButton button, InputAction action, KeyModifiers mods) { int btn = -1; switch (button) { case MouseButton.Button1: btn = 0; break; case MouseButton.Button2: btn = 1; break; case MouseButton.Button3: btn = 2; break; case MouseButton.Button4: btn = 3; break; case MouseButton.Button5: btn = 4; break; case MouseButton.Button6: btn = 5; break; case MouseButton.Button7: btn = 6; break; case MouseButton.Button8: btn = 7; break; } bool pressed = (action == InputAction.Press || action == InputAction.Repeat); PGE.olc_UpdateMouseState(btn, pressed); }
public override rcode StartSystemEventLoop() { //MSG msg; Console.WriteLine("Getting Messages"); int ret; while (!GLFW.WindowShouldClose(olc_hWnd)) { GLFW.WaitEvents(); //GLFW.PollEvents(); } PGE.olc_Terminate(); //GLFW.Terminate(); return(rcode.OK); //return rcode.OK; // while ((ret = GetMessage(out msg, IntPtr.Zero, 0, 0)) != 0) // { // if (ret == -1) // { // Console.WriteLine($"LastError : [{Marshal.GetLastWin32Error()}]"); // } // else // { // // TranslateMessage(ref msg); //// DispatchMessage(ref msg); //// Console.WriteLine($"msg: [t:{msg.time}] [wparam:{msg.wParam}] [lparam:{msg.lParam}] [message:{msg.message}] [msgmsg:{(WindowsMessage)msg.message}]"); // } // } // return rcode.OK; }
private void key_Callback(Window *window, Keys key, int scanCode, InputAction action, KeyModifiers mods) { bool inputAction = false; if (action == InputAction.Press || action == InputAction.Repeat) { inputAction = true; } PGE.olc_UpdateKeyState((int)GLFWKeysToOLCKey(key), inputAction); }
private static void cursorpos_Callback(Window *window, double x, double y) { PGE.olc_UpdateMouse((int)x, (int)y); }
private static void scroll_Callback(Window *window, double offsetX, double offsetY) { PGE.olc_UpdateMouseWheel((int)offsetY); // //case WM_MOUSEWHEEL: ptrPGE->olc_UpdateMouseWheel(GET_WHEEL_DELTA_WPARAM(wParam)); return 0; }