Skip to content
This repository has been archived by the owner on Feb 11, 2021. It is now read-only.

Commit

Permalink
Added alternative finger tracking method. Still prefer IPHONE_TOUCH_E…
Browse files Browse the repository at this point in the history
…FFICIENT_DANGEROUS.
  • Loading branch information
jimtla committed Jul 13, 2010
1 parent da58061 commit 1f798a9
Show file tree
Hide file tree
Showing 10 changed files with 122 additions and 13 deletions.
40 changes: 40 additions & 0 deletions VisualC/SDL/SDL_VS2005.vcproj
@@ -1,11 +1,18 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
<<<<<<< local
Version="8.00"
=======
Version="9.00"
>>>>>>> other
Name="SDL"
ProjectGUID="{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}"
RootNamespace="SDL"
<<<<<<< local
=======
TargetFrameworkVersion="131072"
>>>>>>> other
>
<Platforms>
<Platform
Expand Down Expand Up @@ -77,21 +84,36 @@
/>
<Tool
Name="VCLinkerTool"
<<<<<<< local
AdditionalOptions="/MACHINE:I386"
=======
AdditionalOptions="/MACHINE:I386&#x0D;&#x0A;msvcrt.lib"
>>>>>>> other
AdditionalDependencies="msimg32.lib winmm.lib"
OutputFile=".\Debug/SDL.dll"
LinkIncremental="2"
SuppressStartupBanner="true"
<<<<<<< local
IgnoreAllDefaultLibraries="true"
=======
IgnoreAllDefaultLibraries="false"
IgnoreDefaultLibraryNames=""
>>>>>>> other
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/SDL.pdb"
<<<<<<< local
SubSystem="2"
=======
SubSystem="0"
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
>>>>>>> other
ImportLibrary=".\Debug/SDL.lib"
<<<<<<< local
=======
Profile="true"
CLRThreadAttribute="0"
>>>>>>> other
CLRUnmanagedCodeCheck="false"
/>
<Tool
Expand All @@ -113,6 +135,12 @@
Name="VCAppVerifierTool"
/>
<Tool
<<<<<<< local
Name="VCWebDeploymentTool"
/>
<Tool
=======
>>>>>>> other
Name="VCPostBuildEventTool"
/>
</Configuration>
Expand Down Expand Up @@ -188,8 +216,11 @@
IgnoreAllDefaultLibraries="true"
ProgramDatabaseFile=".\Release/SDL.pdb"
SubSystem="2"
<<<<<<< local
=======
RandomizedBaseAddress="1"
DataExecutionPrevention="0"
>>>>>>> other
ImportLibrary=".\Release/SDL.lib"
/>
<Tool
Expand All @@ -211,6 +242,12 @@
Name="VCAppVerifierTool"
/>
<Tool
<<<<<<< local
Name="VCWebDeploymentTool"
/>
<Tool
=======
>>>>>>> other
Name="VCPostBuildEventTool"
/>
</Configuration>
Expand Down Expand Up @@ -943,6 +980,8 @@
>
</File>
<File
<<<<<<< local
=======
RelativePath="..\..\src\events\SDL_touch.c"
>
</File>
Expand All @@ -951,6 +990,7 @@
>
</File>
<File
>>>>>>> other
RelativePath="..\..\src\video\SDL_video.c"
>
</File>
Expand Down
19 changes: 19 additions & 0 deletions VisualC/SDLmain/SDLmain_VS2005.vcproj
@@ -1,10 +1,17 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
<<<<<<< local
Version="8.00"
=======
Version="9.00"
>>>>>>> other
Name="SDLmain"
ProjectGUID="{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}"
<<<<<<< local
=======
TargetFrameworkVersion="131072"
>>>>>>> other
>
<Platforms>
<Platform
Expand All @@ -26,7 +33,11 @@
<Tool
Name="VCPreBuildEventTool"
Description="Making sure basic SDL headers are in place..."
<<<<<<< local
CommandLine="if exist &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot; goto SDLCONFIGOKAY&#x0D;&#x0A;echo Copying SDL_config_win32.h to SDL_config.h...&#x0D;&#x0A;copy &quot;$(ProjectDir)\..\..\include\SDL_config_win32.h&quot; &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot;&#x0D;&#x0A;:SDLCONFIGOKAY&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot; goto SDLREVISIONOKAY&#x0D;&#x0A;echo Creating stub SDL_revision.h file...&#x0D;&#x0A;echo #define SDL_REVISION 0 &gt;&quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot;&#x0D;&#x0A;:SDLREVISIONOKAY"
=======
CommandLine="if exist &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot; goto SDLCONFIGOKAY&#x0D;&#x0A;echo Copying SDL_config_win32.h to SDL_config.h...&#x0D;&#x0A;copy &quot;$(ProjectDir)\..\..\include\SDL_config_win32.h&quot; &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot;&#x0D;&#x0A;:SDLCONFIGOKAY&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot; goto SDLREVISIONOKAY&#x0D;&#x0A;echo Creating stub SDL_revision.h file...&#x0D;&#x0A;echo #define SDL_REVISION 0 &gt;&quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot;&#x0D;&#x0A;:SDLREVISIONOKAY&#x0D;&#x0A;"
>>>>>>> other
/>
<Tool
Name="VCCustomBuildTool"
Expand Down Expand Up @@ -99,7 +110,11 @@
<Tool
Name="VCPreBuildEventTool"
Description="Making sure basic SDL headers are in place..."
<<<<<<< local
CommandLine="if exist &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot; goto SDLCONFIGOKAY&#x0D;&#x0A;echo Copying SDL_config_win32.h to SDL_config.h...&#x0D;&#x0A;copy &quot;$(ProjectDir)\..\..\include\SDL_config_win32.h&quot; &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot;&#x0D;&#x0A;:SDLCONFIGOKAY&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot; goto SDLREVISIONOKAY&#x0D;&#x0A;echo Creating stub SDL_revision.h file...&#x0D;&#x0A;echo #define SDL_REVISION 0 &gt;&quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot;&#x0D;&#x0A;:SDLREVISIONOKAY"
=======
CommandLine="if exist &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot; goto SDLCONFIGOKAY&#x0D;&#x0A;echo Copying SDL_config_win32.h to SDL_config.h...&#x0D;&#x0A;copy &quot;$(ProjectDir)\..\..\include\SDL_config_win32.h&quot; &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot;&#x0D;&#x0A;:SDLCONFIGOKAY&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot; goto SDLREVISIONOKAY&#x0D;&#x0A;echo Creating stub SDL_revision.h file...&#x0D;&#x0A;echo #define SDL_REVISION 0 &gt;&quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot;&#x0D;&#x0A;:SDLREVISIONOKAY&#x0D;&#x0A;"
>>>>>>> other
/>
<Tool
Name="VCCustomBuildTool"
Expand Down Expand Up @@ -172,7 +187,11 @@
<Tool
Name="VCPreBuildEventTool"
Description="Making sure basic SDL headers are in place..."
<<<<<<< local
CommandLine="if exist &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot; goto SDLCONFIGOKAY&#x0D;&#x0A;echo Copying SDL_config_win32.h to SDL_config.h...&#x0D;&#x0A;copy &quot;$(ProjectDir)\..\..\include\SDL_config_win32.h&quot; &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot;&#x0D;&#x0A;:SDLCONFIGOKAY&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot; goto SDLREVISIONOKAY&#x0D;&#x0A;echo Creating stub SDL_revision.h file...&#x0D;&#x0A;echo #define SDL_REVISION 0 &gt;&quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot;&#x0D;&#x0A;:SDLREVISIONOKAY"
=======
CommandLine="if exist &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot; goto SDLCONFIGOKAY&#x0D;&#x0A;echo Copying SDL_config_win32.h to SDL_config.h...&#x0D;&#x0A;copy &quot;$(ProjectDir)\..\..\include\SDL_config_win32.h&quot; &quot;$(ProjectDir)\..\..\include\SDL_config.h&quot;&#x0D;&#x0A;:SDLCONFIGOKAY&#x0D;&#x0A;&#x0D;&#x0A;if exist &quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot; goto SDLREVISIONOKAY&#x0D;&#x0A;echo Creating stub SDL_revision.h file...&#x0D;&#x0A;echo #define SDL_REVISION 0 &gt;&quot;$(ProjectDir)\..\..\include\SDL_revision.h&quot;&#x0D;&#x0A;:SDLREVISIONOKAY&#x0D;&#x0A;"
>>>>>>> other
/>
<Tool
Name="VCCustomBuildTool"
Expand Down
1 change: 1 addition & 0 deletions include/SDL_events.h
Expand Up @@ -105,6 +105,7 @@ typedef enum
SDL_MULTIGESTURE,

/* Clipboard events */

SDL_CLIPBOARDUPDATE = 0x900, /**< The clipboard changed */

/* Obsolete events */
Expand Down
10 changes: 5 additions & 5 deletions src/video/uikit/SDL_uikitview.h
Expand Up @@ -13,8 +13,7 @@
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
Sam Lantinga
slouken@libsdl.org
Expand All @@ -24,10 +23,8 @@
#include "SDL_stdinc.h"
#include "SDL_events.h"

#if SDL_IPHONE_MULTIPLE_MICE
#ifndef IPHONE_TOUCH_EFFICIENT_DANGEROUS
#define MAX_SIMULTANEOUS_TOUCHES 5
#else
#define MAX_SIMULTANEOUS_TOUCHES 1
#endif

/* *INDENT-OFF* */
Expand All @@ -39,6 +36,9 @@

#if FIXED_MULTITOUCH
int touchId;
#ifndef IPHONE_TOUCH_EFFICIENT_DANGEROUS
UITouch *finger[MAX_SIMULTANEOUS_TOUCHES];
#endif
#endif

#if SDL_IPHONE_KEYBOARD
Expand Down
59 changes: 54 additions & 5 deletions src/video/uikit/SDL_uikitview.m
Expand Up @@ -91,9 +91,30 @@ - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
#if FIXED_MULTITOUCH
while(touch) {
CGPoint locationInView = [touch locationInView: self];
SDL_SendFingerDown(touchId,(int)touch,


#ifdef IPHONE_TOUCH_EFFICIENT_DANGEROUS
//FIXME: TODO: Using touch as the fingerId is potentially dangerous
//It is also much more efficient than storing the UITouch pointer
//and comparing it to the incoming event.
SDL_SendFingerDown(touchId,(long)touch,
SDL_TRUE,locationInView.x,locationInView.y,
1);
#else
int i;
for(i = 0;i < MAX_SIMULTANEOUS_TOUCHES;i++) {
if(finger[i] == NULL) {
finger[i] = touch;
SDL_SendFingerDown(touchId,i,
SDL_TRUE,locationInView.x,locationInView.y,
1);
break;
}
}
#endif




touch = (UITouch*)[enumerator nextObject];
}
Expand All @@ -113,9 +134,23 @@ - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
#if FIXED_MULTITOUCH
while(touch) {
CGPoint locationInView = [touch locationInView: self];
SDL_SendFingerDown(touchId,(int)touch,


#ifdef IPHONE_TOUCH_EFFICIENT_DANGEROUS
SDL_SendFingerDown(touchId,(long)touch,
SDL_FALSE,locationInView.x,locationInView.y,
1);
#else
int i;
for(i = 0;i < MAX_SIMULTANEOUS_TOUCHES;i++) {
if(finger[i] == touch) {
SDL_SendFingerDown(touchId,i,
SDL_FALSE,locationInView.x,locationInView.y,
1);
break;
}
}
#endif

touch = (UITouch*)[enumerator nextObject];
}
Expand Down Expand Up @@ -146,9 +181,23 @@ - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
#if FIXED_MULTITOUCH
while(touch) {
CGPoint locationInView = [touch locationInView: self];
SDL_SendTouchMotion(touchId,(int)touch,
SDL_FALSE,locationInView.x,locationInView.y,
1);


#ifdef IPHONE_TOUCH_EFFICIENT_DANGEROUS
SDL_SendTouchMotion(touchId,(long)touch,
SDL_FALSE,locationInView.x,locationInView.y,
1);
#else
int i;
for(i = 0;i < MAX_SIMULTANEOUS_TOUCHES;i++) {
if(finger[i] == touch) {
SDL_SendTouchMotion(touchId,i,
SDL_FALSE,locationInView.x,locationInView.y,
1);
break;
}
}
#endif

touch = (UITouch*)[enumerator nextObject];
}
Expand Down
2 changes: 1 addition & 1 deletion touchTest/gestureSDLTest.c
Expand Up @@ -11,7 +11,7 @@
#define BPP 4
#define DEPTH 32

#define MAXFINGERS 3
#define MAXFINGERS 5

#define DOLLARNPOINTS 64
#define DOLLARSIZE 256
Expand Down
Binary file modified touchTest/touchPong
Binary file not shown.
Binary file modified touchTest/touchSimp
Binary file not shown.
2 changes: 1 addition & 1 deletion touchTest/touchSimp.c
Expand Up @@ -12,7 +12,7 @@
#define DEPTH 32


#define MAX_FINGERS 2
#define MAX_FINGERS 5

int mousx,mousy;
int keystat[512];
Expand Down
2 changes: 1 addition & 1 deletion touchTest/touchTest.c
Expand Up @@ -11,7 +11,7 @@
#define BPP 4
#define DEPTH 32

#define MAXFINGERS 3
#define MAXFINGERS 5

int mousx,mousy;
int keystat[512];
Expand Down

0 comments on commit 1f798a9

Please sign in to comment.