From 421bb9cf33d8577553c92a23e0717db682315e4a Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Mon, 2 Mar 2015 23:17:55 +0100 Subject: [PATCH 1/2] Add finger touch events to SDL2Stage --- legacy/project/src/sdl2/SDL2Stage.cpp | 42 +++++++++++++++++++++------ 1 file changed, 33 insertions(+), 9 deletions(-) diff --git a/legacy/project/src/sdl2/SDL2Stage.cpp b/legacy/project/src/sdl2/SDL2Stage.cpp index 86fa31a86..6a8ce5fd6 100644 --- a/legacy/project/src/sdl2/SDL2Stage.cpp +++ b/legacy/project/src/sdl2/SDL2Stage.cpp @@ -268,7 +268,7 @@ public: } mPrimarySurface->IncRef(); - #if defined(WEBOS) || defined(BLACKBERRY) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) mMultiTouch = true; #else mMultiTouch = false; @@ -534,8 +534,8 @@ public: inEvent.type = etQuit; } #endif - - #if defined(WEBOS) || defined(BLACKBERRY) + + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) if (inEvent.type == etMouseMove || inEvent.type == etMouseDown || inEvent.type == etMouseUp) { if (mSingleTouchID == NO_TOUCH || inEvent.value == mSingleTouchID || !mMultiTouch) @@ -682,8 +682,8 @@ public: bool getMultitouchSupported() - { - #if defined(WEBOS) || defined(BLACKBERRY) + { + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) return true; #else return false; @@ -696,7 +696,7 @@ public: bool getMultitouchActive() { - #if defined(WEBOS) || defined(BLACKBERRY) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) return mMultiTouch; #else return false; @@ -1210,7 +1210,7 @@ void ProcessEvent(SDL_Event &inEvent) //int inValue=0, int inID=0, int inFlags=0, float inScaleX=1,float inScaleY=1, int inDeltaX=0,int inDeltaY=0 Event mouse(etMouseMove, inEvent.motion.x, inEvent.motion.y, 0, 0, 0, 1.0f, 1.0f, deltaX, deltaY); - #if defined(WEBOS) || defined(BLACKBERRY) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) mouse.value = inEvent.motion.which; mouse.flags |= efLeftDown; #else @@ -1222,7 +1222,7 @@ void ProcessEvent(SDL_Event &inEvent) case SDL_MOUSEBUTTONDOWN: { Event mouse(etMouseDown, inEvent.button.x, inEvent.button.y, inEvent.button.button - 1); - #if defined(WEBOS) || defined(BLACKBERRY) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) mouse.value = inEvent.motion.which; mouse.flags |= efLeftDown; #else @@ -1234,7 +1234,7 @@ void ProcessEvent(SDL_Event &inEvent) case SDL_MOUSEBUTTONUP: { Event mouse(etMouseUp, inEvent.button.x, inEvent.button.y, inEvent.button.button - 1); - #if defined(WEBOS) || defined(BLACKBERRY) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) mouse.value = inEvent.motion.which; #else AddModStates(mouse.flags); @@ -1259,6 +1259,30 @@ void ProcessEvent(SDL_Event &inEvent) sgSDLFrame->ProcessEvent(mouse); break; } + case SDL_FINGERMOTION: + { + SDL_TouchFingerEvent inFingerEvent = inEvent.tfinger; + Event finger(etTouchMove, inFingerEvent.x, inFingerEvent.y, 0, 0, 0, 1.0f, 1.0f, inFingerEvent.dx, inFingerEvent.dy); + finger.value = inFingerEvent.fingerId; + sgSDLFrame->ProcessEvent(finger); + break; + } + case SDL_FINGERDOWN: + { + SDL_TouchFingerEvent inFingerEvent = inEvent.tfinger; + Event finger(etTouchBegin, inFingerEvent.x, inFingerEvent.y); + finger.value = inFingerEvent.fingerId; + sgSDLFrame->ProcessEvent(finger); + break; + } + case SDL_FINGERUP: + { + SDL_TouchFingerEvent inFingerEvent = inEvent.tfinger; + Event finger(etTouchEnd, inFingerEvent.x, inFingerEvent.y); + finger.value = inFingerEvent.fingerId; + sgSDLFrame->ProcessEvent(finger); + break; + } case SDL_KEYDOWN: case SDL_KEYUP: { From d79cd87793c6846dc6063f45b1490fd5b6a8cdf7 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Sat, 28 Mar 2015 19:01:28 +0100 Subject: [PATCH 2/2] Added Windows defined for multitouch in SDL2Stage --- legacy/project/src/sdl2/SDL2Stage.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/legacy/project/src/sdl2/SDL2Stage.cpp b/legacy/project/src/sdl2/SDL2Stage.cpp index 6a8ce5fd6..c0ded5beb 100644 --- a/legacy/project/src/sdl2/SDL2Stage.cpp +++ b/legacy/project/src/sdl2/SDL2Stage.cpp @@ -268,7 +268,7 @@ public: } mPrimarySurface->IncRef(); - #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) || defined(HX_WINDOWS) mMultiTouch = true; #else mMultiTouch = false; @@ -535,7 +535,7 @@ public: } #endif - #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) || defined(HX_WINDOWS) if (inEvent.type == etMouseMove || inEvent.type == etMouseDown || inEvent.type == etMouseUp) { if (mSingleTouchID == NO_TOUCH || inEvent.value == mSingleTouchID || !mMultiTouch) @@ -683,7 +683,7 @@ public: bool getMultitouchSupported() { - #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) || defined(HX_WINDOWS) return true; #else return false; @@ -696,7 +696,7 @@ public: bool getMultitouchActive() { - #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) || defined(HX_WINDOWS) return mMultiTouch; #else return false; @@ -1210,7 +1210,7 @@ void ProcessEvent(SDL_Event &inEvent) //int inValue=0, int inID=0, int inFlags=0, float inScaleX=1,float inScaleY=1, int inDeltaX=0,int inDeltaY=0 Event mouse(etMouseMove, inEvent.motion.x, inEvent.motion.y, 0, 0, 0, 1.0f, 1.0f, deltaX, deltaY); - #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) || defined(HX_WINDOWS) mouse.value = inEvent.motion.which; mouse.flags |= efLeftDown; #else @@ -1222,7 +1222,7 @@ void ProcessEvent(SDL_Event &inEvent) case SDL_MOUSEBUTTONDOWN: { Event mouse(etMouseDown, inEvent.button.x, inEvent.button.y, inEvent.button.button - 1); - #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) || defined(HX_WINDOWS) mouse.value = inEvent.motion.which; mouse.flags |= efLeftDown; #else @@ -1234,7 +1234,7 @@ void ProcessEvent(SDL_Event &inEvent) case SDL_MOUSEBUTTONUP: { Event mouse(etMouseUp, inEvent.button.x, inEvent.button.y, inEvent.button.button - 1); - #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) + #if defined(WEBOS) || defined(BLACKBERRY) || defined(HX_LINUX) || defined(HX_WINDOWS) mouse.value = inEvent.motion.which; #else AddModStates(mouse.flags);