diff options
author | Jan Holesovsky <kendy@collabora.com> | 2014-05-20 01:05:12 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2014-05-21 10:36:54 +0200 |
commit | 2fa2e6db1c897d3605aca7da6b42a0b3b9155763 (patch) | |
tree | d7e5215ae5c3ee2e408c964855ef3e1b2804e249 | |
parent | f72d85e6fadfc66b80313d662ce3a938ed59aecf (diff) |
gltf: Send delta when rotating, not absolute value.
Change-Id: I2453132fedc9a38f43c3de4b110459ba7771d085
-rw-r--r-- | avmedia/source/opengl/oglwindow.cxx | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/avmedia/source/opengl/oglwindow.cxx b/avmedia/source/opengl/oglwindow.cxx index a3e5623b3b5f..7bdc9f785ee9 100644 --- a/avmedia/source/opengl/oglwindow.cxx +++ b/avmedia/source/opengl/oglwindow.cxx @@ -300,13 +300,19 @@ IMPL_LINK(OGLWindow, CameraHandler, VclWindowEvent*, pEvent) if(pMouseEvt && pMouseEvt->IsLeft()) { const Point& aCurPos = pMouseEvt->GetPosPixel(); + float fSensitivity = std::min(m_pHandle->viewport.width, m_pHandle->viewport.height); + if (fSensitivity == 0.0) + fSensitivity = 1.0; + else + fSensitivity = 540.0 / fSensitivity; long nDeltaX = m_aLastMousePos.X()-aCurPos.X(); long nDeltaY = aCurPos.Y()-m_aLastMousePos.Y(); - static const float fSensitivity = 1.0; // TODO: It seems this method just moves the camera but not rotate it. gltf_renderer_rotate_camera((float)nDeltaX*fSensitivity,(float)nDeltaY*fSensitivity,0.0,0.0); update(); + + m_aLastMousePos = aCurPos; } } return 0; |