(view as text)
diff --git a/Source/Core/DolphinWX/Src/Frame.cpp b/Source/Core/DolphinWX/Src/Frame.cpp
index 1ca16ff..5a25556 100644
--- a/Source/Core/DolphinWX/Src/Frame.cpp
+++ b/Source/Core/DolphinWX/Src/Frame.cpp
@@ -1028,6 +1028,59 @@ void CFrame::OnMouse(wxMouseEvent& event)
event.GetPosition().x, event.GetPosition().y, event.ButtonDown());
}
#endif
+
+ // next handlers are all for FreeLook, so we don't need to check them if disabled
+ if(!g_Config.bFreeLook)
+ {
+ event.Skip();
+ return;
+ }
+
+ // Free look variables
+ static bool mouseLookEnabled = false;
+ static bool mouseMoveEnabled = false;
+ static float lastMouse[2];
+
+ if(event.MiddleDown())
+ {
+ lastMouse[0] = event.GetX();
+ lastMouse[1] = event.GetY();
+ mouseMoveEnabled = true;
+ }
+ else if(event.RightDown())
+ {
+ lastMouse[0] = event.GetX();
+ lastMouse[1] = event.GetY();
+ mouseLookEnabled = true;
+ }
+ else if(event.MiddleUp())
+ {
+ mouseMoveEnabled = false;
+ }
+ else if(event.RightUp())
+ {
+ mouseLookEnabled = false;
+ }
+ // no button, so it's a move event
+ else if(event.GetButton() == wxMOUSE_BTN_NONE)
+ {
+ if (mouseLookEnabled)
+ {
+ VertexShaderManager::RotateView((event.GetX() - lastMouse[0]) / 200.0f,
+ (event.GetY() - lastMouse[1]) / 200.0f);
+ lastMouse[0] = event.GetX();
+ lastMouse[1] = event.GetY();
+ }
+
+ if (mouseMoveEnabled)
+ {
+ VertexShaderManager::TranslateView((event.GetX() - lastMouse[0]) / 50.0f,
+ (event.GetY() - lastMouse[1]) / 50.0f);
+ lastMouse[0] = event.GetX();
+ lastMouse[1] = event.GetY();
+ }
+ }
+
event.Skip();
}
diff --git a/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp b/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp
index e57c095..e3ea3f3 100644
--- a/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp
+++ b/Source/Core/DolphinWX/Src/GLInterface/X11_Util.cpp
@@ -18,7 +18,6 @@
#include "Host.h"
#include "VideoConfig.h"
#include "../GLInterface.h"
-#include "VertexShaderManager.h"
#if USE_EGL
bool cXInterface::ServerConnect(void)
@@ -166,10 +165,6 @@ void cX11Window::DestroyXWindow(void)
void cX11Window::XEventThread()
#endif
{
- // Free look variables
- static bool mouseLookEnabled = false;
- static bool mouseMoveEnabled = false;
- static float lastMouse[2];
while (GLWin.win)
{
XEvent event;
@@ -177,58 +172,6 @@ void cX11Window::XEventThread()
{
XNextEvent(GLWin.evdpy, &event);
switch(event.type) {
- case ButtonPress:
- if (g_Config.bFreeLook)
- {
- switch (event.xbutton.button)
- {
- case 2: // Middle button
- lastMouse[0] = event.xbutton.x;
- lastMouse[1] = event.xbutton.y;
- mouseMoveEnabled = true;
- break;
- case 3: // Right button
- lastMouse[0] = event.xbutton.x;
- lastMouse[1] = event.xbutton.y;
- mouseLookEnabled = true;
- break;
- }
- }
- break;
- case ButtonRelease:
- if (g_Config.bFreeLook)
- {
- switch (event.xbutton.button)
- {
- case 2: // Middle button
- mouseMoveEnabled = false;
- break;
- case 3: // Right button
- mouseLookEnabled = false;
- break;
- }
- }
- break;
- case MotionNotify:
- if (g_Config.bFreeLook)
- {
- if (mouseLookEnabled)
- {
- VertexShaderManager::RotateView((event.xmotion.x - lastMouse[0]) / 200.0f,
- (event.xmotion.y - lastMouse[1]) / 200.0f);
- lastMouse[0] = event.xmotion.x;
- lastMouse[1] = event.xmotion.y;
- }
-
- if (mouseMoveEnabled)
- {
- VertexShaderManager::TranslateView((event.xmotion.x - lastMouse[0]) / 50.0f,
- (event.xmotion.y - lastMouse[1]) / 50.0f);
- lastMouse[0] = event.xmotion.x;
- lastMouse[1] = event.xmotion.y;
- }
- }
- break;
case ConfigureNotify:
GLInterface->SetBackBufferDimensions(event.xconfigure.width, event.xconfigure.height);
break;
diff --git a/Source/Core/VideoCommon/Src/EmuWindow.cpp b/Source/Core/VideoCommon/Src/EmuWindow.cpp
index 9b8cde5..7bb6757 100644
--- a/Source/Core/VideoCommon/Src/EmuWindow.cpp
+++ b/Source/Core/VideoCommon/Src/EmuWindow.cpp
@@ -7,7 +7,6 @@
#include "VideoConfig.h"
#include "EmuWindow.h"
#include "Fifo.h"
-#include "VertexShaderManager.h"
#include "VideoBackendBase.h"
#include "Core.h"
#include "Host.h"
@@ -41,60 +40,8 @@ HWND GetParentWnd()
return m_hParent;
}
-void FreeLookInput( UINT iMsg, WPARAM wParam )
-{
- static bool mouseLookEnabled = false;
- static bool mouseMoveEnabled = false;
- static float lastMouse[2];
- POINT point;
-
- switch(iMsg)
- {
- case WM_MOUSEMOVE:
- if (mouseLookEnabled)
- {
- GetCursorPos(&point);
- VertexShaderManager::RotateView((point.x - lastMouse[0]) / 200.0f, (point.y - lastMouse[1]) / 200.0f);
- lastMouse[0] = (float)point.x;
- lastMouse[1] = (float)point.y;
- }
-
- if (mouseMoveEnabled)
- {
- GetCursorPos(&point);
- VertexShaderManager::TranslateView((point.x - lastMouse[0]) / 50.0f, (point.y - lastMouse[1]) / 50.0f);
- lastMouse[0] = (float)point.x;
- lastMouse[1] = (float)point.y;
- }
- break;
-
- case WM_RBUTTONDOWN:
- GetCursorPos(&point);
- lastMouse[0] = (float)point.x;
- lastMouse[1] = (float)point.y;
- mouseLookEnabled= true;
- break;
- case WM_MBUTTONDOWN:
- GetCursorPos(&point);
- lastMouse[0] = (float)point.x;
- lastMouse[1] = (float)point.y;
- mouseMoveEnabled= true;
- break;
- case WM_RBUTTONUP:
- mouseLookEnabled = false;
- break;
- case WM_MBUTTONUP:
- mouseMoveEnabled = false;
- break;
- }
-}
-
-
LRESULT CALLBACK WndProc( HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam )
{
- if (g_ActiveConfig.bFreeLook)
- FreeLookInput( iMsg, wParam );
-
switch( iMsg )
{
case WM_PAINT: