From 093802dbc41613def3fbbf8b264acaa6e0954347 Mon Sep 17 00:00:00 2001 From: Matej Jan Date: Fri, 1 Oct 2010 02:36:21 +0000 Subject: [PATCH] Finished touch panel state. git-svn-id: http://xni.googlecode.com/svn/XNI@34 ac433895-eea3-a490-d80a-17149a75e588 --- .../Xni/Framework/DisplayOrientation.h | 6 - .../Retronator/Xni/Framework/FrameworkEnums.h | 6 + Classes/Retronator/Xni/Framework/Game.m | 4 + .../Xni/Framework/GameViewController.h | 2 + .../Xni/Framework/GameViewController.m | 32 ++- .../Xni/Framework/Graphics/SpriteBatch.m | 4 +- .../Framework/Input/Touch/TouchCollection.h | 4 +- .../Framework/Input/Touch/TouchCollection.m | 18 ++ .../Xni/Framework/Input/Touch/TouchLocation.h | 10 +- .../Xni/Framework/Input/Touch/TouchLocation.m | 32 ++- .../Input/Touch/TouchPanel+Internal.h | 22 ++ .../Xni/Framework/Input/Touch/TouchPanel.h | 32 +-- .../Xni/Framework/Input/Touch/TouchPanel.m | 193 +++++++++++++++--- .../Retronator.Xni.Framework.classes.h | 2 +- .../Xni/Framework/Retronator.Xni.Framework.h | 1 + XNI.xcodeproj/project.pbxproj | 16 +- 16 files changed, 321 insertions(+), 63 deletions(-) delete mode 100644 Classes/Retronator/Xni/Framework/DisplayOrientation.h create mode 100644 Classes/Retronator/Xni/Framework/FrameworkEnums.h create mode 100644 Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h diff --git a/Classes/Retronator/Xni/Framework/DisplayOrientation.h b/Classes/Retronator/Xni/Framework/DisplayOrientation.h deleted file mode 100644 index fb9b9db..0000000 --- a/Classes/Retronator/Xni/Framework/DisplayOrientation.h +++ /dev/null @@ -1,6 +0,0 @@ -typedef enum { - DisplayOrientationDefault = 0, - DisplayOrientationLandscapeLeft = 1, - DisplayOrientationLandscapeRight = 2, - DisplayOrientationPortrait -} DisplayOrientation; \ No newline at end of file diff --git a/Classes/Retronator/Xni/Framework/FrameworkEnums.h b/Classes/Retronator/Xni/Framework/FrameworkEnums.h new file mode 100644 index 0000000..f581e6b --- /dev/null +++ b/Classes/Retronator/Xni/Framework/FrameworkEnums.h @@ -0,0 +1,6 @@ +typedef enum { + DisplayOrientationDefault, + DisplayOrientationLandscapeLeft, + DisplayOrientationLandscapeRight, + DisplayOrientationPortrait +} DisplayOrientation; \ No newline at end of file diff --git a/Classes/Retronator/Xni/Framework/Game.m b/Classes/Retronator/Xni/Framework/Game.m index 01dbc84..b1b0382 100644 --- a/Classes/Retronator/Xni/Framework/Game.m +++ b/Classes/Retronator/Xni/Framework/Game.m @@ -11,6 +11,7 @@ #import "Retronator.Xni.Framework.h" #import "Retronator.Xni.Framework.Graphics.h" #import "Retronator.Xni.Framework.Content.h" +#import "TouchPanel+Internal.h" @implementation Game @@ -117,6 +118,9 @@ gameTime.elapsedGameTime = elapsedGameTime; gameTime.totalGameTime += elapsedGameTime; gameTime.isRunningSlowly = elapsedRealTime > elapsedGameTime; + + // Update input. + [[TouchPanel instance] update]; // Update the game. [self updateWithGameTime:gameTime]; diff --git a/Classes/Retronator/Xni/Framework/GameViewController.h b/Classes/Retronator/Xni/Framework/GameViewController.h index 537863f..784e3ef 100644 --- a/Classes/Retronator/Xni/Framework/GameViewController.h +++ b/Classes/Retronator/Xni/Framework/GameViewController.h @@ -15,4 +15,6 @@ - initWithGameWindow: (GameWindow*)theGameWindow; ++ (DisplayOrientation) getDisplayOrientationForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation; + @end diff --git a/Classes/Retronator/Xni/Framework/GameViewController.m b/Classes/Retronator/Xni/Framework/GameViewController.m index d7ea057..cde3323 100644 --- a/Classes/Retronator/Xni/Framework/GameViewController.m +++ b/Classes/Retronator/Xni/Framework/GameViewController.m @@ -9,6 +9,7 @@ #import "GameViewController.h" #import "Retronator.Xni.Framework.h" +#import "TouchPanel+Internal.h" @implementation GameViewController @@ -20,9 +21,28 @@ return self; } ++ (DisplayOrientation) getDisplayOrientationForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + if (UIInterfaceOrientationIsPortrait(interfaceOrientation)) { + return DisplayOrientationPortrait; + } else { + if (interfaceOrientation == UIInterfaceOrientationLandscapeLeft) { + return DisplayOrientationLandscapeLeft; + } else if (interfaceOrientation == UIInterfaceOrientationLandscapeRight) { + return DisplayOrientationLandscapeRight; + } else { + return DisplayOrientationDefault; + } + } + +} + - (void)loadView { GameView *gameView = [[GameView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; self.view = gameView; + + [TouchPanel instance].displayWidth = self.view.bounds.size.width; + [TouchPanel instance].displayHeight = self.view.bounds.size.height; + [TouchPanel instance].displayOrientation = [GameViewController getDisplayOrientationForInterfaceOrientation:self.interfaceOrientation]; [gameView release]; } @@ -49,22 +69,22 @@ // Touches -/* + - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { - [[MultiTouch instance].touchesBegan fireWithSender:self eventArgs:[TouchEventArgs argsWithTouches:touches event:event]]; + [[TouchPanel instance] touchesBegan:touches withEvent:event]; } - (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { - [[MultiTouch instance].touchesMoved fireWithSender:self eventArgs:[TouchEventArgs argsWithTouches:touches event:event]]; + [[TouchPanel instance] touchesMoved:touches withEvent:event]; } - (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { - [[MultiTouch instance].touchesEnded fireWithSender:self eventArgs:[TouchEventArgs argsWithTouches:touches event:event]]; + [[TouchPanel instance] touchesEnded:touches withEvent:event]; } - (void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { - [[MultiTouch instance].touchesCancelled fireWithSender:self eventArgs:[TouchEventArgs argsWithTouches:touches event:event]]; -}*/ + [[TouchPanel instance] touchesCancelled:touches withEvent:event]; +} - (void)dealloc { [super dealloc]; diff --git a/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m b/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m index 565b577..4461786 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m +++ b/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m @@ -73,8 +73,8 @@ static inline void SpriteSetSource(Sprite *sprite, Rectangle *source, Texture2D static inline void SpriteSetVertices(Sprite *sprite, float positionX, float positionY, float originX, float originY, float scaleX, float scaleY, float rotation, float width, float height) { float x = originX * scaleX; float y = -originY * scaleY; - float c = cos(-rotation); - float s = sin(-rotation); + float c = cos(rotation); + float s = sin(rotation); sprite->position.x = positionX - x * c - y * s; sprite->position.y = positionY - x * s + y * c; sprite->width.x = width * scaleX * c; diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h index 228579e..0edbad8 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.h @@ -10,10 +10,12 @@ #import "Retronator.Xni.Framework.Input.Touch.classes.h" -@interface TouchCollection : NSObject { +@interface TouchCollection : NSObject { NSMutableArray *collection; } +- (id) initWithArray:(NSArray*)array; + - (int) count; - (TouchLocation*)objectAtIndex:(NSUInteger)index; - (void)addObject:(TouchLocation*)anObject; diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m index 231243d..0856c93 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchCollection.m @@ -21,6 +21,14 @@ return self; } +- (id) initWithArray:(NSArray*)array { + self = [super init]; + if (self != nil) { + collection = [[NSMutableArray alloc] initWithArray:array]; + } + return self; +} + - (int) count { return [collection count]; } @@ -37,4 +45,14 @@ [collection insertObject:anObject atIndex:index]; } +- (NSUInteger) countByEnumeratingWithState:(NSFastEnumerationState *)state objects:(id *)stackbuf count:(NSUInteger)len { + return [collection countByEnumeratingWithState:state objects:stackbuf count:len]; +} + +- (void) dealloc +{ + [collection release]; + [super dealloc]; +} + @end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h index 2da033d..f425543 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.h @@ -12,13 +12,19 @@ #import "Retronator.Xni.Framework.Input.Touch.classes.h" @interface TouchLocation : NSObject { - int id; + int identifier; Vector2 *position; + Vector2 *previousPosition; TouchLocationState state; } -@property (nonatomic, readonly) int id; +- (id) initWithIdentifier:(int)theIdentifier position:(Vector2*)thePosition + previousPosition:(Vector2*)thePreviousPosition state:(TouchLocationState)theState; + +@property (nonatomic, readonly) int identifier; @property (nonatomic, readonly) Vector2 *position; @property (nonatomic, readonly) TouchLocationState state; +- (BOOL) tryGetPreviousPosition:(Vector2**)previousPosition; + @end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m index e2c7a03..2055868 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m @@ -11,8 +11,38 @@ @implementation TouchLocation -@synthesize id; +- (id) initWithIdentifier:(int)theIdentifier position:(Vector2*)thePosition + previousPosition:(Vector2*)thePreviousPosition state:(TouchLocationState)theState; +{ + self = [super init]; + if (self != nil) { + identifier = theIdentifier; + position = [thePosition retain]; + previousPosition = [thePreviousPosition retain]; + state = theState; + } + return self; +} + +@synthesize identifier; @synthesize position; @synthesize state; +- (BOOL) tryGetPreviousPosition:(Vector2**)thePeviousPosition { + if (previousPosition) { + *thePeviousPosition = previousPosition; + return YES; + } else { + return NO; + } +} + +- (void) dealloc +{ + [position release]; + [previousPosition release]; + [super dealloc]; +} + + @end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h new file mode 100644 index 0000000..3cfb367 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h @@ -0,0 +1,22 @@ +// +// TouchPanel+Internal.h +// XNI +// +// Created by Matej Jan on 30.9.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import +#import + +#import "TouchPanel.h" + +@interface TouchPanel (internal) + +- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; +- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; +- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event; +- (void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event; +- (void) update; + +@end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h index 1442620..3f1e1b3 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.h @@ -12,23 +12,27 @@ #import "Retronator.Xni.Framework.Input.Touch.classes.h" @interface TouchPanel : NSObject { - + int displayWidth; + int displayHeight; + DisplayOrientation displayOrientation; + GestureType enabledGestures; + + NSMutableSet *addTouches; + NSMutableSet *removeTouches; + NSMutableSet *releaseTouches; + NSMutableSet *lateReleaseTouches; + NSMutableDictionary *touchLocations; } -+ (int) getDisplayWidth; -+ (void) setDisplayWidth:(int)value; ++ (TouchPanel*) instance; -+ (int) getDisplayHeight; -+ (void) setDisplayHeight:(int)value; +@property (nonatomic) int displayWidth; +@property (nonatomic) int displayHeight; +@property (nonatomic) DisplayOrientation displayOrientation; +@property (nonatomic) GestureType enabledGestures; +@property (nonatomic, readonly) BOOL isGestureAvailable; -+ (DisplayOrientation) getDisplayOrientation; -+ (void) setDisplayOrientation:(DisplayOrientation)value; - -+ (GestureType) getEnabledGestures; -+ (void) setEnabledGestures:(GestureType)value; - -+ (BOOL) isGestureAvailable; -+ (TouchCollection*) getState; -+ (GestureSample*) readGesture; +- (TouchCollection*) getState; +- (GestureSample*) readGesture; @end diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m index 54fa968..fe5a028 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m @@ -7,45 +7,190 @@ // #import "TouchPanel.h" +#import "TouchPanel+Internal.h" +#import "Retronator.Xni.Framework.h" #import "Retronator.Xni.Framework.Input.Touch.h" +@interface InternalTouchLocation : NSObject { + int identifier; + Vector2 *position; + Vector2 *previousPosition; + TouchLocationState state; +} + +- (id) initWithPosition:(Vector2*)thePosition; + +@property (nonatomic) TouchLocationState state; + +- (void) moveToPosition:(Vector2*)newPosition; + +- (TouchLocation*) createTouchLocation; + +@end + +@implementation InternalTouchLocation + +static int nextID = 0; + +- (id) initWithPosition:(Vector2*)thePosition +{ + self = [super init]; + if (self != nil) { + identifier = nextID++; + position = [thePosition retain]; + previousPosition = nil; + state = TouchLocationStatePressed; + } + return self; +} + +@synthesize state; + +- (void) moveToPosition:(Vector2*)newPosition { + [previousPosition release]; + previousPosition = position; + position = [newPosition retain]; + state = TouchLocationStateMoved; +} + +- (TouchLocation *) createTouchLocation { + return [[[TouchLocation alloc] initWithIdentifier:identifier + position:[Vector2 vectorWithVector:position] + previousPosition:previousPosition ? [Vector2 vectorWithVector:previousPosition] : nil + state:state] autorelease]; +} + +- (void) dealloc +{ + [position release]; + [previousPosition release]; + [super dealloc]; +} + +@end + @implementation TouchPanel -+ (int) getDisplayWidth { -} +static TouchPanel *instance; -+ (void) setDisplayWidth:(int)value{ -} - -+ (int) getDisplayHeight{ -} - -+ (void) setDisplayHeight:(int)value{ -} - -+ (DisplayOrientation) getDisplayOrientation{ -} - -+ (void) setDisplayOrientation:(DisplayOrientation)value{ -} - -+ (GestureType) getEnabledGestures{ -} - -+ (void) setEnabledGestures:(GestureType)value{ +- (id) init +{ + self = [super init]; + if (self != nil) { + addTouches = [[NSMutableSet alloc] init]; + removeTouches = [[NSMutableSet alloc] init]; + releaseTouches = [[NSMutableSet alloc] init]; + lateReleaseTouches = [[NSMutableSet alloc] init]; + + touchLocations = (NSMutableDictionary*)CFDictionaryCreateMutable(NULL, 0, &kCFTypeDictionaryKeyCallBacks, &kCFTypeDictionaryValueCallBacks); + } + return self; } -+ (BOOL) isGestureAvailable{ ++ (void) initialize { + instance = [[TouchPanel alloc] init]; } -+ (TouchCollection*) getState{ ++ (TouchPanel*) instance { + return instance; +} + +@synthesize displayWidth; +@synthesize displayHeight; +@synthesize displayOrientation; +@synthesize enabledGestures; + +- (BOOL) isGestureAvailable{ + return NO; +} + +- (TouchCollection*) getState{ + TouchCollection *collection = [[[TouchCollection alloc] init] autorelease]; + for (InternalTouchLocation *touch in [touchLocations allValues]) { + [collection addObject:[touch createTouchLocation]]; + } + return collection; +} + +- (GestureSample*) readGesture{ + return nil; +} + +// Internal methods + +- (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { + [addTouches unionSet:touches]; +} + +- (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event { + for (UITouch *touch in touches) { + InternalTouchLocation *location = [touchLocations objectForKey:touch]; + if (location) { + CGPoint position = [touch locationInView:touch.view]; + [location moveToPosition:[Vector2 vectorWithX:position.x y:position.y]]; + } + } +} + +- (void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event { + for (UITouch *touch in touches) { + if ([addTouches containsObject:touch]) { + [lateReleaseTouches addObject:touch]; + } else { + [releaseTouches addObject:touch]; + } + } +} + +- (void) touchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event { + // Just remove the touch locations so they dissapear from the state (without released happening). + for (UITouch *touch in touches) { + [touchLocations removeObjectForKey:touch]; + } +} + +- (void) update { + // Remove all previously released touches. + for (UITouch *touch in removeTouches) { + [touchLocations removeObjectForKey:touch]; + } + [removeTouches removeAllObjects]; + + // Set released touches. + for (UITouch *touch in releaseTouches) { + InternalTouchLocation *location = [touchLocations objectForKey:touch]; + location.state = TouchLocationStateReleased; + } + + // Shift the pools. + NSMutableSet *temp = removeTouches; + removeTouches = releaseTouches; + releaseTouches = lateReleaseTouches; + lateReleaseTouches = temp; + + // Add new touches + for (UITouch *touch in addTouches) { + CGPoint position = [touch locationInView:touch.view]; + InternalTouchLocation *location = [[[InternalTouchLocation alloc] + initWithPosition:[Vector2 vectorWithX:position.x y:position.y]] autorelease]; + CFDictionaryAddValue((CFMutableDictionaryRef)touchLocations, touch, location); + } + [addTouches removeAllObjects]; } -+ (GestureSample*) readGesture{ +- (void) dealloc +{ + [addTouches release]; + [removeTouches release]; + [releaseTouches release]; + [lateReleaseTouches release]; + [touchLocations release]; + [super dealloc]; } + @end diff --git a/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.classes.h b/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.classes.h index f55abaf..a2f42db 100644 --- a/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.classes.h +++ b/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.classes.h @@ -1,3 +1,4 @@ +#import "FrameworkEnums.h" @class Protocols; // Data structures @@ -5,7 +6,6 @@ @class Rectangle, Color; // Game -#import "DisplayOrientation.h" @protocol IGraphicsDeviceManager; @class Game, GameTime, GameServiceContainer, GraphicsDeviceManager; diff --git a/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.h b/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.h index 680acd7..b8be62a 100644 --- a/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.h +++ b/Classes/Retronator/Xni/Framework/Retronator.Xni.Framework.h @@ -1,3 +1,4 @@ +#import "FrameworkEnums.h" #import "Protocols.h" // Data structures diff --git a/XNI.xcodeproj/project.pbxproj b/XNI.xcodeproj/project.pbxproj index fbdb27f..4350817 100644 --- a/XNI.xcodeproj/project.pbxproj +++ b/XNI.xcodeproj/project.pbxproj @@ -14,6 +14,8 @@ B5080704122E4EE900C330E2 /* Texture2D.m in Sources */ = {isa = PBXBuildFile; fileRef = B5080702122E4EE900C330E2 /* Texture2D.m */; }; B508070C122E4FBB00C330E2 /* GraphicsResource.h in Headers */ = {isa = PBXBuildFile; fileRef = B508070A122E4FBB00C330E2 /* GraphicsResource.h */; settings = {ATTRIBUTES = (Public, ); }; }; B508070D122E4FBB00C330E2 /* GraphicsResource.m in Sources */ = {isa = PBXBuildFile; fileRef = B508070B122E4FBB00C330E2 /* GraphicsResource.m */; }; + B52BACFB125527E200B308F6 /* TouchPanel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B52BACF9125527E200B308F6 /* TouchPanel+Internal.h */; }; + B52BADAD1255426600B308F6 /* FrameworkEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = B52BADAC1255426600B308F6 /* FrameworkEnums.h */; settings = {ATTRIBUTES = (Public, ); }; }; B56CC50D123A6F3600B72347 /* MipmapChain.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC50B123A6F3600B72347 /* MipmapChain.h */; settings = {ATTRIBUTES = (Public, ); }; }; B56CC50E123A6F3600B72347 /* MipmapChain.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC50C123A6F3600B72347 /* MipmapChain.m */; }; B56CC511123A739100B72347 /* MipmapChainCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC50F123A739100B72347 /* MipmapChainCollection.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -120,10 +122,9 @@ B5DE190411F88AF500BF3275 /* Rectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE190211F88AF500BF3275 /* Rectangle.h */; settings = {ATTRIBUTES = (Public, ); }; }; B5DE190511F88AF500BF3275 /* Rectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE190311F88AF500BF3275 /* Rectangle.m */; }; B5DE190711F88B5D00BF3275 /* RectangleStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE190611F88B5D00BF3275 /* RectangleStruct.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5DE193111F898AE00BF3275 /* DisplayOrientation.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE193011F898AE00BF3275 /* DisplayOrientation.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B5DE194A11F89C0900BF3275 /* GameViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE194811F89C0900BF3275 /* GameViewController.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5DE194A11F89C0900BF3275 /* GameViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE194811F89C0900BF3275 /* GameViewController.h */; settings = {ATTRIBUTES = (); }; }; B5DE194B11F89C0900BF3275 /* GameViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE194911F89C0900BF3275 /* GameViewController.m */; }; - B5DE194E11F89C1F00BF3275 /* GameView.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE194C11F89C1F00BF3275 /* GameView.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5DE194E11F89C1F00BF3275 /* GameView.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE194C11F89C1F00BF3275 /* GameView.h */; settings = {ATTRIBUTES = (); }; }; B5DE194F11F89C1F00BF3275 /* GameView.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE194D11F89C1F00BF3275 /* GameView.m */; }; B5E78B4A1242925600DDD99A /* SpriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E78B481242925600DDD99A /* SpriteBatch.h */; settings = {ATTRIBUTES = (Public, ); }; }; B5E78B4B1242925600DDD99A /* SpriteBatch.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E78B491242925600DDD99A /* SpriteBatch.m */; }; @@ -200,6 +201,8 @@ B5080702122E4EE900C330E2 /* Texture2D.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Texture2D.m; sourceTree = ""; }; B508070A122E4FBB00C330E2 /* GraphicsResource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GraphicsResource.h; sourceTree = ""; }; B508070B122E4FBB00C330E2 /* GraphicsResource.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GraphicsResource.m; sourceTree = ""; }; + B52BACF9125527E200B308F6 /* TouchPanel+Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TouchPanel+Internal.h"; sourceTree = ""; }; + B52BADAC1255426600B308F6 /* FrameworkEnums.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = FrameworkEnums.h; sourceTree = ""; }; B56CC50B123A6F3600B72347 /* MipmapChain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipmapChain.h; sourceTree = ""; }; B56CC50C123A6F3600B72347 /* MipmapChain.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MipmapChain.m; sourceTree = ""; }; B56CC50F123A739100B72347 /* MipmapChainCollection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MipmapChainCollection.h; sourceTree = ""; }; @@ -306,7 +309,6 @@ B5DE190211F88AF500BF3275 /* Rectangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Rectangle.h; sourceTree = ""; }; B5DE190311F88AF500BF3275 /* Rectangle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Rectangle.m; sourceTree = ""; }; B5DE190611F88B5D00BF3275 /* RectangleStruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RectangleStruct.h; sourceTree = ""; }; - B5DE193011F898AE00BF3275 /* DisplayOrientation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DisplayOrientation.h; sourceTree = ""; }; B5DE194811F89C0900BF3275 /* GameViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameViewController.h; sourceTree = ""; }; B5DE194911F89C0900BF3275 /* GameViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GameViewController.m; sourceTree = ""; }; B5DE194C11F89C1F00BF3275 /* GameView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameView.h; sourceTree = ""; }; @@ -607,6 +609,7 @@ B5DDE82911FF10D0000DB38B /* Graphics */, B5DE189F11F8888B00BF3275 /* Retronator.Xni.Framework.classes.h */, B5DE18A011F8888B00BF3275 /* Retronator.Xni.Framework.h */, + B52BADAC1255426600B308F6 /* FrameworkEnums.h */, B5DDE89411FF16A3000DB38B /* Protocols.h */, B5DDE89511FF16A3000DB38B /* Protocols.m */, B5DE190611F88B5D00BF3275 /* RectangleStruct.h */, @@ -618,7 +621,6 @@ B5DE18FB11F88AD900BF3275 /* GameHost.m */, B5DDE7E911FF04E3000DB38B /* Game.h */, B5DDE7EA11FF04E3000DB38B /* Game.m */, - B5DE193011F898AE00BF3275 /* DisplayOrientation.h */, B5DE18FC11F88AD900BF3275 /* GameWindow.h */, B5DE18FD11F88AD900BF3275 /* GameWindow.m */, B5DE194811F89C0900BF3275 /* GameViewController.h */, @@ -691,6 +693,7 @@ B5EC59FD1252BE3B001E7DFC /* Retronator.Xni.Framework.Input.Touch.h */, B5EC5A181252BF63001E7DFC /* InputEnums.h */, B5EC59F71252B917001E7DFC /* TouchPanel.h */, + B52BACF9125527E200B308F6 /* TouchPanel+Internal.h */, B5EC59F81252B917001E7DFC /* TouchPanel.m */, B5EC5A051252BE9E001E7DFC /* TouchCollection.h */, B5EC5A061252BE9E001E7DFC /* TouchCollection.m */, @@ -720,7 +723,6 @@ B5DE190011F88AD900BF3275 /* GameWindow.h in Headers */, B5DE190411F88AF500BF3275 /* Rectangle.h in Headers */, B5DE190711F88B5D00BF3275 /* RectangleStruct.h in Headers */, - B5DE193111F898AE00BF3275 /* DisplayOrientation.h in Headers */, B5DE194A11F89C0900BF3275 /* GameViewController.h in Headers */, B5DE194E11F89C1F00BF3275 /* GameView.h in Headers */, B5DDE7EB11FF04E3000DB38B /* Game.h in Headers */, @@ -817,6 +819,8 @@ B5EC5A191252BF63001E7DFC /* InputEnums.h in Headers */, B5EC5A4F1252C2DF001E7DFC /* GestureSample.h in Headers */, B5EC5A931252C710001E7DFC /* Retronator.Xni.Framework.Input.h in Headers */, + B52BACFB125527E200B308F6 /* TouchPanel+Internal.h in Headers */, + B52BADAD1255426600B308F6 /* FrameworkEnums.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; };