CGLFWMouseInput.cpp 868 B

123456789101112131415161718192021222324252627282930
  1. #include <glm/common.hpp>
  2. #include "CGLFWMouseInput.h"
  3. #include "WallpaperEngine/Render/Drivers/CX11OpenGLDriver.h"
  4. using namespace WallpaperEngine::Input::Drivers;
  5. CGLFWMouseInput::CGLFWMouseInput (Render::Drivers::CX11OpenGLDriver* driver) :
  6. m_reportedPosition (),
  7. m_mousePosition (),
  8. m_driver (driver) {}
  9. void CGLFWMouseInput::update ()
  10. {
  11. if (!this->m_driver->getApp ().getContext ().settings.mouse.enabled)
  12. {
  13. this->m_reportedPosition = {0, 0};
  14. return;
  15. }
  16. // update current mouse position
  17. glfwGetCursorPos (this->m_driver->getWindow (), &this->m_mousePosition.x, &this->m_mousePosition.y);
  18. // interpolate to the new position
  19. this->m_reportedPosition = glm::mix (this->m_reportedPosition, this->m_mousePosition, 1.0);
  20. }
  21. glm::dvec2 CGLFWMouseInput::position() const
  22. {
  23. return this->m_reportedPosition;
  24. }