예제 #1
0
파일: main.cpp 프로젝트: bhlzlx/graphics
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;
    }

}
예제 #2
0
파일: main.cpp 프로젝트: bhlzlx/graphics
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;
    }
}