touchesEnded
<p>I have a simple OpenGL:ES application running (it is a game).  The game loads and presents the user with a "new game button" and then you are in the game.  I'm using touchesBegan / touchesEnded to handle the touches.  Then I take the coordinates and process them accordingly.</p>

<p>I also have an NSTimer running at 30Hz that calls renderScene which draws the on screen graphics.  </p>

<p>Every once in a while on the device (I have yet to have this happen on the simulator) I don't get anymore touch events after the first one.  I have attempted to debug this on the device and it appears that after I get the first touchesEnded event come in, the device is bombarded by touchesEnded calls.  I NEVER get another touchesBegan call when this happens.  If I press home and come back into the game, everything will usually work fine. </p>

<p>Here is the code for my input, as it exists in my EAGLView.m code</p>

<pre><code>#pragma mark    
#pragma mark UserInputStuff
#pragma mark    

#pragma mark 
#pragma mark touchesBegan
#pragma mark    

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    UITouch *touch = [touches anyObject];
firstTouch = [touch locationInView:self];
lastTouch = [touch locationInView:self];
[(MyGameAppDelegate*)[[UIApplication sharedApplication] delegate]   HandleTouchEvent:firstTouch]; 

}

#pragma mark    
#pragma mark touchesEnded
#pragma mark    

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent*)event 
{
UITouch *touch = [touches anyObject];
lastTouch = [touch locationInView:self];
[(MyGameAppDelegate*)[[UIApplication sharedApplication] delegate] HandleTouchEnded:lastTouch]; 
}
</code></pre>

<p>And here is the code as it exist in my app delegate</p>

<pre><code>#pragma mark 
#pragma mark HandleTouchEnded
#pragma mark A function to react to the touch that is no longer present on the screen
#pragma mark

- (void)HandleTouchEnded:(CGPoint)coordinate
{
if(_state == kState_Title)
{
 [self TitleCollisionDetection:coordinate];
 if(_buttonHighlighted)
 {
  _textures[kTexture_Background] = [[Texture2D alloc] initWithImage:[UIImage imageNamed:@"T4Background.png"]];
  glBindTexture(GL_TEXTURE_2D, [_textures[kTexture_Background] name]);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
  glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);   
  [self resetGame];
 }
}
}
</code></pre>

<p>And here is the code that configures the timer that fires to handle the renderer.</p>

<pre><code>//Start rendering timer
_timer = [NSTimer scheduledTimerWithTimeInterval:(1.0 / kRenderingFPS) target:self   selector:@selector(renderScene) userInfo:nil repeats:YES];
[UIApplication sharedApplication].idleTimerDisabled = YES;
</code></pre>

<p>I'm obviously doing something dumb.  What am I missing?  Why is touchesEnded firing so often?  </p>
