void EGLViewEventHandler::OnGLFWMouseCallBack(GLFWwindow* window, int button, int action, int modify) { EGLView* eglView = EGLView::getInstance(); if(nullptr == eglView) return; if(GLFW_MOUSE_BUTTON_LEFT == button) { if(GLFW_PRESS == action) { s_captured = true; if (eglView->getViewPortRect().equals(Rect::ZERO) || eglView->getViewPortRect().containsPoint(Point(s_mouseX,s_mouseY))) { int id = 0; eglView->handleTouchesBegin(1, &id, &s_mouseX, &s_mouseY); } } else if(GLFW_RELEASE == action) { s_captured = false; if (eglView->getViewPortRect().equals(Rect::ZERO) || eglView->getViewPortRect().containsPoint(Point(s_mouseX,s_mouseY))) { int id = 0; eglView->handleTouchesEnd(1, &id, &s_mouseX, &s_mouseY); } } } }
extern "C" void mouseCB(int button, int state, int x, int y) { float fx = x; float fy = y; EGLView* pEGLView = EGLView::getInstance(); int id = 0; if(button != glutLeftButton) return; if(state == glutMouseDown) { pEGLView->handleTouchesBegin(1, &id, &fx, &fy); buttonDepressed = true; } else if(state == glutMouseUp) { pEGLView->handleTouchesEnd(1, &id, &fx, &fy); buttonDepressed = false; } }