static void mouse_button_callback(GLFWwindow* window, int button, int action, int mods) { if(action == GLFW_REPEAT || action == GLFW_PRESS) { mouseEvent.eventType = eMouseDown; switch(button) { case GLFW_MOUSE_BUTTON_LEFT: mouseEvent.button = eMouseButtonLeft; break; case GLFW_MOUSE_BUTTON_RIGHT: mouseEvent.button = eMouseButtonRight; break; case GLFW_MOUSE_BUTTON_MIDDLE: mouseEvent.button = eMouseButtonMid; break; } appDelegate.AppMouseAction(&mouseEvent); } else { mouseEvent.eventType = eMouseUp; appDelegate.AppMouseAction(&mouseEvent); mouseEvent.button = eMouseButtonInvalid; } }
static void cursor_position_callback(GLFWwindow* window, double x, double y) { if(mouseEvent.button == eMouseButtonInvalid) { mouseEvent.lastX = x; mouseEvent.lastY = y; return; } else { mouseEvent.currX = x; mouseEvent.currY = y; mouseEvent.eventType = eMouseMove; appDelegate.AppMouseAction(&mouseEvent); mouseEvent.lastX = x; mouseEvent.lastY = y; } }