28    Input(GLFWwindow* glfwWindow);
 
   61        std::lock_guard lock(m_cursor_mutex);
 
   62        return m_cursor_captured;
 
   71    void getScroll(
double & xoffset, 
double & yoffset);
 
   75    std::queue<KeyState> m_key_state[GLFW_KEY_LAST];
 
   76    std::mutex m_key_state_mutex;
 
   78    std::queue<KeyState> m_mouse_button_state[GLFW_MOUSE_BUTTON_LAST];
 
   79    std::mutex m_mouse_button_state_mutex;
 
   83    bool m_cursor_captured = 
false;
 
   84    std::mutex m_cursor_mutex;
 
   88    std::mutex m_scroll_mutex;
 
  101    static void keyCallback(GLFWwindow* window, 
int key, 
int scancode, 
int action, 
int mods);
 
  111    static void mouseButtonCallback(GLFWwindow* window, 
int button, 
int action, 
int mods);
 
  120    static void cursorPosCallback(GLFWwindow* window, 
double xpos, 
double ypos);
 
  129    static void mouseScrollCallback(GLFWwindow* window, 
double xoffset, 
double yoffset);