CMouseInput.cpp 784 B

123456789101112131415161718192021222324252627
  1. #include <glm/common.hpp>
  2. #include "CMouseInput.h"
  3. using namespace WallpaperEngine::Input;
  4. CMouseInput::CMouseInput (GLFWwindow* window) : position (), m_mousePosition (), m_window (window) {}
  5. CMouseInput::CMouseInput(WallpaperEngine::Render::Drivers::CWaylandOpenGLDriver* driver) {
  6. waylandDriver = driver;
  7. }
  8. void CMouseInput::update ()
  9. {
  10. if (!m_window) {
  11. if (!waylandDriver || !waylandDriver->lastLSInFocus)
  12. return;
  13. this->position = waylandDriver->lastLSInFocus->mousePos;
  14. return;
  15. }
  16. // update current mouse position
  17. glfwGetCursorPos (this->m_window, &this->m_mousePosition.x, &this->m_mousePosition.y);
  18. // interpolate to the new position
  19. this->position = glm::mix (this->position, this->m_mousePosition, 1.0);
  20. }