diff --git a/Classes/Retronator/Xni/Framework/Content/ContentManager.h b/Classes/Retronator/Xni/Framework/Content/ContentManager.h index f8cec03..2d1939b 100644 --- a/Classes/Retronator/Xni/Framework/Content/ContentManager.h +++ b/Classes/Retronator/Xni/Framework/Content/ContentManager.h @@ -31,4 +31,6 @@ - (id) load:(NSString*)assetName fromFile:(NSString*)filePath; +- (void) unload; + @end diff --git a/Classes/Retronator/Xni/Framework/Content/ContentManager.m b/Classes/Retronator/Xni/Framework/Content/ContentManager.m index 5c431f4..b7a5450 100644 --- a/Classes/Retronator/Xni/Framework/Content/ContentManager.m +++ b/Classes/Retronator/Xni/Framework/Content/ContentManager.m @@ -48,7 +48,7 @@ for (int i = 0; i < count; i++) { NSString *file = [files objectAtIndex:i]; - if ([file hasPrefix:assetName]) { + if ([[file stringByDeletingPathExtension] isEqual:assetName]) { return [self load:assetName fromFile:file]; } } @@ -71,7 +71,9 @@ ContentReader *input; - if ([extension isEqual:@"png"]) { + if ([extension isEqual:@"png"] || [extension isEqual:@"jpg"] || [extension isEqual:@"jpeg"] || + [extension isEqual:@"gif"] || [extension isEqual:@"tif"] || [extension isEqual:@"tiff"] || + [extension isEqual:@"ico"] || [extension isEqual:@"bmp"]) { // We have texture content TextureImporter *textureImporter = [[[TextureImporter alloc] init] autorelease]; TextureContent *textureContent = [textureImporter importFile:absolutePath]; @@ -82,9 +84,17 @@ ContentTypeReader *reader = [readerManager getTypeReaderFor:[input.content class]]; id result = [reader readFromInput:input into:nil]; + + // Save the loaded asset for quick retreival. + [loadedAssets setObject:result forKey:assetName]; + return result; } +- (void) unload { + [loadedAssets removeAllObjects]; +} + - (void) dealloc { [loadedAssets release]; diff --git a/Classes/Retronator/Xni/Framework/DrawableGameComponent.h b/Classes/Retronator/Xni/Framework/DrawableGameComponent.h index 619d52f..392b27b 100644 --- a/Classes/Retronator/Xni/Framework/DrawableGameComponent.h +++ b/Classes/Retronator/Xni/Framework/DrawableGameComponent.h @@ -20,6 +20,8 @@ Event *drawOrderChanged; id graphicsDeviceService; + + BOOL contentLoaded; } @property (nonatomic, readonly) GraphicsDevice* graphicsDevice; diff --git a/Classes/Retronator/Xni/Framework/DrawableGameComponent.m b/Classes/Retronator/Xni/Framework/DrawableGameComponent.m index ea5f224..dbcbd0f 100644 --- a/Classes/Retronator/Xni/Framework/DrawableGameComponent.m +++ b/Classes/Retronator/Xni/Framework/DrawableGameComponent.m @@ -50,7 +50,10 @@ } - (void) initialize { - [self loadContent]; + if (!contentLoaded) { + [self loadContent]; + contentLoaded = YES; + } } - (void) loadContent {} @@ -59,7 +62,9 @@ - (void) dealloc { - [self unloadContent]; + if (contentLoaded) { + [self unloadContent]; + } [drawOrderChanged release]; [visibleChanged release]; [super dealloc]; diff --git a/Classes/Retronator/Xni/Framework/FrameworkEnums.h b/Classes/Retronator/Xni/Framework/FrameworkEnums.h index f581e6b..00c5b40 100644 --- a/Classes/Retronator/Xni/Framework/FrameworkEnums.h +++ b/Classes/Retronator/Xni/Framework/FrameworkEnums.h @@ -1,6 +1,6 @@ typedef enum { - DisplayOrientationDefault, - DisplayOrientationLandscapeLeft, - DisplayOrientationLandscapeRight, - DisplayOrientationPortrait + DisplayOrientationDefault = 2, + DisplayOrientationLandscapeLeft = 1, + DisplayOrientationLandscapeRight = 2, + DisplayOrientationPortrait = 4 } DisplayOrientation; \ No newline at end of file diff --git a/Classes/Retronator/Xni/Framework/Game.m b/Classes/Retronator/Xni/Framework/Game.m index d4e3696..1a80a12 100644 --- a/Classes/Retronator/Xni/Framework/Game.m +++ b/Classes/Retronator/Xni/Framework/Game.m @@ -12,6 +12,7 @@ #import "Retronator.Xni.Framework.Graphics.h" #import "Retronator.Xni.Framework.Content.h" #import "TouchPanel+Internal.h" +#import "GameWindow+Internal.h" @implementation Game @@ -81,9 +82,9 @@ NSArray *drawOrderSort; // METHODS - (void) run { - // Allow the game host to create the window as desired. - [gameHost initialize]; - + // Initialize game window. + [self.window initialize]; + // Create the graphics device so we can finish initialization. graphicsDeviceManager = [services getServiceOfType:[Protocols graphicsDeviceManager]]; graphicsDeviceService = [services getServiceOfType:[Protocols graphicsDeviceService]]; @@ -123,7 +124,10 @@ NSArray *drawOrderSort; [currentFrameTime release]; currentFrameTime = [[NSDate alloc] init]; elapsedRealTime = [currentFrameTime timeIntervalSinceDate:lastFrameTime]; - } + gameTime.isRunningSlowly = NO; + } else { + gameTime.isRunningSlowly = YES; + } // Store current time for next frame. [lastFrameTime release]; @@ -134,7 +138,6 @@ NSArray *drawOrderSort; NSTimeInterval elapsedGameTime = MIN(isFixedTimeStep ? targetElapsedTime : elapsedRealTime, maximumElapsedTime); gameTime.elapsedGameTime = elapsedGameTime; gameTime.totalGameTime += elapsedGameTime; - gameTime.isRunningSlowly = elapsedRealTime > elapsedGameTime; // Update input. [[TouchPanel instance] update]; diff --git a/Classes/Retronator/Xni/Framework/GameComponent.m b/Classes/Retronator/Xni/Framework/GameComponent.m index c6fc4ff..10a87be 100644 --- a/Classes/Retronator/Xni/Framework/GameComponent.m +++ b/Classes/Retronator/Xni/Framework/GameComponent.m @@ -48,6 +48,7 @@ @synthesize updateOrderChanged; - (void) initialize {} + - (void) updateWithGameTime:(GameTime*)gameTime {} - (void) dealloc diff --git a/Classes/Retronator/Xni/Framework/GameHost.h b/Classes/Retronator/Xni/Framework/GameHost.h index ba5002b..46a3a6a 100644 --- a/Classes/Retronator/Xni/Framework/GameHost.h +++ b/Classes/Retronator/Xni/Framework/GameHost.h @@ -18,7 +18,6 @@ @property (nonatomic, readonly) GameWindow *window; -- (void) initialize; - (void) run; - (void) exit; diff --git a/Classes/Retronator/Xni/Framework/GameHost.m b/Classes/Retronator/Xni/Framework/GameHost.m index 4f453af..864945f 100644 --- a/Classes/Retronator/Xni/Framework/GameHost.m +++ b/Classes/Retronator/Xni/Framework/GameHost.m @@ -14,18 +14,14 @@ - (id) init { if (self = [super init]) { - window = [[GameWindow alloc] init]; + window = [[GameWindow alloc] init]; } return self; } @synthesize window; -- (void) initialize { - [window initialize]; -} - -- (void) run { +- (void) run { // Hijack the run loop. NSLog(@"Starting the game loop."); diff --git a/Classes/Retronator/Xni/Framework/GameView.m b/Classes/Retronator/Xni/Framework/GameView.m index 8cccc6b..3c08d8a 100644 --- a/Classes/Retronator/Xni/Framework/GameView.m +++ b/Classes/Retronator/Xni/Framework/GameView.m @@ -11,13 +11,14 @@ @implementation GameView -- (id)initWithFrame:(CGRect)frame { +- (id) initWithFrame:(CGRect)frame { if (self = [super initWithFrame:frame]) { viewSizeChanged = [[Event alloc] init]; CAEAGLLayer *eaglLayer = (CAEAGLLayer*)self.layer; + eaglLayer.contentsScale = [UIScreen mainScreen].scale; eaglLayer.opaque = TRUE; eaglLayer.drawableProperties = [NSDictionary dictionaryWithObjectsAndKeys: [NSNumber numberWithBool:NO], kEAGLDrawablePropertyRetainedBacking, diff --git a/Classes/Retronator/Xni/Framework/GameViewController.h b/Classes/Retronator/Xni/Framework/GameViewController.h index 784e3ef..9d53d0d 100644 --- a/Classes/Retronator/Xni/Framework/GameViewController.h +++ b/Classes/Retronator/Xni/Framework/GameViewController.h @@ -11,10 +11,17 @@ @interface GameViewController : UIViewController { GameWindow *gameWindow; + DisplayOrientation supportedOrientations; } - initWithGameWindow: (GameWindow*)theGameWindow; -+ (DisplayOrientation) getDisplayOrientationForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation; +@property (nonatomic) DisplayOrientation supportedOrientations; ++ (DisplayOrientation) getDisplayOrientationForInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation; ++ (UIInterfaceOrientation) getUIInterfaceOrientationFromString:(NSString*)interfaceOrientation; + ++ (DisplayOrientation) getSupportedOrientationsFromPlist; ++ (BOOL) getIsFullscreenFromPlist; + @end diff --git a/Classes/Retronator/Xni/Framework/GameViewController.m b/Classes/Retronator/Xni/Framework/GameViewController.m index 2d4248b..2fd8a2a 100644 --- a/Classes/Retronator/Xni/Framework/GameViewController.m +++ b/Classes/Retronator/Xni/Framework/GameViewController.m @@ -11,6 +11,7 @@ #import "Retronator.Xni.Framework.h" #import "TouchPanel+Internal.h" #import "GameView.h" +#import "GameWindow+Internal.h" @implementation GameViewController @@ -18,6 +19,7 @@ - initWithGameWindow: (GameWindow*)theGameWindow { if (self = [super init]) { gameWindow = theGameWindow; + supportedOrientations = [GameViewController getSupportedOrientationsFromPlist]; } return self; } @@ -34,9 +36,44 @@ return DisplayOrientationDefault; } } - } ++ (UIInterfaceOrientation) getUIInterfaceOrientationFromString:(NSString*)interfaceOrientation { + if ([interfaceOrientation isEqual:@"UIInterfaceOrientationPortrait"]) return UIInterfaceOrientationPortrait; + if ([interfaceOrientation isEqual:@"UIInterfaceOrientationPortraitUpsideDown"]) return UIInterfaceOrientationPortraitUpsideDown; + if ([interfaceOrientation isEqual:@"UIInterfaceOrientationLandscapeLeft"]) return UIInterfaceOrientationLandscapeLeft; + if ([interfaceOrientation isEqual:@"UIInterfaceOrientationLandscapeRight"]) return UIInterfaceOrientationLandscapeRight; + return 0; +} + ++ (DisplayOrientation) getSupportedOrientationsFromPlist { + NSDictionary *properties = [[NSBundle mainBundle] infoDictionary]; + NSArray *supportedOrientations = [properties objectForKey:@"UISupportedInterfaceOrientations"]; + if (supportedOrientations) { + DisplayOrientation result = 0; + for (id interfaceOrientationString in supportedOrientations) { + UIInterfaceOrientation interfaceOrientation = [GameViewController getUIInterfaceOrientationFromString:(NSString*)interfaceOrientationString]; + DisplayOrientation orientation = [GameViewController getDisplayOrientationForInterfaceOrientation:interfaceOrientation]; + result = result | orientation; + } + return result; + } else { + return DisplayOrientationDefault; + } +} + ++ (BOOL) getIsFullscreenFromPlist { + NSDictionary *properties = [[NSBundle mainBundle] infoDictionary]; + NSNumber *isStatusBarHidden = [properties objectForKey:@"UIStatusBarHidden"]; + if (isStatusBarHidden) { + return [isStatusBarHidden boolValue]; + } else { + return NO; + } +} + +@synthesize supportedOrientations; + - (void)loadView { GameView *gameView = [[GameView alloc] initWithFrame:[UIScreen mainScreen].applicationFrame]; self.view = gameView; @@ -50,8 +87,9 @@ - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { - //InterfaceOrientationFlags orientationFlag = 1 << interfaceOrientation; - return YES; // gameWindow.allowedOrientations & orientationFlag; + DisplayOrientation orientation = [GameViewController getDisplayOrientationForInterfaceOrientation:interfaceOrientation]; + BOOL supported = supportedOrientations & orientation; + return supported; } diff --git a/Classes/Retronator/Xni/Framework/GameWindow+Internal.h b/Classes/Retronator/Xni/Framework/GameWindow+Internal.h new file mode 100644 index 0000000..e2839c6 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/GameWindow+Internal.h @@ -0,0 +1,16 @@ +// +// GameWindow+Internal.h +// XNI +// +// Created by Retro on 31.10.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import + + +@interface GameWindow (Internal) + +- (void) initialize; + +@end diff --git a/Classes/Retronator/Xni/Framework/GameWindow.h b/Classes/Retronator/Xni/Framework/GameWindow.h index a3a180c..0fe93b0 100644 --- a/Classes/Retronator/Xni/Framework/GameWindow.h +++ b/Classes/Retronator/Xni/Framework/GameWindow.h @@ -30,10 +30,10 @@ @property (nonatomic, readonly) Event *clientSizeChanged; @property (nonatomic, readonly) Event *orientationChanged; - -- (void) initialize; - (void) beginScreenDeviceChangeWithFullscreen:(BOOL)willBeFullscreen; - (void) endScreenDeviceChange; +- (void) setSupportedOrientations:(DisplayOrientation)orientations; + @end diff --git a/Classes/Retronator/Xni/Framework/GameWindow.m b/Classes/Retronator/Xni/Framework/GameWindow.m index 8d506d1..110db8b 100644 --- a/Classes/Retronator/Xni/Framework/GameWindow.m +++ b/Classes/Retronator/Xni/Framework/GameWindow.m @@ -7,19 +7,28 @@ // #import "GameWindow.h" +#import "GameWindow+Internal.h" #import "Retronator.Xni.Framework.h" #import "GameViewController.h" #import "GameView.h" +@interface GameWindow() + +- (Rectangle*) calculateClientBounds; + +@end + + @implementation GameWindow - (id) init { if (self = [super init]) { - clientBounds = [[Rectangle empty] retain]; currentOrientation = DisplayOrientationDefault; clientSizeChanged = [[Event alloc] init]; orientationChanged = [[Event alloc] init]; + + clientBounds = [[Rectangle rectangleWithCGRect:[[UIScreen mainScreen] bounds]] retain]; } return self; } @@ -38,34 +47,39 @@ // METHODS -- (void) initialize { - window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; - - // Initialize game view controller. - gameViewController = [[GameViewController alloc] initWithGameWindow:self]; - [((GameView*)gameViewController.view).viewSizeChanged - subscribeDelegate:[Delegate delegateWithTarget:self Method:@selector(gameViewSizeChanged)]]; - - // Add the game view to the window. - [window addSubview: gameViewController.view]; - - // Present the window. - [window makeKeyAndVisible]; -} - - (void) beginScreenDeviceChangeWithFullscreen:(BOOL)willBeFullscreen { gameViewController.wantsFullScreenLayout = willBeFullscreen; [[UIApplication sharedApplication] setStatusBarHidden:willBeFullscreen]; gameViewController.view.frame = [UIScreen mainScreen].applicationFrame; - clientBounds = [[Rectangle rectangleWithCGRect:gameViewController.view.bounds] retain]; + clientBounds = [[self calculateClientBounds] retain]; } - (void) endScreenDeviceChange { } +- (void) initialize { + // Create UI window. + window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; + + // Create game view controller. + gameViewController = [[GameViewController alloc] initWithGameWindow:self]; + [((GameView*)gameViewController.view).viewSizeChanged + subscribeDelegate:[Delegate delegateWithTarget:self Method:@selector(gameViewSizeChanged)]]; + + // Add the game view to the window. + [window addSubview: gameViewController.view]; + + // Present the window. + [window makeKeyAndVisible]; +} + +- (void) setSupportedOrientations:(DisplayOrientation)orientations { + gameViewController.supportedOrientations = orientations; +} + - (void) gameViewSizeChanged { - Rectangle *newClientBounds = [Rectangle rectangleWithCGRect:gameViewController.view.bounds]; + Rectangle *newClientBounds = [self calculateClientBounds]; if (![newClientBounds equals:clientBounds]) { [clientBounds release]; clientBounds = [newClientBounds retain]; @@ -73,6 +87,14 @@ } } +- (Rectangle*) calculateClientBounds { + Rectangle *bounds = [Rectangle rectangleWithCGRect:gameViewController.view.bounds]; + float scale = [UIScreen mainScreen].scale; + bounds.width *= scale; + bounds.height *= scale; + return bounds; +} + - (void) dealloc { [clientBounds release]; diff --git a/Classes/Retronator/Xni/Framework/Graphics/BasicEffect.m b/Classes/Retronator/Xni/Framework/Graphics/BasicEffect.m index d0eeb21..f8c489e 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/BasicEffect.m +++ b/Classes/Retronator/Xni/Framework/Graphics/BasicEffect.m @@ -149,11 +149,9 @@ // Set texturing. if (basicEffect.textureEnabled) { + [graphicsDevice.textures setItem:basicEffect.texture atIndex:0]; + glActiveTexture(GL_TEXTURE0); glEnable(GL_TEXTURE_2D); - glBindTexture(GL_TEXTURE_2D, basicEffect.texture.textureId); - SamplerState *samplerState = [graphicsDevice.samplerStates objectAtIndex:0]; - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, samplerState.addressU); - glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, samplerState.addressV); } else { glDisable(GL_TEXTURE_2D); } diff --git a/Classes/Retronator/Xni/Framework/Graphics/GraphicsDevice.m b/Classes/Retronator/Xni/Framework/Graphics/GraphicsDevice.m index 7b674e0..7ff0659 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/GraphicsDevice.m +++ b/Classes/Retronator/Xni/Framework/Graphics/GraphicsDevice.m @@ -12,6 +12,10 @@ #import "Retronator.Xni.Framework.h" #import "Retronator.Xni.Framework.Graphics.h" +#import "XniSamplerEventArgs.h" +#import "TextureCollection+Internal.h" +#import "SamplerStateCollection+Internal.h" + @interface GraphicsDevice() + (void) getFormat:(GLenum*)format AndType:(GLenum*)type ForSurfaceFormat:(SurfaceFormat)surfaceFormat; @@ -48,6 +52,14 @@ glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer); glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer); + // Create sampler states and texture collections and handle changes. + samplerStates = [[SamplerStateCollection alloc] init]; + textures = [[TextureCollection alloc] init]; + [samplerStates.samplerStateChanged subscribeDelegate:[Delegate delegateWithTarget:self + Method:@selector(applySamplerState:eventArgs:)]]; + [textures.textureChanged subscribeDelegate:[Delegate delegateWithTarget:self + Method:@selector(applySamplerState:eventArgs:)]]; + // Do the initial reset. viewport = [[Viewport alloc] init]; [self reset]; @@ -60,9 +72,7 @@ self.indices = nil; self.rasterizerState = [RasterizerState cullClockwise]; self.referenceStencil = 0; - samplerStates = [[SamplerStateCollection alloc] init]; - textures = [[TextureCollection alloc] init]; - [samplerStates insertObject:[SamplerState linearClamp] atIndex:0]; + [samplerStates setItem:[SamplerState linearClamp] atIndex:0]; // Create events. deviceResetting = [[Event alloc] init]; @@ -295,6 +305,68 @@ } } +- (void) applySamplerState:(id)sender eventArgs:(XniSamplerEventArgs*)e { + glActiveTexture(e.samplerIndex); + + Texture *texture = [textures itemAtIndex:e.samplerIndex]; + + if (texture) { + glBindTexture(GL_TEXTURE_2D, texture.textureId); + } else { + glBindTexture(GL_TEXTURE_2D, 0); + } + + SamplerState *samplerState = [samplerStates itemAtIndex:e.samplerIndex]; + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, samplerState.addressU); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, samplerState.addressV); + + uint minFilter; + uint magFilter; + switch (samplerState.filter) { + case TextureFilterPoint: + minFilter = GL_NEAREST; + magFilter = GL_NEAREST; + break; + case TextureFilterLinear: + default: + minFilter = GL_LINEAR; + magFilter = GL_LINEAR; + break; + case TextureFilterPointMipLinear: + minFilter = GL_NEAREST_MIPMAP_LINEAR; + magFilter = GL_NEAREST_MIPMAP_LINEAR; + break; + case TextureFilterLinearMipPoint: + minFilter = GL_LINEAR_MIPMAP_NEAREST; + magFilter = GL_LINEAR_MIPMAP_NEAREST; + break; + case TextureFilterMinLinearMagPointMipLinear: + minFilter = GL_LINEAR; + magFilter = GL_NEAREST_MIPMAP_LINEAR; + break; + case TextureFilterMinLinearMagPointMipPoint: + minFilter = GL_LINEAR_MIPMAP_NEAREST; + magFilter = GL_NEAREST; + break; + case TextureFilterMinPointMagLinearMipLinear: + minFilter = GL_NEAREST_MIPMAP_LINEAR; + magFilter = GL_LINEAR; + break; + case TextureFilterMinPointMagLinearMipPoint: + minFilter = GL_NEAREST; + magFilter = GL_LINEAR_MIPMAP_NEAREST; + break; + case TextureFilterAnisotropic: + // TODO: Have no idea yet how to do anisotropic. + minFilter = GL_LINEAR; + magFilter = GL_LINEAR; + break; + } + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, minFilter); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, magFilter); +} + - (void) dealloc { [blendState release]; diff --git a/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection+Internal.h b/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection+Internal.h new file mode 100644 index 0000000..73b2f68 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection+Internal.h @@ -0,0 +1,18 @@ +// +// SamplerStateCollection+Internal.h +// XNI +// +// Created by Matej Jan on 26.10.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import +#import "System.h" + +#import "SamplerStateCollection.h" + +@interface SamplerStateCollection (Internal) + +@property (nonatomic, readonly) Event *samplerStateChanged; + +@end diff --git a/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.h b/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.h index b6ace11..8d5183f 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.h +++ b/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.h @@ -7,16 +7,16 @@ // #import +#import "System.h" #import "Retronator.Xni.Framework.Graphics.classes.h" @interface SamplerStateCollection : NSObject { - NSMutableArray *collection; + SamplerState *samplerStates[GL_MAX_TEXTURE_UNITS]; + Event *samplerStateChanged; } -- (int) count; -- (SamplerState*)objectAtIndex:(NSUInteger)index; -- (void)addObject:(SamplerState*)anObject; -- (void)insertObject:(SamplerState*)anObject atIndex:(NSUInteger)index; +- (SamplerState*)itemAtIndex:(NSUInteger)index; +- (void)setItem:(SamplerState*)item atIndex:(NSUInteger)index; @end diff --git a/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.m b/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.m index f79e45d..f227858 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.m +++ b/Classes/Retronator/Xni/Framework/Graphics/SamplerStateCollection.m @@ -7,6 +7,8 @@ // #import "SamplerStateCollection.h" +#import "SamplerStateCollection+Internal.h" +#import "XniSamplerEventArgs.h" #import "Retronator.Xni.Framework.Graphics.h" @@ -16,30 +18,32 @@ { self = [super init]; if (self != nil) { - collection = [[NSMutableArray alloc] init]; + for (int i = 0; i < GL_MAX_TEXTURE_UNITS; i++) { + samplerStates[i] = nil; + } + samplerStateChanged = [[Event alloc] init]; } return self; } -- (int) count { - return [collection count]; +- (Event *) samplerStateChanged { + return samplerStateChanged; } -- (SamplerState*)objectAtIndex:(NSUInteger)index { - return (SamplerState*)[collection objectAtIndex:index]; +- (SamplerState*)itemAtIndex:(NSUInteger)index { + return samplerStates[index]; } -- (void)addObject:(SamplerState*)anObject { - [collection addObject:anObject]; -} - -- (void)insertObject:(SamplerState*)anObject atIndex:(NSUInteger)index { - [collection insertObject:anObject atIndex:index]; +- (void)setItem:(SamplerState*)item atIndex:(NSUInteger)index { + if (samplerStates[index] != item) { + samplerStates[index] = item; + [samplerStateChanged raiseWithSender:self eventArgs:[XniSamplerEventArgs eventArgsWithSamplerIndex:index]]; + } } - (void) dealloc { - [collection dealloc]; + [samplerStateChanged release]; [super dealloc]; } diff --git a/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m b/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m index 745fb4d..19dc440 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m +++ b/Classes/Retronator/Xni/Framework/Graphics/SpriteBatch.m @@ -212,8 +212,11 @@ static VertexPositionColorTextureStruct vertices[4]; depthStencilState = theDepthStencilState; rasterizerState = theRasterizerState; samplerState = theSamplerState; + effect = theEffect; - basicEffect.world = theTransformMatrix; + if ([effect isKindOfClass:[BasicEffect class]]) { + ((BasicEffect*)effect).world = theTransformMatrix; + } // Immediate mode applies the device state during begin. if (sortMode == SpriteSortModeImmediate) { @@ -335,21 +338,23 @@ static VertexPositionColorTextureStruct vertices[4]; graphicsDevice.blendState = blendState; graphicsDevice.depthStencilState = depthStencilState; graphicsDevice.rasterizerState = rasterizerState; - [graphicsDevice.samplerStates insertObject:samplerState atIndex:0]; + [graphicsDevice.samplerStates setItem:samplerState atIndex:0]; + [[effect.currentTechnique.passes objectAtIndex:0] apply]; } - (void) draw { + // Check how many sprites to draw. int count = [sprites count]; if (count == 0) { // No sprites to draw. return; } + // Draw until all sprites are drawn. int startIndex = 0; int endIndex = 0; - // Continue until all sprites are drawn. - while (startIndex < count) { + while (startIndex < count) { // Get the texture for the next batch. Texture2D *currentTexture = ((XniSprite*)[sprites objectAtIndex:startIndex]).texture; @@ -414,9 +419,7 @@ static VertexPositionColorTextureStruct vertices[4]; [vertexArray addVertex:&vertices[3]]; } - // Apply the effect with the texture. - basicEffect.texture = ((XniSprite*)[sprites objectAtIndex:startIndex]).texture; - [[basicEffect.currentTechnique.passes objectAtIndex:0] apply]; + [self.graphicsDevice.textures setItem:((XniSprite*)[sprites objectAtIndex:startIndex]).texture atIndex:0]; // Draw the vertex array. int count = (endIndex - startIndex + 1) * 2; diff --git a/Classes/Retronator/Xni/Framework/Graphics/TextureCollection+Internal.h b/Classes/Retronator/Xni/Framework/Graphics/TextureCollection+Internal.h new file mode 100644 index 0000000..812a0fe --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Graphics/TextureCollection+Internal.h @@ -0,0 +1,18 @@ +// +// TextureCollection+Internal.h +// XNI +// +// Created by Matej Jan on 26.10.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import +#import "System.h" + +#import "TextureCollection.h" + +@interface TextureCollection (Internal) + +@property (nonatomic, readonly) Event *textureChanged; + +@end diff --git a/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.h b/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.h index f360e14..6c61caa 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.h +++ b/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.h @@ -7,16 +7,16 @@ // #import +#import "System.h" #import "Retronator.Xni.Framework.Graphics.classes.h" @interface TextureCollection : NSObject { - NSMutableArray *collection; + Texture *textures[GL_MAX_TEXTURE_UNITS]; + Event *textureChanged; } -- (int) count; -- (Texture*)objectAtIndex:(NSUInteger)index; -- (void)addObject:(Texture*)anObject; -- (void)insertObject:(Texture*)anObject atIndex:(NSUInteger)index; +- (Texture*)itemAtIndex:(NSUInteger)index; +- (void)setItem:(Texture*)item atIndex:(NSUInteger)index; @end diff --git a/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.m b/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.m index d022263..fe053e8 100644 --- a/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.m +++ b/Classes/Retronator/Xni/Framework/Graphics/TextureCollection.m @@ -7,6 +7,8 @@ // #import "TextureCollection.h" +#import "TextureCollection+Internal.h" +#import "XniSamplerEventArgs.h" #import "Retronator.Xni.Framework.Graphics.h" @@ -16,30 +18,32 @@ { self = [super init]; if (self != nil) { - collection = [[NSMutableArray alloc] init]; + for (int i = 0; i < GL_MAX_TEXTURE_UNITS; i++) { + textures[i] = nil; + } + textureChanged = [[Event alloc] init]; } return self; } -- (int) count { - return [collection count]; +- (Event *) textureChanged { + return textureChanged; } -- (Texture*)objectAtIndex:(NSUInteger)index { - return (Texture*)[collection objectAtIndex:index]; +- (Texture*)itemAtIndex:(NSUInteger)index { + return textures[index]; } -- (void)addObject:(Texture*)anObject { - [collection addObject:anObject]; -} - -- (void)insertObject:(Texture*)anObject atIndex:(NSUInteger)index { - [collection insertObject:anObject atIndex:index]; +- (void)setItem:(Texture*)item atIndex:(NSUInteger)index { + if (textures[index] != item) { + textures[index] = item; + [textureChanged raiseWithSender:self eventArgs:[XniSamplerEventArgs eventArgsWithSamplerIndex:index]]; + } } - (void) dealloc { - [collection dealloc]; + [textureChanged release]; [super dealloc]; } diff --git a/Classes/Retronator/Xni/Framework/Graphics/XniSamplerEventArgs.h b/Classes/Retronator/Xni/Framework/Graphics/XniSamplerEventArgs.h new file mode 100644 index 0000000..647e2bb --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Graphics/XniSamplerEventArgs.h @@ -0,0 +1,22 @@ +// +// SamplerEvent.h +// XNI +// +// Created by Matej Jan on 26.10.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import + +#import "System.h" + +@interface XniSamplerEventArgs : EventArgs { + int samplerIndex; +} + +- (id) initWithSamplerIndex:(int)theSamplerIndex; ++ (id) eventArgsWithSamplerIndex:(int)theSamplerIndex; + +@property (nonatomic, readonly) int samplerIndex; + +@end diff --git a/Classes/Retronator/Xni/Framework/Graphics/XniSamplerEventArgs.m b/Classes/Retronator/Xni/Framework/Graphics/XniSamplerEventArgs.m new file mode 100644 index 0000000..ce93bb4 --- /dev/null +++ b/Classes/Retronator/Xni/Framework/Graphics/XniSamplerEventArgs.m @@ -0,0 +1,29 @@ +// +// SamplerEvent.m +// XNI +// +// Created by Matej Jan on 26.10.10. +// Copyright 2010 Retronator. All rights reserved. +// + +#import "XniSamplerEventArgs.h" + + +@implementation XniSamplerEventArgs + +- (id) initWithSamplerIndex:(int)theSamplerIndex +{ + self = [super init]; + if (self != nil) { + samplerIndex = theSamplerIndex; + } + return self; +} + ++ (id) eventArgsWithSamplerIndex:(int)theSamplerIndex { + return [[[XniSamplerEventArgs alloc] initWithSamplerIndex:theSamplerIndex] autorelease]; +} + +@synthesize samplerIndex; + +@end diff --git a/Classes/Retronator/Xni/Framework/GraphicsDeviceManager.m b/Classes/Retronator/Xni/Framework/GraphicsDeviceManager.m index a911402..ddd5faa 100644 --- a/Classes/Retronator/Xni/Framework/GraphicsDeviceManager.m +++ b/Classes/Retronator/Xni/Framework/GraphicsDeviceManager.m @@ -11,6 +11,8 @@ #import "Retronator.Xni.Framework.h" #import "Retronator.Xni.Framework.Graphics.h" +#import "GameViewController.h" + @implementation GraphicsDeviceManager - (id) initWithGame:(Game*)theGame { if (self = [super init]) { @@ -24,6 +26,9 @@ [game.services addService:self ofType:[Protocols graphicsDeviceManager]]; [game.services addService:self ofType:[Protocols graphicsDeviceService]]; + + supportedOrientations = [GameViewController getSupportedOrientationsFromPlist]; + isFullScreen = [GameViewController getIsFullscreenFromPlist]; } return self; } @@ -65,6 +70,7 @@ } - (void) applyChanges { + [game.window setSupportedOrientations:supportedOrientations]; [game.window beginScreenDeviceChangeWithFullscreen:isFullScreen]; if (graphicsDevice != nil && graphicsDevice.graphicsProfile != graphicsProfile) { diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m index 2055868..3a02afd 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchLocation.m @@ -8,7 +8,6 @@ #import "TouchLocation.h" - @implementation TouchLocation - (id) initWithIdentifier:(int)theIdentifier position:(Vector2*)thePosition diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h index 3cfb367..c322df4 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel+Internal.h @@ -11,7 +11,7 @@ #import "TouchPanel.h" -@interface TouchPanel (internal) +@interface TouchPanel (Internal) - (void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event; - (void) touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event; diff --git a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m index a7049d7..49a10de 100644 --- a/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m +++ b/Classes/Retronator/Xni/Framework/Input/Touch/TouchPanel.m @@ -181,10 +181,11 @@ static TouchPanel *instance; lateReleaseTouches = temp; // Add new touches + float scale = [UIScreen mainScreen].scale; for (UITouch *touch in addTouches) { CGPoint position = [touch locationInView:touch.view]; InternalTouchLocation *location = [[[InternalTouchLocation alloc] - initWithPosition:[Vector2 vectorWithX:position.x y:position.y]] autorelease]; + initWithPosition:[Vector2 vectorWithX:position.x * scale y:position.y * scale]] autorelease]; CFDictionaryAddValue((CFMutableDictionaryRef)touchLocations, touch, location); } [addTouches removeAllObjects]; diff --git a/Classes/Retronator/Xni/Framework/Rectangle.m b/Classes/Retronator/Xni/Framework/Rectangle.m index c75f1c4..23bd445 100644 --- a/Classes/Retronator/Xni/Framework/Rectangle.m +++ b/Classes/Retronator/Xni/Framework/Rectangle.m @@ -67,6 +67,7 @@ // METHODS - (BOOL) equals:(Rectangle*)rectangle { + if (!rectangle) return NO; return rectangle.data->x == data.x && rectangle.data->y == data.y && rectangle.data->width == data.width && rectangle.data->height == data.height; } @@ -82,6 +83,10 @@ return data.x ^ data.y ^ data.width ^ data.height; } +- (NSString *) description { + return [NSString stringWithFormat:@"Rectangle(%i, %i, %i, %i)", data.x, data.y, data.width, data.height]; +} + // CONSTANTS + (Rectangle*) empty {return [Rectangle rectangleWithX:0 y:0 width:0 height:0];} diff --git a/XNI.xcodeproj/project.pbxproj b/XNI.xcodeproj/project.pbxproj index 3fca0fb..38a63bf 100644 --- a/XNI.xcodeproj/project.pbxproj +++ b/XNI.xcodeproj/project.pbxproj @@ -20,6 +20,7 @@ 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, ); }; }; + B53649F2127DE08100CAE30C /* GameWindow+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B53649F1127DE08100CAE30C /* GameWindow+Internal.h */; }; 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, ); }; }; @@ -79,194 +80,6 @@ B5BBC2D31248F98D0066F5ED /* VertexBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC2D11248F98D0066F5ED /* VertexBuffer.m */; }; B5BBC2EC1248FC7A0066F5ED /* VertexBufferBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC2EA1248FC7A0066F5ED /* VertexBufferBinding.h */; settings = {ATTRIBUTES = (Public, ); }; }; B5BBC2ED1248FC7A0066F5ED /* VertexBufferBinding.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC2EB1248FC7A0066F5ED /* VertexBufferBinding.m */; }; - B5C6FDD9126DD2AE002ED666 /* XNI_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = B5F4E2A812095FAF00B2FC0F /* XNI_Prefix.pch */; }; - B5C6FDDA126DD2AE002ED666 /* GameView.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE194C11F89C1F00BF3275 /* GameView.h */; }; - B5C6FDDB126DD2AE002ED666 /* TouchPanel+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B52BACF9125527E200B308F6 /* TouchPanel+Internal.h */; }; - B5C6FDDC126DD2AE002ED666 /* GameViewController.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE194811F89C0900BF3275 /* GameViewController.h */; }; - B5C6FDDD126DD2AE002ED666 /* VertexBufferBinding.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC2EA1248FC7A0066F5ED /* VertexBufferBinding.h */; }; - B5C6FDDE126DD2AE002ED666 /* IndexBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC1CD1248D4CB0066F5ED /* IndexBuffer.h */; }; - B5C6FDDF126DD2AE002ED666 /* Vector2.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F853B31239334300E6FD71 /* Vector2.h */; }; - B5C6FDE0126DD2AE002ED666 /* Retronator.Xni.Framework.Content.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B5A1C83012353F9B00DB60CB /* Retronator.Xni.Framework.Content.classes.h */; }; - B5C6FDE1126DD2AE002ED666 /* Vector2Struct.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F853B71239335900E6FD71 /* Vector2Struct.h */; }; - B5C6FDE2126DD2AE002ED666 /* Effect.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E78B7812429BBD00DDD99A /* Effect.h */; }; - B5C6FDE3126DD2AE002ED666 /* AdaptiveArray.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA637C124921D0001245A4 /* AdaptiveArray.h */; }; - B5C6FDE4126DD2AE002ED666 /* BlendState.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E78B6012429AEC00DDD99A /* BlendState.h */; }; - B5C6FDE5126DD2AE002ED666 /* TouchPanel.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC59F71252B917001E7DFC /* TouchPanel.h */; }; - B5C6FDE6126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE82E11FF1213000DB38B /* Retronator.Xni.Framework.Graphics.classes.h */; }; - B5C6FDE7126DD2AE002ED666 /* SamplerState.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E78B6C12429B1A00DDD99A /* SamplerState.h */; }; - B5C6FDE8126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE83011FF1222000DB38B /* Retronator.Xni.Framework.Graphics.h */; }; - B5C6FDE9126DD2AE002ED666 /* Matrix.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F853A5123931F900E6FD71 /* Matrix.h */; }; - B5C6FDEA126DD2AE002ED666 /* Retronator.Xni.Framework.Content.h in Headers */ = {isa = PBXBuildFile; fileRef = B5A1C82E12353F8700DB60CB /* Retronator.Xni.Framework.Content.h */; }; - B5C6FDEB126DD2AE002ED666 /* ContentIdentity.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD8211236E76E00F99511 /* ContentIdentity.h */; }; - B5C6FDEC126DD2AE002ED666 /* Texture2D.h in Headers */ = {isa = PBXBuildFile; fileRef = B5080701122E4EE900C330E2 /* Texture2D.h */; }; - B5C6FDED126DD2AE002ED666 /* VertexPositionColor.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA636D124917E2001245A4 /* VertexPositionColor.h */; }; - B5C6FDEE126DD2AE002ED666 /* MatrixStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F853A3123931F100E6FD71 /* MatrixStruct.h */; }; - B5C6FDEF126DD2AE002ED666 /* Vector4.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F8539B12392E2000E6FD71 /* Vector4.h */; }; - B5C6FDF0126DD2AE002ED666 /* Retronator.Xni.Framework.Input.Touch.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC59FB1252BE32001E7DFC /* Retronator.Xni.Framework.Input.Touch.classes.h */; }; - B5C6FDF1126DD2AE002ED666 /* Texture.h in Headers */ = {isa = PBXBuildFile; fileRef = B50806FD122E4ECF00C330E2 /* Texture.h */; }; - B5C6FDF2126DD2AE002ED666 /* ContentItem.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD81D1236E59A00F99511 /* ContentItem.h */; }; - B5C6FDF3126DD2AE002ED666 /* EffectTechnique.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA65D5124952C9001245A4 /* EffectTechnique.h */; }; - B5C6FDF4126DD2AE002ED666 /* IGraphicsDeviceService.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE82A11FF10EF000DB38B /* IGraphicsDeviceService.h */; }; - B5C6FDF5126DD2AE002ED666 /* SamplerStateCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC1DE1248D5640066F5ED /* SamplerStateCollection.h */; }; - B5C6FDF6126DD2AE002ED666 /* VertexArray.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA638D1249229D001245A4 /* VertexArray.h */; }; - B5C6FDF7126DD2AE002ED666 /* FrameworkEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = B52BADAC1255426600B308F6 /* FrameworkEnums.h */; }; - B5C6FDF8126DD2AE002ED666 /* Color.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE90711FF352E000DB38B /* Color.h */; }; - B5C6FDF9126DD2AE002ED666 /* MipmapChainCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC50F123A739100B72347 /* MipmapChainCollection.h */; }; - B5C6FDFA126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.Graphics.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD81B1236E56800F99511 /* Retronator.Xni.Framework.Content.Pipeline.Graphics.h */; }; - B5C6FDFB126DD2AE002ED666 /* Retronator.Xni.Framework.Input.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC5A921252C710001E7DFC /* Retronator.Xni.Framework.Input.h */; }; - B5C6FDFC126DD2AE002ED666 /* VertexPositionTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA65511249482D001245A4 /* VertexPositionTexture.h */; }; - B5C6FDFD126DD2AE002ED666 /* IServiceProvider.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC559123A846C00B72347 /* IServiceProvider.h */; }; - B5C6FDFE126DD2AE002ED666 /* System.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE18A311F888BC00BF3275 /* System.h */; }; - B5C6FDFF126DD2AE002ED666 /* Retronator.Xni.Framework.Input.Touch.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC59FD1252BE3B001E7DFC /* Retronator.Xni.Framework.Input.Touch.h */; }; - B5C6FE00126DD2AE002ED666 /* RasterizerState.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E78B6812429B0E00DDD99A /* RasterizerState.h */; }; - B5C6FE01126DD2AE002ED666 /* IGameComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE80111FF0AE3000DB38B /* IGameComponent.h */; }; - B5C6FE02126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD80B1236E21900F99511 /* Retronator.Xni.Framework.Content.Pipeline.h */; }; - B5C6FE03126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.PackedVector.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD89F1236F1FF00F99511 /* Retronator.Xni.Framework.Graphics.PackedVector.classes.h */; }; - B5C6FE04126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD80D1236E22B00F99511 /* Retronator.Xni.Framework.Content.Pipeline.classes.h */; }; - B5C6FE05126DD2AE002ED666 /* DepthStencilState.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E78B6412429AF900DDD99A /* DepthStencilState.h */; }; - B5C6FE06126DD2AE002ED666 /* PackedVectorStructs.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F8536D1239206700E6FD71 /* PackedVectorStructs.h */; }; - B5C6FE07126DD2AE002ED666 /* VertexPositionColorArray.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA655E1249495C001245A4 /* VertexPositionColorArray.h */; }; - B5C6FE08126DD2AE002ED666 /* GameHost.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE18FA11F88AD900BF3275 /* GameHost.h */; }; - B5C6FE09126DD2AE002ED666 /* ColorPixelBitmapContent.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F8546B1239484700E6FD71 /* ColorPixelBitmapContent.h */; }; - B5C6FE0A126DD2AE002ED666 /* GestureSample.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC5A4D1252C2DF001E7DFC /* GestureSample.h */; }; - B5C6FE0B126DD2AE002ED666 /* GameWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE18FC11F88AD900BF3275 /* GameWindow.h */; }; - B5C6FE0C126DD2AE002ED666 /* Rectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE190211F88AF500BF3275 /* Rectangle.h */; }; - B5C6FE0D126DD2AE002ED666 /* TouchLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC5A0E1252BEDF001E7DFC /* TouchLocation.h */; }; - B5C6FE0E126DD2AE002ED666 /* SpriteBatch.h in Headers */ = {isa = PBXBuildFile; fileRef = B5E78B481242925600DDD99A /* SpriteBatch.h */; }; - B5C6FE0F126DD2AE002ED666 /* TextureContent.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD8661236EC2300F99511 /* TextureContent.h */; }; - B5C6FE10126DD2AE002ED666 /* VertexPositionColorTextureArray.h in Headers */ = {isa = PBXBuildFile; fileRef = B57E36CA124BE36E00DDAA42 /* VertexPositionColorTextureArray.h */; }; - B5C6FE11126DD2AE002ED666 /* GameTime.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE82011FF0D4F000DB38B /* GameTime.h */; }; - B5C6FE12126DD2AE002ED666 /* BasicEffect.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA660012495618001245A4 /* BasicEffect.h */; }; - B5C6FE13126DD2AE002ED666 /* Retronator.Xni.Framework.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE18A011F8888B00BF3275 /* Retronator.Xni.Framework.h */; }; - B5C6FE14126DD2AE002ED666 /* Quaternion.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F853CB1239357400E6FD71 /* Quaternion.h */; }; - B5C6FE15126DD2AE002ED666 /* IDrawable.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE80611FF0B3C000DB38B /* IDrawable.h */; }; - B5C6FE16126DD2AE002ED666 /* DrawableGameComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = B507691A1264EF0B00E4474F /* DrawableGameComponent.h */; }; - B5C6FE17126DD2AE002ED666 /* VertexElement.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC2BA1248F2990066F5ED /* VertexElement.h */; }; - B5C6FE18126DD2AE002ED666 /* TextureImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD80F1236E25700F99511 /* TextureImporter.h */; }; - B5C6FE19126DD2AE002ED666 /* InputEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC5A181252BF63001E7DFC /* InputEnums.h */; }; - B5C6FE1A126DD2AE002ED666 /* GameComponentCollectionEventArgs.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE80811FF0C24000DB38B /* GameComponentCollectionEventArgs.h */; }; - B5C6FE1B126DD2AE002ED666 /* RectangleStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE190611F88B5D00BF3275 /* RectangleStruct.h */; }; - B5C6FE1C126DD2AE002ED666 /* IGraphicsDeviceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE82C11FF10FD000DB38B /* IGraphicsDeviceManager.h */; }; - B5C6FE1D126DD2AE002ED666 /* IUpdatable.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE80411FF0B2D000DB38B /* IUpdatable.h */; }; - B5C6FE1E126DD2AE002ED666 /* VertexDeclaration.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC2AC1248F0C40066F5ED /* VertexDeclaration.h */; }; - B5C6FE1F126DD2AE002ED666 /* ReachGraphicsDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE8C111FF29E8000DB38B /* ReachGraphicsDevice.h */; }; - B5C6FE20126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.Graphics.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD8191236E55E00F99511 /* Retronator.Xni.Framework.Content.Pipeline.Graphics.classes.h */; }; - B5C6FE21126DD2AE002ED666 /* Vector4Struct.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F8539F12392E4500E6FD71 /* Vector4Struct.h */; }; - B5C6FE22126DD2AE002ED666 /* ContentManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B5A1C83212353FBB00DB60CB /* ContentManager.h */; }; - B5C6FE23126DD2AE002ED666 /* Game.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE7E911FF04E3000DB38B /* Game.h */; }; - B5C6FE24126DD2AE002ED666 /* ContentTypeReaderManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC5C5123A928A00B72347 /* ContentTypeReaderManager.h */; }; - B5C6FE25126DD2AE002ED666 /* GameComponent.h in Headers */ = {isa = PBXBuildFile; fileRef = B50769121264EE9500E4474F /* GameComponent.h */; }; - B5C6FE26126DD2AE002ED666 /* TextureCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC1EF1248D6090066F5ED /* TextureCollection.h */; }; - B5C6FE27126DD2AE002ED666 /* Protocols.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE89411FF16A3000DB38B /* Protocols.h */; }; - B5C6FE28126DD2AE002ED666 /* Viewport.h in Headers */ = {isa = PBXBuildFile; fileRef = B57E3663124BC23E00DDAA42 /* Viewport.h */; }; - B5C6FE29126DD2AE002ED666 /* ContentTypeReader.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC5C1123A927500B72347 /* ContentTypeReader.h */; }; - B5C6FE2A126DD2AE002ED666 /* Texture2DContentTypeReader.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC5C9123A92BB00B72347 /* Texture2DContentTypeReader.h */; }; - B5C6FE2B126DD2AE002ED666 /* Texture2DContent.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC525123A79E800B72347 /* Texture2DContent.h */; }; - B5C6FE2C126DD2AE002ED666 /* VectorConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F85385123929F800E6FD71 /* VectorConverter.h */; }; - B5C6FE2D126DD2AE002ED666 /* BitmapContent.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD86C1236ED3900F99511 /* BitmapContent.h */; }; - B5C6FE2E126DD2AE002ED666 /* GraphicsEnums.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE8C911FF2AD6000DB38B /* GraphicsEnums.h */; }; - B5C6FE2F126DD2AE002ED666 /* VertexStructs.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA634E12491709001245A4 /* VertexStructs.h */; }; - B5C6FE30126DD2AE002ED666 /* GraphicsResource.h in Headers */ = {isa = PBXBuildFile; fileRef = B508070A122E4FBB00C330E2 /* GraphicsResource.h */; }; - B5C6FE31126DD2AE002ED666 /* Vector3Struct.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F853BB1239336C00E6FD71 /* Vector3Struct.h */; }; - B5C6FE32126DD2AE002ED666 /* Event.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE189411F8884A00BF3275 /* Event.h */; }; - B5C6FE33126DD2AE002ED666 /* VertexBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = B5BBC2D01248F98D0066F5ED /* VertexBuffer.h */; }; - B5C6FE34126DD2AE002ED666 /* HiDefGraphicsDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE8C511FF2A23000DB38B /* HiDefGraphicsDevice.h */; }; - B5C6FE35126DD2AE002ED666 /* EventArgs.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE189611F8884A00BF3275 /* EventArgs.h */; }; - B5C6FE36126DD2AE002ED666 /* GraphicsDeviceManager.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE98F11FF546B000DB38B /* GraphicsDeviceManager.h */; }; - B5C6FE37126DD2AE002ED666 /* TouchCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC5A051252BE9E001E7DFC /* TouchCollection.h */; }; - B5C6FE38126DD2AE002ED666 /* DirectionalLight.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA660B124956CE001245A4 /* DirectionalLight.h */; }; - B5C6FE39126DD2AE002ED666 /* EffectPass.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA65CD12495297001245A4 /* EffectPass.h */; }; - B5C6FE3A126DD2AE002ED666 /* GameComponentCollection.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE7FD11FF0A0F000DB38B /* GameComponentCollection.h */; }; - B5C6FE3B126DD2AE002ED666 /* System.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE189E11F8886D00BF3275 /* System.classes.h */; }; - B5C6FE3C126DD2AE002ED666 /* Vector3.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F853AF1239331C00E6FD71 /* Vector3.h */; }; - B5C6FE3D126DD2AE002ED666 /* VertexPositionColorTexture.h in Headers */ = {isa = PBXBuildFile; fileRef = B57E36BC124BE2DD00DDAA42 /* VertexPositionColorTexture.h */; }; - B5C6FE3E126DD2AE002ED666 /* Delegate.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE189211F8884A00BF3275 /* Delegate.h */; }; - B5C6FE3F126DD2AE002ED666 /* VertexPositionTextureArray.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EA657612494AC3001245A4 /* VertexPositionTextureArray.h */; }; - B5C6FE40126DD2AE002ED666 /* ContentReader.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC5BB123A915700B72347 /* ContentReader.h */; }; - B5C6FE41126DD2AE002ED666 /* PixelBitmapContent.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD8801236EFF200F99511 /* PixelBitmapContent.h */; }; - B5C6FE42126DD2AE002ED666 /* ContentImporter.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD7EE1236E07300F99511 /* ContentImporter.h */; }; - B5C6FE43126DD2AE002ED666 /* GraphicsDevice.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE85A11FF1326000DB38B /* GraphicsDevice.h */; }; - B5C6FE44126DD2AE002ED666 /* Retronator.Xni.Framework.classes.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DE189F11F8888B00BF3275 /* Retronator.Xni.Framework.classes.h */; }; - B5C6FE45126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.PackedVector.h in Headers */ = {isa = PBXBuildFile; fileRef = B59AD8A11236F20B00F99511 /* Retronator.Xni.Framework.Graphics.PackedVector.h */; }; - B5C6FE46126DD2AE002ED666 /* GameServiceContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE7ED11FF06BB000DB38B /* GameServiceContainer.h */; }; - B5C6FE47126DD2AE002ED666 /* MipmapChain.h in Headers */ = {isa = PBXBuildFile; fileRef = B56CC50B123A6F3600B72347 /* MipmapChain.h */; }; - B5C6FE48126DD2B7002ED666 /* GameHost.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE18FB11F88AD900BF3275 /* GameHost.m */; }; - B5C6FE49126DD2B7002ED666 /* HiDefGraphicsDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE8C611FF2A23000DB38B /* HiDefGraphicsDevice.m */; }; - B5C6FE4A126DD2B7002ED666 /* MipmapChainCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC510123A739100B72347 /* MipmapChainCollection.m */; }; - B5C6FE4B126DD2B7002ED666 /* Event.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE189511F8884A00BF3275 /* Event.m */; }; - B5C6FE4C126DD2B7002ED666 /* RasterizerState.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E78B6912429B0E00DDD99A /* RasterizerState.m */; }; - B5C6FE4D126DD2B7002ED666 /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE7EA11FF04E3000DB38B /* Game.m */; }; - B5C6FE4E126DD2B7002ED666 /* PixelBitmapContent.m in Sources */ = {isa = PBXBuildFile; fileRef = B59AD8811236EFF200F99511 /* PixelBitmapContent.m */; }; - B5C6FE4F126DD2B7002ED666 /* TextureContent.m in Sources */ = {isa = PBXBuildFile; fileRef = B59AD8671236EC2300F99511 /* TextureContent.m */; }; - B5C6FE50126DD2B7002ED666 /* TouchLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EC5A0F1252BEDF001E7DFC /* TouchLocation.m */; }; - B5C6FE51126DD2B7002ED666 /* GameServiceContainer.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE7EE11FF06BB000DB38B /* GameServiceContainer.m */; }; - B5C6FE52126DD2B7002ED666 /* GameComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = B50769131264EE9500E4474F /* GameComponent.m */; }; - B5C6FE53126DD2B7002ED666 /* Rectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE190311F88AF500BF3275 /* Rectangle.m */; }; - B5C6FE54126DD2B7002ED666 /* VectorConverter.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F85386123929F800E6FD71 /* VectorConverter.m */; }; - B5C6FE55126DD2B7002ED666 /* IndexBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC1CE1248D4CB0066F5ED /* IndexBuffer.m */; }; - B5C6FE56126DD2B7002ED666 /* Effect.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E78B7912429BBD00DDD99A /* Effect.m */; }; - B5C6FE57126DD2B7002ED666 /* ContentIdentity.m in Sources */ = {isa = PBXBuildFile; fileRef = B59AD8221236E76E00F99511 /* ContentIdentity.m */; }; - B5C6FE58126DD2B7002ED666 /* Texture.m in Sources */ = {isa = PBXBuildFile; fileRef = B50806FE122E4ECF00C330E2 /* Texture.m */; }; - B5C6FE59126DD2B7002ED666 /* GestureSample.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EC5A4E1252C2DF001E7DFC /* GestureSample.m */; }; - B5C6FE5A126DD2B7002ED666 /* BlendState.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E78B6112429AEC00DDD99A /* BlendState.m */; }; - B5C6FE5B126DD2B7002ED666 /* VertexElement.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC2BB1248F2990066F5ED /* VertexElement.m */; }; - B5C6FE5C126DD2B7002ED666 /* SamplerStateCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC1DF1248D5640066F5ED /* SamplerStateCollection.m */; }; - B5C6FE5D126DD2B7002ED666 /* Texture2DContent.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC526123A79E800B72347 /* Texture2DContent.m */; }; - B5C6FE5E126DD2B7002ED666 /* GameComponentCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE7FE11FF0A0F000DB38B /* GameComponentCollection.m */; }; - B5C6FE5F126DD2B7002ED666 /* GameTime.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE82111FF0D4F000DB38B /* GameTime.m */; }; - B5C6FE60126DD2B7002ED666 /* BitmapContent.m in Sources */ = {isa = PBXBuildFile; fileRef = B59AD86D1236ED3900F99511 /* BitmapContent.m */; }; - B5C6FE61126DD2B7002ED666 /* TouchPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EC59F81252B917001E7DFC /* TouchPanel.m */; }; - B5C6FE62126DD2B7002ED666 /* TouchCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EC5A061252BE9E001E7DFC /* TouchCollection.m */; }; - B5C6FE63126DD2B7002ED666 /* Texture2D.m in Sources */ = {isa = PBXBuildFile; fileRef = B5080702122E4EE900C330E2 /* Texture2D.m */; }; - B5C6FE64126DD2B7002ED666 /* EffectTechnique.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA65D6124952C9001245A4 /* EffectTechnique.m */; }; - B5C6FE65126DD2B7002ED666 /* AdaptiveArray.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA637D124921D0001245A4 /* AdaptiveArray.m */; }; - B5C6FE66126DD2B7002ED666 /* Delegate.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE189311F8884A00BF3275 /* Delegate.m */; }; - B5C6FE67126DD2B7002ED666 /* GameView.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE194D11F89C1F00BF3275 /* GameView.m */; }; - B5C6FE68126DD2B7002ED666 /* VertexPositionColorTextureArray.m in Sources */ = {isa = PBXBuildFile; fileRef = B57E36CB124BE36E00DDAA42 /* VertexPositionColorTextureArray.m */; }; - B5C6FE69126DD2B7002ED666 /* VertexPositionTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA65521249482D001245A4 /* VertexPositionTexture.m */; }; - B5C6FE6A126DD2B7002ED666 /* VertexPositionColor.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA636E124917E2001245A4 /* VertexPositionColor.m */; }; - B5C6FE6B126DD2B7002ED666 /* ContentImporter.m in Sources */ = {isa = PBXBuildFile; fileRef = B59AD7EF1236E07300F99511 /* ContentImporter.m */; }; - B5C6FE6C126DD2B7002ED666 /* VertexBuffer.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC2D11248F98D0066F5ED /* VertexBuffer.m */; }; - B5C6FE6D126DD2B7002ED666 /* GameViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE194911F89C0900BF3275 /* GameViewController.m */; }; - B5C6FE6E126DD2B7002ED666 /* TextureImporter.m in Sources */ = {isa = PBXBuildFile; fileRef = B59AD8101236E25700F99511 /* TextureImporter.m */; }; - B5C6FE6F126DD2B7002ED666 /* GameComponentCollectionEventArgs.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE80911FF0C24000DB38B /* GameComponentCollectionEventArgs.m */; }; - B5C6FE70126DD2B7002ED666 /* GameWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE18FD11F88AD900BF3275 /* GameWindow.m */; }; - B5C6FE71126DD2B7002ED666 /* ColorPixelBitmapContent.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F8546C1239484700E6FD71 /* ColorPixelBitmapContent.m */; }; - B5C6FE72126DD2B7002ED666 /* DirectionalLight.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA660C124956CE001245A4 /* DirectionalLight.m */; }; - B5C6FE73126DD2B7002ED666 /* BasicEffect.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA660112495618001245A4 /* BasicEffect.m */; }; - B5C6FE74126DD2B7002ED666 /* Vector3.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F853B01239331C00E6FD71 /* Vector3.m */; }; - B5C6FE75126DD2B7002ED666 /* VertexArray.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA638E1249229D001245A4 /* VertexArray.m */; }; - B5C6FE76126DD2B7002ED666 /* MipmapChain.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC50C123A6F3600B72347 /* MipmapChain.m */; }; - B5C6FE77126DD2B7002ED666 /* Texture2DContentTypeReader.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC5CA123A92BB00B72347 /* Texture2DContentTypeReader.m */; }; - B5C6FE78126DD2B7002ED666 /* SpriteBatch.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E78B491242925600DDD99A /* SpriteBatch.m */; }; - B5C6FE79126DD2B7002ED666 /* VertexPositionColorArray.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA655F1249495C001245A4 /* VertexPositionColorArray.m */; }; - B5C6FE7A126DD2B7002ED666 /* Vector2.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F853B41239334300E6FD71 /* Vector2.m */; }; - B5C6FE7B126DD2B7002ED666 /* Vector4.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F8539C12392E2000E6FD71 /* Vector4.m */; }; - B5C6FE7C126DD2B7002ED666 /* DrawableGameComponent.m in Sources */ = {isa = PBXBuildFile; fileRef = B507691B1264EF0B00E4474F /* DrawableGameComponent.m */; }; - B5C6FE7D126DD2B7002ED666 /* ContentManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B5A1C83312353FBB00DB60CB /* ContentManager.m */; }; - B5C6FE7E126DD2B7002ED666 /* DepthStencilState.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E78B6512429AF900DDD99A /* DepthStencilState.m */; }; - B5C6FE7F126DD2B7002ED666 /* Quaternion.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F853CC1239357400E6FD71 /* Quaternion.m */; }; - B5C6FE80126DD2B7002ED666 /* Matrix.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F853A6123931F900E6FD71 /* Matrix.m */; }; - B5C6FE81126DD2B7002ED666 /* Color.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE90811FF352E000DB38B /* Color.m */; }; - B5C6FE82126DD2B7002ED666 /* Viewport.m in Sources */ = {isa = PBXBuildFile; fileRef = B57E3664124BC23E00DDAA42 /* Viewport.m */; }; - B5C6FE83126DD2B7002ED666 /* ContentItem.m in Sources */ = {isa = PBXBuildFile; fileRef = B59AD81E1236E59A00F99511 /* ContentItem.m */; }; - B5C6FE84126DD2B7002ED666 /* ContentTypeReaderManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC5C6123A928A00B72347 /* ContentTypeReaderManager.m */; }; - B5C6FE85126DD2B7002ED666 /* VertexPositionTextureArray.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA657712494AC3001245A4 /* VertexPositionTextureArray.m */; }; - B5C6FE86126DD2B7002ED666 /* VertexPositionColorTexture.m in Sources */ = {isa = PBXBuildFile; fileRef = B57E36BD124BE2DD00DDAA42 /* VertexPositionColorTexture.m */; }; - B5C6FE87126DD2B7002ED666 /* VertexBufferBinding.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC2EB1248FC7A0066F5ED /* VertexBufferBinding.m */; }; - B5C6FE88126DD2B7002ED666 /* VertexDeclaration.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC2AD1248F0C40066F5ED /* VertexDeclaration.m */; }; - B5C6FE89126DD2B7002ED666 /* GraphicsDeviceManager.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE99011FF546B000DB38B /* GraphicsDeviceManager.m */; }; - B5C6FE8A126DD2B7002ED666 /* ContentReader.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC5BC123A915700B72347 /* ContentReader.m */; }; - B5C6FE8B126DD2B7002ED666 /* EventArgs.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DE189711F8884A00BF3275 /* EventArgs.m */; }; - B5C6FE8C126DD2B7002ED666 /* TextureCollection.m in Sources */ = {isa = PBXBuildFile; fileRef = B5BBC1F01248D6090066F5ED /* TextureCollection.m */; }; - B5C6FE8D126DD2B7002ED666 /* GraphicsResource.m in Sources */ = {isa = PBXBuildFile; fileRef = B508070B122E4FBB00C330E2 /* GraphicsResource.m */; }; - B5C6FE8E126DD2B7002ED666 /* EffectPass.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EA65CE12495297001245A4 /* EffectPass.m */; }; - B5C6FE8F126DD2B7002ED666 /* SamplerState.m in Sources */ = {isa = PBXBuildFile; fileRef = B5E78B6D12429B1A00DDD99A /* SamplerState.m */; }; - B5C6FE90126DD2B7002ED666 /* GraphicsDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE85B11FF1326000DB38B /* GraphicsDevice.m */; }; - B5C6FE91126DD2B7002ED666 /* ContentTypeReader.m in Sources */ = {isa = PBXBuildFile; fileRef = B56CC5C2123A927500B72347 /* ContentTypeReader.m */; }; - B5C6FE92126DD2B7002ED666 /* ReachGraphicsDevice.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE8C211FF29E8000DB38B /* ReachGraphicsDevice.m */; }; - B5C6FE93126DD2B7002ED666 /* Protocols.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE89511FF16A3000DB38B /* Protocols.m */; }; - B5C6FEE9126DD2EA002ED666 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; }; B5DDE7EB11FF04E3000DB38B /* Game.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE7E911FF04E3000DB38B /* Game.h */; settings = {ATTRIBUTES = (Public, ); }; }; B5DDE7EC11FF04E3000DB38B /* Game.m in Sources */ = {isa = PBXBuildFile; fileRef = B5DDE7EA11FF04E3000DB38B /* Game.m */; }; B5DDE7EF11FF06BB000DB38B /* GameServiceContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = B5DDE7ED11FF06BB000DB38B /* GameServiceContainer.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -363,6 +176,10 @@ B5EC5A4F1252C2DF001E7DFC /* GestureSample.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC5A4D1252C2DF001E7DFC /* GestureSample.h */; settings = {ATTRIBUTES = (Public, ); }; }; B5EC5A501252C2DF001E7DFC /* GestureSample.m in Sources */ = {isa = PBXBuildFile; fileRef = B5EC5A4E1252C2DF001E7DFC /* GestureSample.m */; }; B5EC5A931252C710001E7DFC /* Retronator.Xni.Framework.Input.h in Headers */ = {isa = PBXBuildFile; fileRef = B5EC5A921252C710001E7DFC /* Retronator.Xni.Framework.Input.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B5F415B3127780840012BAF1 /* TextureCollection+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F415B1127780840012BAF1 /* TextureCollection+Internal.h */; }; + B5F415CF127781340012BAF1 /* SamplerStateCollection+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F415CD127781340012BAF1 /* SamplerStateCollection+Internal.h */; }; + B5F415DE127781D80012BAF1 /* XniSamplerEventArgs.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F415DC127781D80012BAF1 /* XniSamplerEventArgs.h */; }; + B5F415DF127781D80012BAF1 /* XniSamplerEventArgs.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F415DD127781D80012BAF1 /* XniSamplerEventArgs.m */; }; B5F4E2A912095FAF00B2FC0F /* XNI_Prefix.pch in Headers */ = {isa = PBXBuildFile; fileRef = B5F4E2A812095FAF00B2FC0F /* XNI_Prefix.pch */; }; B5F8536E1239206700E6FD71 /* PackedVectorStructs.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F8536D1239206700E6FD71 /* PackedVectorStructs.h */; settings = {ATTRIBUTES = (Public, ); }; }; B5F85387123929F800E6FD71 /* VectorConverter.h in Headers */ = {isa = PBXBuildFile; fileRef = B5F85385123929F800E6FD71 /* VectorConverter.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -385,6 +202,16 @@ B5F8546E1239484700E6FD71 /* ColorPixelBitmapContent.m in Sources */ = {isa = PBXBuildFile; fileRef = B5F8546C1239484700E6FD71 /* ColorPixelBitmapContent.m */; }; /* End PBXBuildFile section */ +/* Begin PBXContainerItemProxy section */ + B54279361277083D0015E810 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 0867D690FE84028FC02AAC07 /* Project object */; + proxyType = 1; + remoteGlobalIDString = D2AAC07D0554694100DB518D; + remoteInfo = XNI; + }; +/* End PBXContainerItemProxy section */ + /* Begin PBXFileReference section */ AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; B50769121264EE9500E4474F /* GameComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameComponent.h; sourceTree = ""; }; @@ -399,6 +226,7 @@ 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 = ""; }; + B53649F1127DE08100CAE30C /* GameWindow+Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "GameWindow+Internal.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 = ""; }; @@ -458,7 +286,7 @@ B5BBC2D11248F98D0066F5ED /* VertexBuffer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VertexBuffer.m; sourceTree = ""; }; B5BBC2EA1248FC7A0066F5ED /* VertexBufferBinding.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VertexBufferBinding.h; sourceTree = ""; }; B5BBC2EB1248FC7A0066F5ED /* VertexBufferBinding.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VertexBufferBinding.m; sourceTree = ""; }; - B5C6FDD3126DD292002ED666 /* libXNI Release.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libXNI Release.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + B5C6FDD3126DD292002ED666 /* libXNI.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libXNI.a; sourceTree = BUILT_PRODUCTS_DIR; }; B5DDE7E911FF04E3000DB38B /* Game.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Game.h; sourceTree = ""; }; B5DDE7EA11FF04E3000DB38B /* Game.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Game.m; sourceTree = ""; }; B5DDE7ED11FF06BB000DB38B /* GameServiceContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GameServiceContainer.h; sourceTree = ""; }; @@ -555,6 +383,10 @@ B5EC5A4D1252C2DF001E7DFC /* GestureSample.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GestureSample.h; sourceTree = ""; }; B5EC5A4E1252C2DF001E7DFC /* GestureSample.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GestureSample.m; sourceTree = ""; }; B5EC5A921252C710001E7DFC /* Retronator.Xni.Framework.Input.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Retronator.Xni.Framework.Input.h; sourceTree = ""; }; + B5F415B1127780840012BAF1 /* TextureCollection+Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "TextureCollection+Internal.h"; sourceTree = ""; }; + B5F415CD127781340012BAF1 /* SamplerStateCollection+Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "SamplerStateCollection+Internal.h"; sourceTree = ""; }; + B5F415DC127781D80012BAF1 /* XniSamplerEventArgs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XniSamplerEventArgs.h; sourceTree = ""; }; + B5F415DD127781D80012BAF1 /* XniSamplerEventArgs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = XniSamplerEventArgs.m; sourceTree = ""; }; B5F4E2A812095FAF00B2FC0F /* XNI_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = XNI_Prefix.pch; sourceTree = ""; }; B5F8536D1239206700E6FD71 /* PackedVectorStructs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PackedVectorStructs.h; sourceTree = ""; }; B5F85385123929F800E6FD71 /* VectorConverter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VectorConverter.h; sourceTree = ""; }; @@ -583,7 +415,6 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - B5C6FEE9126DD2EA002ED666 /* Foundation.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -602,7 +433,7 @@ isa = PBXGroup; children = ( D2AAC07E0554694100DB518D /* libXNI.a */, - B5C6FDD3126DD292002ED666 /* libXNI Release.a */, + B5C6FDD3126DD292002ED666 /* libXNI.a */, ); name = Products; sourceTree = ""; @@ -772,9 +603,13 @@ B5E78B6912429B0E00DDD99A /* RasterizerState.m */, B5E78B6C12429B1A00DDD99A /* SamplerState.h */, B5E78B6D12429B1A00DDD99A /* SamplerState.m */, + B5F415DC127781D80012BAF1 /* XniSamplerEventArgs.h */, + B5F415DD127781D80012BAF1 /* XniSamplerEventArgs.m */, B5BBC1DE1248D5640066F5ED /* SamplerStateCollection.h */, + B5F415CD127781340012BAF1 /* SamplerStateCollection+Internal.h */, B5BBC1DF1248D5640066F5ED /* SamplerStateCollection.m */, B5BBC1EF1248D6090066F5ED /* TextureCollection.h */, + B5F415B1127780840012BAF1 /* TextureCollection+Internal.h */, B5BBC1F01248D6090066F5ED /* TextureCollection.m */, B57E3663124BC23E00DDAA42 /* Viewport.h */, B57E3664124BC23E00DDAA42 /* Viewport.m */, @@ -828,6 +663,7 @@ B5DDE7E911FF04E3000DB38B /* Game.h */, B5DDE7EA11FF04E3000DB38B /* Game.m */, B5DE18FC11F88AD900BF3275 /* GameWindow.h */, + B53649F1127DE08100CAE30C /* GameWindow+Internal.h */, B5DE18FD11F88AD900BF3275 /* GameWindow.m */, B5DE194811F89C0900BF3275 /* GameViewController.h */, B5DE194911F89C0900BF3275 /* GameViewController.m */, @@ -922,117 +758,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - B5C6FDD9126DD2AE002ED666 /* XNI_Prefix.pch in Headers */, - B5C6FDDA126DD2AE002ED666 /* GameView.h in Headers */, - B5C6FDDB126DD2AE002ED666 /* TouchPanel+Internal.h in Headers */, - B5C6FDDC126DD2AE002ED666 /* GameViewController.h in Headers */, - B5C6FDDD126DD2AE002ED666 /* VertexBufferBinding.h in Headers */, - B5C6FDDE126DD2AE002ED666 /* IndexBuffer.h in Headers */, - B5C6FDDF126DD2AE002ED666 /* Vector2.h in Headers */, - B5C6FDE0126DD2AE002ED666 /* Retronator.Xni.Framework.Content.classes.h in Headers */, - B5C6FDE1126DD2AE002ED666 /* Vector2Struct.h in Headers */, - B5C6FDE2126DD2AE002ED666 /* Effect.h in Headers */, - B5C6FDE3126DD2AE002ED666 /* AdaptiveArray.h in Headers */, - B5C6FDE4126DD2AE002ED666 /* BlendState.h in Headers */, - B5C6FDE5126DD2AE002ED666 /* TouchPanel.h in Headers */, - B5C6FDE6126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.classes.h in Headers */, - B5C6FDE7126DD2AE002ED666 /* SamplerState.h in Headers */, - B5C6FDE8126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.h in Headers */, - B5C6FDE9126DD2AE002ED666 /* Matrix.h in Headers */, - B5C6FDEA126DD2AE002ED666 /* Retronator.Xni.Framework.Content.h in Headers */, - B5C6FDEB126DD2AE002ED666 /* ContentIdentity.h in Headers */, - B5C6FDEC126DD2AE002ED666 /* Texture2D.h in Headers */, - B5C6FDED126DD2AE002ED666 /* VertexPositionColor.h in Headers */, - B5C6FDEE126DD2AE002ED666 /* MatrixStruct.h in Headers */, - B5C6FDEF126DD2AE002ED666 /* Vector4.h in Headers */, - B5C6FDF0126DD2AE002ED666 /* Retronator.Xni.Framework.Input.Touch.classes.h in Headers */, - B5C6FDF1126DD2AE002ED666 /* Texture.h in Headers */, - B5C6FDF2126DD2AE002ED666 /* ContentItem.h in Headers */, - B5C6FDF3126DD2AE002ED666 /* EffectTechnique.h in Headers */, - B5C6FDF4126DD2AE002ED666 /* IGraphicsDeviceService.h in Headers */, - B5C6FDF5126DD2AE002ED666 /* SamplerStateCollection.h in Headers */, - B5C6FDF6126DD2AE002ED666 /* VertexArray.h in Headers */, - B5C6FDF7126DD2AE002ED666 /* FrameworkEnums.h in Headers */, - B5C6FDF8126DD2AE002ED666 /* Color.h in Headers */, - B5C6FDF9126DD2AE002ED666 /* MipmapChainCollection.h in Headers */, - B5C6FDFA126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.Graphics.h in Headers */, - B5C6FDFB126DD2AE002ED666 /* Retronator.Xni.Framework.Input.h in Headers */, - B5C6FDFC126DD2AE002ED666 /* VertexPositionTexture.h in Headers */, - B5C6FDFD126DD2AE002ED666 /* IServiceProvider.h in Headers */, - B5C6FDFE126DD2AE002ED666 /* System.h in Headers */, - B5C6FDFF126DD2AE002ED666 /* Retronator.Xni.Framework.Input.Touch.h in Headers */, - B5C6FE00126DD2AE002ED666 /* RasterizerState.h in Headers */, - B5C6FE01126DD2AE002ED666 /* IGameComponent.h in Headers */, - B5C6FE02126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.h in Headers */, - B5C6FE03126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.PackedVector.classes.h in Headers */, - B5C6FE04126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.classes.h in Headers */, - B5C6FE05126DD2AE002ED666 /* DepthStencilState.h in Headers */, - B5C6FE06126DD2AE002ED666 /* PackedVectorStructs.h in Headers */, - B5C6FE07126DD2AE002ED666 /* VertexPositionColorArray.h in Headers */, - B5C6FE08126DD2AE002ED666 /* GameHost.h in Headers */, - B5C6FE09126DD2AE002ED666 /* ColorPixelBitmapContent.h in Headers */, - B5C6FE0A126DD2AE002ED666 /* GestureSample.h in Headers */, - B5C6FE0B126DD2AE002ED666 /* GameWindow.h in Headers */, - B5C6FE0C126DD2AE002ED666 /* Rectangle.h in Headers */, - B5C6FE0D126DD2AE002ED666 /* TouchLocation.h in Headers */, - B5C6FE0E126DD2AE002ED666 /* SpriteBatch.h in Headers */, - B5C6FE0F126DD2AE002ED666 /* TextureContent.h in Headers */, - B5C6FE10126DD2AE002ED666 /* VertexPositionColorTextureArray.h in Headers */, - B5C6FE11126DD2AE002ED666 /* GameTime.h in Headers */, - B5C6FE12126DD2AE002ED666 /* BasicEffect.h in Headers */, - B5C6FE13126DD2AE002ED666 /* Retronator.Xni.Framework.h in Headers */, - B5C6FE14126DD2AE002ED666 /* Quaternion.h in Headers */, - B5C6FE15126DD2AE002ED666 /* IDrawable.h in Headers */, - B5C6FE16126DD2AE002ED666 /* DrawableGameComponent.h in Headers */, - B5C6FE17126DD2AE002ED666 /* VertexElement.h in Headers */, - B5C6FE18126DD2AE002ED666 /* TextureImporter.h in Headers */, - B5C6FE19126DD2AE002ED666 /* InputEnums.h in Headers */, - B5C6FE1A126DD2AE002ED666 /* GameComponentCollectionEventArgs.h in Headers */, - B5C6FE1B126DD2AE002ED666 /* RectangleStruct.h in Headers */, - B5C6FE1C126DD2AE002ED666 /* IGraphicsDeviceManager.h in Headers */, - B5C6FE1D126DD2AE002ED666 /* IUpdatable.h in Headers */, - B5C6FE1E126DD2AE002ED666 /* VertexDeclaration.h in Headers */, - B5C6FE1F126DD2AE002ED666 /* ReachGraphicsDevice.h in Headers */, - B5C6FE20126DD2AE002ED666 /* Retronator.Xni.Framework.Content.Pipeline.Graphics.classes.h in Headers */, - B5C6FE21126DD2AE002ED666 /* Vector4Struct.h in Headers */, - B5C6FE22126DD2AE002ED666 /* ContentManager.h in Headers */, - B5C6FE23126DD2AE002ED666 /* Game.h in Headers */, - B5C6FE24126DD2AE002ED666 /* ContentTypeReaderManager.h in Headers */, - B5C6FE25126DD2AE002ED666 /* GameComponent.h in Headers */, - B5C6FE26126DD2AE002ED666 /* TextureCollection.h in Headers */, - B5C6FE27126DD2AE002ED666 /* Protocols.h in Headers */, - B5C6FE28126DD2AE002ED666 /* Viewport.h in Headers */, - B5C6FE29126DD2AE002ED666 /* ContentTypeReader.h in Headers */, - B5C6FE2A126DD2AE002ED666 /* Texture2DContentTypeReader.h in Headers */, - B5C6FE2B126DD2AE002ED666 /* Texture2DContent.h in Headers */, - B5C6FE2C126DD2AE002ED666 /* VectorConverter.h in Headers */, - B5C6FE2D126DD2AE002ED666 /* BitmapContent.h in Headers */, - B5C6FE2E126DD2AE002ED666 /* GraphicsEnums.h in Headers */, - B5C6FE2F126DD2AE002ED666 /* VertexStructs.h in Headers */, - B5C6FE30126DD2AE002ED666 /* GraphicsResource.h in Headers */, - B5C6FE31126DD2AE002ED666 /* Vector3Struct.h in Headers */, - B5C6FE32126DD2AE002ED666 /* Event.h in Headers */, - B5C6FE33126DD2AE002ED666 /* VertexBuffer.h in Headers */, - B5C6FE34126DD2AE002ED666 /* HiDefGraphicsDevice.h in Headers */, - B5C6FE35126DD2AE002ED666 /* EventArgs.h in Headers */, - B5C6FE36126DD2AE002ED666 /* GraphicsDeviceManager.h in Headers */, - B5C6FE37126DD2AE002ED666 /* TouchCollection.h in Headers */, - B5C6FE38126DD2AE002ED666 /* DirectionalLight.h in Headers */, - B5C6FE39126DD2AE002ED666 /* EffectPass.h in Headers */, - B5C6FE3A126DD2AE002ED666 /* GameComponentCollection.h in Headers */, - B5C6FE3B126DD2AE002ED666 /* System.classes.h in Headers */, - B5C6FE3C126DD2AE002ED666 /* Vector3.h in Headers */, - B5C6FE3D126DD2AE002ED666 /* VertexPositionColorTexture.h in Headers */, - B5C6FE3E126DD2AE002ED666 /* Delegate.h in Headers */, - B5C6FE3F126DD2AE002ED666 /* VertexPositionTextureArray.h in Headers */, - B5C6FE40126DD2AE002ED666 /* ContentReader.h in Headers */, - B5C6FE41126DD2AE002ED666 /* PixelBitmapContent.h in Headers */, - B5C6FE42126DD2AE002ED666 /* ContentImporter.h in Headers */, - B5C6FE43126DD2AE002ED666 /* GraphicsDevice.h in Headers */, - B5C6FE44126DD2AE002ED666 /* Retronator.Xni.Framework.classes.h in Headers */, - B5C6FE45126DD2AE002ED666 /* Retronator.Xni.Framework.Graphics.PackedVector.h in Headers */, - B5C6FE46126DD2AE002ED666 /* GameServiceContainer.h in Headers */, - B5C6FE47126DD2AE002ED666 /* MipmapChain.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1151,6 +876,10 @@ B52BADAD1255426600B308F6 /* FrameworkEnums.h in Headers */, B50769141264EE9500E4474F /* GameComponent.h in Headers */, B507691C1264EF0B00E4474F /* DrawableGameComponent.h in Headers */, + B5F415B3127780840012BAF1 /* TextureCollection+Internal.h in Headers */, + B5F415CF127781340012BAF1 /* SamplerStateCollection+Internal.h in Headers */, + B5F415DE127781D80012BAF1 /* XniSamplerEventArgs.h in Headers */, + B53649F2127DE08100CAE30C /* GameWindow+Internal.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1169,10 +898,11 @@ buildRules = ( ); dependencies = ( + B54279371277083D0015E810 /* PBXTargetDependency */, ); name = "XNI Release"; productName = "XNI Release"; - productReference = B5C6FDD3126DD292002ED666 /* libXNI Release.a */; + productReference = B5C6FDD3126DD292002ED666 /* libXNI.a */; productType = "com.apple.product-type.library.static"; }; D2AAC07D0554694100DB518D /* XNI */ = { @@ -1233,7 +963,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "# Purpose:\n# Create a static library for iPhone from within XCode\n# Because Apple staff DELIBERATELY broke Xcode to make this impossible from the GUI (Xcode 3.2.3 specifically states this in the Release notes!)\n# ...no, I don't understand why they did such a stupid thing either!\n#\n# Author: Adam Martin - http://twitter.com/redglassesapps\n# Based on: original script from Eonil (main changes: Eonil's script WILL NOT WORK in Xcode GUI - it WILL CRASH YOUR COMPUTER)\n#\n# More info: see this Stack Overflow question: http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4\n\n\n#####################[ part 1 ]##################\n# First, work out the BASESDK version number (NB: Apple ought to report this, but they hide it)\n# (incidental: searching for substrings in sh is a nightmare! Sob)\n\nSDK_VERSION=$(echo ${SDK_NAME} | grep -o '.\\{3\\}$')\n\n# Next, work out if we're in SIM or DEVICE\n\nif [ ${PLATFORM_NAME} = \"iphonesimulator\" ]\nthen\nOTHER_SDK_TO_BUILD=iphoneos${SDK_VERSION}\nelse\nOTHER_SDK_TO_BUILD=iphonesimulator${SDK_VERSION}\nfi\n\necho \"XCode has selected SDK: ${PLATFORM_NAME} with version: ${SDK_VERSION} (although back-targetting: ${IPHONEOS_DEPLOYMENT_TARGET})\"\necho \"...therefore, OTHER_SDK_TO_BUILD = ${OTHER_SDK_TO_BUILD}\"\n#\n#####################[ end of part 1 ]##################\n\n#####################[ part 2 ]##################\n#\n# IF this is the original invocation, invoke WHATEVER other builds are required\n#\n# Xcode is already building ONE target...\n#\n# ...but this is a LIBRARY, so Apple is wrong to set it to build just one.\n# ...we need to build ALL targets\n# ...we MUST NOT re-build the target that is ALREADY being built: Xcode WILL CRASH YOUR COMPUTER if you try this (infinite recursion!)\n#\n#\n# So: build ONLY the missing platforms/configurations.\n\nif [ \"true\" = ${ALREADYINVOKED} ]\nthen\necho \"RECURSION: I am NOT the root invocation, so I'm NOT going to recurse\"\nelse\n# CRITICAL:\n# Prevent infinite recursion (Xcode sucks)\nexport ALREADYINVOKED=\"true\"\n\necho \"RECURSION: I am the root ... recursing all missing build targets NOW...\"\necho \"RECURSION: ...about to invoke: xcodebuild -configuration \\\"${CONFIGURATION}\\\" -target \\\"${TARGET_NAME}\\\" -sdk \\\"${OTHER_SDK_TO_BUULD}\\\" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO\"\nxcodebuild -configuration \"${CONFIGURATION}\" -target \"${TARGET_NAME}\" -sdk \"${OTHER_SDK_TO_BUILD}\" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO\nfi\n\nACTION=\"build\"\n\n#Merge all platform binaries as a fat binary for each configurations.\n\nCURRENTCONFIG_DEVICE_DIR=${SYMROOT}/${CONFIGURATION}-iphoneos\nCURRENTCONFIG_SIMULATOR_DIR=${SYMROOT}/${CONFIGURATION}-iphonesimulator\nCURRENTCONFIG_UNIVERSAL_DIR=${SYMROOT}/${CONFIGURATION}-universal\n\n# ... remove the products of previous runs of this script\n# NB: this directory is ONLY created by this script - it should be safe to delete!\n\nrm -rf \"${CURRENTCONFIG_UNIVERSAL_DIR}\"\nmkdir \"${CURRENTCONFIG_UNIVERSAL_DIR}\"\n\n#\necho \"lipo: for current configuration (${CONFIGURATION}) creating output file: ${CURRENTCONFIG_UNIVERSAL_DIR}/${EXECUTABLE_NAME}\"\nlipo -create -output \"${CURRENTCONFIG_UNIVERSAL_DIR}/${EXECUTABLE_NAME}\" \"${CURRENTCONFIG_DEVICE_DIR}/${EXECUTABLE_NAME}\" \"${CURRENTCONFIG_SIMULATOR_DIR}/${EXECUTABLE_NAME}\""; + shellScript = "# Purpose:\n# Create a static library for iPhone from within XCode\n# Because Apple staff DELIBERATELY broke Xcode to make this impossible from the GUI (Xcode 3.2.3 specifically states this in the Release notes!)\n# ...no, I don't understand why they did such a stupid thing either!\n#\n# Author: Adam Martin - http://twitter.com/redglassesapps\n# Based on: original script from Eonil (main changes: Eonil's script WILL NOT WORK in Xcode GUI - it WILL CRASH YOUR COMPUTER)\n#\n# More info: see this Stack Overflow question: http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4\n\n\n#####################[ part 1 ]##################\n# First, work out the BASESDK version number (NB: Apple ought to report this, but they hide it)\n# (incidental: searching for substrings in sh is a nightmare! Sob)\n\nSDK_VERSION=$(echo ${SDK_NAME} | grep -o '.\\{3\\}$')\n\n# Next, work out if we're in SIM or DEVICE\n\nif [ ${PLATFORM_NAME} = \"iphonesimulator\" ]\nthen\nOTHER_SDK_TO_BUILD=iphoneos${SDK_VERSION}\nelse\nOTHER_SDK_TO_BUILD=iphonesimulator${SDK_VERSION}\nfi\n\necho \"XCode has selected SDK: ${PLATFORM_NAME} with version: ${SDK_VERSION} (although back-targetting: ${IPHONEOS_DEPLOYMENT_TARGET})\"\necho \"...therefore, OTHER_SDK_TO_BUILD = ${OTHER_SDK_TO_BUILD}\"\n#\n#####################[ end of part 1 ]##################\n\n#####################[ part 2 ]##################\n#\n# IF this is the original invocation, invoke WHATEVER other builds are required\n#\n# Xcode is already building ONE target...\n#\n# ...but this is a LIBRARY, so Apple is wrong to set it to build just one.\n# ...we need to build ALL targets\n# ...we MUST NOT re-build the target that is ALREADY being built: Xcode WILL CRASH YOUR COMPUTER if you try this (infinite recursion!)\n#\n#\n# So: build ONLY the missing platforms/configurations.\n\nif [ \"true\" = ${ALREADYINVOKED} ]\nthen\necho \"RECURSION: I am NOT the root invocation, so I'm NOT going to recurse\"\nelse\n# CRITICAL:\n# Prevent infinite recursion (Xcode sucks)\nexport ALREADYINVOKED=\"true\"\n\necho \"RECURSION: I am the root ... recursing all missing build targets NOW...\"\necho \"RECURSION: ...about to invoke: xcodebuild -configuration \\\"${CONFIGURATION}\\\" -target \\\"${TARGET_NAME}\\\" -sdk \\\"${OTHER_SDK_TO_BUULD}\\\" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO\"\nxcodebuild -configuration \"${CONFIGURATION}\" -target \"${TARGET_NAME}\" -sdk \"${OTHER_SDK_TO_BUILD}\" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO\nfi\n\nACTION=\"build\"\n\n#Merge all platform binaries as a fat binary for each configurations.\n\nCURRENTCONFIG_DEVICE_DIR=${SYMROOT}/${CONFIGURATION}-iphoneos\nCURRENTCONFIG_SIMULATOR_DIR=${SYMROOT}/${CONFIGURATION}-iphonesimulator\nCURRENTCONFIG_UNIVERSAL_DIR=${SYMROOT}/${CONFIGURATION}-universal\n\n# ... remove the products of previous runs of this script\n# NB: this directory is ONLY created by this script - it should be safe to delete!\n\nrm -rf \"${CURRENTCONFIG_UNIVERSAL_DIR}\"\nmkdir \"${CURRENTCONFIG_UNIVERSAL_DIR}\"\n\n#\necho \"lipo: for current configuration (${CONFIGURATION}) creating output file: ${CURRENTCONFIG_UNIVERSAL_DIR}/${EXECUTABLE_NAME}\"\nlipo -create -output \"${CURRENTCONFIG_UNIVERSAL_DIR}/${EXECUTABLE_NAME}\" \"${CURRENTCONFIG_DEVICE_DIR}/${EXECUTABLE_NAME}\" \"${CURRENTCONFIG_SIMULATOR_DIR}/${EXECUTABLE_NAME}\"\n\n# Copy headers\ncp -r \"${SYMROOT}/${CONFIGURATION}-${PLATFORM_NAME}/usr/\" \"${CURRENTCONFIG_UNIVERSAL_DIR}/usr/\""; }; /* End PBXShellScriptBuildPhase section */ @@ -1242,82 +972,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - B5C6FE48126DD2B7002ED666 /* GameHost.m in Sources */, - B5C6FE49126DD2B7002ED666 /* HiDefGraphicsDevice.m in Sources */, - B5C6FE4A126DD2B7002ED666 /* MipmapChainCollection.m in Sources */, - B5C6FE4B126DD2B7002ED666 /* Event.m in Sources */, - B5C6FE4C126DD2B7002ED666 /* RasterizerState.m in Sources */, - B5C6FE4D126DD2B7002ED666 /* Game.m in Sources */, - B5C6FE4E126DD2B7002ED666 /* PixelBitmapContent.m in Sources */, - B5C6FE4F126DD2B7002ED666 /* TextureContent.m in Sources */, - B5C6FE50126DD2B7002ED666 /* TouchLocation.m in Sources */, - B5C6FE51126DD2B7002ED666 /* GameServiceContainer.m in Sources */, - B5C6FE52126DD2B7002ED666 /* GameComponent.m in Sources */, - B5C6FE53126DD2B7002ED666 /* Rectangle.m in Sources */, - B5C6FE54126DD2B7002ED666 /* VectorConverter.m in Sources */, - B5C6FE55126DD2B7002ED666 /* IndexBuffer.m in Sources */, - B5C6FE56126DD2B7002ED666 /* Effect.m in Sources */, - B5C6FE57126DD2B7002ED666 /* ContentIdentity.m in Sources */, - B5C6FE58126DD2B7002ED666 /* Texture.m in Sources */, - B5C6FE59126DD2B7002ED666 /* GestureSample.m in Sources */, - B5C6FE5A126DD2B7002ED666 /* BlendState.m in Sources */, - B5C6FE5B126DD2B7002ED666 /* VertexElement.m in Sources */, - B5C6FE5C126DD2B7002ED666 /* SamplerStateCollection.m in Sources */, - B5C6FE5D126DD2B7002ED666 /* Texture2DContent.m in Sources */, - B5C6FE5E126DD2B7002ED666 /* GameComponentCollection.m in Sources */, - B5C6FE5F126DD2B7002ED666 /* GameTime.m in Sources */, - B5C6FE60126DD2B7002ED666 /* BitmapContent.m in Sources */, - B5C6FE61126DD2B7002ED666 /* TouchPanel.m in Sources */, - B5C6FE62126DD2B7002ED666 /* TouchCollection.m in Sources */, - B5C6FE63126DD2B7002ED666 /* Texture2D.m in Sources */, - B5C6FE64126DD2B7002ED666 /* EffectTechnique.m in Sources */, - B5C6FE65126DD2B7002ED666 /* AdaptiveArray.m in Sources */, - B5C6FE66126DD2B7002ED666 /* Delegate.m in Sources */, - B5C6FE67126DD2B7002ED666 /* GameView.m in Sources */, - B5C6FE68126DD2B7002ED666 /* VertexPositionColorTextureArray.m in Sources */, - B5C6FE69126DD2B7002ED666 /* VertexPositionTexture.m in Sources */, - B5C6FE6A126DD2B7002ED666 /* VertexPositionColor.m in Sources */, - B5C6FE6B126DD2B7002ED666 /* ContentImporter.m in Sources */, - B5C6FE6C126DD2B7002ED666 /* VertexBuffer.m in Sources */, - B5C6FE6D126DD2B7002ED666 /* GameViewController.m in Sources */, - B5C6FE6E126DD2B7002ED666 /* TextureImporter.m in Sources */, - B5C6FE6F126DD2B7002ED666 /* GameComponentCollectionEventArgs.m in Sources */, - B5C6FE70126DD2B7002ED666 /* GameWindow.m in Sources */, - B5C6FE71126DD2B7002ED666 /* ColorPixelBitmapContent.m in Sources */, - B5C6FE72126DD2B7002ED666 /* DirectionalLight.m in Sources */, - B5C6FE73126DD2B7002ED666 /* BasicEffect.m in Sources */, - B5C6FE74126DD2B7002ED666 /* Vector3.m in Sources */, - B5C6FE75126DD2B7002ED666 /* VertexArray.m in Sources */, - B5C6FE76126DD2B7002ED666 /* MipmapChain.m in Sources */, - B5C6FE77126DD2B7002ED666 /* Texture2DContentTypeReader.m in Sources */, - B5C6FE78126DD2B7002ED666 /* SpriteBatch.m in Sources */, - B5C6FE79126DD2B7002ED666 /* VertexPositionColorArray.m in Sources */, - B5C6FE7A126DD2B7002ED666 /* Vector2.m in Sources */, - B5C6FE7B126DD2B7002ED666 /* Vector4.m in Sources */, - B5C6FE7C126DD2B7002ED666 /* DrawableGameComponent.m in Sources */, - B5C6FE7D126DD2B7002ED666 /* ContentManager.m in Sources */, - B5C6FE7E126DD2B7002ED666 /* DepthStencilState.m in Sources */, - B5C6FE7F126DD2B7002ED666 /* Quaternion.m in Sources */, - B5C6FE80126DD2B7002ED666 /* Matrix.m in Sources */, - B5C6FE81126DD2B7002ED666 /* Color.m in Sources */, - B5C6FE82126DD2B7002ED666 /* Viewport.m in Sources */, - B5C6FE83126DD2B7002ED666 /* ContentItem.m in Sources */, - B5C6FE84126DD2B7002ED666 /* ContentTypeReaderManager.m in Sources */, - B5C6FE85126DD2B7002ED666 /* VertexPositionTextureArray.m in Sources */, - B5C6FE86126DD2B7002ED666 /* VertexPositionColorTexture.m in Sources */, - B5C6FE87126DD2B7002ED666 /* VertexBufferBinding.m in Sources */, - B5C6FE88126DD2B7002ED666 /* VertexDeclaration.m in Sources */, - B5C6FE89126DD2B7002ED666 /* GraphicsDeviceManager.m in Sources */, - B5C6FE8A126DD2B7002ED666 /* ContentReader.m in Sources */, - B5C6FE8B126DD2B7002ED666 /* EventArgs.m in Sources */, - B5C6FE8C126DD2B7002ED666 /* TextureCollection.m in Sources */, - B5C6FE8D126DD2B7002ED666 /* GraphicsResource.m in Sources */, - B5C6FE8E126DD2B7002ED666 /* EffectPass.m in Sources */, - B5C6FE8F126DD2B7002ED666 /* SamplerState.m in Sources */, - B5C6FE90126DD2B7002ED666 /* GraphicsDevice.m in Sources */, - B5C6FE91126DD2B7002ED666 /* ContentTypeReader.m in Sources */, - B5C6FE92126DD2B7002ED666 /* ReachGraphicsDevice.m in Sources */, - B5C6FE93126DD2B7002ED666 /* Protocols.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1401,11 +1055,20 @@ B5EC5A501252C2DF001E7DFC /* GestureSample.m in Sources */, B50769151264EE9500E4474F /* GameComponent.m in Sources */, B507691D1264EF0B00E4474F /* DrawableGameComponent.m in Sources */, + B5F415DF127781D80012BAF1 /* XniSamplerEventArgs.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; /* End PBXSourcesBuildPhase section */ +/* Begin PBXTargetDependency section */ + B54279371277083D0015E810 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = D2AAC07D0554694100DB518D /* XNI */; + targetProxy = B54279361277083D0015E810 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + /* Begin XCBuildConfiguration section */ 1DEB921F08733DC00010E9CD /* Debug */ = { isa = XCBuildConfiguration; @@ -1475,7 +1138,7 @@ GCC_DYNAMIC_NO_PIC = NO; GCC_OPTIMIZATION_LEVEL = 0; PREBINDING = NO; - PRODUCT_NAME = "XNI Release"; + PRODUCT_NAME = XNI; }; name = Debug; }; @@ -1487,7 +1150,7 @@ DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; GCC_ENABLE_FIX_AND_CONTINUE = NO; PREBINDING = NO; - PRODUCT_NAME = "XNI Release"; + PRODUCT_NAME = XNI; ZERO_LINK = NO; }; name = Release;