Skip to content

Commit

Permalink
Removed the codepath that gets compiled if IPHONE_TOUCH_EFFICIENT_DAN…
Browse files Browse the repository at this point in the history
…GEROUS is not defined.

The "dangerous" codepath relies on the fact that UITouch objects are persistent for the entire touch sequence, which is always guaranteed by Apple.
  • Loading branch information
slime73 committed Oct 24, 2014
1 parent a0481bb commit d89620a
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 48 deletions.
6 changes: 0 additions & 6 deletions src/video/uikit/SDL_uikitview.h
Expand Up @@ -24,12 +24,6 @@

#include "SDL_touch.h"

#define IPHONE_TOUCH_EFFICIENT_DANGEROUS

#ifndef IPHONE_TOUCH_EFFICIENT_DANGEROUS
#define MAX_SIMULTANEOUS_TOUCHES 5
#endif

#if SDL_IPHONE_KEYBOARD
@interface SDL_uikitview : UIView <UITextFieldDelegate>
#else
Expand Down
42 changes: 0 additions & 42 deletions src/video/uikit/SDL_uikitview.m
Expand Up @@ -41,9 +41,6 @@ @implementation SDL_uikitview {

SDL_TouchID touchId;
UITouch *leftFingerDown;
#ifndef IPHONE_TOUCH_EFFICIENT_DANGEROUS
UITouch *finger[MAX_SIMULTANEOUS_TOUCHES];
#endif

#if SDL_IPHONE_KEYBOARD
UITextField *textField;
Expand Down Expand Up @@ -99,24 +96,8 @@ - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
}

CGPoint locationInView = [self touchLocation:touch shouldNormalize:YES];
#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_SendTouch(touchId, (SDL_FingerID)((size_t)touch),
SDL_TRUE, locationInView.x, locationInView.y, 1.0f);
#else
int i;
for(i = 0; i < MAX_SIMULTANEOUS_TOUCHES; i++) {
if (finger[i] == NULL) {
finger[i] = touch;
SDL_SendTouch(touchId, i,
SDL_TRUE, locationInView.x, locationInView.y, 1.0f);
break;
}
}
#endif
}
}

Expand All @@ -130,20 +111,8 @@ - (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
}

CGPoint locationInView = [self touchLocation:touch shouldNormalize:YES];
#ifdef IPHONE_TOUCH_EFFICIENT_DANGEROUS
SDL_SendTouch(touchId, (SDL_FingerID)((size_t)touch),
SDL_FALSE, locationInView.x, locationInView.y, 1.0f);
#else
int i;
for (i = 0; i < MAX_SIMULTANEOUS_TOUCHES; i++) {
if (finger[i] == touch) {
SDL_SendTouch(touchId, i,
SDL_FALSE, locationInView.x, locationInView.y, 1.0f);
finger[i] = NULL;
break;
}
}
#endif
}
}

Expand All @@ -168,19 +137,8 @@ - (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
}

CGPoint locationInView = [self touchLocation:touch shouldNormalize:YES];
#ifdef IPHONE_TOUCH_EFFICIENT_DANGEROUS
SDL_SendTouchMotion(touchId, (SDL_FingerID)((size_t)touch),
locationInView.x, locationInView.y, 1.0f);
#else
int i;
for (i = 0; i < MAX_SIMULTANEOUS_TOUCHES; i++) {
if (finger[i] == touch) {
SDL_SendTouchMotion(touchId, i,
locationInView.x, locationInView.y, 1.0f);
break;
}
}
#endif
}
}

Expand Down

0 comments on commit d89620a

Please sign in to comment.