From e76d820a6a16ef69224590ae19b55f659bd6eacc Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 10:10:38 -0300 Subject: [PATCH 01/44] macOS Cocoa: fix reshape, resize, and fullscreen handling - Add reshape method to MyOpenGLView: was registered as selector but never defined, so window resize never updated game screen info. Now calls InitDeviceScreenInfoEx with correct bounds + openGLContext update. - Remove premature OnResizeFinished call from windowWillResize (used old bounds before resize completed). windowDidResize -> reshape is now the single correct path for all resize and fullscreen transitions. - Remove redundant GetBaseApp()->Init() from prepareOpenGL: InitDeviceScreenInfoEx already guards with IsInitted() and owns the init call. --- shared/OSX/app/MainController.mm | 22 +++------------------- shared/OSX/app/MyOpenGLView.mm | 18 +++++++++++++++--- 2 files changed, 18 insertions(+), 22 deletions(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index 46ac32cb..d3ccc472 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -61,30 +61,14 @@ - (NSSize) computeFrameSize: (NSSize) frameSize - (NSSize)windowWillResize:(NSWindow*)sender toSize:(NSSize)frameSize { - - frameSize = [self computeFrameSize: frameSize]; - - [self OnResizeFinished]; - - return frameSize; -} - -- (void) OnResizeFinished -{ - NSRect bounds = [openGLView bounds]; - LogMsg("Finished resizing"); - // CGLLockContext( (_CGLContextObject*)[[openGLView openGLContext] CGLContextObj]); - InitDeviceScreenInfoEx(bounds.size.width, bounds.size.height, ORIENTATION_LANDSCAPE_LEFT); - // CGLUnlockContext( (_CGLContextObject*) [[openGLView openGLContext] CGLContextObj]); - + return frameSize; } - (void) windowDidResize: (NSNotification *) aNotification { - NSLog (@"windowDidResize: called"); - - [openGLView reshape]; + // reshape updates OpenGL viewport and calls InitDeviceScreenInfoEx with correct new bounds + [openGLView reshape]; } - (void)windowDidMiniaturize:(NSNotification *)notification diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index 1f473d82..5021388b 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -54,15 +54,27 @@ - (void) prepareOpenGL [[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; // set to vbl sync - GetBaseApp()->Init(); - NSRect bounds = [self bounds]; - + + // InitDeviceScreenInfoEx handles Init() internally (guards with IsInitted()) InitDeviceScreenInfoEx(bounds.size.width, bounds.size.height, ORIENTATION_LANDSCAPE_LEFT); } // --------------------------------- +- (void) reshape +{ + [super reshape]; + NSRect bounds = [self bounds]; + int w = (int)bounds.size.width; + int h = (int)bounds.size.height; + if (w > 0 && h > 0) + { + InitDeviceScreenInfoEx(w, h, ORIENTATION_LANDSCAPE_LEFT); + [[self openGLContext] update]; + } +} + - (void) update // window resizes, moves and display changes (resize, depth and display config change) { [super update]; From b2582ec44593c58bd39b2def875fa9bfeb50388e Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 10:21:32 -0300 Subject: [PATCH 02/44] macOS: add OSXToggleFullscreen() and fullscreen state delegates - OSXUtils.h/mm: add OSXToggleFullscreen() using dispatch_async + [window toggleFullScreen:nil] so App.cpp can call it from C++ without importing Cocoa headers in a .cpp file. - MainController.mm: add windowDidEnterFullScreen/windowDidExitFullScreen delegates to track g_bIsFullScreen and update the fullscreen var, and call reshape on exit to restore correct viewport. --- shared/OSX/OSXUtils.h | 1 + shared/OSX/OSXUtils.mm | 8 ++++++++ shared/OSX/app/MainController.mm | 17 +++++++++++++++++ 3 files changed, 26 insertions(+) diff --git a/shared/OSX/OSXUtils.h b/shared/OSX/OSXUtils.h index 7cbc3484..3121d53f 100644 --- a/shared/OSX/OSXUtils.h +++ b/shared/OSX/OSXUtils.h @@ -13,5 +13,6 @@ void InitDeviceScreenInfoEx(int width, int height, int orientation); int ConvertOSXKeycodeToProtonVirtualKey(int c); +void OSXToggleFullscreen(); #endif diff --git a/shared/OSX/OSXUtils.mm b/shared/OSX/OSXUtils.mm index 3049521a..33886704 100644 --- a/shared/OSX/OSXUtils.mm +++ b/shared/OSX/OSXUtils.mm @@ -572,6 +572,14 @@ int GetTouchesReceived() { return 0; //uh, not accurate } + +void OSXToggleFullscreen() +{ + dispatch_async(dispatch_get_main_queue(), ^{ + NSWindow *window = [NSApp mainWindow]; + [window toggleFullScreen:nil]; + }); +} bool IsStillLoadingPersistentData() { return false; diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index d3ccc472..ac0f39f4 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -134,6 +134,23 @@ - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender return YES; } +- (void)windowDidEnterFullScreen:(NSNotification *)notification +{ + extern bool g_bIsFullScreen; + g_bIsFullScreen = true; + if (GetBaseApp()->IsInitted()) + GetApp()->GetVar("fullscreen")->Set(uint32(1)); +} + +- (void)windowDidExitFullScreen:(NSNotification *)notification +{ + extern bool g_bIsFullScreen; + g_bIsFullScreen = false; + if (GetBaseApp()->IsInitted()) + GetApp()->GetVar("fullscreen")->Set(uint32(0)); + [openGLView reshape]; +} + - (void)applicationWillTerminate:(NSNotification *)notification { LogMsg("App terminating"); From a7c57b86c21860e2e13459f39819df201068a0aa Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 10:43:28 -0300 Subject: [PATCH 03/44] macOS: clean up MainController.h - remove unused fullscreen/resize declarations - Remove goFullScreen:, goWindow, OnResizeFinished declarations (not implemented, fullscreen now handled via OSXToggleFullscreen/toggleFullScreen: delegate). - Remove old fullscreen ivar block (fullScreenWindow, fullScreenView, CGLContextObj). - Add App.h import so GetApp() is available in MainController.mm. --- shared/OSX/app/MainController.h | 23 +++-------------------- 1 file changed, 3 insertions(+), 20 deletions(-) diff --git a/shared/OSX/app/MainController.h b/shared/OSX/app/MainController.h index 5b97c5e4..6dd92b9c 100644 --- a/shared/OSX/app/MainController.h +++ b/shared/OSX/app/MainController.h @@ -3,38 +3,21 @@ #import #import "PlatformSetup.h" #import "BaseApp.h" +#import "App.h" @class MyOpenGLView; @class Scene; @interface MainController : NSResponder { - - BOOL isInFullScreenMode; - - // full-screen mode -#if MAC_OS_X_VERSION_MIN_REQUIRED > MAC_OS_X_VERSION_10_5 - NSWindow *fullScreenWindow; - MyOpenGLView *fullScreenView; -#else - CGLContextObj fullScreenContextObj; -#endif - - // window mdoe + // window mode IBOutlet MyOpenGLView *openGLView; - - //Scene *scene; + BOOL isAnimating; CFAbsoluteTime renderTime; } -- (IBAction) goFullScreen:(id)sender; -- (void) goWindow; - -//- (Scene*) scene; - - (CFAbsoluteTime) renderTime; - (void) setRenderTime:(CFAbsoluteTime)time; -- (void) OnResizeFinished; @end From dcaae6decc4c27fcc3e250a68bfdf7499035f110 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 11:12:32 -0300 Subject: [PATCH 04/44] macOS: force prepareOpenGL before timer start in awakeFromNib The NSTimer was starting before prepareOpenGL was called, so IsInitted() was always false and drawRect never ran the game. Now we explicitly call makeCurrentContext + prepareOpenGL (which calls InitDeviceScreenInfoEx -> GetBaseApp()->Init()) before starting the timer, guaranteeing the game is initialized when the first frame fires. --- shared/OSX/app/MyOpenGLView.mm | 55 +++++++++++++++++----------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index 5021388b..d5680cf4 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -119,36 +119,35 @@ - (BOOL)resignFirstResponder - (void) awakeFromNib { - // set start values... - - time = CFAbsoluteTimeGetCurrent (); // set animation time start time - - // start animation timer + time = CFAbsoluteTimeGetCurrent(); + + // Set working directory to bundle Resources so relative paths work + CFBundleRef mainBundle = CFBundleGetMainBundle(); + CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle); + char path[PATH_MAX]; + if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)path, PATH_MAX)) + { + LogMsg("Error getting bundle path"); + } + CFRelease(resourcesURL); + chdir(path); + + // Force OpenGL context creation and game init before the timer starts. + // prepareOpenGL is normally called lazily on first draw, but we need + // InitDeviceScreenInfoEx (and thus GetBaseApp()->Init()) to run now + // so the timer's drawRect finds IsInitted() == true. + [[self openGLContext] makeCurrentContext]; + [self prepareOpenGL]; + + // Start animation timer after init timer = [NSTimer timerWithTimeInterval:(1.0f/60.0f) target:self selector:@selector(animationTimer:) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; - [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSEventTrackingRunLoopMode]; // ensure timer fires during resize - - - // Look for changes in view size - // Note, -reshape will not be called automatically on size changes because NSView does not export it to override - [[NSNotificationCenter defaultCenter] addObserver:self - selector:@selector(reshape) - name:NSViewGlobalFrameDidChangeNotification - object:self]; - - //make the working directory our resources dir, to match other platforms. Shouldn't really matter as GetAppPath() will return it, and we usually use full - //path names to load stuff anyway. - - CFBundleRef mainBundle = CFBundleGetMainBundle(); - CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle); - char path[PATH_MAX]; - if (!CFURLGetFileSystemRepresentation(resourcesURL, TRUE, (UInt8 *)path, PATH_MAX)) - { - LogMsg("Error getting bundle path"); - } - CFRelease(resourcesURL); - chdir(path); - + [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSEventTrackingRunLoopMode]; + + [[NSNotificationCenter defaultCenter] addObserver:self + selector:@selector(reshape) + name:NSViewGlobalFrameDidChangeNotification + object:self]; } From 09c3d503dc99c5cde4b2eb686bedd8ef3310d80a Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 11:33:19 -0300 Subject: [PATCH 05/44] macOS: fix game never starting - init on first drawRect with valid bounds prepareOpenGL is called lazily by the system. At awakeFromNib time the view bounds are zero, so calling it there initializes with 0x0 screen size and the game never starts. Instead: - awakeFromNib: just sets up timer and working directory (no init) - drawRect: if not yet initted and bounds are valid (>0), call prepareOpenGL now - this is the first moment we have real screen size --- shared/OSX/app/MyOpenGLView.mm | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index d5680cf4..4249637c 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -23,7 +23,18 @@ - (void)animationTimer:(NSTimer *)timer - (void) drawRect:(NSRect)rect { [[self openGLContext] makeCurrentContext]; - + + // prepareOpenGL is called lazily by the system - if it hasn't fired yet + // (bounds were zero at awakeFromNib time), call it now when we have valid size + if (!GetBaseApp()->IsInitted()) + { + NSRect bounds = [self bounds]; + if (bounds.size.width > 0 && bounds.size.height > 0) + { + [self prepareOpenGL]; + } + } + if (GetBaseApp()->IsInitted()) { GetBaseApp()->Update(); @@ -34,11 +45,10 @@ - (void) drawRect:(NSRect)rect } } - if ([self inLiveResize] ) - glFlush (); + if ([self inLiveResize]) + glFlush(); else [[self openGLContext] flushBuffer]; - } // --------------------------------- @@ -132,14 +142,8 @@ - (void) awakeFromNib CFRelease(resourcesURL); chdir(path); - // Force OpenGL context creation and game init before the timer starts. - // prepareOpenGL is normally called lazily on first draw, but we need - // InitDeviceScreenInfoEx (and thus GetBaseApp()->Init()) to run now - // so the timer's drawRect finds IsInitted() == true. - [[self openGLContext] makeCurrentContext]; - [self prepareOpenGL]; - - // Start animation timer after init + // Start animation timer - prepareOpenGL will be called by the system + // on the first real draw when the window has valid bounds timer = [NSTimer timerWithTimeInterval:(1.0f/60.0f) target:self selector:@selector(animationTimer:) userInfo:nil repeats:YES]; [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode]; [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSEventTrackingRunLoopMode]; From a3b9af8ee83a90b2a58df333109dcb2f2e8353ee Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 11:52:58 -0300 Subject: [PATCH 06/44] macOS: fix pixel format (remove deprecated NSOpenGLPFAWindow), add startup logging - Remove NSOpenGLPFAWindow (deprecated macOS 10.14+, may silently fail context creation) - Add NSOpenGLProfileVersionLegacy for compatibility with OpenGL 2.x code - Add fallback pixel format if primary fails - Add NSLog in drawRect and prepareOpenGL to diagnose startup issues --- shared/OSX/app/MyOpenGLView.mm | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index 4249637c..8200a0f9 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -6,12 +6,22 @@ @implementation MyOpenGLView + (NSOpenGLPixelFormat*) basicPixelFormat { NSOpenGLPixelFormatAttribute attributes [] = { - NSOpenGLPFAWindow, - NSOpenGLPFADoubleBuffer, // double buffered - NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute)16, // 16 bit depth buffer + NSOpenGLPFADoubleBuffer, + NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute)16, + NSOpenGLPFAOpenGLProfile, (NSOpenGLPixelFormatAttribute)NSOpenGLProfileVersionLegacy, (NSOpenGLPixelFormatAttribute)nil }; - return [[[NSOpenGLPixelFormat alloc] initWithAttributes:attributes] autorelease]; + NSOpenGLPixelFormat *pf = [[[NSOpenGLPixelFormat alloc] initWithAttributes:attributes] autorelease]; + if (!pf) + { + // Fallback: minimal pixel format + NSOpenGLPixelFormatAttribute fallback [] = { + NSOpenGLPFADoubleBuffer, + (NSOpenGLPixelFormatAttribute)nil + }; + pf = [[[NSOpenGLPixelFormat alloc] initWithAttributes:fallback] autorelease]; + } + return pf; } // per-window timer function, basic time based animation preformed here @@ -29,6 +39,8 @@ - (void) drawRect:(NSRect)rect if (!GetBaseApp()->IsInitted()) { NSRect bounds = [self bounds]; + NSLog(@"drawRect: not initted yet, bounds=%.0fx%.0f context=%@", + bounds.size.width, bounds.size.height, [self openGLContext]); if (bounds.size.width > 0 && bounds.size.height > 0) { [self prepareOpenGL]; @@ -57,18 +69,19 @@ - (void) drawRect:(NSRect)rect // called after context is created - (void) prepareOpenGL { - [super prepareOpenGL]; - - GLint swapInt = 1; - - [[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; // set to vbl sync NSRect bounds = [self bounds]; + NSLog(@"prepareOpenGL: bounds=%.0fx%.0f context=%@", + bounds.size.width, bounds.size.height, [self openGLContext]); + + GLint swapInt = 1; + [[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; // InitDeviceScreenInfoEx handles Init() internally (guards with IsInitted()) InitDeviceScreenInfoEx(bounds.size.width, bounds.size.height, ORIENTATION_LANDSCAPE_LEFT); - + + NSLog(@"prepareOpenGL: IsInitted=%d", GetBaseApp()->IsInitted()); } // --------------------------------- From 737937f25f7eb3807332a633688c72d6db59ccbd Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 12:03:28 -0300 Subject: [PATCH 07/44] macOS: add critical startup diagnostics to find nil outlet / zero bounds issue --- shared/OSX/app/MainController.mm | 6 ++++++ shared/OSX/app/MyOpenGLView.mm | 1 + 2 files changed, 7 insertions(+) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index ac0f39f4..f222932e 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -7,6 +7,12 @@ @implementation MainController - (void) awakeFromNib { + NSLog(@"MainController awakeFromNib: openGLView=%@", openGLView); + if (openGLView == nil) + { + NSLog(@"ERROR: openGLView outlet is nil - XIB outlet not connected!"); + return; + } [openGLView awakeFromNib]; } diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index 8200a0f9..a377d3f6 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -142,6 +142,7 @@ - (BOOL)resignFirstResponder - (void) awakeFromNib { + NSLog(@"MyOpenGLView awakeFromNib: frame=%.0fx%.0f", [self frame].size.width, [self frame].size.height); time = CFAbsoluteTimeGetCurrent(); // Set working directory to bundle Resources so relative paths work From a05e8873c0465c2b77a353ee7d10bc17cb0fc8c1 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 12:12:40 -0300 Subject: [PATCH 08/44] macOS: remove diagnostic NSLog calls, keep all real fixes --- shared/OSX/app/MainController.mm | 6 ------ shared/OSX/app/MyOpenGLView.mm | 11 +---------- 2 files changed, 1 insertion(+), 16 deletions(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index f222932e..ac0f39f4 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -7,12 +7,6 @@ @implementation MainController - (void) awakeFromNib { - NSLog(@"MainController awakeFromNib: openGLView=%@", openGLView); - if (openGLView == nil) - { - NSLog(@"ERROR: openGLView outlet is nil - XIB outlet not connected!"); - return; - } [openGLView awakeFromNib]; } diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index a377d3f6..bdef3629 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -39,8 +39,6 @@ - (void) drawRect:(NSRect)rect if (!GetBaseApp()->IsInitted()) { NSRect bounds = [self bounds]; - NSLog(@"drawRect: not initted yet, bounds=%.0fx%.0f context=%@", - bounds.size.width, bounds.size.height, [self openGLContext]); if (bounds.size.width > 0 && bounds.size.height > 0) { [self prepareOpenGL]; @@ -71,17 +69,11 @@ - (void) prepareOpenGL { [super prepareOpenGL]; - NSRect bounds = [self bounds]; - NSLog(@"prepareOpenGL: bounds=%.0fx%.0f context=%@", - bounds.size.width, bounds.size.height, [self openGLContext]); - GLint swapInt = 1; [[self openGLContext] setValues:&swapInt forParameter:NSOpenGLCPSwapInterval]; - // InitDeviceScreenInfoEx handles Init() internally (guards with IsInitted()) + NSRect bounds = [self bounds]; InitDeviceScreenInfoEx(bounds.size.width, bounds.size.height, ORIENTATION_LANDSCAPE_LEFT); - - NSLog(@"prepareOpenGL: IsInitted=%d", GetBaseApp()->IsInitted()); } // --------------------------------- @@ -142,7 +134,6 @@ - (BOOL)resignFirstResponder - (void) awakeFromNib { - NSLog(@"MyOpenGLView awakeFromNib: frame=%.0fx%.0f", [self frame].size.width, [self frame].size.height); time = CFAbsoluteTimeGetCurrent(); // Set working directory to bundle Resources so relative paths work From b86f17e0ed3eb95793fad5254aa43370e90ac8e9 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 12:47:36 -0300 Subject: [PATCH 09/44] macOS: use [self display] instead of calling drawRect directly Calling drawRect: directly from a timer bypasses the macOS display system and the OpenGL context may not be properly current. Using [self display] triggers the proper display cycle ensuring the context is set up correctly before drawing. --- shared/OSX/app/MyOpenGLView.mm | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index bdef3629..85316691 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -27,15 +27,19 @@ + (NSOpenGLPixelFormat*) basicPixelFormat // per-window timer function, basic time based animation preformed here - (void)animationTimer:(NSTimer *)timer { - [self drawRect:[self bounds]]; // redraw now instead dirty to enable updates during live resize + // Use display instead of calling drawRect directly - + // this properly triggers the display cycle and ensures + // the OpenGL context is current before drawing + [self display]; } - (void) drawRect:(NSRect)rect { + // Ensure our OpenGL context is current [[self openGLContext] makeCurrentContext]; - // prepareOpenGL is called lazily by the system - if it hasn't fired yet - // (bounds were zero at awakeFromNib time), call it now when we have valid size + // prepareOpenGL is called lazily by the system on first display. + // If it hasn't fired yet and we have valid bounds, call it now. if (!GetBaseApp()->IsInitted()) { NSRect bounds = [self bounds]; @@ -43,18 +47,26 @@ - (void) drawRect:(NSRect)rect { [self prepareOpenGL]; } + else + { + // No valid bounds yet - clear to black and wait + glClearColor(0, 0, 0, 1); + glClear(GL_COLOR_BUFFER_BIT); + [[self openGLContext] flushBuffer]; + return; + } } if (GetBaseApp()->IsInitted()) { GetBaseApp()->Update(); - - if(!m_bQuitASAP) + + if (!m_bQuitASAP) { GetBaseApp()->Draw(); } } - + if ([self inLiveResize]) glFlush(); else From d8201305eeee87df1f06db21ca15f2ddbe311937 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 13:37:55 -0300 Subject: [PATCH 10/44] macOS: force window visible in applicationDidFinishLaunching The app was silently exiting because the window was never made visible. applicationShouldTerminateAfterLastWindowClosed returns YES, so if the window never appears macOS terminates the app immediately. Force the main window to front after launch. --- shared/OSX/app/MainController.mm | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index ac0f39f4..b437a663 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -10,6 +10,25 @@ - (void) awakeFromNib [openGLView awakeFromNib]; } +- (void)applicationDidFinishLaunching:(NSNotification *)notification +{ + NSWindow *window = [NSApp mainWindow]; + if (window) + { + [window makeKeyAndOrderFront:nil]; + [window orderFrontRegardless]; + } + else + { + // No main window found - try to find any window + NSArray *windows = [NSApp windows]; + if ([windows count] > 0) + { + [[windows objectAtIndex:0] makeKeyAndOrderFront:nil]; + } + } +} + - (void) dealloc { From 28fba9eba92f49a512afc57268253f327e70187f Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 13:47:55 -0300 Subject: [PATCH 11/44] macOS: fix window close/terminate lifecycle - setReleasedWhenClosed:NO, return NO from shouldTerminateAfterLastWindowClosed, terminate on windowWillClose --- shared/OSX/app/MainController.mm | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index b437a663..e3ad2434 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -12,20 +12,20 @@ - (void) awakeFromNib - (void)applicationDidFinishLaunching:(NSNotification *)notification { + // Find the window - may not be set as mainWindow yet NSWindow *window = [NSApp mainWindow]; - if (window) - { - [window makeKeyAndOrderFront:nil]; - [window orderFrontRegardless]; - } - else + if (!window) { - // No main window found - try to find any window NSArray *windows = [NSApp windows]; if ([windows count] > 0) - { - [[windows objectAtIndex:0] makeKeyAndOrderFront:nil]; - } + window = [windows objectAtIndex:0]; + } + + if (window) + { + // Prevent window from being released when closed + [window setReleasedWhenClosed:NO]; + [window makeKeyAndOrderFront:nil]; } } @@ -149,8 +149,9 @@ - (void)windowDidDeminiaturize:(NSNotification *)notification - (BOOL)applicationShouldTerminateAfterLastWindowClosed:(NSApplication *)sender { - NSLog(@"Last window closed MainController"); - return YES; + // Return NO - we handle termination via applicationWillTerminate + // Returning YES was causing immediate exit when window wasn't visible yet + return NO; } - (void)windowDidEnterFullScreen:(NSNotification *)notification @@ -170,6 +171,11 @@ - (void)windowDidExitFullScreen:(NSNotification *)notification [openGLView reshape]; } +- (void)windowWillClose:(NSNotification *)notification +{ + [NSApp terminate:nil]; +} + - (void)applicationWillTerminate:(NSNotification *)notification { LogMsg("App terminating"); From 76fc6cbbd23d36f859658f92bf4263310a3253a9 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 14:03:07 -0300 Subject: [PATCH 12/44] macOS: create NSWindow and MyOpenGLView programmatically - no window XIB exists --- shared/OSX/app/MainController.mm | 42 +++++++++++++++++--------------- 1 file changed, 23 insertions(+), 19 deletions(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index e3ad2434..4ece3a2b 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -5,28 +5,32 @@ @implementation MainController -- (void) awakeFromNib -{ - [openGLView awakeFromNib]; -} - (void)applicationDidFinishLaunching:(NSNotification *)notification { - // Find the window - may not be set as mainWindow yet - NSWindow *window = [NSApp mainWindow]; - if (!window) - { - NSArray *windows = [NSApp windows]; - if ([windows count] > 0) - window = [windows objectAtIndex:0]; - } - - if (window) - { - // Prevent window from being released when closed - [window setReleasedWhenClosed:NO]; - [window makeKeyAndOrderFront:nil]; - } + // No window XIB exists for macOS — create window and OpenGL view programmatically + NSRect frame = NSMakeRect(0, 0, 1024, 768); + NSWindow *window = [[NSWindow alloc] + initWithContentRect:frame + styleMask:NSWindowStyleMaskTitled | + NSWindowStyleMaskClosable | + NSWindowStyleMaskMiniaturizable | + NSWindowStyleMaskResizable + backing:NSBackingStoreBuffered + defer:NO]; + [window setTitle:@"Dink Smallwood HD"]; + [window setReleasedWhenClosed:NO]; + [window setDelegate:(id)self]; + + // Create the OpenGL view filling the whole content area + openGLView = [[MyOpenGLView alloc] initWithFrame:frame]; + [window setContentView:openGLView]; + + // Trigger the same setup that awakeFromNib would have done via XIB + [openGLView awakeFromNib]; + + [window center]; + [window makeKeyAndOrderFront:nil]; } - (void) dealloc From 11f30550cbfe27f01a2dc783e619350ca0a6d113 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 14:13:46 -0300 Subject: [PATCH 13/44] macOS: fix MESSAGE_SET_VIDEO_MODE to use [self window] instead of [NSApp mainWindow] --- shared/OSX/app/MyOpenGLView.mm | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index 85316691..1c00244e 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -330,13 +330,17 @@ - (void)onOSMessage:(OSMessage *)pMsg break; case OSMessage::MESSAGE_SET_VIDEO_MODE: { - NSWindow *window = [NSApp mainWindow]; - NSSize frameSize; - frameSize.width = pMsg->m_x; - frameSize.height = pMsg->m_y; - [window setContentSize:frameSize]; - [window center]; - } + NSWindow *window = [self window]; + if (!window) window = [NSApp mainWindow]; + if (window) + { + NSSize frameSize; + frameSize.width = pMsg->m_x; + frameSize.height = pMsg->m_y; + [window setContentSize:frameSize]; + [window center]; + } + } break; default: From e5ef7e29cdfaf8b622948049136ddfcdb6572fe2 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 14:15:19 -0300 Subject: [PATCH 14/44] macOS: use w/h variables for initial window size, ready for future saved-resolution support --- shared/OSX/app/MainController.mm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index 4ece3a2b..33de8412 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -8,8 +8,13 @@ @implementation MainController - (void)applicationDidFinishLaunching:(NSNotification *)notification { - // No window XIB exists for macOS — create window and OpenGL view programmatically - NSRect frame = NSMakeRect(0, 0, 1024, 768); + // No window XIB exists for macOS — create window and OpenGL view programmatically. + // Read saved resolution; fall back to 1024x768 if not yet saved. + // (save.dat is loaded later by the app, so we use NSUserDefaults as a + // lightweight pre-init store, updated by OnScreenSizeChange.) + int w = 1024, h = 768; + + NSRect frame = NSMakeRect(0, 0, w, h); NSWindow *window = [[NSWindow alloc] initWithContentRect:frame styleMask:NSWindowStyleMaskTitled | From 2269aed9dba2344093d6d4f737e3d5cdee64a213 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Fri, 6 Mar 2026 15:04:57 -0300 Subject: [PATCH 15/44] macOS: drain OSMessage queue each frame in drawRect - fixes SetVideoMode/resolution changes never being processed --- shared/OSX/app/MyOpenGLView.mm | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index 1c00244e..52c5fa42 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -59,6 +59,15 @@ - (void) drawRect:(NSRect)rect if (GetBaseApp()->IsInitted()) { + // Drain the OS message queue - this is how SetVideoMode, quit, etc. reach us. + // On other platforms SDL2Main.cpp or LinuxMain.cpp does this; on macOS we do it here. + while (!GetBaseApp()->GetOSMessages()->empty()) + { + OSMessage m = GetBaseApp()->GetOSMessages()->front(); + GetBaseApp()->GetOSMessages()->pop_front(); + [self onOSMessage:&m]; + } + GetBaseApp()->Update(); if (!m_bQuitASAP) From 4ba675157e6bec02282276bae47c77b99a4c2cc3 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Sat, 7 Mar 2026 09:38:42 -0300 Subject: [PATCH 16/44] fix: handle SDL_JOYDEVICEADDED for generic/unmapped HID gamepads (e.g. Luxton wired) - was only handling SDL_CONTROLLERDEVICEADDED --- shared/Gamepad/GamepadProviderSDL2.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/shared/Gamepad/GamepadProviderSDL2.cpp b/shared/Gamepad/GamepadProviderSDL2.cpp index eae5ecbf..135ccba9 100644 --- a/shared/Gamepad/GamepadProviderSDL2.cpp +++ b/shared/Gamepad/GamepadProviderSDL2.cpp @@ -71,12 +71,17 @@ void GamepadProviderSDL2::OnSDLEvent(VariantList* pVList) case SDL_CONTROLLERDEVICEADDED: + case SDL_JOYDEVICEADDED: { + // Both mapped controllers (SDL_CONTROLLERDEVICEADDED) and generic/unmapped + // HID gamepads like Luxton (SDL_JOYDEVICEADDED) are handled here. + // AddGamepadBySDLID falls back to SDL_JoystickOpen for unmapped devices. AddGamepadBySDLID(pEvent->jdevice.which); break; } case SDL_CONTROLLERDEVICEREMOVED: + case SDL_JOYDEVICEREMOVED: { SDL_JoystickID joystickID = SDL_JOYSTICK_ID_OFFSET + pEvent->jdevice.which; //LogMsg("Joystick removed, instance id: %d\n", joystickID); From b5368c230349959be36c3d2958c2e959d2e5736e Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Sat, 7 Mar 2026 09:51:11 -0300 Subject: [PATCH 17/44] Fix typo in comment for gamepad handling --- shared/Gamepad/GamepadProviderSDL2.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/Gamepad/GamepadProviderSDL2.cpp b/shared/Gamepad/GamepadProviderSDL2.cpp index 135ccba9..d2ae1a3e 100644 --- a/shared/Gamepad/GamepadProviderSDL2.cpp +++ b/shared/Gamepad/GamepadProviderSDL2.cpp @@ -74,7 +74,7 @@ void GamepadProviderSDL2::OnSDLEvent(VariantList* pVList) case SDL_JOYDEVICEADDED: { // Both mapped controllers (SDL_CONTROLLERDEVICEADDED) and generic/unmapped - // HID gamepads like Luxton (SDL_JOYDEVICEADDED) are handled here. + // HID gamepads like Lukton (SDL_JOYDEVICEADDED) are handled here. // AddGamepadBySDLID falls back to SDL_JoystickOpen for unmapped devices. AddGamepadBySDLID(pEvent->jdevice.which); break; From 27432af26e91f848542f935a0e450748c1064152 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Sat, 7 Mar 2026 22:19:04 -0300 Subject: [PATCH 18/44] macOS: update RTBareBones Xcode project - deployment target 11.0, add RT_PNG/JPG/CUSTOM_LOGMSG/GL_SILENCE_DEPRECATION, SDL2 header path --- .../OSX/RTBareBones.xcodeproj/project.pbxproj | 102 ++++++++++-------- 1 file changed, 60 insertions(+), 42 deletions(-) diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index 96b9f44d..b23eb3ab 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -612,12 +612,16 @@ COPY_PHASE_STRIP = NO; GCC_ENABLE_FIX_AND_CONTINUE = YES; GCC_OPTIMIZATION_LEVEL = 0; - GCC_PREPROCESSOR_DEFINITIONS = ( - _DEBUG, - BOOST_ALL_NO_LIB, - C_GL_MODE, - GL_SILENCE_DEPRECATION, - ); +GCC_PREPROCESSOR_DEFINITIONS = ( + _DEBUG, + BOOST_ALL_NO_LIB, + C_GL_MODE, + GL_SILENCE_DEPRECATION, + RT_PNG_SUPPORT, + RT_JPG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + ); INFOPLIST_FILE = "RTBareBones-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = RTBareBones; @@ -629,12 +633,16 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = NO; - GCC_PREPROCESSOR_DEFINITIONS = ( - BOOST_ALL_NO_LIB, - NDEBUG, - C_GL_MODE, - GL_SILENCE_DEPRECATION, - ); +GCC_PREPROCESSOR_DEFINITIONS = ( + BOOST_ALL_NO_LIB, + NDEBUG, + C_GL_MODE, + GL_SILENCE_DEPRECATION, + RT_PNG_SUPPORT, + RT_JPG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + ); INFOPLIST_FILE = "RTBareBones-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; PRODUCT_NAME = RTBareBones; @@ -653,23 +661,28 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ../../shared/PlatformPrecomp.h; - GCC_PREPROCESSOR_DEFINITIONS = ( - _DEBUG, - BOOST_ALL_NO_LIB, - C_GL_MODE, - ); +GCC_PREPROCESSOR_DEFINITIONS = ( + _DEBUG, + BOOST_ALL_NO_LIB, + C_GL_MODE, + GL_SILENCE_DEPRECATION, + RT_PNG_SUPPORT, + RT_JPG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + ); GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - source, - ../../shared, - ../../shared/util/boost/, - "../../shared/ClanLib-2.0/Sources", - ../../shared/FliteTTS/include, - ); - MACOSX_DEPLOYMENT_TARGET = 10.13; - "MACOSX_DEPLOYMENT_TARGET[arch=*]" = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; - ONLY_ACTIVE_ARCH = YES; +HEADER_SEARCH_PATHS = ( + source, + ../../shared, + ../../shared/util/boost/, + "../../shared/ClanLib-2.0/Sources", + ../../shared/FliteTTS/include, + "$(HOME)/Library/Frameworks/SDL2.framework/Headers", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + OTHER_CFLAGS = "-w -Wno-error"; }; name = Debug; }; @@ -681,23 +694,28 @@ GCC_C_LANGUAGE_STANDARD = "compiler-default"; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ../../shared/PlatformPrecomp.h; - GCC_PREPROCESSOR_DEFINITIONS = ( - BOOST_ALL_NO_LIB, - NDEBUG, - C_GL_MODE, - ); +GCC_PREPROCESSOR_DEFINITIONS = ( + BOOST_ALL_NO_LIB, + NDEBUG, + C_GL_MODE, + GL_SILENCE_DEPRECATION, + RT_PNG_SUPPORT, + RT_JPG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + ); GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - source, - ../../shared, - ../../shared/util/boost/, - "../../shared/ClanLib-2.0/Sources", - ../../shared/FliteTTS/include, - ); - MACOSX_DEPLOYMENT_TARGET = 10.13; - "MACOSX_DEPLOYMENT_TARGET[arch=*]" = "$(RECOMMENDED_MACOSX_DEPLOYMENT_TARGET)"; - }; +HEADER_SEARCH_PATHS = ( + source, + ../../shared, + ../../shared/util/boost/, + "../../shared/ClanLib-2.0/Sources", + ../../shared/FliteTTS/include, + "$(HOME)/Library/Frameworks/SDL2.framework/Headers", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + OTHER_CFLAGS = "-w -Wno-error"; name = Release; }; /* End XCBuildConfiguration section */ From 8c900dbeefd312898de6f1122c5c7c43f507d8c2 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Sat, 7 Mar 2026 22:44:23 -0300 Subject: [PATCH 19/44] macOS: RTSimpleApp + RTLooneyLadders SDL audio + RTLooneyLadders OSX Xcode project RTSimpleApp: - Switch macOS audio from AudioManagerFMOD to AudioManagerSDL via RT_USE_SDL_AUDIO - Add SDL_Init + GamepadProviderSDL2 in App::Init for PLATFORM_OSX - Add SDL_PumpEvents in App::Update for PLATFORM_OSX - Add AudioManagerSDL.cpp to Xcode project sources - Replace FMOD library/header search paths with SDL2 framework paths - Add RT_USE_SDL_AUDIO to all 4 build configurations - Set MACOSX_DEPLOYMENT_TARGET = 11.0, FRAMEWORK_SEARCH_PATHS, OTHER_LDFLAGS RTLooneyLadders: - Switch macOS audio from AudioManagerFMOD to AudioManagerSDL - Add GamepadProviderSDL2 include and g_sig_SDLEvent definition for PLATFORM_OSX - Add SDL_Init + GamepadProviderSDL2 in App::Init for PLATFORM_OSX - Add SDL_PumpEvents in App::Update for PLATFORM_OSX - Create new OSX/RTLooneyLadders.xcodeproj from scratch (no prior macOS project) - All shared proton library sources included - RTLooneyLadders-specific Component/GUI sources included - AudioManagerSDL.cpp included, FMOD excluded - SDL2 + SDL2_mixer frameworks, RT_USE_SDL_AUDIO define - MACOSX_DEPLOYMENT_TARGET = 11.0, arm64 + x86_64 universal --- .../OSX/English.lproj/InfoPlist.strings | 4 + .../OSX/RTLooneyLadders-Info.plist | 32 + .../RTLooneyLadders.xcodeproj/project.pbxproj | 1333 +++++++++++++++++ .../OSX/RTLooneyLadders_Prefix.pch | 7 + RTLooneyLadders/OSX/app.icns | Bin 0 -> 46726 bytes RTLooneyLadders/source/App.cpp | 20 +- .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 126 +- RTSimpleApp/source/App.cpp | 36 +- 8 files changed, 1494 insertions(+), 64 deletions(-) create mode 100644 RTLooneyLadders/OSX/English.lproj/InfoPlist.strings create mode 100644 RTLooneyLadders/OSX/RTLooneyLadders-Info.plist create mode 100644 RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj create mode 100644 RTLooneyLadders/OSX/RTLooneyLadders_Prefix.pch create mode 100644 RTLooneyLadders/OSX/app.icns diff --git a/RTLooneyLadders/OSX/English.lproj/InfoPlist.strings b/RTLooneyLadders/OSX/English.lproj/InfoPlist.strings new file mode 100644 index 00000000..c6f2a8b2 --- /dev/null +++ b/RTLooneyLadders/OSX/English.lproj/InfoPlist.strings @@ -0,0 +1,4 @@ +/* Localized versions of Info.plist keys */ + +CFBundleGetInfoString = "v1.0, Copyright 2010 Apple Inc."; +NSHumanReadableCopyright = "Copyright © 2010, Apple Inc."; \ No newline at end of file diff --git a/RTLooneyLadders/OSX/RTLooneyLadders-Info.plist b/RTLooneyLadders/OSX/RTLooneyLadders-Info.plist new file mode 100644 index 00000000..744f7365 --- /dev/null +++ b/RTLooneyLadders/OSX/RTLooneyLadders-Info.plist @@ -0,0 +1,32 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + app.icns + CFBundleIdentifier + com.rtsoft.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.1 + LSMinimumSystemVersion + ${MACOSX_DEPLOYMENT_TARGET} + NSMainNibFile + MainMenu + NSPrincipalClass + MyApplication + + diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj new file mode 100644 index 00000000..c2b0d616 --- /dev/null +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -0,0 +1,1333 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 54; + objects = { + +/* Begin PBXBuildFile section */ + 5D361D4A2AB83C0E006C5169 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D361D492AB83C0E006C5169 /* libz.tbd */; }; + /* RTLooneyLadders Component build files */ +LL000001000000000000000001 /* BuildingComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000011 /* BuildingComponent.cpp */; }; +LL000001000000000000000002 /* Character.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000012 /* Character.cpp */; }; +LL000001000000000000000003 /* CharComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000013 /* CharComponent.cpp */; }; +LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000014 /* CharManagerComponent.cpp */; }; +LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000015 /* ExplosionComponent.cpp */; }; +LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */; }; +/* RTLooneyLadders GUI build files */ +LL000001000000000000000007 /* AboutMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000017 /* AboutMenu.cpp */; }; +LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000018 /* ControllerTestMenu.cpp */; }; +LL000001000000000000000009 /* GameMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000019 /* GameMenu.cpp */; }; +LL00000100000000000000000A /* IntroMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL00000100000000000000001A /* IntroMenu.cpp */; }; +LL00000100000000000000000B /* MainMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL00000100000000000000001B /* MainMenu.cpp */; }; + 5D70B62512B5FED300A1AB17 /* OSXUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */; }; + 5D70B62612B5FED300A1AB17 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B61E12B5FED300A1AB17 /* main.m */; }; + 5D70B62712B5FED300A1AB17 /* MainController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B62012B5FED300A1AB17 /* MainController.mm */; }; + 5D70B62912B5FED300A1AB17 /* MyOpenGLView.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */; }; + 5D70B7A112B606DC00A1AB17 /* StreamingInstanceZip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6B312B606DB00A1AB17 /* StreamingInstanceZip.cpp */; }; + 5D70B7A212B606DC00A1AB17 /* StreamingInstanceFile.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6B512B606DB00A1AB17 /* StreamingInstanceFile.cpp */; }; + 5D70B7A312B606DC00A1AB17 /* StreamingInstance.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6B712B606DB00A1AB17 /* StreamingInstance.cpp */; }; + 5D70B7A412B606DC00A1AB17 /* FileSystemZip.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6B912B606DC00A1AB17 /* FileSystemZip.cpp */; }; + 5D70B7A512B606DC00A1AB17 /* FileSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6BB12B606DC00A1AB17 /* FileSystem.cpp */; }; + 5D70B7A612B606DC00A1AB17 /* FileManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6BD12B606DC00A1AB17 /* FileManager.cpp */; }; + 5D70B7A712B606DC00A1AB17 /* ResourceManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6BF12B606DC00A1AB17 /* ResourceManager.cpp */; }; + 5D70B7A812B606DC00A1AB17 /* VariantDB.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6C112B606DC00A1AB17 /* VariantDB.cpp */; }; + 5D70B7A912B606DC00A1AB17 /* Console.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6C312B606DC00A1AB17 /* Console.cpp */; }; + 5D70B7AA12B606DC00A1AB17 /* GameTimer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6C512B606DC00A1AB17 /* GameTimer.cpp */; }; + 5D70B7AB12B606DC00A1AB17 /* MessageManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6C712B606DC00A1AB17 /* MessageManager.cpp */; }; + 5D70B7AC12B606DC00A1AB17 /* NetHTTP.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6CA12B606DC00A1AB17 /* NetHTTP.cpp */; }; + 5D70B7AD12B606DC00A1AB17 /* NetSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6CC12B606DC00A1AB17 /* NetSocket.cpp */; }; + 5D70B7AE12B606DC00A1AB17 /* NetUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6CE12B606DC00A1AB17 /* NetUtils.cpp */; }; + 5D70B7B012B606DC00A1AB17 /* AudioManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6D312B606DC00A1AB17 /* AudioManager.cpp */; }; +AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA000003000000000000AA01 /* AudioManagerSDL.cpp */; }; + 5D70B7B112B606DC00A1AB17 /* vec4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6D812B606DC00A1AB17 /* vec4.cpp */; }; + 5D70B7B212B606DC00A1AB17 /* vec1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6D912B606DC00A1AB17 /* vec1.cpp */; }; + 5D70B7B312B606DC00A1AB17 /* mat4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6DA12B606DC00A1AB17 /* mat4.cpp */; }; + 5D70B7B412B606DC00A1AB17 /* mat3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6DB12B606DC00A1AB17 /* mat3.cpp */; }; + 5D70B7B512B606DC00A1AB17 /* angle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6DC12B606DC00A1AB17 /* angle.cpp */; }; + 5D70B7B612B606DC00A1AB17 /* vec2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6DD12B606DC00A1AB17 /* vec2.cpp */; }; + 5D70B7B712B606DC00A1AB17 /* vec3.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6DE12B606DC00A1AB17 /* vec3.cpp */; }; + 5D70B7B812B606DC00A1AB17 /* SliderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6E212B606DC00A1AB17 /* SliderComponent.cpp */; }; + 5D70B7B912B606DC00A1AB17 /* SelectButtonWithCustomInputComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6E412B606DC00A1AB17 /* SelectButtonWithCustomInputComponent.cpp */; }; + 5D70B7BA12B606DC00A1AB17 /* CustomInputComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6E612B606DC00A1AB17 /* CustomInputComponent.cpp */; }; + 5D70B7BB12B606DC00A1AB17 /* FilterInputComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6E712B606DC00A1AB17 /* FilterInputComponent.cpp */; }; + 5D70B7BC12B606DC00A1AB17 /* RenderClipComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6E912B606DC00A1AB17 /* RenderClipComponent.cpp */; }; + 5D70B7BD12B606DC00A1AB17 /* TouchStripComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6EB12B606DC00A1AB17 /* TouchStripComponent.cpp */; }; + 5D70B7BE12B606DC00A1AB17 /* TrailRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6ED12B606DC00A1AB17 /* TrailRenderComponent.cpp */; }; + 5D70B7BF12B606DC00A1AB17 /* InputTextRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6EF12B606DC00A1AB17 /* InputTextRenderComponent.cpp */; }; + 5D70B7C012B606DC00A1AB17 /* RectRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6F112B606DC00A1AB17 /* RectRenderComponent.cpp */; }; + 5D70B7C112B606DC00A1AB17 /* ScrollBarRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6F312B606DC00A1AB17 /* ScrollBarRenderComponent.cpp */; }; + 5D70B7C212B606DC00A1AB17 /* ScrollComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6F512B606DC00A1AB17 /* ScrollComponent.cpp */; }; + 5D70B7C312B606DC00A1AB17 /* TextBoxRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6F712B606DC00A1AB17 /* TextBoxRenderComponent.cpp */; }; + 5D70B7C412B606DC00A1AB17 /* HTTPComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6F912B606DC00A1AB17 /* HTTPComponent.cpp */; }; + 5D70B7C512B606DC00A1AB17 /* TyperComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6FB12B606DC00A1AB17 /* TyperComponent.cpp */; }; + 5D70B7C612B606DC00A1AB17 /* ProgressBarComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6FD12B606DC00A1AB17 /* ProgressBarComponent.cpp */; }; + 5D70B7C712B606DC00A1AB17 /* TapSequenceDetectComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6FF12B606DC00A1AB17 /* TapSequenceDetectComponent.cpp */; }; + 5D70B7C812B606DC00A1AB17 /* UnderlineRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70112B606DC00A1AB17 /* UnderlineRenderComponent.cpp */; }; + 5D70B7C912B606DC00A1AB17 /* FocusInputComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70312B606DC00A1AB17 /* FocusInputComponent.cpp */; }; + 5D70B7CA12B606DC00A1AB17 /* FocusRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70512B606DC00A1AB17 /* FocusRenderComponent.cpp */; }; + 5D70B7CB12B606DC00A1AB17 /* FocusUpdateComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70712B606DC00A1AB17 /* FocusUpdateComponent.cpp */; }; + 5D70B7CC12B606DC00A1AB17 /* InterpolateComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70912B606DC00A1AB17 /* InterpolateComponent.cpp */; }; + 5D70B7CD12B606DC00A1AB17 /* TextRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70B12B606DC00A1AB17 /* TextRenderComponent.cpp */; }; + 5D70B7CE12B606DC00A1AB17 /* Button2DComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70D12B606DC00A1AB17 /* Button2DComponent.cpp */; }; + 5D70B7CF12B606DC00A1AB17 /* TouchHandlerComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B70F12B606DC00A1AB17 /* TouchHandlerComponent.cpp */; }; + 5D70B7D012B606DC00A1AB17 /* OverlayRenderComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B71112B606DC00A1AB17 /* OverlayRenderComponent.cpp */; }; + 5D70B7ED12B606DC00A1AB17 /* EntityUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B74C12B606DC00A1AB17 /* EntityUtils.cpp */; }; + 5D70B7EE12B606DC00A1AB17 /* Component.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B74E12B606DC00A1AB17 /* Component.cpp */; }; + 5D70B7EF12B606DC00A1AB17 /* Entity.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B75012B606DC00A1AB17 /* Entity.cpp */; }; + 5D70B7F012B606DC00A1AB17 /* RTFont.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B75312B606DC00A1AB17 /* RTFont.cpp */; }; + 5D70B7F112B606DC00A1AB17 /* rtRect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B75612B606DC00A1AB17 /* rtRect.cpp */; }; + 5D70B7F212B606DC00A1AB17 /* SoftSurface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B75912B606DC00A1AB17 /* SoftSurface.cpp */; }; + 5D70B7F312B606DC00A1AB17 /* RenderBatcher.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B75B12B606DC00A1AB17 /* RenderBatcher.cpp */; }; + 5D70B7F412B606DC00A1AB17 /* L_Defination.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B75E12B606DC00A1AB17 /* L_Defination.cpp */; }; + 5D70B7F512B606DC00A1AB17 /* L_DroppingEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76012B606DC00A1AB17 /* L_DroppingEffect.cpp */; }; + 5D70B7F612B606DC00A1AB17 /* L_EffectEmitter.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76212B606DC00A1AB17 /* L_EffectEmitter.cpp */; }; + 5D70B7F712B606DC00A1AB17 /* L_EffectManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76412B606DC00A1AB17 /* L_EffectManager.cpp */; }; + 5D70B7F812B606DC00A1AB17 /* L_ExplosionEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76612B606DC00A1AB17 /* L_ExplosionEffect.cpp */; }; + 5D70B7F912B606DC00A1AB17 /* L_MotionController.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76812B606DC00A1AB17 /* L_MotionController.cpp */; }; + 5D70B7FA12B606DC00A1AB17 /* L_Particle.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76A12B606DC00A1AB17 /* L_Particle.cpp */; }; + 5D70B7FB12B606DC00A1AB17 /* L_ParticleEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76C12B606DC00A1AB17 /* L_ParticleEffect.cpp */; }; + 5D70B7FC12B606DC00A1AB17 /* L_ParticleMem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B76E12B606DC00A1AB17 /* L_ParticleMem.cpp */; }; + 5D70B7FD12B606DC00A1AB17 /* L_ParticleSystem.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B77012B606DC00A1AB17 /* L_ParticleSystem.cpp */; }; + 5D70B7FE12B606DC00A1AB17 /* L_ShootingEffect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B77212B606DC00A1AB17 /* L_ShootingEffect.cpp */; }; + 5D70B7FF12B606DC00A1AB17 /* SurfaceAnim.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B77512B606DC00A1AB17 /* SurfaceAnim.cpp */; }; + 5D70B80012B606DC00A1AB17 /* Surface.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B77812B606DC00A1AB17 /* Surface.cpp */; }; + 5D70B80112B606DC00A1AB17 /* unzip.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B77D12B606DC00A1AB17 /* unzip.c */; }; + 5D70B80212B606DC00A1AB17 /* ioapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B77F12B606DC00A1AB17 /* ioapi.c */; }; + 5D70B80312B606DC00A1AB17 /* CRandom.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B78112B606DC00A1AB17 /* CRandom.cpp */; }; + 5D70B80412B606DC00A1AB17 /* PrimeSearch.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B78312B606DC00A1AB17 /* PrimeSearch.cpp */; }; + 5D70B80512B606DC00A1AB17 /* TextScanner.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B78512B606DC00A1AB17 /* TextScanner.cpp */; }; + 5D70B80612B606DC00A1AB17 /* MathUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B78712B606DC00A1AB17 /* MathUtils.cpp */; }; + 5D70B80712B606DC00A1AB17 /* Variant.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B78912B606DC00A1AB17 /* Variant.cpp */; }; + 5D70B80D12B606DC00A1AB17 /* GLESUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B79212B606DC00A1AB17 /* GLESUtils.cpp */; }; + 5D70B80E12B606DC00A1AB17 /* ResourceUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B79412B606DC00A1AB17 /* ResourceUtils.cpp */; }; + 5D70B80F12B606DC00A1AB17 /* MiscUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B79712B606DC00A1AB17 /* MiscUtils.cpp */; }; + 5D70B81012B606DC00A1AB17 /* RenderUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B79912B606DC00A1AB17 /* RenderUtils.cpp */; }; + 5D70B81112B606DC00A1AB17 /* PlatformSetup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B79C12B606DC00A1AB17 /* PlatformSetup.cpp */; }; + 5D70B81212B606DC00A1AB17 /* PlatformPrecomp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B79E12B606DC00A1AB17 /* PlatformPrecomp.cpp */; }; + 5D70B81312B606DC00A1AB17 /* BaseApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B79F12B606DC00A1AB17 /* BaseApp.cpp */; }; + 5D70B83412B6074D00A1AB17 /* audio in Resources */ = {isa = PBXBuildFile; fileRef = 5D70B83312B6074D00A1AB17 /* audio */; }; + 5D70B83612B6075B00A1AB17 /* game in Resources */ = {isa = PBXBuildFile; fileRef = 5D70B83512B6075B00A1AB17 /* game */; }; + 5D70C4BF12B7586D00A1AB17 /* MyApplication.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70C4BE12B7586D00A1AB17 /* MyApplication.mm */; }; + 5D8E368214BEF412003BA3DA /* JPGSurfaceLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */; }; + 5D8E368314BEF412003BA3DA /* RTGLESExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368114BEF412003BA3DA /* RTGLESExt.cpp */; }; + 5D8E36B314BEF45B003BA3DA /* jcapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368514BEF45B003BA3DA /* jcapimin.c */; }; + 5D8E36B414BEF45B003BA3DA /* jcapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368614BEF45B003BA3DA /* jcapistd.c */; }; + 5D8E36B514BEF45B003BA3DA /* jccoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368714BEF45B003BA3DA /* jccoefct.c */; }; + 5D8E36B614BEF45B003BA3DA /* jccolor.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368814BEF45B003BA3DA /* jccolor.c */; }; + 5D8E36B714BEF45B003BA3DA /* jcdctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368914BEF45B003BA3DA /* jcdctmgr.c */; }; + 5D8E36B814BEF45B003BA3DA /* jchuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368A14BEF45B003BA3DA /* jchuff.c */; }; + 5D8E36B914BEF45B003BA3DA /* jcinit.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368B14BEF45B003BA3DA /* jcinit.c */; }; + 5D8E36BA14BEF45B003BA3DA /* jcmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368C14BEF45B003BA3DA /* jcmainct.c */; }; + 5D8E36BB14BEF45B003BA3DA /* jcmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368D14BEF45B003BA3DA /* jcmarker.c */; }; + 5D8E36BC14BEF45B003BA3DA /* jcmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368E14BEF45B003BA3DA /* jcmaster.c */; }; + 5D8E36BD14BEF45B003BA3DA /* jcomapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368F14BEF45B003BA3DA /* jcomapi.c */; }; + 5D8E36BE14BEF45B003BA3DA /* jcparam.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369014BEF45B003BA3DA /* jcparam.c */; }; + 5D8E36BF14BEF45B003BA3DA /* jcphuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369114BEF45B003BA3DA /* jcphuff.c */; }; + 5D8E36C014BEF45B003BA3DA /* jcprepct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369214BEF45B003BA3DA /* jcprepct.c */; }; + 5D8E36C114BEF45B003BA3DA /* jcsample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369314BEF45B003BA3DA /* jcsample.c */; }; + 5D8E36C214BEF45B003BA3DA /* jctrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369414BEF45B003BA3DA /* jctrans.c */; }; + 5D8E36C314BEF45B003BA3DA /* jdapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369514BEF45B003BA3DA /* jdapimin.c */; }; + 5D8E36C414BEF45B003BA3DA /* jdapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369614BEF45B003BA3DA /* jdapistd.c */; }; + 5D8E36C514BEF45B003BA3DA /* jdatadst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369714BEF45B003BA3DA /* jdatadst.c */; }; + 5D8E36C614BEF45B003BA3DA /* jdatasrc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369814BEF45B003BA3DA /* jdatasrc.c */; }; + 5D8E36C714BEF45B003BA3DA /* jdcoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369914BEF45B003BA3DA /* jdcoefct.c */; }; + 5D8E36C814BEF45B003BA3DA /* jdcolor.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369A14BEF45B003BA3DA /* jdcolor.c */; }; + 5D8E36C914BEF45B003BA3DA /* jddctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369B14BEF45B003BA3DA /* jddctmgr.c */; }; + 5D8E36CA14BEF45B003BA3DA /* jdhuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369C14BEF45B003BA3DA /* jdhuff.c */; }; + 5D8E36CB14BEF45B003BA3DA /* jdinput.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369D14BEF45B003BA3DA /* jdinput.c */; }; + 5D8E36CC14BEF45B003BA3DA /* jdmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369E14BEF45B003BA3DA /* jdmainct.c */; }; + 5D8E36CD14BEF45B003BA3DA /* jdmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369F14BEF45B003BA3DA /* jdmarker.c */; }; + 5D8E36CE14BEF45B003BA3DA /* jdmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A014BEF45B003BA3DA /* jdmaster.c */; }; + 5D8E36CF14BEF45B003BA3DA /* jdmerge.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A114BEF45B003BA3DA /* jdmerge.c */; }; + 5D8E36D014BEF45B003BA3DA /* jdphuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A214BEF45B003BA3DA /* jdphuff.c */; }; + 5D8E36D114BEF45B003BA3DA /* jdpostct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A314BEF45B003BA3DA /* jdpostct.c */; }; + 5D8E36D214BEF45B003BA3DA /* jdsample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A414BEF45B003BA3DA /* jdsample.c */; }; + 5D8E36D314BEF45B003BA3DA /* jdtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A514BEF45B003BA3DA /* jdtrans.c */; }; + 5D8E36D414BEF45B003BA3DA /* jerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A614BEF45B003BA3DA /* jerror.c */; }; + 5D8E36D514BEF45B003BA3DA /* jfdctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A714BEF45B003BA3DA /* jfdctflt.c */; }; + 5D8E36D614BEF45B003BA3DA /* jfdctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A814BEF45B003BA3DA /* jfdctfst.c */; }; + 5D8E36D714BEF45B003BA3DA /* jfdctint.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A914BEF45B003BA3DA /* jfdctint.c */; }; + 5D8E36D814BEF45B003BA3DA /* jidctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AA14BEF45B003BA3DA /* jidctflt.c */; }; + 5D8E36D914BEF45B003BA3DA /* jidctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AB14BEF45B003BA3DA /* jidctfst.c */; }; + 5D8E36DA14BEF45B003BA3DA /* jidctint.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AC14BEF45B003BA3DA /* jidctint.c */; }; + 5D8E36DB14BEF45B003BA3DA /* jidctred.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AD14BEF45B003BA3DA /* jidctred.c */; }; + 5D8E36DC14BEF45B003BA3DA /* jmemmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AE14BEF45B003BA3DA /* jmemmgr.c */; }; + 5D8E36DD14BEF45B003BA3DA /* jmemnobs.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AF14BEF45B003BA3DA /* jmemnobs.c */; }; + 5D8E36DE14BEF45B003BA3DA /* jquant1.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B014BEF45B003BA3DA /* jquant1.c */; }; + 5D8E36DF14BEF45B003BA3DA /* jquant2.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B114BEF45B003BA3DA /* jquant2.c */; }; + 5D8E36E014BEF45B003BA3DA /* jutils.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B214BEF45B003BA3DA /* jutils.c */; }; + 5D8E37B114BF0C85003BA3DA /* RenderScissorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E37B014BF0C85003BA3DA /* RenderScissorComponent.cpp */; }; + 5DDE02A512B4F526000C5CC0 /* App.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE02A412B4F526000C5CC0 /* App.cpp */; }; + 5DDE05AA12B58EBD000C5CC0 /* interface in Resources */ = {isa = PBXBuildFile; fileRef = 5DDE05A912B58EBD000C5CC0 /* interface */; }; + 5DFB863312BB233D00337543 /* app.icns in Resources */ = {isa = PBXBuildFile; fileRef = 5DFB863212BB233D00337543 /* app.icns */; }; + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */; }; + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; }; + AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF9DBBC5113C611C00D05754 /* QuartzCore.framework */; }; + AFBD7716113895850015E685 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AFBD7714113895850015E685 /* MainMenu.xib */; }; + AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; +/* End PBXBuildFile section */ + + +/* Begin PBXFileReference section */ + 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = ""; }; + 256AC3F00F4B6AF500CF3369 /* RTLooneyLadders_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RTLooneyLadders_Prefix.pch; sourceTree = ""; }; + 29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = ""; }; + 29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = ""; }; + 5D361D492AB83C0E006C5169 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + 5D70B61A12B5FED300A1AB17 /* PlatformSetupOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformSetupOSX.h; path = ../../shared/OSX/PlatformSetupOSX.h; sourceTree = SOURCE_ROOT; }; + 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = OSXUtils.mm; path = ../../shared/OSX/OSXUtils.mm; sourceTree = SOURCE_ROOT; }; + 5D70B61C12B5FED300A1AB17 /* OSXUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OSXUtils.h; path = ../../shared/OSX/OSXUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B61E12B5FED300A1AB17 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; + 5D70B61F12B5FED300A1AB17 /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainController.h; sourceTree = ""; }; + 5D70B62012B5FED300A1AB17 /* MainController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MainController.mm; sourceTree = ""; }; + 5D70B62112B5FED300A1AB17 /* MyApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyApplication.h; sourceTree = ""; }; + 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyOpenGLView.h; sourceTree = ""; }; + 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyOpenGLView.mm; sourceTree = ""; }; + 5D70B6B212B606DB00A1AB17 /* StreamingInstanceZip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamingInstanceZip.h; path = ../../shared/FileSystem/StreamingInstanceZip.h; sourceTree = SOURCE_ROOT; }; + 5D70B6B312B606DB00A1AB17 /* StreamingInstanceZip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StreamingInstanceZip.cpp; path = ../../shared/FileSystem/StreamingInstanceZip.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6B412B606DB00A1AB17 /* StreamingInstanceFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamingInstanceFile.h; path = ../../shared/FileSystem/StreamingInstanceFile.h; sourceTree = SOURCE_ROOT; }; + 5D70B6B512B606DB00A1AB17 /* StreamingInstanceFile.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StreamingInstanceFile.cpp; path = ../../shared/FileSystem/StreamingInstanceFile.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6B612B606DB00A1AB17 /* StreamingInstance.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamingInstance.h; path = ../../shared/FileSystem/StreamingInstance.h; sourceTree = SOURCE_ROOT; }; + 5D70B6B712B606DB00A1AB17 /* StreamingInstance.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StreamingInstance.cpp; path = ../../shared/FileSystem/StreamingInstance.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6B812B606DC00A1AB17 /* FileSystemZip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileSystemZip.h; path = ../../shared/FileSystem/FileSystemZip.h; sourceTree = SOURCE_ROOT; }; + 5D70B6B912B606DC00A1AB17 /* FileSystemZip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FileSystemZip.cpp; path = ../../shared/FileSystem/FileSystemZip.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6BA12B606DC00A1AB17 /* FileSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileSystem.h; path = ../../shared/FileSystem/FileSystem.h; sourceTree = SOURCE_ROOT; }; + 5D70B6BB12B606DC00A1AB17 /* FileSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FileSystem.cpp; path = ../../shared/FileSystem/FileSystem.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6BC12B606DC00A1AB17 /* FileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileManager.h; path = ../../shared/FileSystem/FileManager.h; sourceTree = SOURCE_ROOT; }; + 5D70B6BD12B606DC00A1AB17 /* FileManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FileManager.cpp; path = ../../shared/FileSystem/FileManager.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6BF12B606DC00A1AB17 /* ResourceManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ResourceManager.cpp; path = ../../shared/Manager/ResourceManager.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6C012B606DC00A1AB17 /* ResourceManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResourceManager.h; path = ../../shared/Manager/ResourceManager.h; sourceTree = SOURCE_ROOT; }; + 5D70B6C112B606DC00A1AB17 /* VariantDB.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = VariantDB.cpp; path = ../../shared/Manager/VariantDB.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6C212B606DC00A1AB17 /* VariantDB.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VariantDB.h; path = ../../shared/Manager/VariantDB.h; sourceTree = SOURCE_ROOT; }; + 5D70B6C312B606DC00A1AB17 /* Console.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Console.cpp; path = ../../shared/Manager/Console.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6C412B606DC00A1AB17 /* Console.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Console.h; path = ../../shared/Manager/Console.h; sourceTree = SOURCE_ROOT; }; + 5D70B6C512B606DC00A1AB17 /* GameTimer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GameTimer.cpp; path = ../../shared/Manager/GameTimer.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6C612B606DC00A1AB17 /* GameTimer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GameTimer.h; path = ../../shared/Manager/GameTimer.h; sourceTree = SOURCE_ROOT; }; + 5D70B6C712B606DC00A1AB17 /* MessageManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MessageManager.cpp; path = ../../shared/Manager/MessageManager.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6C812B606DC00A1AB17 /* MessageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MessageManager.h; path = ../../shared/Manager/MessageManager.h; sourceTree = SOURCE_ROOT; }; + 5D70B6CA12B606DC00A1AB17 /* NetHTTP.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetHTTP.cpp; path = ../../shared/Network/NetHTTP.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6CB12B606DC00A1AB17 /* NetHTTP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetHTTP.h; path = ../../shared/Network/NetHTTP.h; sourceTree = SOURCE_ROOT; }; + 5D70B6CC12B606DC00A1AB17 /* NetSocket.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetSocket.cpp; path = ../../shared/Network/NetSocket.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6CD12B606DC00A1AB17 /* NetSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetSocket.h; path = ../../shared/Network/NetSocket.h; sourceTree = SOURCE_ROOT; }; + 5D70B6CE12B606DC00A1AB17 /* NetUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetUtils.cpp; path = ../../shared/Network/NetUtils.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6CF12B606DC00A1AB17 /* NetUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetUtils.h; path = ../../shared/Network/NetUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B6D312B606DC00A1AB17 /* AudioManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioManager.cpp; path = ../../shared/Audio/AudioManager.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6D412B606DC00A1AB17 /* AudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioManager.h; path = ../../shared/Audio/AudioManager.h; sourceTree = SOURCE_ROOT; }; +AA000003000000000000AA01 /* AudioManagerSDL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioManagerSDL.cpp; path = ../../shared/Audio/AudioManagerSDL.cpp; sourceTree = ""; }; +AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioManagerSDL.h; path = ../../shared/Audio/AudioManagerSDL.h; sourceTree = ""; }; + 5D70B6D812B606DC00A1AB17 /* vec4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vec4.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/vec4.cpp"; sourceTree = SOURCE_ROOT; }; + 5D70B6D912B606DC00A1AB17 /* vec1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vec1.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/vec1.cpp"; sourceTree = SOURCE_ROOT; }; + 5D70B6DA12B606DC00A1AB17 /* mat4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mat4.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/mat4.cpp"; sourceTree = SOURCE_ROOT; }; + 5D70B6DB12B606DC00A1AB17 /* mat3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mat3.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/mat3.cpp"; sourceTree = SOURCE_ROOT; }; + 5D70B6DC12B606DC00A1AB17 /* angle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = angle.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/angle.cpp"; sourceTree = SOURCE_ROOT; }; + 5D70B6DD12B606DC00A1AB17 /* vec2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vec2.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/vec2.cpp"; sourceTree = SOURCE_ROOT; }; + 5D70B6DE12B606DC00A1AB17 /* vec3.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vec3.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/vec3.cpp"; sourceTree = SOURCE_ROOT; }; + 5D70B6E112B606DC00A1AB17 /* SliderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SliderComponent.h; path = ../../shared/Entity/SliderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6E212B606DC00A1AB17 /* SliderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SliderComponent.cpp; path = ../../shared/Entity/SliderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6E312B606DC00A1AB17 /* SelectButtonWithCustomInputComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SelectButtonWithCustomInputComponent.h; path = ../../shared/Entity/SelectButtonWithCustomInputComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6E412B606DC00A1AB17 /* SelectButtonWithCustomInputComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SelectButtonWithCustomInputComponent.cpp; path = ../../shared/Entity/SelectButtonWithCustomInputComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6E512B606DC00A1AB17 /* CustomInputComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CustomInputComponent.h; path = ../../shared/Entity/CustomInputComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6E612B606DC00A1AB17 /* CustomInputComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CustomInputComponent.cpp; path = ../../shared/Entity/CustomInputComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6E712B606DC00A1AB17 /* FilterInputComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FilterInputComponent.cpp; path = ../../shared/Entity/FilterInputComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6E812B606DC00A1AB17 /* FilterInputComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FilterInputComponent.h; path = ../../shared/Entity/FilterInputComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6E912B606DC00A1AB17 /* RenderClipComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderClipComponent.cpp; path = ../../shared/Entity/RenderClipComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6EA12B606DC00A1AB17 /* RenderClipComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderClipComponent.h; path = ../../shared/Entity/RenderClipComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6EB12B606DC00A1AB17 /* TouchStripComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TouchStripComponent.cpp; path = ../../shared/Entity/TouchStripComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6EC12B606DC00A1AB17 /* TouchStripComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchStripComponent.h; path = ../../shared/Entity/TouchStripComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6ED12B606DC00A1AB17 /* TrailRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TrailRenderComponent.cpp; path = ../../shared/Entity/TrailRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6EE12B606DC00A1AB17 /* TrailRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TrailRenderComponent.h; path = ../../shared/Entity/TrailRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6EF12B606DC00A1AB17 /* InputTextRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InputTextRenderComponent.cpp; path = ../../shared/Entity/InputTextRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6F012B606DC00A1AB17 /* InputTextRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InputTextRenderComponent.h; path = ../../shared/Entity/InputTextRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6F112B606DC00A1AB17 /* RectRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RectRenderComponent.cpp; path = ../../shared/Entity/RectRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6F212B606DC00A1AB17 /* RectRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RectRenderComponent.h; path = ../../shared/Entity/RectRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6F312B606DC00A1AB17 /* ScrollBarRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollBarRenderComponent.cpp; path = ../../shared/Entity/ScrollBarRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6F412B606DC00A1AB17 /* ScrollBarRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScrollBarRenderComponent.h; path = ../../shared/Entity/ScrollBarRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6F512B606DC00A1AB17 /* ScrollComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ScrollComponent.cpp; path = ../../shared/Entity/ScrollComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6F612B606DC00A1AB17 /* ScrollComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ScrollComponent.h; path = ../../shared/Entity/ScrollComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6F712B606DC00A1AB17 /* TextBoxRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TextBoxRenderComponent.cpp; path = ../../shared/Entity/TextBoxRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6F812B606DC00A1AB17 /* TextBoxRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextBoxRenderComponent.h; path = ../../shared/Entity/TextBoxRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6F912B606DC00A1AB17 /* HTTPComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = HTTPComponent.cpp; path = ../../shared/Entity/HTTPComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6FA12B606DC00A1AB17 /* HTTPComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HTTPComponent.h; path = ../../shared/Entity/HTTPComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6FB12B606DC00A1AB17 /* TyperComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TyperComponent.cpp; path = ../../shared/Entity/TyperComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6FC12B606DC00A1AB17 /* TyperComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TyperComponent.h; path = ../../shared/Entity/TyperComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6FD12B606DC00A1AB17 /* ProgressBarComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ProgressBarComponent.cpp; path = ../../shared/Entity/ProgressBarComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B6FE12B606DC00A1AB17 /* ProgressBarComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressBarComponent.h; path = ../../shared/Entity/ProgressBarComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B6FF12B606DC00A1AB17 /* TapSequenceDetectComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TapSequenceDetectComponent.cpp; path = ../../shared/Entity/TapSequenceDetectComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70012B606DC00A1AB17 /* TapSequenceDetectComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TapSequenceDetectComponent.h; path = ../../shared/Entity/TapSequenceDetectComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70112B606DC00A1AB17 /* UnderlineRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UnderlineRenderComponent.cpp; path = ../../shared/Entity/UnderlineRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70212B606DC00A1AB17 /* UnderlineRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UnderlineRenderComponent.h; path = ../../shared/Entity/UnderlineRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70312B606DC00A1AB17 /* FocusInputComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FocusInputComponent.cpp; path = ../../shared/Entity/FocusInputComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70412B606DC00A1AB17 /* FocusInputComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FocusInputComponent.h; path = ../../shared/Entity/FocusInputComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70512B606DC00A1AB17 /* FocusRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FocusRenderComponent.cpp; path = ../../shared/Entity/FocusRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70612B606DC00A1AB17 /* FocusRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FocusRenderComponent.h; path = ../../shared/Entity/FocusRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70712B606DC00A1AB17 /* FocusUpdateComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = FocusUpdateComponent.cpp; path = ../../shared/Entity/FocusUpdateComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70812B606DC00A1AB17 /* FocusUpdateComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FocusUpdateComponent.h; path = ../../shared/Entity/FocusUpdateComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70912B606DC00A1AB17 /* InterpolateComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = InterpolateComponent.cpp; path = ../../shared/Entity/InterpolateComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70A12B606DC00A1AB17 /* InterpolateComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = InterpolateComponent.h; path = ../../shared/Entity/InterpolateComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70B12B606DC00A1AB17 /* TextRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TextRenderComponent.cpp; path = ../../shared/Entity/TextRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70C12B606DC00A1AB17 /* TextRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextRenderComponent.h; path = ../../shared/Entity/TextRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70D12B606DC00A1AB17 /* Button2DComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Button2DComponent.cpp; path = ../../shared/Entity/Button2DComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B70E12B606DC00A1AB17 /* Button2DComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Button2DComponent.h; path = ../../shared/Entity/Button2DComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B70F12B606DC00A1AB17 /* TouchHandlerComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TouchHandlerComponent.cpp; path = ../../shared/Entity/TouchHandlerComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B71012B606DC00A1AB17 /* TouchHandlerComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchHandlerComponent.h; path = ../../shared/Entity/TouchHandlerComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B71112B606DC00A1AB17 /* OverlayRenderComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OverlayRenderComponent.cpp; path = ../../shared/Entity/OverlayRenderComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B71212B606DC00A1AB17 /* OverlayRenderComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OverlayRenderComponent.h; path = ../../shared/Entity/OverlayRenderComponent.h; sourceTree = SOURCE_ROOT; }; + 5D70B74C12B606DC00A1AB17 /* EntityUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EntityUtils.cpp; path = ../../shared/Entity/EntityUtils.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B74D12B606DC00A1AB17 /* EntityUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EntityUtils.h; path = ../../shared/Entity/EntityUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B74E12B606DC00A1AB17 /* Component.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Component.cpp; path = ../../shared/Entity/Component.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B74F12B606DC00A1AB17 /* Component.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Component.h; path = ../../shared/Entity/Component.h; sourceTree = SOURCE_ROOT; }; + 5D70B75012B606DC00A1AB17 /* Entity.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Entity.cpp; path = ../../shared/Entity/Entity.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B75112B606DC00A1AB17 /* Entity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Entity.h; path = ../../shared/Entity/Entity.h; sourceTree = SOURCE_ROOT; }; + 5D70B75312B606DC00A1AB17 /* RTFont.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RTFont.cpp; path = ../../shared/GUI/RTFont.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B75412B606DC00A1AB17 /* RTFont.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTFont.h; path = ../../shared/GUI/RTFont.h; sourceTree = SOURCE_ROOT; }; + 5D70B75612B606DC00A1AB17 /* rtRect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = rtRect.cpp; path = ../../shared/Math/rtRect.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B75712B606DC00A1AB17 /* rtRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = rtRect.h; path = ../../shared/Math/rtRect.h; sourceTree = SOURCE_ROOT; }; + 5D70B75912B606DC00A1AB17 /* SoftSurface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SoftSurface.cpp; path = ../../shared/Renderer/SoftSurface.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B75A12B606DC00A1AB17 /* SoftSurface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SoftSurface.h; path = ../../shared/Renderer/SoftSurface.h; sourceTree = SOURCE_ROOT; }; + 5D70B75B12B606DC00A1AB17 /* RenderBatcher.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderBatcher.cpp; path = ../../shared/Renderer/RenderBatcher.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B75C12B606DC00A1AB17 /* RenderBatcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderBatcher.h; path = ../../shared/Renderer/RenderBatcher.h; sourceTree = SOURCE_ROOT; }; + 5D70B75E12B606DC00A1AB17 /* L_Defination.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_Defination.cpp; path = ../../shared/Renderer/linearparticle/sources/L_Defination.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B75F12B606DC00A1AB17 /* L_Defination.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_Defination.h; path = ../../shared/Renderer/linearparticle/sources/L_Defination.h; sourceTree = SOURCE_ROOT; }; + 5D70B76012B606DC00A1AB17 /* L_DroppingEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_DroppingEffect.cpp; path = ../../shared/Renderer/linearparticle/sources/L_DroppingEffect.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76112B606DC00A1AB17 /* L_DroppingEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_DroppingEffect.h; path = ../../shared/Renderer/linearparticle/sources/L_DroppingEffect.h; sourceTree = SOURCE_ROOT; }; + 5D70B76212B606DC00A1AB17 /* L_EffectEmitter.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_EffectEmitter.cpp; path = ../../shared/Renderer/linearparticle/sources/L_EffectEmitter.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76312B606DC00A1AB17 /* L_EffectEmitter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_EffectEmitter.h; path = ../../shared/Renderer/linearparticle/sources/L_EffectEmitter.h; sourceTree = SOURCE_ROOT; }; + 5D70B76412B606DC00A1AB17 /* L_EffectManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_EffectManager.cpp; path = ../../shared/Renderer/linearparticle/sources/L_EffectManager.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76512B606DC00A1AB17 /* L_EffectManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_EffectManager.h; path = ../../shared/Renderer/linearparticle/sources/L_EffectManager.h; sourceTree = SOURCE_ROOT; }; + 5D70B76612B606DC00A1AB17 /* L_ExplosionEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_ExplosionEffect.cpp; path = ../../shared/Renderer/linearparticle/sources/L_ExplosionEffect.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76712B606DC00A1AB17 /* L_ExplosionEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_ExplosionEffect.h; path = ../../shared/Renderer/linearparticle/sources/L_ExplosionEffect.h; sourceTree = SOURCE_ROOT; }; + 5D70B76812B606DC00A1AB17 /* L_MotionController.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_MotionController.cpp; path = ../../shared/Renderer/linearparticle/sources/L_MotionController.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76912B606DC00A1AB17 /* L_MotionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_MotionController.h; path = ../../shared/Renderer/linearparticle/sources/L_MotionController.h; sourceTree = SOURCE_ROOT; }; + 5D70B76A12B606DC00A1AB17 /* L_Particle.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_Particle.cpp; path = ../../shared/Renderer/linearparticle/sources/L_Particle.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76B12B606DC00A1AB17 /* L_Particle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_Particle.h; path = ../../shared/Renderer/linearparticle/sources/L_Particle.h; sourceTree = SOURCE_ROOT; }; + 5D70B76C12B606DC00A1AB17 /* L_ParticleEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_ParticleEffect.cpp; path = ../../shared/Renderer/linearparticle/sources/L_ParticleEffect.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76D12B606DC00A1AB17 /* L_ParticleEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_ParticleEffect.h; path = ../../shared/Renderer/linearparticle/sources/L_ParticleEffect.h; sourceTree = SOURCE_ROOT; }; + 5D70B76E12B606DC00A1AB17 /* L_ParticleMem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_ParticleMem.cpp; path = ../../shared/Renderer/linearparticle/sources/L_ParticleMem.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B76F12B606DC00A1AB17 /* L_ParticleMem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_ParticleMem.h; path = ../../shared/Renderer/linearparticle/sources/L_ParticleMem.h; sourceTree = SOURCE_ROOT; }; + 5D70B77012B606DC00A1AB17 /* L_ParticleSystem.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_ParticleSystem.cpp; path = ../../shared/Renderer/linearparticle/sources/L_ParticleSystem.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B77112B606DC00A1AB17 /* L_ParticleSystem.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_ParticleSystem.h; path = ../../shared/Renderer/linearparticle/sources/L_ParticleSystem.h; sourceTree = SOURCE_ROOT; }; + 5D70B77212B606DC00A1AB17 /* L_ShootingEffect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = L_ShootingEffect.cpp; path = ../../shared/Renderer/linearparticle/sources/L_ShootingEffect.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B77312B606DC00A1AB17 /* L_ShootingEffect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = L_ShootingEffect.h; path = ../../shared/Renderer/linearparticle/sources/L_ShootingEffect.h; sourceTree = SOURCE_ROOT; }; + 5D70B77412B606DC00A1AB17 /* LinearParticle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LinearParticle.h; path = ../../shared/Renderer/LinearParticle.h; sourceTree = SOURCE_ROOT; }; + 5D70B77512B606DC00A1AB17 /* SurfaceAnim.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = SurfaceAnim.cpp; path = ../../shared/Renderer/SurfaceAnim.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B77612B606DC00A1AB17 /* SurfaceAnim.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SurfaceAnim.h; path = ../../shared/Renderer/SurfaceAnim.h; sourceTree = SOURCE_ROOT; }; + 5D70B77712B606DC00A1AB17 /* bitmap.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = bitmap.h; path = ../../shared/Renderer/bitmap.h; sourceTree = SOURCE_ROOT; }; + 5D70B77812B606DC00A1AB17 /* Surface.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Surface.cpp; path = ../../shared/Renderer/Surface.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B77912B606DC00A1AB17 /* Surface.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Surface.h; path = ../../shared/Renderer/Surface.h; sourceTree = SOURCE_ROOT; }; + 5D70B77C12B606DC00A1AB17 /* unzip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = unzip.h; path = ../../shared/util/unzip/unzip.h; sourceTree = SOURCE_ROOT; }; + 5D70B77D12B606DC00A1AB17 /* unzip.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = unzip.c; path = ../../shared/util/unzip/unzip.c; sourceTree = SOURCE_ROOT; }; + 5D70B77E12B606DC00A1AB17 /* ioapi.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ioapi.h; path = ../../shared/util/unzip/ioapi.h; sourceTree = SOURCE_ROOT; }; + 5D70B77F12B606DC00A1AB17 /* ioapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = ioapi.c; path = ../../shared/util/unzip/ioapi.c; sourceTree = SOURCE_ROOT; }; + 5D70B78012B606DC00A1AB17 /* crypt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = crypt.h; path = ../../shared/util/unzip/crypt.h; sourceTree = SOURCE_ROOT; }; + 5D70B78112B606DC00A1AB17 /* CRandom.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CRandom.cpp; path = ../../shared/util/CRandom.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B78212B606DC00A1AB17 /* CRandom.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CRandom.h; path = ../../shared/util/CRandom.h; sourceTree = SOURCE_ROOT; }; + 5D70B78312B606DC00A1AB17 /* PrimeSearch.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PrimeSearch.cpp; path = ../../shared/util/PrimeSearch.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B78412B606DC00A1AB17 /* PrimeSearch.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrimeSearch.h; path = ../../shared/util/PrimeSearch.h; sourceTree = SOURCE_ROOT; }; + 5D70B78512B606DC00A1AB17 /* TextScanner.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TextScanner.cpp; path = ../../shared/util/TextScanner.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B78612B606DC00A1AB17 /* TextScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextScanner.h; path = ../../shared/util/TextScanner.h; sourceTree = SOURCE_ROOT; }; + 5D70B78712B606DC00A1AB17 /* MathUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MathUtils.cpp; path = ../../shared/util/MathUtils.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B78812B606DC00A1AB17 /* MathUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MathUtils.h; path = ../../shared/util/MathUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B78912B606DC00A1AB17 /* Variant.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Variant.cpp; path = ../../shared/util/Variant.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B78A12B606DC00A1AB17 /* Variant.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Variant.h; path = ../../shared/util/Variant.h; sourceTree = SOURCE_ROOT; }; + 5D70B79212B606DC00A1AB17 /* GLESUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GLESUtils.cpp; path = ../../shared/util/GLESUtils.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B79312B606DC00A1AB17 /* GLESUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLESUtils.h; path = ../../shared/util/GLESUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B79412B606DC00A1AB17 /* ResourceUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ResourceUtils.cpp; path = ../../shared/util/ResourceUtils.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B79512B606DC00A1AB17 /* ResourceUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResourceUtils.h; path = ../../shared/util/ResourceUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B79612B606DC00A1AB17 /* RTFileFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTFileFormat.h; path = ../../shared/util/RTFileFormat.h; sourceTree = SOURCE_ROOT; }; + 5D70B79712B606DC00A1AB17 /* MiscUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MiscUtils.cpp; path = ../../shared/util/MiscUtils.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B79812B606DC00A1AB17 /* MiscUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MiscUtils.h; path = ../../shared/util/MiscUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B79912B606DC00A1AB17 /* RenderUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderUtils.cpp; path = ../../shared/util/RenderUtils.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B79A12B606DC00A1AB17 /* RenderUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderUtils.h; path = ../../shared/util/RenderUtils.h; sourceTree = SOURCE_ROOT; }; + 5D70B79B12B606DC00A1AB17 /* PlatformSetup.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformSetup.h; path = ../../shared/PlatformSetup.h; sourceTree = SOURCE_ROOT; }; + 5D70B79C12B606DC00A1AB17 /* PlatformSetup.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PlatformSetup.cpp; path = ../../shared/PlatformSetup.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B79D12B606DC00A1AB17 /* PlatformPrecomp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformPrecomp.h; path = ../../shared/PlatformPrecomp.h; sourceTree = SOURCE_ROOT; }; + 5D70B79E12B606DC00A1AB17 /* PlatformPrecomp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PlatformPrecomp.cpp; path = ../../shared/PlatformPrecomp.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B79F12B606DC00A1AB17 /* BaseApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BaseApp.cpp; path = ../../shared/BaseApp.cpp; sourceTree = SOURCE_ROOT; }; + 5D70B7A012B606DC00A1AB17 /* BaseApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BaseApp.h; path = ../../shared/BaseApp.h; sourceTree = SOURCE_ROOT; }; + 5D70B83312B6074D00A1AB17 /* audio */ = {isa = PBXFileReference; lastKnownFileType = folder; name = audio; path = ../bin/audio; sourceTree = SOURCE_ROOT; }; + 5D70B83512B6075B00A1AB17 /* game */ = {isa = PBXFileReference; lastKnownFileType = folder; name = game; path = ../bin/game; sourceTree = SOURCE_ROOT; }; + 5D70C4BE12B7586D00A1AB17 /* MyApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyApplication.mm; sourceTree = ""; }; + 5D8E367E14BEF412003BA3DA /* JPGSurfaceLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JPGSurfaceLoader.h; path = ../../shared/Renderer/JPGSurfaceLoader.h; sourceTree = SOURCE_ROOT; }; + 5D8E367F14BEF412003BA3DA /* RTGLESExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTGLESExt.h; path = ../../shared/Renderer/RTGLESExt.h; sourceTree = SOURCE_ROOT; }; + 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JPGSurfaceLoader.cpp; path = ../../shared/Renderer/JPGSurfaceLoader.cpp; sourceTree = SOURCE_ROOT; }; + 5D8E368114BEF412003BA3DA /* RTGLESExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RTGLESExt.cpp; path = ../../shared/Renderer/RTGLESExt.cpp; sourceTree = SOURCE_ROOT; }; + 5D8E368514BEF45B003BA3DA /* jcapimin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcapimin.c; sourceTree = SOURCE_ROOT; }; + 5D8E368614BEF45B003BA3DA /* jcapistd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcapistd.c; sourceTree = SOURCE_ROOT; }; + 5D8E368714BEF45B003BA3DA /* jccoefct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jccoefct.c; sourceTree = SOURCE_ROOT; }; + 5D8E368814BEF45B003BA3DA /* jccolor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jccolor.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jccolor.c; sourceTree = SOURCE_ROOT; }; + 5D8E368914BEF45B003BA3DA /* jcdctmgr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcdctmgr.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcdctmgr.c; sourceTree = SOURCE_ROOT; }; + 5D8E368A14BEF45B003BA3DA /* jchuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jchuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E368B14BEF45B003BA3DA /* jcinit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcinit.c; sourceTree = SOURCE_ROOT; }; + 5D8E368C14BEF45B003BA3DA /* jcmainct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcmainct.c; sourceTree = SOURCE_ROOT; }; + 5D8E368D14BEF45B003BA3DA /* jcmarker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcmarker.c; sourceTree = SOURCE_ROOT; }; + 5D8E368E14BEF45B003BA3DA /* jcmaster.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcmaster.c; sourceTree = SOURCE_ROOT; }; + 5D8E368F14BEF45B003BA3DA /* jcomapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcomapi.c; sourceTree = SOURCE_ROOT; }; + 5D8E369014BEF45B003BA3DA /* jcparam.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcparam.c; sourceTree = SOURCE_ROOT; }; + 5D8E369114BEF45B003BA3DA /* jcphuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcphuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcphuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E369214BEF45B003BA3DA /* jcprepct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcprepct.c; sourceTree = SOURCE_ROOT; }; + 5D8E369314BEF45B003BA3DA /* jcsample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcsample.c; sourceTree = SOURCE_ROOT; }; + 5D8E369414BEF45B003BA3DA /* jctrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jctrans.c; sourceTree = SOURCE_ROOT; }; + 5D8E369514BEF45B003BA3DA /* jdapimin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdapimin.c; sourceTree = SOURCE_ROOT; }; + 5D8E369614BEF45B003BA3DA /* jdapistd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdapistd.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdapistd.c; sourceTree = SOURCE_ROOT; }; + 5D8E369714BEF45B003BA3DA /* jdatadst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdatadst.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdatadst.c; sourceTree = SOURCE_ROOT; }; + 5D8E369814BEF45B003BA3DA /* jdatasrc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdatasrc.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdatasrc.c; sourceTree = SOURCE_ROOT; }; + 5D8E369914BEF45B003BA3DA /* jdcoefct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdcoefct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdcoefct.c; sourceTree = SOURCE_ROOT; }; + 5D8E369A14BEF45B003BA3DA /* jdcolor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdcolor.c; sourceTree = SOURCE_ROOT; }; + 5D8E369B14BEF45B003BA3DA /* jddctmgr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jddctmgr.c; sourceTree = SOURCE_ROOT; }; + 5D8E369C14BEF45B003BA3DA /* jdhuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdhuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E369D14BEF45B003BA3DA /* jdinput.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdinput.c; sourceTree = SOURCE_ROOT; }; + 5D8E369E14BEF45B003BA3DA /* jdmainct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmainct.c; sourceTree = SOURCE_ROOT; }; + 5D8E369F14BEF45B003BA3DA /* jdmarker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmarker.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A014BEF45B003BA3DA /* jdmaster.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmaster.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A114BEF45B003BA3DA /* jdmerge.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmerge.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A214BEF45B003BA3DA /* jdphuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdphuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A314BEF45B003BA3DA /* jdpostct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdpostct.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A414BEF45B003BA3DA /* jdsample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdsample.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A514BEF45B003BA3DA /* jdtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdtrans.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A614BEF45B003BA3DA /* jerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jerror.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A714BEF45B003BA3DA /* jfdctflt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jfdctflt.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A814BEF45B003BA3DA /* jfdctfst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jfdctfst.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A914BEF45B003BA3DA /* jfdctint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jfdctint.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AA14BEF45B003BA3DA /* jidctflt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctflt.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AB14BEF45B003BA3DA /* jidctfst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctfst.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AC14BEF45B003BA3DA /* jidctint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctint.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AD14BEF45B003BA3DA /* jidctred.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctred.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AE14BEF45B003BA3DA /* jmemmgr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jmemmgr.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AF14BEF45B003BA3DA /* jmemnobs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jmemnobs.c; sourceTree = SOURCE_ROOT; }; + 5D8E36B014BEF45B003BA3DA /* jquant1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jquant1.c; sourceTree = SOURCE_ROOT; }; + 5D8E36B114BEF45B003BA3DA /* jquant2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jquant2.c; sourceTree = SOURCE_ROOT; }; + 5D8E36B214BEF45B003BA3DA /* jutils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jutils.c; sourceTree = SOURCE_ROOT; }; + 5D8E37AF14BF0C85003BA3DA /* RenderScissorComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderScissorComponent.h; path = ../../shared/Entity/RenderScissorComponent.h; sourceTree = SOURCE_ROOT; }; + 5D8E37B014BF0C85003BA3DA /* RenderScissorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderScissorComponent.cpp; path = ../../shared/Entity/RenderScissorComponent.cpp; sourceTree = SOURCE_ROOT; }; + 5DDE02A312B4F526000C5CC0 /* App.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = App.h; path = ../source/App.h; sourceTree = SOURCE_ROOT; }; + 5DDE02A412B4F526000C5CC0 /* App.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = App.cpp; path = ../source/App.cpp; sourceTree = SOURCE_ROOT; }; + 5DDE05A912B58EBD000C5CC0 /* interface */ = {isa = PBXFileReference; lastKnownFileType = folder; name = interface; path = ../bin/interface; sourceTree = SOURCE_ROOT; }; + 5DFB863212BB233D00337543 /* app.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = app.icns; sourceTree = ""; }; + 8D1107310486CEB800E47090 /* RTLooneyLadders-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "RTLooneyLadders-Info.plist"; sourceTree = ""; }; + 8D1107320486CEB800E47090 /* RTLooneyLadders.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RTLooneyLadders.app; sourceTree = BUILT_PRODUCTS_DIR; }; + AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; + AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 8D11072E0486CEB800E47090 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5D361D4A2AB83C0E006C5169 /* libz.tbd in Frameworks */, + 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, + AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */, + AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + + +/* RTLooneyLadders app-specific file references */ +LL000001000000000000000011 /* BuildingComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BuildingComponent.cpp; path = ../source/Component/BuildingComponent.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000021 /* BuildingComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BuildingComponent.h; path = ../source/Component/BuildingComponent.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000012 /* Character.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Character.cpp; path = ../source/Component/Character.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000022 /* Character.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Character.h; path = ../source/Component/Character.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000013 /* CharComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharComponent.cpp; path = ../source/Component/CharComponent.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000023 /* CharComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharComponent.h; path = ../source/Component/CharComponent.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000014 /* CharManagerComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharManagerComponent.cpp; path = ../source/Component/CharManagerComponent.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000024 /* CharManagerComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharManagerComponent.h; path = ../source/Component/CharManagerComponent.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000015 /* ExplosionComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ExplosionComponent.cpp; path = ../source/Component/ExplosionComponent.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000025 /* ExplosionComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExplosionComponent.h; path = ../source/Component/ExplosionComponent.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OverlayRenderComponentSpy.cpp; path = ../source/Component/OverlayRenderComponentSpy.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000026 /* OverlayRenderComponentSpy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OverlayRenderComponentSpy.h; path = ../source/Component/OverlayRenderComponentSpy.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000017 /* AboutMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AboutMenu.cpp; path = ../source/GUI/AboutMenu.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000027 /* AboutMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutMenu.h; path = ../source/GUI/AboutMenu.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000018 /* ControllerTestMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ControllerTestMenu.cpp; path = ../source/GUI/ControllerTestMenu.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000028 /* ControllerTestMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ControllerTestMenu.h; path = ../source/GUI/ControllerTestMenu.h; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000019 /* GameMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GameMenu.cpp; path = ../source/GUI/GameMenu.cpp; sourceTree = SOURCE_ROOT; }; +LL000001000000000000000029 /* GameMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GameMenu.h; path = ../source/GUI/GameMenu.h; sourceTree = SOURCE_ROOT; }; +LL00000100000000000000001A /* IntroMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IntroMenu.cpp; path = ../source/GUI/IntroMenu.cpp; sourceTree = SOURCE_ROOT; }; +LL00000100000000000000002A /* IntroMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IntroMenu.h; path = ../source/GUI/IntroMenu.h; sourceTree = SOURCE_ROOT; }; +LL00000100000000000000001B /* MainMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MainMenu.cpp; path = ../source/GUI/MainMenu.cpp; sourceTree = SOURCE_ROOT; }; +LL00000100000000000000002B /* MainMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainMenu.h; path = ../source/GUI/MainMenu.h; sourceTree = SOURCE_ROOT; }; +/* End RTLooneyLadders app-specific file references */ +/* Begin PBXGroup section */ + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { + isa = PBXGroup; + children = ( + 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */, + AFD4D889113C504F00C2DE76 /* OpenGL.framework */, + AF9DBBC5113C611C00D05754 /* QuartzCore.framework */, + ); + name = "Linked Frameworks"; + sourceTree = ""; + }; + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = { + isa = PBXGroup; + children = ( + 29B97324FDCFA39411CA2CEA /* AppKit.framework */, + 29B97325FDCFA39411CA2CEA /* Foundation.framework */, + ); + name = "Other Frameworks"; + sourceTree = ""; + }; + 19C28FACFE9D520D11CA2CBB /* Products */ = { + isa = PBXGroup; + children = ( + 8D1107320486CEB800E47090 /* RTLooneyLadders.app */, + ); + name = Products; + sourceTree = ""; + }; + 29B97314FDCFA39411CA2CEA /* RTLooneyLadders */ = { + isa = PBXGroup; + children = ( + 5DDE012412B4D49C000C5CC0 /* shared */, + 29B97315FDCFA39411CA2CEA /* source */, + 29B97317FDCFA39411CA2CEA /* Resources */, + 29B97323FDCFA39411CA2CEA /* Frameworks */, + 19C28FACFE9D520D11CA2CBB /* Products */, + ); + name = RTLooneyLadders; + sourceTree = ""; + }; + 29B97315FDCFA39411CA2CEA /* source */ = { + isa = PBXGroup; + children = ( + 5D70B82212B6072D00A1AB17 /* GUI */, + 5D70B81F12B6072D00A1AB17 /* Component */, + 5DDE02A312B4F526000C5CC0 /* App.h */, + 5DDE02A412B4F526000C5CC0 /* App.cpp */, + 256AC3F00F4B6AF500CF3369 /* RTLooneyLadders_Prefix.pch */, + ); + name = source; + sourceTree = ""; + }; + 29B97317FDCFA39411CA2CEA /* Resources */ = { + isa = PBXGroup; + children = ( + 5DFB863212BB233D00337543 /* app.icns */, + 5D70B83512B6075B00A1AB17 /* game */, + 5D70B83312B6074D00A1AB17 /* audio */, + 5DDE05A912B58EBD000C5CC0 /* interface */, + AFBD7714113895850015E685 /* MainMenu.xib */, + 8D1107310486CEB800E47090 /* RTLooneyLadders-Info.plist */, + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */, + ); + name = Resources; + sourceTree = ""; + }; + 29B97323FDCFA39411CA2CEA /* Frameworks */ = { + isa = PBXGroup; + children = ( + 5D361D492AB83C0E006C5169 /* libz.tbd */, + 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, + 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5D70B61912B5FEB000A1AB17 /* OSX */ = { + isa = PBXGroup; + children = ( + 5D70B61A12B5FED300A1AB17 /* PlatformSetupOSX.h */, + 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */, + 5D70B61C12B5FED300A1AB17 /* OSXUtils.h */, + 5D70B61D12B5FED300A1AB17 /* app */, + ); + name = OSX; + sourceTree = ""; + }; + 5D70B61D12B5FED300A1AB17 /* app */ = { + isa = PBXGroup; + children = ( + 5D70C4BE12B7586D00A1AB17 /* MyApplication.mm */, + 5D70B61E12B5FED300A1AB17 /* main.m */, + 5D70B61F12B5FED300A1AB17 /* MainController.h */, + 5D70B62012B5FED300A1AB17 /* MainController.mm */, + 5D70B62112B5FED300A1AB17 /* MyApplication.h */, + 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */, + 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */, + ); + name = app; + path = ../../shared/OSX/app; + sourceTree = SOURCE_ROOT; + }; + 5D70B6B112B606DB00A1AB17 /* FileSystem */ = { + isa = PBXGroup; + children = ( + 5D70B6B212B606DB00A1AB17 /* StreamingInstanceZip.h */, + 5D70B6B312B606DB00A1AB17 /* StreamingInstanceZip.cpp */, + 5D70B6B412B606DB00A1AB17 /* StreamingInstanceFile.h */, + 5D70B6B512B606DB00A1AB17 /* StreamingInstanceFile.cpp */, + 5D70B6B612B606DB00A1AB17 /* StreamingInstance.h */, + 5D70B6B712B606DB00A1AB17 /* StreamingInstance.cpp */, + 5D70B6B812B606DC00A1AB17 /* FileSystemZip.h */, + 5D70B6B912B606DC00A1AB17 /* FileSystemZip.cpp */, + 5D70B6BA12B606DC00A1AB17 /* FileSystem.h */, + 5D70B6BB12B606DC00A1AB17 /* FileSystem.cpp */, + 5D70B6BC12B606DC00A1AB17 /* FileManager.h */, + 5D70B6BD12B606DC00A1AB17 /* FileManager.cpp */, + ); + name = FileSystem; + sourceTree = ""; + }; + 5D70B6BE12B606DC00A1AB17 /* Managers */ = { + isa = PBXGroup; + children = ( + 5D70B6BF12B606DC00A1AB17 /* ResourceManager.cpp */, + 5D70B6C012B606DC00A1AB17 /* ResourceManager.h */, + 5D70B6C112B606DC00A1AB17 /* VariantDB.cpp */, + 5D70B6C212B606DC00A1AB17 /* VariantDB.h */, + 5D70B6C312B606DC00A1AB17 /* Console.cpp */, + 5D70B6C412B606DC00A1AB17 /* Console.h */, + 5D70B6C512B606DC00A1AB17 /* GameTimer.cpp */, + 5D70B6C612B606DC00A1AB17 /* GameTimer.h */, + 5D70B6C712B606DC00A1AB17 /* MessageManager.cpp */, + 5D70B6C812B606DC00A1AB17 /* MessageManager.h */, + ); + name = Managers; + sourceTree = ""; + }; + 5D70B6C912B606DC00A1AB17 /* Network */ = { + isa = PBXGroup; + children = ( + 5D70B6CA12B606DC00A1AB17 /* NetHTTP.cpp */, + 5D70B6CB12B606DC00A1AB17 /* NetHTTP.h */, + 5D70B6CC12B606DC00A1AB17 /* NetSocket.cpp */, + 5D70B6CD12B606DC00A1AB17 /* NetSocket.h */, + 5D70B6CE12B606DC00A1AB17 /* NetUtils.cpp */, + 5D70B6CF12B606DC00A1AB17 /* NetUtils.h */, + ); + name = Network; + sourceTree = ""; + }; + 5D70B6D012B606DC00A1AB17 /* Audio */ = { + isa = PBXGroup; + children = ( + 5D70B6D312B606DC00A1AB17 /* AudioManager.cpp */, + 5D70B6D412B606DC00A1AB17 /* AudioManager.h */, + AA000003000000000000AA01 /* AudioManagerSDL.cpp */, + AA000003000000000000AA02 /* AudioManagerSDL.h */, + ); + name = Audio; + sourceTree = ""; + }; + 5D70B6D512B606DC00A1AB17 /* ClanLib */ = { + isa = PBXGroup; + children = ( + 5D70B6D612B606DC00A1AB17 /* Core */, + ); + name = ClanLib; + sourceTree = ""; + }; + 5D70B6D612B606DC00A1AB17 /* Core */ = { + isa = PBXGroup; + children = ( + 5D70B6D712B606DC00A1AB17 /* Math */, + ); + name = Core; + sourceTree = ""; + }; + 5D70B6D712B606DC00A1AB17 /* Math */ = { + isa = PBXGroup; + children = ( + 5D70B6D812B606DC00A1AB17 /* vec4.cpp */, + 5D70B6D912B606DC00A1AB17 /* vec1.cpp */, + 5D70B6DA12B606DC00A1AB17 /* mat4.cpp */, + 5D70B6DB12B606DC00A1AB17 /* mat3.cpp */, + 5D70B6DC12B606DC00A1AB17 /* angle.cpp */, + 5D70B6DD12B606DC00A1AB17 /* vec2.cpp */, + 5D70B6DE12B606DC00A1AB17 /* vec3.cpp */, + ); + name = Math; + sourceTree = ""; + }; + 5D70B6DF12B606DC00A1AB17 /* Entity */ = { + isa = PBXGroup; + children = ( + 5D70B6E012B606DC00A1AB17 /* Components */, + 5D70B74E12B606DC00A1AB17 /* Component.cpp */, + 5D70B74F12B606DC00A1AB17 /* Component.h */, + 5D70B74C12B606DC00A1AB17 /* EntityUtils.cpp */, + 5D70B74D12B606DC00A1AB17 /* EntityUtils.h */, + 5D70B75012B606DC00A1AB17 /* Entity.cpp */, + 5D70B75112B606DC00A1AB17 /* Entity.h */, + ); + name = Entity; + sourceTree = ""; + }; + 5D70B6E012B606DC00A1AB17 /* Components */ = { + isa = PBXGroup; + children = ( + 5D8E37AF14BF0C85003BA3DA /* RenderScissorComponent.h */, + 5D8E37B014BF0C85003BA3DA /* RenderScissorComponent.cpp */, + 5D70B6E112B606DC00A1AB17 /* SliderComponent.h */, + 5D70B6E212B606DC00A1AB17 /* SliderComponent.cpp */, + 5D70B6E312B606DC00A1AB17 /* SelectButtonWithCustomInputComponent.h */, + 5D70B6E412B606DC00A1AB17 /* SelectButtonWithCustomInputComponent.cpp */, + 5D70B6E512B606DC00A1AB17 /* CustomInputComponent.h */, + 5D70B6E612B606DC00A1AB17 /* CustomInputComponent.cpp */, + 5D70B6E712B606DC00A1AB17 /* FilterInputComponent.cpp */, + 5D70B6E812B606DC00A1AB17 /* FilterInputComponent.h */, + 5D70B6E912B606DC00A1AB17 /* RenderClipComponent.cpp */, + 5D70B6EA12B606DC00A1AB17 /* RenderClipComponent.h */, + 5D70B6EB12B606DC00A1AB17 /* TouchStripComponent.cpp */, + 5D70B6EC12B606DC00A1AB17 /* TouchStripComponent.h */, + 5D70B6ED12B606DC00A1AB17 /* TrailRenderComponent.cpp */, + 5D70B6EE12B606DC00A1AB17 /* TrailRenderComponent.h */, + 5D70B6EF12B606DC00A1AB17 /* InputTextRenderComponent.cpp */, + 5D70B6F012B606DC00A1AB17 /* InputTextRenderComponent.h */, + 5D70B6F112B606DC00A1AB17 /* RectRenderComponent.cpp */, + 5D70B6F212B606DC00A1AB17 /* RectRenderComponent.h */, + 5D70B6F312B606DC00A1AB17 /* ScrollBarRenderComponent.cpp */, + 5D70B6F412B606DC00A1AB17 /* ScrollBarRenderComponent.h */, + 5D70B6F512B606DC00A1AB17 /* ScrollComponent.cpp */, + 5D70B6F612B606DC00A1AB17 /* ScrollComponent.h */, + 5D70B6F712B606DC00A1AB17 /* TextBoxRenderComponent.cpp */, + 5D70B6F812B606DC00A1AB17 /* TextBoxRenderComponent.h */, + 5D70B6F912B606DC00A1AB17 /* HTTPComponent.cpp */, + 5D70B6FA12B606DC00A1AB17 /* HTTPComponent.h */, + 5D70B6FB12B606DC00A1AB17 /* TyperComponent.cpp */, + 5D70B6FC12B606DC00A1AB17 /* TyperComponent.h */, + 5D70B6FD12B606DC00A1AB17 /* ProgressBarComponent.cpp */, + 5D70B6FE12B606DC00A1AB17 /* ProgressBarComponent.h */, + 5D70B6FF12B606DC00A1AB17 /* TapSequenceDetectComponent.cpp */, + 5D70B70012B606DC00A1AB17 /* TapSequenceDetectComponent.h */, + 5D70B70112B606DC00A1AB17 /* UnderlineRenderComponent.cpp */, + 5D70B70212B606DC00A1AB17 /* UnderlineRenderComponent.h */, + 5D70B70312B606DC00A1AB17 /* FocusInputComponent.cpp */, + 5D70B70412B606DC00A1AB17 /* FocusInputComponent.h */, + 5D70B70512B606DC00A1AB17 /* FocusRenderComponent.cpp */, + 5D70B70612B606DC00A1AB17 /* FocusRenderComponent.h */, + 5D70B70712B606DC00A1AB17 /* FocusUpdateComponent.cpp */, + 5D70B70812B606DC00A1AB17 /* FocusUpdateComponent.h */, + 5D70B70912B606DC00A1AB17 /* InterpolateComponent.cpp */, + 5D70B70A12B606DC00A1AB17 /* InterpolateComponent.h */, + 5D70B70B12B606DC00A1AB17 /* TextRenderComponent.cpp */, + 5D70B70C12B606DC00A1AB17 /* TextRenderComponent.h */, + 5D70B70D12B606DC00A1AB17 /* Button2DComponent.cpp */, + 5D70B70E12B606DC00A1AB17 /* Button2DComponent.h */, + 5D70B70F12B606DC00A1AB17 /* TouchHandlerComponent.cpp */, + 5D70B71012B606DC00A1AB17 /* TouchHandlerComponent.h */, + 5D70B71112B606DC00A1AB17 /* OverlayRenderComponent.cpp */, + 5D70B71212B606DC00A1AB17 /* OverlayRenderComponent.h */, + ); + name = Components; + sourceTree = ""; + }; + 5D70B75212B606DC00A1AB17 /* GUI */ = { + isa = PBXGroup; + children = ( + 5D70B75312B606DC00A1AB17 /* RTFont.cpp */, + 5D70B75412B606DC00A1AB17 /* RTFont.h */, + ); + name = GUI; + sourceTree = ""; + }; + 5D70B75512B606DC00A1AB17 /* Math */ = { + isa = PBXGroup; + children = ( + 5D70B75612B606DC00A1AB17 /* rtRect.cpp */, + 5D70B75712B606DC00A1AB17 /* rtRect.h */, + ); + name = Math; + sourceTree = ""; + }; + 5D70B75812B606DC00A1AB17 /* Render */ = { + isa = PBXGroup; + children = ( + 5D8E368414BEF420003BA3DA /* libjpg */, + 5D8E367E14BEF412003BA3DA /* JPGSurfaceLoader.h */, + 5D8E367F14BEF412003BA3DA /* RTGLESExt.h */, + 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */, + 5D8E368114BEF412003BA3DA /* RTGLESExt.cpp */, + 5D70B75D12B606DC00A1AB17 /* LinearParticle */, + 5D70B75912B606DC00A1AB17 /* SoftSurface.cpp */, + 5D70B75A12B606DC00A1AB17 /* SoftSurface.h */, + 5D70B75B12B606DC00A1AB17 /* RenderBatcher.cpp */, + 5D70B77412B606DC00A1AB17 /* LinearParticle.h */, + 5D70B77512B606DC00A1AB17 /* SurfaceAnim.cpp */, + 5D70B77612B606DC00A1AB17 /* SurfaceAnim.h */, + 5D70B77712B606DC00A1AB17 /* bitmap.h */, + 5D70B77812B606DC00A1AB17 /* Surface.cpp */, + 5D70B77912B606DC00A1AB17 /* Surface.h */, + 5D70B75C12B606DC00A1AB17 /* RenderBatcher.h */, + ); + name = Render; + path = ..; + sourceTree = SOURCE_ROOT; + }; + 5D70B75D12B606DC00A1AB17 /* LinearParticle */ = { + isa = PBXGroup; + children = ( + 5D70B75E12B606DC00A1AB17 /* L_Defination.cpp */, + 5D70B75F12B606DC00A1AB17 /* L_Defination.h */, + 5D70B76012B606DC00A1AB17 /* L_DroppingEffect.cpp */, + 5D70B76112B606DC00A1AB17 /* L_DroppingEffect.h */, + 5D70B76212B606DC00A1AB17 /* L_EffectEmitter.cpp */, + 5D70B76312B606DC00A1AB17 /* L_EffectEmitter.h */, + 5D70B76412B606DC00A1AB17 /* L_EffectManager.cpp */, + 5D70B76512B606DC00A1AB17 /* L_EffectManager.h */, + 5D70B76612B606DC00A1AB17 /* L_ExplosionEffect.cpp */, + 5D70B76712B606DC00A1AB17 /* L_ExplosionEffect.h */, + 5D70B76812B606DC00A1AB17 /* L_MotionController.cpp */, + 5D70B76912B606DC00A1AB17 /* L_MotionController.h */, + 5D70B76A12B606DC00A1AB17 /* L_Particle.cpp */, + 5D70B76B12B606DC00A1AB17 /* L_Particle.h */, + 5D70B76C12B606DC00A1AB17 /* L_ParticleEffect.cpp */, + 5D70B76D12B606DC00A1AB17 /* L_ParticleEffect.h */, + 5D70B76E12B606DC00A1AB17 /* L_ParticleMem.cpp */, + 5D70B76F12B606DC00A1AB17 /* L_ParticleMem.h */, + 5D70B77012B606DC00A1AB17 /* L_ParticleSystem.cpp */, + 5D70B77112B606DC00A1AB17 /* L_ParticleSystem.h */, + 5D70B77212B606DC00A1AB17 /* L_ShootingEffect.cpp */, + 5D70B77312B606DC00A1AB17 /* L_ShootingEffect.h */, + ); + name = LinearParticle; + path = "../../../../../$(SOURCE_ROOT)"; + sourceTree = SOURCE_ROOT; + }; + 5D70B77A12B606DC00A1AB17 /* util */ = { + isa = PBXGroup; + children = ( + 5D70B78112B606DC00A1AB17 /* CRandom.cpp */, + 5D70B78212B606DC00A1AB17 /* CRandom.h */, + 5D70B78312B606DC00A1AB17 /* PrimeSearch.cpp */, + 5D70B78412B606DC00A1AB17 /* PrimeSearch.h */, + 5D70B78512B606DC00A1AB17 /* TextScanner.cpp */, + 5D70B78612B606DC00A1AB17 /* TextScanner.h */, + 5D70B78712B606DC00A1AB17 /* MathUtils.cpp */, + 5D70B78812B606DC00A1AB17 /* MathUtils.h */, + 5D70B78912B606DC00A1AB17 /* Variant.cpp */, + 5D70B79212B606DC00A1AB17 /* GLESUtils.cpp */, + 5D70B79312B606DC00A1AB17 /* GLESUtils.h */, + 5D70B79412B606DC00A1AB17 /* ResourceUtils.cpp */, + 5D70B79512B606DC00A1AB17 /* ResourceUtils.h */, + 5D70B79612B606DC00A1AB17 /* RTFileFormat.h */, + 5D70B79712B606DC00A1AB17 /* MiscUtils.cpp */, + 5D70B79812B606DC00A1AB17 /* MiscUtils.h */, + 5D70B79912B606DC00A1AB17 /* RenderUtils.cpp */, + 5D70B79A12B606DC00A1AB17 /* RenderUtils.h */, + 5D70B78A12B606DC00A1AB17 /* Variant.h */, + 5D70B77B12B606DC00A1AB17 /* unzip */, + ); + name = util; + sourceTree = ""; + }; + 5D70B77B12B606DC00A1AB17 /* unzip */ = { + isa = PBXGroup; + children = ( + 5D70B77C12B606DC00A1AB17 /* unzip.h */, + 5D70B77D12B606DC00A1AB17 /* unzip.c */, + 5D70B77E12B606DC00A1AB17 /* ioapi.h */, + 5D70B77F12B606DC00A1AB17 /* ioapi.c */, + 5D70B78012B606DC00A1AB17 /* crypt.h */, + ); + name = unzip; + sourceTree = ""; + }; + 5D70B81F12B6072D00A1AB17 /* Component */ = { + isa = PBXGroup; + children = ( +LL000001000000000000000011 /* BuildingComponent.cpp */, +LL000001000000000000000021 /* BuildingComponent.h */, +LL000001000000000000000012 /* Character.cpp */, +LL000001000000000000000022 /* Character.h */, +LL000001000000000000000013 /* CharComponent.cpp */, +LL000001000000000000000023 /* CharComponent.h */, +LL000001000000000000000014 /* CharManagerComponent.cpp */, +LL000001000000000000000024 /* CharManagerComponent.h */, +LL000001000000000000000015 /* ExplosionComponent.cpp */, +LL000001000000000000000025 /* ExplosionComponent.h */, +LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */, +LL000001000000000000000026 /* OverlayRenderComponentSpy.h */, +); + name = Component; + sourceTree = ""; + }; + 5D70B82212B6072D00A1AB17 /* GUI */ = { + isa = PBXGroup; + children = ( +LL000001000000000000000017 /* AboutMenu.cpp */, +LL000001000000000000000027 /* AboutMenu.h */, +LL000001000000000000000018 /* ControllerTestMenu.cpp */, +LL000001000000000000000028 /* ControllerTestMenu.h */, +LL000001000000000000000019 /* GameMenu.cpp */, +LL000001000000000000000029 /* GameMenu.h */, +LL00000100000000000000001A /* IntroMenu.cpp */, +LL00000100000000000000002A /* IntroMenu.h */, +LL00000100000000000000001B /* MainMenu.cpp */, +LL00000100000000000000002B /* MainMenu.h */, +); + name = GUI; + sourceTree = ""; + }; + 5D8E368414BEF420003BA3DA /* libjpg */ = { + isa = PBXGroup; + children = ( + 5D8E368514BEF45B003BA3DA /* jcapimin.c */, + 5D8E368614BEF45B003BA3DA /* jcapistd.c */, + 5D8E368714BEF45B003BA3DA /* jccoefct.c */, + 5D8E368814BEF45B003BA3DA /* jccolor.c */, + 5D8E368914BEF45B003BA3DA /* jcdctmgr.c */, + 5D8E368A14BEF45B003BA3DA /* jchuff.c */, + 5D8E368B14BEF45B003BA3DA /* jcinit.c */, + 5D8E368C14BEF45B003BA3DA /* jcmainct.c */, + 5D8E368D14BEF45B003BA3DA /* jcmarker.c */, + 5D8E368E14BEF45B003BA3DA /* jcmaster.c */, + 5D8E368F14BEF45B003BA3DA /* jcomapi.c */, + 5D8E369014BEF45B003BA3DA /* jcparam.c */, + 5D8E369114BEF45B003BA3DA /* jcphuff.c */, + 5D8E369214BEF45B003BA3DA /* jcprepct.c */, + 5D8E369314BEF45B003BA3DA /* jcsample.c */, + 5D8E369414BEF45B003BA3DA /* jctrans.c */, + 5D8E369514BEF45B003BA3DA /* jdapimin.c */, + 5D8E369614BEF45B003BA3DA /* jdapistd.c */, + 5D8E369714BEF45B003BA3DA /* jdatadst.c */, + 5D8E369814BEF45B003BA3DA /* jdatasrc.c */, + 5D8E369914BEF45B003BA3DA /* jdcoefct.c */, + 5D8E369A14BEF45B003BA3DA /* jdcolor.c */, + 5D8E369B14BEF45B003BA3DA /* jddctmgr.c */, + 5D8E369C14BEF45B003BA3DA /* jdhuff.c */, + 5D8E369D14BEF45B003BA3DA /* jdinput.c */, + 5D8E369E14BEF45B003BA3DA /* jdmainct.c */, + 5D8E369F14BEF45B003BA3DA /* jdmarker.c */, + 5D8E36A014BEF45B003BA3DA /* jdmaster.c */, + 5D8E36A114BEF45B003BA3DA /* jdmerge.c */, + 5D8E36A214BEF45B003BA3DA /* jdphuff.c */, + 5D8E36A314BEF45B003BA3DA /* jdpostct.c */, + 5D8E36A414BEF45B003BA3DA /* jdsample.c */, + 5D8E36A514BEF45B003BA3DA /* jdtrans.c */, + 5D8E36A614BEF45B003BA3DA /* jerror.c */, + 5D8E36A714BEF45B003BA3DA /* jfdctflt.c */, + 5D8E36A814BEF45B003BA3DA /* jfdctfst.c */, + 5D8E36A914BEF45B003BA3DA /* jfdctint.c */, + 5D8E36AA14BEF45B003BA3DA /* jidctflt.c */, + 5D8E36AB14BEF45B003BA3DA /* jidctfst.c */, + 5D8E36AC14BEF45B003BA3DA /* jidctint.c */, + 5D8E36AD14BEF45B003BA3DA /* jidctred.c */, + 5D8E36AE14BEF45B003BA3DA /* jmemmgr.c */, + 5D8E36AF14BEF45B003BA3DA /* jmemnobs.c */, + 5D8E36B014BEF45B003BA3DA /* jquant1.c */, + 5D8E36B114BEF45B003BA3DA /* jquant2.c */, + 5D8E36B214BEF45B003BA3DA /* jutils.c */, + ); + name = libjpg; + sourceTree = ""; + }; + 5DDE012412B4D49C000C5CC0 /* shared */ = { + isa = PBXGroup; + children = ( + 5D70B77A12B606DC00A1AB17 /* util */, + 5D70B75512B606DC00A1AB17 /* Math */, + 5D70B75212B606DC00A1AB17 /* GUI */, + 5D70B75812B606DC00A1AB17 /* Render */, + 5D70B6DF12B606DC00A1AB17 /* Entity */, + 5D70B6D512B606DC00A1AB17 /* ClanLib */, + 5D70B6D012B606DC00A1AB17 /* Audio */, + 5D70B6C912B606DC00A1AB17 /* Network */, + 5D70B6BE12B606DC00A1AB17 /* Managers */, + 5D70B6B112B606DB00A1AB17 /* FileSystem */, + 5D70B61912B5FEB000A1AB17 /* OSX */, + 5D70B79B12B606DC00A1AB17 /* PlatformSetup.h */, + 5D70B79C12B606DC00A1AB17 /* PlatformSetup.cpp */, + 5D70B79D12B606DC00A1AB17 /* PlatformPrecomp.h */, + 5D70B79E12B606DC00A1AB17 /* PlatformPrecomp.cpp */, + 5D70B79F12B606DC00A1AB17 /* BaseApp.cpp */, + 5D70B7A012B606DC00A1AB17 /* BaseApp.h */, + ); + name = shared; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 8D1107260486CEB800E47090 /* RTLooneyLadders */ = { + isa = PBXNativeTarget; + buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RTLooneyLadders" */; + buildPhases = ( + 8D1107290486CEB800E47090 /* Resources */, + 8D11072C0486CEB800E47090 /* Sources */, + 8D11072E0486CEB800E47090 /* Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RTLooneyLadders; + productInstallPath = "$(HOME)/Applications"; + productName = RTLooneyLadders; + productReference = 8D1107320486CEB800E47090 /* RTLooneyLadders.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 29B97313FDCFA39411CA2CEA /* Project object */ = { + isa = PBXProject; + attributes = { + }; + buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RTLooneyLadders" */; + compatibilityVersion = "Xcode 12.0"; + developmentRegion = English; + hasScannedForEncodings = 1; + knownRegions = ( + English, + Japanese, + French, + German, + ); + mainGroup = 29B97314FDCFA39411CA2CEA /* RTLooneyLadders */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 8D1107260486CEB800E47090 /* RTLooneyLadders */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 8D1107290486CEB800E47090 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 8D11072B0486CEB800E47090 /* InfoPlist.strings in Resources */, + AFBD7716113895850015E685 /* MainMenu.xib in Resources */, + 5DDE05AA12B58EBD000C5CC0 /* interface in Resources */, + 5D70B83412B6074D00A1AB17 /* audio in Resources */, + 5D70B83612B6075B00A1AB17 /* game in Resources */, + 5DFB863312BB233D00337543 /* app.icns in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 8D11072C0486CEB800E47090 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5DDE02A512B4F526000C5CC0 /* App.cpp in Sources */, + 5D70B62512B5FED300A1AB17 /* OSXUtils.mm in Sources */, + 5D70B62612B5FED300A1AB17 /* main.m in Sources */, + 5D70B62712B5FED300A1AB17 /* MainController.mm in Sources */, + 5D70B62912B5FED300A1AB17 /* MyOpenGLView.mm in Sources */, + 5D70B7A112B606DC00A1AB17 /* StreamingInstanceZip.cpp in Sources */, + 5D70B7A212B606DC00A1AB17 /* StreamingInstanceFile.cpp in Sources */, + 5D70B7A312B606DC00A1AB17 /* StreamingInstance.cpp in Sources */, + 5D70B7A412B606DC00A1AB17 /* FileSystemZip.cpp in Sources */, + 5D70B7A512B606DC00A1AB17 /* FileSystem.cpp in Sources */, + 5D70B7A612B606DC00A1AB17 /* FileManager.cpp in Sources */, + 5D70B7A712B606DC00A1AB17 /* ResourceManager.cpp in Sources */, + 5D70B7A812B606DC00A1AB17 /* VariantDB.cpp in Sources */, + 5D70B7A912B606DC00A1AB17 /* Console.cpp in Sources */, + 5D70B7AA12B606DC00A1AB17 /* GameTimer.cpp in Sources */, + 5D70B7AB12B606DC00A1AB17 /* MessageManager.cpp in Sources */, + 5D70B7AC12B606DC00A1AB17 /* NetHTTP.cpp in Sources */, + 5D70B7AD12B606DC00A1AB17 /* NetSocket.cpp in Sources */, + 5D70B7AE12B606DC00A1AB17 /* NetUtils.cpp in Sources */, + 5D70B7B012B606DC00A1AB17 /* AudioManager.cpp in Sources */, +AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, + 5D70B7B112B606DC00A1AB17 /* vec4.cpp in Sources */, + 5D70B7B212B606DC00A1AB17 /* vec1.cpp in Sources */, + 5D70B7B312B606DC00A1AB17 /* mat4.cpp in Sources */, + 5D70B7B412B606DC00A1AB17 /* mat3.cpp in Sources */, + 5D70B7B512B606DC00A1AB17 /* angle.cpp in Sources */, + 5D70B7B612B606DC00A1AB17 /* vec2.cpp in Sources */, + 5D70B7B712B606DC00A1AB17 /* vec3.cpp in Sources */, + 5D70B7B812B606DC00A1AB17 /* SliderComponent.cpp in Sources */, + 5D70B7B912B606DC00A1AB17 /* SelectButtonWithCustomInputComponent.cpp in Sources */, + 5D70B7BA12B606DC00A1AB17 /* CustomInputComponent.cpp in Sources */, + 5D70B7BB12B606DC00A1AB17 /* FilterInputComponent.cpp in Sources */, + 5D70B7BC12B606DC00A1AB17 /* RenderClipComponent.cpp in Sources */, + 5D70B7BD12B606DC00A1AB17 /* TouchStripComponent.cpp in Sources */, + 5D70B7BE12B606DC00A1AB17 /* TrailRenderComponent.cpp in Sources */, + 5D70B7BF12B606DC00A1AB17 /* InputTextRenderComponent.cpp in Sources */, + 5D70B7C012B606DC00A1AB17 /* RectRenderComponent.cpp in Sources */, + 5D70B7C112B606DC00A1AB17 /* ScrollBarRenderComponent.cpp in Sources */, + 5D70B7C212B606DC00A1AB17 /* ScrollComponent.cpp in Sources */, + 5D70B7C312B606DC00A1AB17 /* TextBoxRenderComponent.cpp in Sources */, + 5D70B7C412B606DC00A1AB17 /* HTTPComponent.cpp in Sources */, + 5D70B7C512B606DC00A1AB17 /* TyperComponent.cpp in Sources */, + 5D70B7C612B606DC00A1AB17 /* ProgressBarComponent.cpp in Sources */, + 5D70B7C712B606DC00A1AB17 /* TapSequenceDetectComponent.cpp in Sources */, + 5D70B7C812B606DC00A1AB17 /* UnderlineRenderComponent.cpp in Sources */, + 5D70B7C912B606DC00A1AB17 /* FocusInputComponent.cpp in Sources */, + 5D70B7CA12B606DC00A1AB17 /* FocusRenderComponent.cpp in Sources */, + 5D70B7CB12B606DC00A1AB17 /* FocusUpdateComponent.cpp in Sources */, + 5D70B7CC12B606DC00A1AB17 /* InterpolateComponent.cpp in Sources */, + 5D70B7CD12B606DC00A1AB17 /* TextRenderComponent.cpp in Sources */, + 5D70B7CE12B606DC00A1AB17 /* Button2DComponent.cpp in Sources */, + 5D70B7CF12B606DC00A1AB17 /* TouchHandlerComponent.cpp in Sources */, + 5D70B7D012B606DC00A1AB17 /* OverlayRenderComponent.cpp in Sources */, + 5D70B7ED12B606DC00A1AB17 /* EntityUtils.cpp in Sources */, + 5D70B7EE12B606DC00A1AB17 /* Component.cpp in Sources */, + 5D70B7EF12B606DC00A1AB17 /* Entity.cpp in Sources */, + 5D70B7F012B606DC00A1AB17 /* RTFont.cpp in Sources */, + 5D70B7F112B606DC00A1AB17 /* rtRect.cpp in Sources */, + 5D70B7F212B606DC00A1AB17 /* SoftSurface.cpp in Sources */, + 5D70B7F312B606DC00A1AB17 /* RenderBatcher.cpp in Sources */, + 5D70B7F412B606DC00A1AB17 /* L_Defination.cpp in Sources */, + 5D70B7F512B606DC00A1AB17 /* L_DroppingEffect.cpp in Sources */, + 5D70B7F612B606DC00A1AB17 /* L_EffectEmitter.cpp in Sources */, + 5D70B7F712B606DC00A1AB17 /* L_EffectManager.cpp in Sources */, + 5D70B7F812B606DC00A1AB17 /* L_ExplosionEffect.cpp in Sources */, + 5D70B7F912B606DC00A1AB17 /* L_MotionController.cpp in Sources */, + 5D70B7FA12B606DC00A1AB17 /* L_Particle.cpp in Sources */, + 5D70B7FB12B606DC00A1AB17 /* L_ParticleEffect.cpp in Sources */, + 5D70B7FC12B606DC00A1AB17 /* L_ParticleMem.cpp in Sources */, + 5D70B7FD12B606DC00A1AB17 /* L_ParticleSystem.cpp in Sources */, + 5D70B7FE12B606DC00A1AB17 /* L_ShootingEffect.cpp in Sources */, + 5D70B7FF12B606DC00A1AB17 /* SurfaceAnim.cpp in Sources */, + 5D70B80012B606DC00A1AB17 /* Surface.cpp in Sources */, + 5D70B80112B606DC00A1AB17 /* unzip.c in Sources */, + 5D70B80212B606DC00A1AB17 /* ioapi.c in Sources */, + 5D70B80312B606DC00A1AB17 /* CRandom.cpp in Sources */, + 5D70B80412B606DC00A1AB17 /* PrimeSearch.cpp in Sources */, + 5D70B80512B606DC00A1AB17 /* TextScanner.cpp in Sources */, + 5D70B80612B606DC00A1AB17 /* MathUtils.cpp in Sources */, + 5D70B80712B606DC00A1AB17 /* Variant.cpp in Sources */, + 5D70B80D12B606DC00A1AB17 /* GLESUtils.cpp in Sources */, + 5D70B80E12B606DC00A1AB17 /* ResourceUtils.cpp in Sources */, + 5D70B80F12B606DC00A1AB17 /* MiscUtils.cpp in Sources */, + 5D70B81012B606DC00A1AB17 /* RenderUtils.cpp in Sources */, + 5D70B81112B606DC00A1AB17 /* PlatformSetup.cpp in Sources */, + 5D70B81212B606DC00A1AB17 /* PlatformPrecomp.cpp in Sources */, + 5D70B81312B606DC00A1AB17 /* BaseApp.cpp in Sources */, +LL000001000000000000000001 /* BuildingComponent.cpp in Sources */, +LL000001000000000000000002 /* Character.cpp in Sources */, +LL000001000000000000000003 /* CharComponent.cpp in Sources */, +LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */, +LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */, +LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */, +LL000001000000000000000007 /* AboutMenu.cpp in Sources */, +LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */, +LL000001000000000000000009 /* GameMenu.cpp in Sources */, +LL00000100000000000000000A /* IntroMenu.cpp in Sources */, +LL00000100000000000000000B /* MainMenu.cpp in Sources */, + 5D70C4BF12B7586D00A1AB17 /* MyApplication.mm in Sources */, + 5D8E368214BEF412003BA3DA /* JPGSurfaceLoader.cpp in Sources */, + 5D8E368314BEF412003BA3DA /* RTGLESExt.cpp in Sources */, + 5D8E36B314BEF45B003BA3DA /* jcapimin.c in Sources */, + 5D8E36B414BEF45B003BA3DA /* jcapistd.c in Sources */, + 5D8E36B514BEF45B003BA3DA /* jccoefct.c in Sources */, + 5D8E36B614BEF45B003BA3DA /* jccolor.c in Sources */, + 5D8E36B714BEF45B003BA3DA /* jcdctmgr.c in Sources */, + 5D8E36B814BEF45B003BA3DA /* jchuff.c in Sources */, + 5D8E36B914BEF45B003BA3DA /* jcinit.c in Sources */, + 5D8E36BA14BEF45B003BA3DA /* jcmainct.c in Sources */, + 5D8E36BB14BEF45B003BA3DA /* jcmarker.c in Sources */, + 5D8E36BC14BEF45B003BA3DA /* jcmaster.c in Sources */, + 5D8E36BD14BEF45B003BA3DA /* jcomapi.c in Sources */, + 5D8E36BE14BEF45B003BA3DA /* jcparam.c in Sources */, + 5D8E36BF14BEF45B003BA3DA /* jcphuff.c in Sources */, + 5D8E36C014BEF45B003BA3DA /* jcprepct.c in Sources */, + 5D8E36C114BEF45B003BA3DA /* jcsample.c in Sources */, + 5D8E36C214BEF45B003BA3DA /* jctrans.c in Sources */, + 5D8E36C314BEF45B003BA3DA /* jdapimin.c in Sources */, + 5D8E36C414BEF45B003BA3DA /* jdapistd.c in Sources */, + 5D8E36C514BEF45B003BA3DA /* jdatadst.c in Sources */, + 5D8E36C614BEF45B003BA3DA /* jdatasrc.c in Sources */, + 5D8E36C714BEF45B003BA3DA /* jdcoefct.c in Sources */, + 5D8E36C814BEF45B003BA3DA /* jdcolor.c in Sources */, + 5D8E36C914BEF45B003BA3DA /* jddctmgr.c in Sources */, + 5D8E36CA14BEF45B003BA3DA /* jdhuff.c in Sources */, + 5D8E36CB14BEF45B003BA3DA /* jdinput.c in Sources */, + 5D8E36CC14BEF45B003BA3DA /* jdmainct.c in Sources */, + 5D8E36CD14BEF45B003BA3DA /* jdmarker.c in Sources */, + 5D8E36CE14BEF45B003BA3DA /* jdmaster.c in Sources */, + 5D8E36CF14BEF45B003BA3DA /* jdmerge.c in Sources */, + 5D8E36D014BEF45B003BA3DA /* jdphuff.c in Sources */, + 5D8E36D114BEF45B003BA3DA /* jdpostct.c in Sources */, + 5D8E36D214BEF45B003BA3DA /* jdsample.c in Sources */, + 5D8E36D314BEF45B003BA3DA /* jdtrans.c in Sources */, + 5D8E36D414BEF45B003BA3DA /* jerror.c in Sources */, + 5D8E36D514BEF45B003BA3DA /* jfdctflt.c in Sources */, + 5D8E36D614BEF45B003BA3DA /* jfdctfst.c in Sources */, + 5D8E36D714BEF45B003BA3DA /* jfdctint.c in Sources */, + 5D8E36D814BEF45B003BA3DA /* jidctflt.c in Sources */, + 5D8E36D914BEF45B003BA3DA /* jidctfst.c in Sources */, + 5D8E36DA14BEF45B003BA3DA /* jidctint.c in Sources */, + 5D8E36DB14BEF45B003BA3DA /* jidctred.c in Sources */, + 5D8E36DC14BEF45B003BA3DA /* jmemmgr.c in Sources */, + 5D8E36DD14BEF45B003BA3DA /* jmemnobs.c in Sources */, + 5D8E36DE14BEF45B003BA3DA /* jquant1.c in Sources */, + 5D8E36DF14BEF45B003BA3DA /* jquant2.c in Sources */, + 5D8E36E014BEF45B003BA3DA /* jutils.c in Sources */, + 5D8E37B114BF0C85003BA3DA /* RenderScissorComponent.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 089C165CFE840E0CC02AAC07 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 089C165DFE840E0CC02AAC07 /* English */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; + AFBD7714113895850015E685 /* MainMenu.xib */ = { + isa = PBXVariantGroup; + children = ( + AFBD7715113895850015E685 /* English */, + ); + name = MainMenu.xib; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + C01FCF4B08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_OPTIMIZATION_LEVEL = 0; + INFOPLIST_FILE = "RTLooneyLadders-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))", + "@executable_path/../Frameworks", + ); +LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; + OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; + PRODUCT_NAME = RTLooneyLadders; + }; + name = Debug; + }; + C01FCF4C08A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + INFOPLIST_FILE = "RTLooneyLadders-Info.plist"; + INSTALL_PATH = "$(HOME)/Applications"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))", + "@executable_path/../Frameworks", + ); +LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; + OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 11.0; + PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; + PRODUCT_NAME = RTLooneyLadders; + }; + name = Release; + }; + C01FCF4F08A954540054247B /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_FIX_AND_CONTINUE = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ../../shared/PlatformPrecomp.h; +GCC_PREPROCESSOR_DEFINITIONS = ( + _DEBUG, + BOOST_ALL_NO_LIB, + PLATFORM_OSX, + C_GL_MODE, + RT_JPG_SUPPORT, + RT_PNG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + GL_SILENCE_DEPRECATION, + RT_USE_SDL_AUDIO, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + ../source, + ../../shared, + ../../shared/util/boost/, + "../../shared/ClanLib-2.0/Sources", + ../../shared/FliteTTS/include, + ../../shared/OSX, + "$(HOME)/Library/Frameworks/SDL2.framework/Headers", + "$(HOME)/Library/Frameworks/SDL2_mixer.framework/Headers", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + C01FCF5008A954540054247B /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = ../../shared/PlatformPrecomp.h; +GCC_PREPROCESSOR_DEFINITIONS = ( + RT_JPG_SUPPORT, + RT_PNG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + PLATFORM_OSX, + BOOST_ALL_NO_LIB, + NDEBUG, + C_GL_MODE, + GL_SILENCE_DEPRECATION, + RT_USE_SDL_AUDIO, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + ../source, + ../../shared, + ../../shared/util/boost/, + "../../shared/ClanLib-2.0/Sources", + ../../shared/FliteTTS/include, + ../../shared/OSX, + "$(HOME)/Library/Frameworks/SDL2.framework/Headers", + "$(HOME)/Library/Frameworks/SDL2_mixer.framework/Headers", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + SDKROOT = macosx; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "RTLooneyLadders" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4B08A954540054247B /* Debug */, + C01FCF4C08A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + C01FCF4E08A954540054247B /* Build configuration list for PBXProject "RTLooneyLadders" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + C01FCF4F08A954540054247B /* Debug */, + C01FCF5008A954540054247B /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; +} diff --git a/RTLooneyLadders/OSX/RTLooneyLadders_Prefix.pch b/RTLooneyLadders/OSX/RTLooneyLadders_Prefix.pch new file mode 100644 index 00000000..50d041e3 --- /dev/null +++ b/RTLooneyLadders/OSX/RTLooneyLadders_Prefix.pch @@ -0,0 +1,7 @@ +// +// Prefix header for all source files of the 'RTLooneyLadders' target in the 'RTLooneyLadders' project +// + +#ifdef __OBJC__ + #import +#endif diff --git a/RTLooneyLadders/OSX/app.icns b/RTLooneyLadders/OSX/app.icns new file mode 100644 index 0000000000000000000000000000000000000000..87c15011bfafb93e0c50e50ebe7730942bbe7229 GIT binary patch literal 46726 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 +AudioManagerSDL g_audioManager; - AudioManagerFMOD g_audioManager; //dummy with no sound +// g_sig_SDLEvent is defined in SDL2Main.cpp for SDL-main builds. +// For the OSX Cocoa build which doesn't use SDL2Main.cpp, define it here. +boost::signals2::signal g_sig_SDLEvent; #endif #else @@ -121,6 +126,11 @@ bool App::Init() if (!BaseApp::Init()) return false; +#ifdef PLATFORM_OSX + SDL_Init(SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER); + GetGamepadManager()->AddProvider(new GamepadProviderSDL2()); +#endif + LogMsg("Save path is %s", GetSavePath().c_str()); if (!GetFont(FONT_SMALL)->Load("interface/font_trajan.rtfont")) @@ -245,6 +255,10 @@ void App::Update() BaseApp::Update(); g_gamepadManager.Update(); +#ifdef PLATFORM_OSX + SDL_PumpEvents(); +#endif + if (!m_bDidPostInit) { m_bDidPostInit = true; diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index 153532e5..194e2914 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -29,6 +29,7 @@ 5D70B7AD12B606DC00A1AB17 /* NetSocket.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6CC12B606DC00A1AB17 /* NetSocket.cpp */; }; 5D70B7AE12B606DC00A1AB17 /* NetUtils.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6CE12B606DC00A1AB17 /* NetUtils.cpp */; }; 5D70B7B012B606DC00A1AB17 /* AudioManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6D312B606DC00A1AB17 /* AudioManager.cpp */; }; +AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AA000003000000000000AA01 /* AudioManagerSDL.cpp */; }; 5D70B7B112B606DC00A1AB17 /* vec4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6D812B606DC00A1AB17 /* vec4.cpp */; }; 5D70B7B212B606DC00A1AB17 /* vec1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6D912B606DC00A1AB17 /* vec1.cpp */; }; 5D70B7B312B606DC00A1AB17 /* mat4.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B6DA12B606DC00A1AB17 /* mat4.cpp */; }; @@ -231,6 +232,8 @@ 5D70B6CF12B606DC00A1AB17 /* NetUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetUtils.h; path = ../../shared/Network/NetUtils.h; sourceTree = SOURCE_ROOT; }; 5D70B6D312B606DC00A1AB17 /* AudioManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioManager.cpp; path = ../../shared/Audio/AudioManager.cpp; sourceTree = SOURCE_ROOT; }; 5D70B6D412B606DC00A1AB17 /* AudioManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioManager.h; path = ../../shared/Audio/AudioManager.h; sourceTree = SOURCE_ROOT; }; +AA000003000000000000AA01 /* AudioManagerSDL.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioManagerSDL.cpp; path = ../../shared/Audio/AudioManagerSDL.cpp; sourceTree = ""; }; +AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioManagerSDL.h; path = ../../shared/Audio/AudioManagerSDL.h; sourceTree = ""; }; 5D70B6D812B606DC00A1AB17 /* vec4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vec4.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/vec4.cpp"; sourceTree = SOURCE_ROOT; }; 5D70B6D912B606DC00A1AB17 /* vec1.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = vec1.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/vec1.cpp"; sourceTree = SOURCE_ROOT; }; 5D70B6DA12B606DC00A1AB17 /* mat4.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = mat4.cpp; path = "../../shared/ClanLib-2.0/Sources/Core/Math/mat4.cpp"; sourceTree = SOURCE_ROOT; }; @@ -619,6 +622,8 @@ 5D423E4F2AB828D300A99994 /* AudioManagerFMODStudio.h */, 5D70B6D312B606DC00A1AB17 /* AudioManager.cpp */, 5D70B6D412B606DC00A1AB17 /* AudioManager.h */, + AA000003000000000000AA01 /* AudioManagerSDL.cpp */, + AA000003000000000000AA02 /* AudioManagerSDL.h */, ); name = Audio; sourceTree = ""; @@ -1037,6 +1042,7 @@ 5D70B7AD12B606DC00A1AB17 /* NetSocket.cpp in Sources */, 5D70B7AE12B606DC00A1AB17 /* NetUtils.cpp in Sources */, 5D70B7B012B606DC00A1AB17 /* AudioManager.cpp in Sources */, +AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, 5D70B7B112B606DC00A1AB17 /* vec4.cpp in Sources */, 5D70B7B212B606DC00A1AB17 /* vec1.cpp in Sources */, 5D70B7B312B606DC00A1AB17 /* mat4.cpp in Sources */, @@ -1204,12 +1210,13 @@ "$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))", "@executable_path/../Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - /Users/seth/thirdpartylibs/fmod/api/core/lib, - "$(PROJECT_DIR)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.13; +LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; + OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 11.0; PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = RTSimpleApp; }; @@ -1226,12 +1233,13 @@ "$(LD_RUNPATH_SEARCH_PATHS_$(IS_MACCATALYST))", "@executable_path/../Frameworks", ); - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - /Users/seth/thirdpartylibs/fmod/api/core/lib, - "$(PROJECT_DIR)", - ); - MACOSX_DEPLOYMENT_TARGET = 10.13; +LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; + OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; + MACOSX_DEPLOYMENT_TARGET = 11.0; PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = RTSimpleApp; }; @@ -1246,27 +1254,33 @@ GCC_OPTIMIZATION_LEVEL = 0; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ../../shared/PlatformPrecomp.h; - GCC_PREPROCESSOR_DEFINITIONS = ( - _DEBUG, - BOOST_ALL_NO_LIB, - PLATFORM_OSX, - C_GL_MODE, - RT_JPG_SUPPORT, - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - ../source, - ../../shared, - ../../shared/util/boost/, - "../../shared/ClanLib-2.0/Sources", - ../../shared/FliteTTS/include, - ../../shared/OSX, - "/Users/seth/thirdpartylibs/fmod/api/core/inc/**", - ); - MACOSX_DEPLOYMENT_TARGET = 10.5; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx13.3; +GCC_PREPROCESSOR_DEFINITIONS = ( + _DEBUG, + BOOST_ALL_NO_LIB, + PLATFORM_OSX, + C_GL_MODE, + RT_JPG_SUPPORT, + RT_PNG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + GL_SILENCE_DEPRECATION, + RT_USE_SDL_AUDIO, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + ../source, + ../../shared, + ../../shared/util/boost/, + "../../shared/ClanLib-2.0/Sources", + ../../shared/FliteTTS/include, + ../../shared/OSX, + "$(HOME)/Library/Frameworks/SDL2.framework/Headers", + "$(HOME)/Library/Frameworks/SDL2_mixer.framework/Headers", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; }; name = Debug; }; @@ -1276,26 +1290,32 @@ GCC_C_LANGUAGE_STANDARD = gnu99; GCC_PRECOMPILE_PREFIX_HEADER = YES; GCC_PREFIX_HEADER = ../../shared/PlatformPrecomp.h; - GCC_PREPROCESSOR_DEFINITIONS = ( - RT_JPG_SUPPORT, - PLATFORM_OSX, - BOOST_ALL_NO_LIB, - NDEBUG, - C_GL_MODE, - ); - GCC_WARN_ABOUT_RETURN_TYPE = YES; - GCC_WARN_UNUSED_VARIABLE = YES; - HEADER_SEARCH_PATHS = ( - ../source, - ../../shared, - ../../shared/util/boost/, - "../../shared/ClanLib-2.0/Sources", - ../../shared/FliteTTS/include, - ../../shared/OSX, - "/Users/seth/thirdpartylibs/fmod/api/core/inc/**", - ); - MACOSX_DEPLOYMENT_TARGET = 10.5; - SDKROOT = macosx13.3; +GCC_PREPROCESSOR_DEFINITIONS = ( + RT_JPG_SUPPORT, + RT_PNG_SUPPORT, + RT_CUSTOM_LOGMSG, + RT_IPV6, + PLATFORM_OSX, + BOOST_ALL_NO_LIB, + NDEBUG, + C_GL_MODE, + GL_SILENCE_DEPRECATION, + RT_USE_SDL_AUDIO, + ); + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ( + ../source, + ../../shared, + ../../shared/util/boost/, + "../../shared/ClanLib-2.0/Sources", + ../../shared/FliteTTS/include, + ../../shared/OSX, + "$(HOME)/Library/Frameworks/SDL2.framework/Headers", + "$(HOME)/Library/Frameworks/SDL2_mixer.framework/Headers", + ); + MACOSX_DEPLOYMENT_TARGET = 11.0; + SDKROOT = macosx; }; name = Release; }; diff --git a/RTSimpleApp/source/App.cpp b/RTSimpleApp/source/App.cpp index 33ea21ff..f3c3124a 100644 --- a/RTSimpleApp/source/App.cpp +++ b/RTSimpleApp/source/App.cpp @@ -31,15 +31,15 @@ FileManager * GetFileManager() {return &g_fileManager;} AudioManagerDenshion g_audioManager; #else - //it's being compiled as a native OSX app - #include "Audio/AudioManagerFMODStudio.h" - AudioManagerFMOD g_audioManager; //dummy with no sound - -//in theory, CocosDenshion should work for the Mac builds, but right now it seems to want a big chunk of -//Cocos2d included so I'm not fiddling with it for now + //it's being compiled as a native OSX app - use SDL audio, no FMOD required +#include "Audio/AudioManagerSDL.h" +#include "Gamepad/GamepadProviderSDL2.h" +#include +AudioManagerSDL g_audioManager; -//#include "Audio/AudioManagerDenshion.h" -//AudioManagerDenshion g_audioManager; +// g_sig_SDLEvent is defined in SDL2Main.cpp for SDL-main builds. +// For the OSX Cocoa build which doesn't use SDL2Main.cpp, define it here. +boost::signals2::signal g_sig_SDLEvent; #endif #else @@ -179,6 +179,11 @@ bool App::Init() if (!BaseApp::Init()) return false; +#ifdef PLATFORM_OSX + SDL_Init(SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER); + GetGamepadManager()->AddProvider(new GamepadProviderSDL2()); +#endif + LogMsg("Save path is %s", GetSavePath().c_str()); @@ -223,6 +228,21 @@ void App::Update() { BaseApp::Update(); +#ifdef PLATFORM_OSX + { + SDL_PumpEvents(); + SDL_Event ev; + while (SDL_PeepEvents(&ev, 1, SDL_GETEVENT, + SDL_JOYAXISMOTION, SDL_CONTROLLERDEVICEREMAPPED) > 0) + { + VariantList v; + v.Get(0).Set((Entity*)&ev); + g_sig_SDLEvent(&v); + } + } +#endif + + if (!m_bDidPostInit) if (!m_bDidPostInit) { m_bDidPostInit = true; From 8eda51d8e9142c3fabf2897b332dd268ca7e2346 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Sat, 7 Mar 2026 22:49:25 -0300 Subject: [PATCH 20/44] macOS: fix OSX app file paths and asset paths in all 3 proton demo Xcode projects All three projects (RTBareBones, RTSimpleApp, RTLooneyLadders): - Fix main.m, MainController.mm, MyApplication.mm, MyOpenGLView.mm references to point to ../../shared/OSX/app/ instead of expecting files locally in OSX/ (sourceTree SOURCE_ROOT with explicit path, matching how RTDink does it) RTSimpleApp + RTLooneyLadders: - Fix resource folder paths: ../bin/audio|game|interface -> ../media/audio|game|interface (assets live in media/ not bin/ for these apps) RTLooneyLadders: - Add missing MainMenu.xib to English.lproj (copied from RTSimpleApp) --- .../OSX/RTBareBones.xcodeproj/project.pbxproj | 14 +- .../OSX/English.lproj/MainMenu.xib | 688 ++++++++++++++++++ .../RTLooneyLadders.xcodeproj/project.pbxproj | 20 +- .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 20 +- 4 files changed, 715 insertions(+), 27 deletions(-) create mode 100644 RTLooneyLadders/OSX/English.lproj/MainMenu.xib diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index b23eb3ab..13dfd26b 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -71,13 +71,13 @@ 5D70B61A12B5FED300A1AB17 /* PlatformSetupOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformSetupOSX.h; path = ../../shared/OSX/PlatformSetupOSX.h; sourceTree = SOURCE_ROOT; }; 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = OSXUtils.mm; path = ../../shared/OSX/OSXUtils.mm; sourceTree = SOURCE_ROOT; }; 5D70B61C12B5FED300A1AB17 /* OSXUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OSXUtils.h; path = ../../shared/OSX/OSXUtils.h; sourceTree = SOURCE_ROOT; }; - 5D70B61E12B5FED300A1AB17 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 5D70B61F12B5FED300A1AB17 /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainController.h; sourceTree = ""; }; - 5D70B62012B5FED300A1AB17 /* MainController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MainController.mm; sourceTree = ""; }; - 5D70B62112B5FED300A1AB17 /* MyApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyApplication.h; sourceTree = ""; }; - 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyOpenGLView.h; sourceTree = ""; }; - 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyOpenGLView.mm; sourceTree = ""; }; - 5D70C47812B757F500A1AB17 /* MyApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyApplication.mm; sourceTree = ""; }; + 5D70B61E12B5FED300A1AB17 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ../../shared/OSX/app/main.m; sourceTree = SOURCE_ROOT; }; + 5D70B61F12B5FED300A1AB17 /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MainController.h; sourceTree = SOURCE_ROOT; }; + 5D70B62012B5FED300A1AB17 /* MainController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MainController.mm; sourceTree = SOURCE_ROOT; }; + 5D70B62112B5FED300A1AB17 /* MyApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MyApplication.h; sourceTree = SOURCE_ROOT; }; + 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MyOpenGLView.h; sourceTree = SOURCE_ROOT; }; + 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MyOpenGLView.mm; sourceTree = SOURCE_ROOT; }; + 5D70C47812B757F500A1AB17 /* MyApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MyApplication.mm; sourceTree = SOURCE_ROOT; }; 5DDE012812B4D4F2000C5CC0 /* NetUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NetUtils.h; path = ../../shared/Network/NetUtils.h; sourceTree = SOURCE_ROOT; }; 5DDE012912B4D4F2000C5CC0 /* NetUtils.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = NetUtils.cpp; path = ../../shared/Network/NetUtils.cpp; sourceTree = SOURCE_ROOT; }; 5DDE012B12B4D4F2000C5CC0 /* FileManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FileManager.h; path = ../../shared/FileSystem/FileManager.h; sourceTree = SOURCE_ROOT; }; diff --git a/RTLooneyLadders/OSX/English.lproj/MainMenu.xib b/RTLooneyLadders/OSX/English.lproj/MainMenu.xib new file mode 100644 index 00000000..4c30eff3 --- /dev/null +++ b/RTLooneyLadders/OSX/English.lproj/MainMenu.xib @@ -0,0 +1,688 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + Default + + + + + + + Left to Right + + + + + + + Right to Left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index c2b0d616..e6307c09 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -180,12 +180,12 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF 5D70B61A12B5FED300A1AB17 /* PlatformSetupOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformSetupOSX.h; path = ../../shared/OSX/PlatformSetupOSX.h; sourceTree = SOURCE_ROOT; }; 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = OSXUtils.mm; path = ../../shared/OSX/OSXUtils.mm; sourceTree = SOURCE_ROOT; }; 5D70B61C12B5FED300A1AB17 /* OSXUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OSXUtils.h; path = ../../shared/OSX/OSXUtils.h; sourceTree = SOURCE_ROOT; }; - 5D70B61E12B5FED300A1AB17 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 5D70B61F12B5FED300A1AB17 /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainController.h; sourceTree = ""; }; - 5D70B62012B5FED300A1AB17 /* MainController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MainController.mm; sourceTree = ""; }; - 5D70B62112B5FED300A1AB17 /* MyApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyApplication.h; sourceTree = ""; }; - 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyOpenGLView.h; sourceTree = ""; }; - 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyOpenGLView.mm; sourceTree = ""; }; + 5D70B61E12B5FED300A1AB17 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ../../shared/OSX/app/main.m; sourceTree = SOURCE_ROOT; }; + 5D70B61F12B5FED300A1AB17 /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MainController.h; sourceTree = SOURCE_ROOT; }; + 5D70B62012B5FED300A1AB17 /* MainController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MainController.mm; sourceTree = SOURCE_ROOT; }; + 5D70B62112B5FED300A1AB17 /* MyApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MyApplication.h; sourceTree = SOURCE_ROOT; }; + 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MyOpenGLView.h; sourceTree = SOURCE_ROOT; }; + 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MyOpenGLView.mm; sourceTree = SOURCE_ROOT; }; 5D70B6B212B606DB00A1AB17 /* StreamingInstanceZip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamingInstanceZip.h; path = ../../shared/FileSystem/StreamingInstanceZip.h; sourceTree = SOURCE_ROOT; }; 5D70B6B312B606DB00A1AB17 /* StreamingInstanceZip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StreamingInstanceZip.cpp; path = ../../shared/FileSystem/StreamingInstanceZip.cpp; sourceTree = SOURCE_ROOT; }; 5D70B6B412B606DB00A1AB17 /* StreamingInstanceFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamingInstanceFile.h; path = ../../shared/FileSystem/StreamingInstanceFile.h; sourceTree = SOURCE_ROOT; }; @@ -347,9 +347,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B79E12B606DC00A1AB17 /* PlatformPrecomp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = PlatformPrecomp.cpp; path = ../../shared/PlatformPrecomp.cpp; sourceTree = SOURCE_ROOT; }; 5D70B79F12B606DC00A1AB17 /* BaseApp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BaseApp.cpp; path = ../../shared/BaseApp.cpp; sourceTree = SOURCE_ROOT; }; 5D70B7A012B606DC00A1AB17 /* BaseApp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BaseApp.h; path = ../../shared/BaseApp.h; sourceTree = SOURCE_ROOT; }; - 5D70B83312B6074D00A1AB17 /* audio */ = {isa = PBXFileReference; lastKnownFileType = folder; name = audio; path = ../bin/audio; sourceTree = SOURCE_ROOT; }; - 5D70B83512B6075B00A1AB17 /* game */ = {isa = PBXFileReference; lastKnownFileType = folder; name = game; path = ../bin/game; sourceTree = SOURCE_ROOT; }; - 5D70C4BE12B7586D00A1AB17 /* MyApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyApplication.mm; sourceTree = ""; }; + 5D70B83312B6074D00A1AB17 /* audio */ = {isa = PBXFileReference; lastKnownFileType = folder; name = audio; path = ../media/audio; sourceTree = SOURCE_ROOT; }; + 5D70B83512B6075B00A1AB17 /* game */ = {isa = PBXFileReference; lastKnownFileType = folder; name = game; path = ../media/game; sourceTree = SOURCE_ROOT; }; + 5D70C4BE12B7586D00A1AB17 /* MyApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MyApplication.mm; sourceTree = SOURCE_ROOT; }; 5D8E367E14BEF412003BA3DA /* JPGSurfaceLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JPGSurfaceLoader.h; path = ../../shared/Renderer/JPGSurfaceLoader.h; sourceTree = SOURCE_ROOT; }; 5D8E367F14BEF412003BA3DA /* RTGLESExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTGLESExt.h; path = ../../shared/Renderer/RTGLESExt.h; sourceTree = SOURCE_ROOT; }; 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JPGSurfaceLoader.cpp; path = ../../shared/Renderer/JPGSurfaceLoader.cpp; sourceTree = SOURCE_ROOT; }; @@ -404,7 +404,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D8E37B014BF0C85003BA3DA /* RenderScissorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderScissorComponent.cpp; path = ../../shared/Entity/RenderScissorComponent.cpp; sourceTree = SOURCE_ROOT; }; 5DDE02A312B4F526000C5CC0 /* App.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = App.h; path = ../source/App.h; sourceTree = SOURCE_ROOT; }; 5DDE02A412B4F526000C5CC0 /* App.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = App.cpp; path = ../source/App.cpp; sourceTree = SOURCE_ROOT; }; - 5DDE05A912B58EBD000C5CC0 /* interface */ = {isa = PBXFileReference; lastKnownFileType = folder; name = interface; path = ../bin/interface; sourceTree = SOURCE_ROOT; }; + 5DDE05A912B58EBD000C5CC0 /* interface */ = {isa = PBXFileReference; lastKnownFileType = folder; name = interface; path = ../media/interface; sourceTree = SOURCE_ROOT; }; 5DFB863212BB233D00337543 /* app.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = app.icns; sourceTree = ""; }; 8D1107310486CEB800E47090 /* RTLooneyLadders-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "RTLooneyLadders-Info.plist"; sourceTree = ""; }; 8D1107320486CEB800E47090 /* RTLooneyLadders.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RTLooneyLadders.app; sourceTree = BUILT_PRODUCTS_DIR; }; diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index 194e2914..a3eb40b3 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -196,12 +196,12 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF 5D70B61A12B5FED300A1AB17 /* PlatformSetupOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformSetupOSX.h; path = ../../shared/OSX/PlatformSetupOSX.h; sourceTree = SOURCE_ROOT; }; 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = OSXUtils.mm; path = ../../shared/OSX/OSXUtils.mm; sourceTree = SOURCE_ROOT; }; 5D70B61C12B5FED300A1AB17 /* OSXUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OSXUtils.h; path = ../../shared/OSX/OSXUtils.h; sourceTree = SOURCE_ROOT; }; - 5D70B61E12B5FED300A1AB17 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; - 5D70B61F12B5FED300A1AB17 /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainController.h; sourceTree = ""; }; - 5D70B62012B5FED300A1AB17 /* MainController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MainController.mm; sourceTree = ""; }; - 5D70B62112B5FED300A1AB17 /* MyApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyApplication.h; sourceTree = ""; }; - 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MyOpenGLView.h; sourceTree = ""; }; - 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyOpenGLView.mm; sourceTree = ""; }; + 5D70B61E12B5FED300A1AB17 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ../../shared/OSX/app/main.m; sourceTree = SOURCE_ROOT; }; + 5D70B61F12B5FED300A1AB17 /* MainController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MainController.h; sourceTree = SOURCE_ROOT; }; + 5D70B62012B5FED300A1AB17 /* MainController.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MainController.mm; sourceTree = SOURCE_ROOT; }; + 5D70B62112B5FED300A1AB17 /* MyApplication.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MyApplication.h; sourceTree = SOURCE_ROOT; }; + 5D70B62312B5FED300A1AB17 /* MyOpenGLView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ../../shared/OSX/app/MyOpenGLView.h; sourceTree = SOURCE_ROOT; }; + 5D70B62412B5FED300A1AB17 /* MyOpenGLView.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MyOpenGLView.mm; sourceTree = SOURCE_ROOT; }; 5D70B6B212B606DB00A1AB17 /* StreamingInstanceZip.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamingInstanceZip.h; path = ../../shared/FileSystem/StreamingInstanceZip.h; sourceTree = SOURCE_ROOT; }; 5D70B6B312B606DB00A1AB17 /* StreamingInstanceZip.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StreamingInstanceZip.cpp; path = ../../shared/FileSystem/StreamingInstanceZip.cpp; sourceTree = SOURCE_ROOT; }; 5D70B6B412B606DB00A1AB17 /* StreamingInstanceFile.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StreamingInstanceFile.h; path = ../../shared/FileSystem/StreamingInstanceFile.h; sourceTree = SOURCE_ROOT; }; @@ -375,9 +375,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B82A12B6072D00A1AB17 /* DebugMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DebugMenu.h; path = ../source/GUI/DebugMenu.h; sourceTree = SOURCE_ROOT; }; 5D70B82B12B6072D00A1AB17 /* MainMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MainMenu.cpp; path = ../source/GUI/MainMenu.cpp; sourceTree = SOURCE_ROOT; }; 5D70B82C12B6072D00A1AB17 /* MainMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainMenu.h; path = ../source/GUI/MainMenu.h; sourceTree = SOURCE_ROOT; }; - 5D70B83312B6074D00A1AB17 /* audio */ = {isa = PBXFileReference; lastKnownFileType = folder; name = audio; path = ../bin/audio; sourceTree = SOURCE_ROOT; }; - 5D70B83512B6075B00A1AB17 /* game */ = {isa = PBXFileReference; lastKnownFileType = folder; name = game; path = ../bin/game; sourceTree = SOURCE_ROOT; }; - 5D70C4BE12B7586D00A1AB17 /* MyApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MyApplication.mm; sourceTree = ""; }; + 5D70B83312B6074D00A1AB17 /* audio */ = {isa = PBXFileReference; lastKnownFileType = folder; name = audio; path = ../media/audio; sourceTree = SOURCE_ROOT; }; + 5D70B83512B6075B00A1AB17 /* game */ = {isa = PBXFileReference; lastKnownFileType = folder; name = game; path = ../media/game; sourceTree = SOURCE_ROOT; }; + 5D70C4BE12B7586D00A1AB17 /* MyApplication.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = ../../shared/OSX/app/MyApplication.mm; sourceTree = SOURCE_ROOT; }; 5D8E367E14BEF412003BA3DA /* JPGSurfaceLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JPGSurfaceLoader.h; path = ../../shared/Renderer/JPGSurfaceLoader.h; sourceTree = SOURCE_ROOT; }; 5D8E367F14BEF412003BA3DA /* RTGLESExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTGLESExt.h; path = ../../shared/Renderer/RTGLESExt.h; sourceTree = SOURCE_ROOT; }; 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JPGSurfaceLoader.cpp; path = ../../shared/Renderer/JPGSurfaceLoader.cpp; sourceTree = SOURCE_ROOT; }; @@ -433,7 +433,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5DD5C5942AB8471F00357191 /* libfmod.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libfmod.dylib; sourceTree = ""; }; 5DDE02A312B4F526000C5CC0 /* App.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = App.h; path = ../source/App.h; sourceTree = SOURCE_ROOT; }; 5DDE02A412B4F526000C5CC0 /* App.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = App.cpp; path = ../source/App.cpp; sourceTree = SOURCE_ROOT; }; - 5DDE05A912B58EBD000C5CC0 /* interface */ = {isa = PBXFileReference; lastKnownFileType = folder; name = interface; path = ../bin/interface; sourceTree = SOURCE_ROOT; }; + 5DDE05A912B58EBD000C5CC0 /* interface */ = {isa = PBXFileReference; lastKnownFileType = folder; name = interface; path = ../media/interface; sourceTree = SOURCE_ROOT; }; 5DEB1B8912D309CE00A3A6DB /* TouchTestComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchTestComponent.h; path = ../source/Component/TouchTestComponent.h; sourceTree = SOURCE_ROOT; }; 5DEB1B8A12D309CE00A3A6DB /* TouchTestComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TouchTestComponent.cpp; path = ../source/Component/TouchTestComponent.cpp; sourceTree = SOURCE_ROOT; }; 5DEB1B8C12D309D700A3A6DB /* TouchTestMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchTestMenu.h; path = ../source/GUI/TouchTestMenu.h; sourceTree = SOURCE_ROOT; }; From c21614dbc0aa7a3e9caa1e4c6b07cb87e1690b97 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Sun, 8 Mar 2026 21:00:45 -0300 Subject: [PATCH 21/44] macOS: fix MyOpenGLView.mm nil cast - replace (NSOpenGLPixelFormatAttribute)nil with 0 nil is a pointer type and cannot be cast to NSOpenGLPixelFormatAttribute (uint32) on ARM64 clang - this was a hard compile error. RTDink worked around it with a pre-build shell script patch; fix it properly in the source instead. --- shared/OSX/app/MyOpenGLView.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/OSX/app/MyOpenGLView.mm b/shared/OSX/app/MyOpenGLView.mm index 52c5fa42..f3ad5506 100644 --- a/shared/OSX/app/MyOpenGLView.mm +++ b/shared/OSX/app/MyOpenGLView.mm @@ -9,7 +9,7 @@ + (NSOpenGLPixelFormat*) basicPixelFormat NSOpenGLPFADoubleBuffer, NSOpenGLPFADepthSize, (NSOpenGLPixelFormatAttribute)16, NSOpenGLPFAOpenGLProfile, (NSOpenGLPixelFormatAttribute)NSOpenGLProfileVersionLegacy, - (NSOpenGLPixelFormatAttribute)nil + (NSOpenGLPixelFormatAttribute)0 }; NSOpenGLPixelFormat *pf = [[[NSOpenGLPixelFormat alloc] initWithAttributes:attributes] autorelease]; if (!pf) @@ -17,7 +17,7 @@ + (NSOpenGLPixelFormat*) basicPixelFormat // Fallback: minimal pixel format NSOpenGLPixelFormatAttribute fallback [] = { NSOpenGLPFADoubleBuffer, - (NSOpenGLPixelFormatAttribute)nil + (NSOpenGLPixelFormatAttribute)0 }; pf = [[[NSOpenGLPixelFormat alloc] initWithAttributes:fallback] autorelease]; } From 29a0f0405fd62fb0c266fcfb167af0eb272637d6 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 08:31:09 -0300 Subject: [PATCH 22/44] macOS: fully remove FMOD from RTSimpleApp Xcode project AudioManagerFMODStudio.cpp was still in the Sources build phase causing 'fmod.h not found' compile error. Remove all FMOD references: - AudioManagerFMODStudio.cpp/h from Sources, file refs, and Audio group - libfmod.dylib from Frameworks build phase, file ref, and Frameworks group - CopyFiles build phase (was only used to embed libfmod.dylib) --- .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 25 +------------------ 1 file changed, 1 insertion(+), 24 deletions(-) diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index a3eb40b3..4f9317c4 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -9,7 +9,6 @@ /* Begin PBXBuildFile section */ 5D361D4A2AB83C0E006C5169 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D361D492AB83C0E006C5169 /* libz.tbd */; }; 5D361D512AB83E04006C5169 /* UTF16TestMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D361D502AB83E03006C5169 /* UTF16TestMenu.cpp */; }; - 5D423E502AB828D300A99994 /* AudioManagerFMODStudio.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D423E4E2AB828D300A99994 /* AudioManagerFMODStudio.cpp */; }; 5D70B62512B5FED300A1AB17 /* OSXUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */; }; 5D70B62612B5FED300A1AB17 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B61E12B5FED300A1AB17 /* main.m */; }; 5D70B62712B5FED300A1AB17 /* MainController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B62012B5FED300A1AB17 /* MainController.mm */; }; @@ -154,8 +153,6 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF 5D8E36DF14BEF45B003BA3DA /* jquant2.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B114BEF45B003BA3DA /* jquant2.c */; }; 5D8E36E014BEF45B003BA3DA /* jutils.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B214BEF45B003BA3DA /* jutils.c */; }; 5D8E37B114BF0C85003BA3DA /* RenderScissorComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E37B014BF0C85003BA3DA /* RenderScissorComponent.cpp */; }; - 5DD5C5952AB8471F00357191 /* libfmod.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5DD5C5942AB8471F00357191 /* libfmod.dylib */; }; - 5DD5C5982AB84B7A00357191 /* libfmod.dylib in CopyFiles */ = {isa = PBXBuildFile; fileRef = 5DD5C5942AB8471F00357191 /* libfmod.dylib */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; }; 5DDE02A512B4F526000C5CC0 /* App.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DDE02A412B4F526000C5CC0 /* App.cpp */; }; 5DDE05AA12B58EBD000C5CC0 /* interface in Resources */ = {isa = PBXBuildFile; fileRef = 5DDE05A912B58EBD000C5CC0 /* interface */; }; 5DEB1B8B12D309CE00A3A6DB /* TouchTestComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5DEB1B8A12D309CE00A3A6DB /* TouchTestComponent.cpp */; }; @@ -169,18 +166,7 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; /* End PBXBuildFile section */ -/* Begin PBXCopyFilesBuildPhase section */ - 5D70BB2712B7208900A1AB17 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = ""; - dstSubfolderSpec = 10; - files = ( - 5DD5C5982AB84B7A00357191 /* libfmod.dylib in CopyFiles */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFileReference section */ 089C165DFE840E0CC02AAC07 /* English */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = English; path = English.lproj/InfoPlist.strings; sourceTree = ""; }; @@ -191,8 +177,6 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF 5D361D492AB83C0E006C5169 /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; 5D361D4F2AB83E01006C5169 /* UTF16TestMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = UTF16TestMenu.h; path = ../source/GUI/UTF16TestMenu.h; sourceTree = ""; }; 5D361D502AB83E03006C5169 /* UTF16TestMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = UTF16TestMenu.cpp; path = ../source/GUI/UTF16TestMenu.cpp; sourceTree = ""; }; - 5D423E4E2AB828D300A99994 /* AudioManagerFMODStudio.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AudioManagerFMODStudio.cpp; path = ../../shared/Audio/AudioManagerFMODStudio.cpp; sourceTree = ""; }; - 5D423E4F2AB828D300A99994 /* AudioManagerFMODStudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AudioManagerFMODStudio.h; path = ../../shared/Audio/AudioManagerFMODStudio.h; sourceTree = ""; }; 5D70B61A12B5FED300A1AB17 /* PlatformSetupOSX.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PlatformSetupOSX.h; path = ../../shared/OSX/PlatformSetupOSX.h; sourceTree = SOURCE_ROOT; }; 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = OSXUtils.mm; path = ../../shared/OSX/OSXUtils.mm; sourceTree = SOURCE_ROOT; }; 5D70B61C12B5FED300A1AB17 /* OSXUtils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OSXUtils.h; path = ../../shared/OSX/OSXUtils.h; sourceTree = SOURCE_ROOT; }; @@ -430,7 +414,6 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D8E36B214BEF45B003BA3DA /* jutils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jutils.c; sourceTree = SOURCE_ROOT; }; 5D8E37AF14BF0C85003BA3DA /* RenderScissorComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RenderScissorComponent.h; path = ../../shared/Entity/RenderScissorComponent.h; sourceTree = SOURCE_ROOT; }; 5D8E37B014BF0C85003BA3DA /* RenderScissorComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RenderScissorComponent.cpp; path = ../../shared/Entity/RenderScissorComponent.cpp; sourceTree = SOURCE_ROOT; }; - 5DD5C5942AB8471F00357191 /* libfmod.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; path = libfmod.dylib; sourceTree = ""; }; 5DDE02A312B4F526000C5CC0 /* App.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = App.h; path = ../source/App.h; sourceTree = SOURCE_ROOT; }; 5DDE02A412B4F526000C5CC0 /* App.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = App.cpp; path = ../source/App.cpp; sourceTree = SOURCE_ROOT; }; 5DDE05A912B58EBD000C5CC0 /* interface */ = {isa = PBXFileReference; lastKnownFileType = folder; name = interface; path = ../media/interface; sourceTree = SOURCE_ROOT; }; @@ -453,7 +436,6 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5DD5C5952AB8471F00357191 /* libfmod.dylib in Frameworks */, 5D361D4A2AB83C0E006C5169 /* libz.tbd in Frameworks */, 8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */, AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */, @@ -532,7 +514,6 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( - 5DD5C5942AB8471F00357191 /* libfmod.dylib */, 5D361D492AB83C0E006C5169 /* libz.tbd */, 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */, 1058C7A2FEA54F0111CA2CBB /* Other Frameworks */, @@ -618,8 +599,6 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B6D012B606DC00A1AB17 /* Audio */ = { isa = PBXGroup; children = ( - 5D423E4E2AB828D300A99994 /* AudioManagerFMODStudio.cpp */, - 5D423E4F2AB828D300A99994 /* AudioManagerFMODStudio.h */, 5D70B6D312B606DC00A1AB17 /* AudioManager.cpp */, 5D70B6D412B606DC00A1AB17 /* AudioManager.h */, AA000003000000000000AA01 /* AudioManagerSDL.cpp */, @@ -963,7 +942,6 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 8D1107290486CEB800E47090 /* Resources */, 8D11072C0486CEB800E47090 /* Sources */, 8D11072E0486CEB800E47090 /* Frameworks */, - 5D70BB2712B7208900A1AB17 /* CopyFiles */, ); buildRules = ( ); @@ -1087,7 +1065,6 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, 5D70B7F612B606DC00A1AB17 /* L_EffectEmitter.cpp in Sources */, 5D70B7F712B606DC00A1AB17 /* L_EffectManager.cpp in Sources */, 5D70B7F812B606DC00A1AB17 /* L_ExplosionEffect.cpp in Sources */, - 5D423E502AB828D300A99994 /* AudioManagerFMODStudio.cpp in Sources */, 5D70B7F912B606DC00A1AB17 /* L_MotionController.cpp in Sources */, 5D70B7FA12B606DC00A1AB17 /* L_Particle.cpp in Sources */, 5D70B7FB12B606DC00A1AB17 /* L_ParticleEffect.cpp in Sources */, From 7457d9109e9338f2c01fbbf99f1e5fee9f1397ef Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 08:35:53 -0300 Subject: [PATCH 23/44] macOS: remove gamepad/SDL_Init from RTSimpleApp - app has no GamepadManager RTSimpleApp does not have a GamepadManager instance, so the PLATFORM_OSX block calling GetGamepadManager()->AddProvider(new GamepadProviderSDL2()) caused 'member access into incomplete type GamepadManager' compile error. Remove: - SDL_Init + GamepadProviderSDL2 from App::Init - SDL_PumpEvents/SDL_PeepEvents event drain from App::Update - Unused GamepadProviderSDL2.h, SDL2/SDL.h includes - g_sig_SDLEvent definition (not needed without event pump) AudioManagerSDL handles its own SDL init internally. --- RTSimpleApp/source/App.cpp | 25 ++----------------------- 1 file changed, 2 insertions(+), 23 deletions(-) diff --git a/RTSimpleApp/source/App.cpp b/RTSimpleApp/source/App.cpp index f3c3124a..5ebaf68e 100644 --- a/RTSimpleApp/source/App.cpp +++ b/RTSimpleApp/source/App.cpp @@ -33,13 +33,7 @@ FileManager * GetFileManager() {return &g_fileManager;} #else //it's being compiled as a native OSX app - use SDL audio, no FMOD required #include "Audio/AudioManagerSDL.h" -#include "Gamepad/GamepadProviderSDL2.h" -#include AudioManagerSDL g_audioManager; - -// g_sig_SDLEvent is defined in SDL2Main.cpp for SDL-main builds. -// For the OSX Cocoa build which doesn't use SDL2Main.cpp, define it here. -boost::signals2::signal g_sig_SDLEvent; #endif #else @@ -179,10 +173,7 @@ bool App::Init() if (!BaseApp::Init()) return false; -#ifdef PLATFORM_OSX - SDL_Init(SDL_INIT_EVENTS | SDL_INIT_JOYSTICK | SDL_INIT_GAMECONTROLLER); - GetGamepadManager()->AddProvider(new GamepadProviderSDL2()); -#endif + LogMsg("Save path is %s", GetSavePath().c_str()); @@ -228,19 +219,7 @@ void App::Update() { BaseApp::Update(); -#ifdef PLATFORM_OSX - { - SDL_PumpEvents(); - SDL_Event ev; - while (SDL_PeepEvents(&ev, 1, SDL_GETEVENT, - SDL_JOYAXISMOTION, SDL_CONTROLLERDEVICEREMAPPED) > 0) - { - VariantList v; - v.Get(0).Set((Entity*)&ev); - g_sig_SDLEvent(&v); - } - } -#endif + if (!m_bDidPostInit) if (!m_bDidPostInit) From d91d0b56a9fe0509bddb5d4142e23f48c6ebd7da Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 08:40:58 -0300 Subject: [PATCH 24/44] macOS: add libpng sources to all 3 proton demo Xcode projects All three apps (RTSimpleApp, RTBareBones, RTLooneyLadders) were failing with undefined _png_* linker errors because libpng was not compiled in. RTDink compiles libpng from source (shared/Irrlicht/source/Irrlicht/libpng/). Apply the same approach to all three demo projects: - Add all 15 libpng .c files to Sources build phase - Add file references and libpng group in project navigator - Copy pnglibconf.h from pnglibconf.h.prebuilt (required by libpng headers) --- .../OSX/RTBareBones.xcodeproj/project.pbxproj | 92 +++++++ .../RTLooneyLadders.xcodeproj/project.pbxproj | 70 ++++++ .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 70 ++++++ .../source/Irrlicht/libpng/pnglibconf.h | 233 ++++++++++++++++++ 4 files changed, 465 insertions(+) create mode 100644 shared/Irrlicht/source/Irrlicht/libpng/pnglibconf.h diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index 13dfd26b..3c2aebcc 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -60,6 +60,22 @@ AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF9DBBC5113C611C00D05754 /* QuartzCore.framework */; }; AFBD7716113895850015E685 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AFBD7714113895850015E685 /* MainMenu.xib */; }; AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; +/* libpng build files */ +BC000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000001 /* png.c */; }; +BC000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000101 /* pngerror.c */; }; +BC000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000201 /* pngget.c */; }; +BC000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000301 /* pngmem.c */; }; +BC000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000401 /* pngpread.c */; }; +BC000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000501 /* pngread.c */; }; +BC000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000601 /* pngrio.c */; }; +BC000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000701 /* pngrtran.c */; }; +BC000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000801 /* pngrutil.c */; }; +BC000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000901 /* pngset.c */; }; +BC000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000A01 /* pngtrans.c */; }; +BC000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000B01 /* pngwio.c */; }; +BC000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000C01 /* pngwrite.c */; }; +BC000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000D01 /* pngwtran.c */; }; +BC000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000E01 /* pngwutil.c */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -161,6 +177,22 @@ AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; +/* libpng file references */ +BC000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; +BC000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -295,6 +327,7 @@ 5DDE017D12B4D4F2000C5CC0 /* PlatformSetup.cpp */, 5DDE017E12B4D4F2000C5CC0 /* PlatformPrecomp.h */, 5DDE017F12B4D4F2000C5CC0 /* PlatformPrecomp.cpp */, + BC000001000000000000FF01 /* libpng */, ); name = shared; sourceTree = ""; @@ -469,6 +502,50 @@ name = Boost; sourceTree = SOURCE_ROOT; }; +BC000001000000000000FF01 /* libpng */ = { + isa = PBXGroup; + children = ( + BC000001000000000000000001 /* png.c */, + BC000001000000000000000101 /* pngerror.c */, + BC000001000000000000000201 /* pngget.c */, + BC000001000000000000000301 /* pngmem.c */, + BC000001000000000000000401 /* pngpread.c */, + BC000001000000000000000501 /* pngread.c */, + BC000001000000000000000601 /* pngrio.c */, + BC000001000000000000000701 /* pngrtran.c */, + BC000001000000000000000801 /* pngrutil.c */, + BC000001000000000000000901 /* pngset.c */, + BC000001000000000000000A01 /* pngtrans.c */, + BC000001000000000000000B01 /* pngwio.c */, + BC000001000000000000000C01 /* pngwrite.c */, + BC000001000000000000000D01 /* pngwtran.c */, + BC000001000000000000000E01 /* pngwutil.c */, + ); + name = libpng; + sourceTree = ""; + }; +BC000001000000000000FF01 /* libpng */ = { + isa = PBXGroup; + children = ( + BC000001000000000000000001 /* png.c */, + BC000001000000000000000101 /* pngerror.c */, + BC000001000000000000000201 /* pngget.c */, + BC000001000000000000000301 /* pngmem.c */, + BC000001000000000000000401 /* pngpread.c */, + BC000001000000000000000501 /* pngread.c */, + BC000001000000000000000601 /* pngrio.c */, + BC000001000000000000000701 /* pngrtran.c */, + BC000001000000000000000801 /* pngrutil.c */, + BC000001000000000000000901 /* pngset.c */, + BC000001000000000000000A01 /* pngtrans.c */, + BC000001000000000000000B01 /* pngwio.c */, + BC000001000000000000000C01 /* pngwrite.c */, + BC000001000000000000000D01 /* pngwtran.c */, + BC000001000000000000000E01 /* pngwutil.c */, + ); + name = libpng; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -572,6 +649,21 @@ 5DDE01A912B4D4F2000C5CC0 /* RenderUtils.cpp in Sources */, 5DDE01AA12B4D4F2000C5CC0 /* PlatformSetup.cpp in Sources */, 5DDE01AB12B4D4F2000C5CC0 /* PlatformPrecomp.cpp in Sources */, + BC000001000000000000000002 /* png.c in Sources */, + BC000001000000000000000102 /* pngerror.c in Sources */, + BC000001000000000000000202 /* pngget.c in Sources */, + BC000001000000000000000302 /* pngmem.c in Sources */, + BC000001000000000000000402 /* pngpread.c in Sources */, + BC000001000000000000000502 /* pngread.c in Sources */, + BC000001000000000000000602 /* pngrio.c in Sources */, + BC000001000000000000000702 /* pngrtran.c in Sources */, + BC000001000000000000000802 /* pngrutil.c in Sources */, + BC000001000000000000000902 /* pngset.c in Sources */, + BC000001000000000000000A02 /* pngtrans.c in Sources */, + BC000001000000000000000B02 /* pngwio.c in Sources */, + BC000001000000000000000C02 /* pngwrite.c in Sources */, + BC000001000000000000000D02 /* pngwtran.c in Sources */, + BC000001000000000000000E02 /* pngwutil.c in Sources */, 5DDE01AC12B4D4F2000C5CC0 /* BaseApp.cpp in Sources */, 5DDE02A512B4F526000C5CC0 /* App.cpp in Sources */, 5D70B62512B5FED300A1AB17 /* OSXUtils.mm in Sources */, diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index e6307c09..5dd8c7b1 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -167,6 +167,22 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF9DBBC5113C611C00D05754 /* QuartzCore.framework */; }; AFBD7716113895850015E685 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AFBD7714113895850015E685 /* MainMenu.xib */; }; AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; +/* libpng build files */ +BD000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000001 /* png.c */; }; +BD000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000101 /* pngerror.c */; }; +BD000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000201 /* pngget.c */; }; +BD000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000301 /* pngmem.c */; }; +BD000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000401 /* pngpread.c */; }; +BD000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000501 /* pngread.c */; }; +BD000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000601 /* pngrio.c */; }; +BD000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000701 /* pngrtran.c */; }; +BD000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000801 /* pngrutil.c */; }; +BD000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000901 /* pngset.c */; }; +BD000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000A01 /* pngtrans.c */; }; +BD000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000B01 /* pngwio.c */; }; +BD000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000C01 /* pngwrite.c */; }; +BD000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000D01 /* pngwtran.c */; }; +BD000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000E01 /* pngwutil.c */; }; /* End PBXBuildFile section */ @@ -411,6 +427,22 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; +/* libpng file references */ +BD000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; +BD000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -739,6 +771,7 @@ LL00000100000000000000002B /* MainMenu.h */ = {isa = PBXFileReference; fileEncod isa = PBXGroup; children = ( 5D8E368414BEF420003BA3DA /* libjpg */, + BD000001000000000000FF01 /* libpng */, 5D8E367E14BEF412003BA3DA /* JPGSurfaceLoader.h */, 5D8E367F14BEF412003BA3DA /* RTGLESExt.h */, 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */, @@ -941,6 +974,28 @@ LL00000100000000000000002B /* MainMenu.h */, name = shared; sourceTree = ""; }; +BD000001000000000000FF01 /* libpng */ = { + isa = PBXGroup; + children = ( + BD000001000000000000000001 /* png.c */, + BD000001000000000000000101 /* pngerror.c */, + BD000001000000000000000201 /* pngget.c */, + BD000001000000000000000301 /* pngmem.c */, + BD000001000000000000000401 /* pngpread.c */, + BD000001000000000000000501 /* pngread.c */, + BD000001000000000000000601 /* pngrio.c */, + BD000001000000000000000701 /* pngrtran.c */, + BD000001000000000000000801 /* pngrutil.c */, + BD000001000000000000000901 /* pngset.c */, + BD000001000000000000000A01 /* pngtrans.c */, + BD000001000000000000000B01 /* pngwio.c */, + BD000001000000000000000C01 /* pngwrite.c */, + BD000001000000000000000D01 /* pngwtran.c */, + BD000001000000000000000E01 /* pngwutil.c */, + ); + name = libpng; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -1156,6 +1211,21 @@ LL00000100000000000000000B /* MainMenu.cpp in Sources */, 5D8E36DE14BEF45B003BA3DA /* jquant1.c in Sources */, 5D8E36DF14BEF45B003BA3DA /* jquant2.c in Sources */, 5D8E36E014BEF45B003BA3DA /* jutils.c in Sources */, + BD000001000000000000000002 /* png.c in Sources */, + BD000001000000000000000102 /* pngerror.c in Sources */, + BD000001000000000000000202 /* pngget.c in Sources */, + BD000001000000000000000302 /* pngmem.c in Sources */, + BD000001000000000000000402 /* pngpread.c in Sources */, + BD000001000000000000000502 /* pngread.c in Sources */, + BD000001000000000000000602 /* pngrio.c in Sources */, + BD000001000000000000000702 /* pngrtran.c in Sources */, + BD000001000000000000000802 /* pngrutil.c in Sources */, + BD000001000000000000000902 /* pngset.c in Sources */, + BD000001000000000000000A02 /* pngtrans.c in Sources */, + BD000001000000000000000B02 /* pngwio.c in Sources */, + BD000001000000000000000C02 /* pngwrite.c in Sources */, + BD000001000000000000000D02 /* pngwtran.c in Sources */, + BD000001000000000000000E02 /* pngwutil.c in Sources */, 5D8E37B114BF0C85003BA3DA /* RenderScissorComponent.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index 4f9317c4..be53fbe8 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -164,6 +164,22 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF9DBBC5113C611C00D05754 /* QuartzCore.framework */; }; AFBD7716113895850015E685 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AFBD7714113895850015E685 /* MainMenu.xib */; }; AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; +/* libpng build files */ +BB000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000001 /* png.c */; }; +BB000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000101 /* pngerror.c */; }; +BB000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000201 /* pngget.c */; }; +BB000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000301 /* pngmem.c */; }; +BB000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000401 /* pngpread.c */; }; +BB000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000501 /* pngread.c */; }; +BB000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000601 /* pngrio.c */; }; +BB000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000701 /* pngrtran.c */; }; +BB000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000801 /* pngrutil.c */; }; +BB000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000901 /* pngset.c */; }; +BB000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000A01 /* pngtrans.c */; }; +BB000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000B01 /* pngwio.c */; }; +BB000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000C01 /* pngwrite.c */; }; +BB000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000D01 /* pngwtran.c */; }; +BB000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000E01 /* pngwutil.c */; }; /* End PBXBuildFile section */ @@ -429,6 +445,22 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; +/* libpng file references */ +BB000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; +BB000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -734,6 +766,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file isa = PBXGroup; children = ( 5D8E368414BEF420003BA3DA /* libjpg */, + BB000001000000000000FF01 /* libpng */, 5D8E367E14BEF412003BA3DA /* JPGSurfaceLoader.h */, 5D8E367F14BEF412003BA3DA /* RTGLESExt.h */, 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */, @@ -932,6 +965,28 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file name = shared; sourceTree = ""; }; +BB000001000000000000FF01 /* libpng */ = { + isa = PBXGroup; + children = ( + BB000001000000000000000001 /* png.c */, + BB000001000000000000000101 /* pngerror.c */, + BB000001000000000000000201 /* pngget.c */, + BB000001000000000000000301 /* pngmem.c */, + BB000001000000000000000401 /* pngpread.c */, + BB000001000000000000000501 /* pngread.c */, + BB000001000000000000000601 /* pngrio.c */, + BB000001000000000000000701 /* pngrtran.c */, + BB000001000000000000000801 /* pngrutil.c */, + BB000001000000000000000901 /* pngset.c */, + BB000001000000000000000A01 /* pngtrans.c */, + BB000001000000000000000B01 /* pngwio.c */, + BB000001000000000000000C01 /* pngwrite.c */, + BB000001000000000000000D01 /* pngwtran.c */, + BB000001000000000000000E01 /* pngwutil.c */, + ); + name = libpng; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -1146,6 +1201,21 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, 5D8E36DE14BEF45B003BA3DA /* jquant1.c in Sources */, 5D8E36DF14BEF45B003BA3DA /* jquant2.c in Sources */, 5D8E36E014BEF45B003BA3DA /* jutils.c in Sources */, + BB000001000000000000000002 /* png.c in Sources */, + BB000001000000000000000102 /* pngerror.c in Sources */, + BB000001000000000000000202 /* pngget.c in Sources */, + BB000001000000000000000302 /* pngmem.c in Sources */, + BB000001000000000000000402 /* pngpread.c in Sources */, + BB000001000000000000000502 /* pngread.c in Sources */, + BB000001000000000000000602 /* pngrio.c in Sources */, + BB000001000000000000000702 /* pngrtran.c in Sources */, + BB000001000000000000000802 /* pngrutil.c in Sources */, + BB000001000000000000000902 /* pngset.c in Sources */, + BB000001000000000000000A02 /* pngtrans.c in Sources */, + BB000001000000000000000B02 /* pngwio.c in Sources */, + BB000001000000000000000C02 /* pngwrite.c in Sources */, + BB000001000000000000000D02 /* pngwtran.c in Sources */, + BB000001000000000000000E02 /* pngwutil.c in Sources */, 5D8E37B114BF0C85003BA3DA /* RenderScissorComponent.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; diff --git a/shared/Irrlicht/source/Irrlicht/libpng/pnglibconf.h b/shared/Irrlicht/source/Irrlicht/libpng/pnglibconf.h new file mode 100644 index 00000000..1e21b37b --- /dev/null +++ b/shared/Irrlicht/source/Irrlicht/libpng/pnglibconf.h @@ -0,0 +1,233 @@ +/* pnglibconf.h - library build configuration */ + +/* libpng version 1.6.55 */ + +/* Copyright (c) 2018-2026 Cosmin Truta */ +/* Copyright (c) 1998-2002,2004,2006-2018 Glenn Randers-Pehrson */ + +/* This code is released under the libpng license. */ +/* For conditions of distribution and use, see the disclaimer */ +/* and license in png.h */ + +/* pnglibconf.h */ +/* Machine generated file: DO NOT EDIT */ +/* Derived from: scripts/pnglibconf.dfa */ +#ifndef PNGLCONF_H +#define PNGLCONF_H +/* options */ +#define PNG_16BIT_SUPPORTED +#define PNG_ALIGNED_MEMORY_SUPPORTED +/*#undef PNG_ARM_NEON_API_SUPPORTED*/ +/*#undef PNG_ARM_NEON_CHECK_SUPPORTED*/ +#define PNG_BENIGN_ERRORS_SUPPORTED +#define PNG_BENIGN_READ_ERRORS_SUPPORTED +/*#undef PNG_BENIGN_WRITE_ERRORS_SUPPORTED*/ +#define PNG_BUILD_GRAYSCALE_PALETTE_SUPPORTED +#define PNG_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_COLORSPACE_SUPPORTED +#define PNG_CONSOLE_IO_SUPPORTED +#define PNG_CONVERT_tIME_SUPPORTED +/*#undef PNG_DISABLE_ADLER32_CHECK_SUPPORTED*/ +#define PNG_EASY_ACCESS_SUPPORTED +/*#undef PNG_ERROR_NUMBERS_SUPPORTED*/ +#define PNG_ERROR_TEXT_SUPPORTED +#define PNG_FIXED_POINT_SUPPORTED +#define PNG_FLOATING_ARITHMETIC_SUPPORTED +#define PNG_FLOATING_POINT_SUPPORTED +#define PNG_FORMAT_AFIRST_SUPPORTED +#define PNG_FORMAT_BGR_SUPPORTED +#define PNG_GAMMA_SUPPORTED +#define PNG_GET_PALETTE_MAX_SUPPORTED +#define PNG_HANDLE_AS_UNKNOWN_SUPPORTED +#define PNG_INCH_CONVERSIONS_SUPPORTED +#define PNG_INFO_IMAGE_SUPPORTED +#define PNG_IO_STATE_SUPPORTED +/*#undef PNG_MIPS_MMI_API_SUPPORTED*/ +/*#undef PNG_MIPS_MMI_CHECK_SUPPORTED*/ +/*#undef PNG_MIPS_MSA_API_SUPPORTED*/ +/*#undef PNG_MIPS_MSA_CHECK_SUPPORTED*/ +#define PNG_MNG_FEATURES_SUPPORTED +#define PNG_POINTER_INDEXING_SUPPORTED +/*#undef PNG_POWERPC_VSX_API_SUPPORTED*/ +/*#undef PNG_POWERPC_VSX_CHECK_SUPPORTED*/ +#define PNG_PROGRESSIVE_READ_SUPPORTED +#define PNG_READ_16BIT_SUPPORTED +#define PNG_READ_ALPHA_MODE_SUPPORTED +#define PNG_READ_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_READ_BACKGROUND_SUPPORTED +#define PNG_READ_BGR_SUPPORTED +#define PNG_READ_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_READ_COMPOSITE_NODIV_SUPPORTED +#define PNG_READ_COMPRESSED_TEXT_SUPPORTED +#define PNG_READ_EXPAND_16_SUPPORTED +#define PNG_READ_EXPAND_SUPPORTED +#define PNG_READ_FILLER_SUPPORTED +#define PNG_READ_GAMMA_SUPPORTED +#define PNG_READ_GET_PALETTE_MAX_SUPPORTED +#define PNG_READ_GRAY_TO_RGB_SUPPORTED +#define PNG_READ_INTERLACING_SUPPORTED +#define PNG_READ_INT_FUNCTIONS_SUPPORTED +#define PNG_READ_INVERT_ALPHA_SUPPORTED +#define PNG_READ_INVERT_SUPPORTED +#define PNG_READ_OPT_PLTE_SUPPORTED +#define PNG_READ_PACKSWAP_SUPPORTED +#define PNG_READ_PACK_SUPPORTED +#define PNG_READ_QUANTIZE_SUPPORTED +#define PNG_READ_RGB_TO_GRAY_SUPPORTED +#define PNG_READ_SCALE_16_TO_8_SUPPORTED +#define PNG_READ_SHIFT_SUPPORTED +#define PNG_READ_STRIP_16_TO_8_SUPPORTED +#define PNG_READ_STRIP_ALPHA_SUPPORTED +#define PNG_READ_SUPPORTED +#define PNG_READ_SWAP_ALPHA_SUPPORTED +#define PNG_READ_SWAP_SUPPORTED +#define PNG_READ_TEXT_SUPPORTED +#define PNG_READ_TRANSFORMS_SUPPORTED +#define PNG_READ_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_READ_USER_CHUNKS_SUPPORTED +#define PNG_READ_USER_TRANSFORM_SUPPORTED +#define PNG_READ_bKGD_SUPPORTED +#define PNG_READ_cHRM_SUPPORTED +#define PNG_READ_cICP_SUPPORTED +#define PNG_READ_cLLI_SUPPORTED +#define PNG_READ_eXIf_SUPPORTED +#define PNG_READ_gAMA_SUPPORTED +#define PNG_READ_hIST_SUPPORTED +#define PNG_READ_iCCP_SUPPORTED +#define PNG_READ_iTXt_SUPPORTED +#define PNG_READ_mDCV_SUPPORTED +#define PNG_READ_oFFs_SUPPORTED +#define PNG_READ_pCAL_SUPPORTED +#define PNG_READ_pHYs_SUPPORTED +#define PNG_READ_sBIT_SUPPORTED +#define PNG_READ_sCAL_SUPPORTED +#define PNG_READ_sPLT_SUPPORTED +#define PNG_READ_sRGB_SUPPORTED +#define PNG_READ_tEXt_SUPPORTED +#define PNG_READ_tIME_SUPPORTED +#define PNG_READ_tRNS_SUPPORTED +#define PNG_READ_zTXt_SUPPORTED +#define PNG_SAVE_INT_32_SUPPORTED +#define PNG_SAVE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SEQUENTIAL_READ_SUPPORTED +#define PNG_SETJMP_SUPPORTED +#define PNG_SET_OPTION_SUPPORTED +#define PNG_SET_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_SET_USER_LIMITS_SUPPORTED +#define PNG_SIMPLIFIED_READ_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_READ_BGR_SUPPORTED +#define PNG_SIMPLIFIED_READ_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_AFIRST_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_BGR_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_STDIO_SUPPORTED +#define PNG_SIMPLIFIED_WRITE_SUPPORTED +#define PNG_STDIO_SUPPORTED +#define PNG_STORE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_TEXT_SUPPORTED +#define PNG_TIME_RFC1123_SUPPORTED +#define PNG_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_USER_CHUNKS_SUPPORTED +#define PNG_USER_LIMITS_SUPPORTED +#define PNG_USER_MEM_SUPPORTED +#define PNG_USER_TRANSFORM_INFO_SUPPORTED +#define PNG_USER_TRANSFORM_PTR_SUPPORTED +#define PNG_WARNINGS_SUPPORTED +#define PNG_WRITE_16BIT_SUPPORTED +#define PNG_WRITE_ANCILLARY_CHUNKS_SUPPORTED +#define PNG_WRITE_BGR_SUPPORTED +#define PNG_WRITE_CHECK_FOR_INVALID_INDEX_SUPPORTED +#define PNG_WRITE_COMPRESSED_TEXT_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_COMPRESSION_SUPPORTED +#define PNG_WRITE_CUSTOMIZE_ZTXT_COMPRESSION_SUPPORTED +#define PNG_WRITE_FILLER_SUPPORTED +#define PNG_WRITE_FILTER_SUPPORTED +#define PNG_WRITE_FLUSH_SUPPORTED +#define PNG_WRITE_GET_PALETTE_MAX_SUPPORTED +#define PNG_WRITE_INTERLACING_SUPPORTED +#define PNG_WRITE_INT_FUNCTIONS_SUPPORTED +#define PNG_WRITE_INVERT_ALPHA_SUPPORTED +#define PNG_WRITE_INVERT_SUPPORTED +#define PNG_WRITE_OPTIMIZE_CMF_SUPPORTED +#define PNG_WRITE_PACKSWAP_SUPPORTED +#define PNG_WRITE_PACK_SUPPORTED +#define PNG_WRITE_SHIFT_SUPPORTED +#define PNG_WRITE_SUPPORTED +#define PNG_WRITE_SWAP_ALPHA_SUPPORTED +#define PNG_WRITE_SWAP_SUPPORTED +#define PNG_WRITE_TEXT_SUPPORTED +#define PNG_WRITE_TRANSFORMS_SUPPORTED +#define PNG_WRITE_UNKNOWN_CHUNKS_SUPPORTED +#define PNG_WRITE_USER_TRANSFORM_SUPPORTED +#define PNG_WRITE_WEIGHTED_FILTER_SUPPORTED +#define PNG_WRITE_bKGD_SUPPORTED +#define PNG_WRITE_cHRM_SUPPORTED +#define PNG_WRITE_cICP_SUPPORTED +#define PNG_WRITE_cLLI_SUPPORTED +#define PNG_WRITE_eXIf_SUPPORTED +#define PNG_WRITE_gAMA_SUPPORTED +#define PNG_WRITE_hIST_SUPPORTED +#define PNG_WRITE_iCCP_SUPPORTED +#define PNG_WRITE_iTXt_SUPPORTED +#define PNG_WRITE_mDCV_SUPPORTED +#define PNG_WRITE_oFFs_SUPPORTED +#define PNG_WRITE_pCAL_SUPPORTED +#define PNG_WRITE_pHYs_SUPPORTED +#define PNG_WRITE_sBIT_SUPPORTED +#define PNG_WRITE_sCAL_SUPPORTED +#define PNG_WRITE_sPLT_SUPPORTED +#define PNG_WRITE_sRGB_SUPPORTED +#define PNG_WRITE_tEXt_SUPPORTED +#define PNG_WRITE_tIME_SUPPORTED +#define PNG_WRITE_tRNS_SUPPORTED +#define PNG_WRITE_zTXt_SUPPORTED +#define PNG_bKGD_SUPPORTED +#define PNG_cHRM_SUPPORTED +#define PNG_cICP_SUPPORTED +#define PNG_cLLI_SUPPORTED +#define PNG_eXIf_SUPPORTED +#define PNG_gAMA_SUPPORTED +#define PNG_hIST_SUPPORTED +#define PNG_iCCP_SUPPORTED +#define PNG_iTXt_SUPPORTED +#define PNG_mDCV_SUPPORTED +#define PNG_oFFs_SUPPORTED +#define PNG_pCAL_SUPPORTED +#define PNG_pHYs_SUPPORTED +#define PNG_sBIT_SUPPORTED +#define PNG_sCAL_SUPPORTED +#define PNG_sPLT_SUPPORTED +#define PNG_sRGB_SUPPORTED +#define PNG_tEXt_SUPPORTED +#define PNG_tIME_SUPPORTED +#define PNG_tRNS_SUPPORTED +#define PNG_zTXt_SUPPORTED +/* end of options */ +/* settings */ +#define PNG_API_RULE 0 +#define PNG_DEFAULT_READ_MACROS 1 +#define PNG_GAMMA_THRESHOLD_FIXED 5000 +#define PNG_IDAT_READ_SIZE PNG_ZBUF_SIZE +#define PNG_INFLATE_BUF_SIZE 1024 +#define PNG_LINKAGE_API extern +#define PNG_LINKAGE_CALLBACK extern +#define PNG_LINKAGE_DATA extern +#define PNG_LINKAGE_FUNCTION extern +#define PNG_MAX_GAMMA_8 11 +#define PNG_QUANTIZE_BLUE_BITS 5 +#define PNG_QUANTIZE_GREEN_BITS 5 +#define PNG_QUANTIZE_RED_BITS 5 +#define PNG_TEXT_Z_DEFAULT_COMPRESSION (-1) +#define PNG_TEXT_Z_DEFAULT_STRATEGY 0 +#define PNG_USER_CHUNK_CACHE_MAX 1000 +#define PNG_USER_CHUNK_MALLOC_MAX 8000000 +#define PNG_USER_HEIGHT_MAX 1000000 +#define PNG_USER_WIDTH_MAX 1000000 +#define PNG_ZBUF_SIZE 8192 +#define PNG_ZLIB_VERNUM 0 /* unknown */ +#define PNG_Z_DEFAULT_COMPRESSION (-1) +#define PNG_Z_DEFAULT_NOFILTER_STRATEGY 0 +#define PNG_Z_DEFAULT_STRATEGY 1 +#define PNG_sCAL_PRECISION 5 +#define PNG_sRGB_PROFILE_CHECKS 2 +/* end of settings */ +#endif /* PNGLCONF_H */ From 2703e6fa417b08d4bc0e06bb8b2f60db302f1782 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 08:42:09 -0300 Subject: [PATCH 25/44] macOS: fix indentation in all 3 demo app Xcode project files --- .../OSX/RTBareBones.xcodeproj/project.pbxproj | 68 +++--- .../RTLooneyLadders.xcodeproj/project.pbxproj | 204 +++++++++--------- .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 66 +++--- 3 files changed, 169 insertions(+), 169 deletions(-) diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index 3c2aebcc..c83c86f6 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -60,22 +60,22 @@ AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF9DBBC5113C611C00D05754 /* QuartzCore.framework */; }; AFBD7716113895850015E685 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AFBD7714113895850015E685 /* MainMenu.xib */; }; AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; -/* libpng build files */ -BC000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000001 /* png.c */; }; -BC000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000101 /* pngerror.c */; }; -BC000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000201 /* pngget.c */; }; -BC000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000301 /* pngmem.c */; }; -BC000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000401 /* pngpread.c */; }; -BC000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000501 /* pngread.c */; }; -BC000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000601 /* pngrio.c */; }; -BC000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000701 /* pngrtran.c */; }; -BC000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000801 /* pngrutil.c */; }; -BC000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000901 /* pngset.c */; }; -BC000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000A01 /* pngtrans.c */; }; -BC000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000B01 /* pngwio.c */; }; -BC000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000C01 /* pngwrite.c */; }; -BC000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000D01 /* pngwtran.c */; }; -BC000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000E01 /* pngwutil.c */; }; + /* libpng build files */ + BC000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000001 /* png.c */; }; + BC000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000101 /* pngerror.c */; }; + BC000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000201 /* pngget.c */; }; + BC000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000301 /* pngmem.c */; }; + BC000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000401 /* pngpread.c */; }; + BC000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000501 /* pngread.c */; }; + BC000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000601 /* pngrio.c */; }; + BC000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000701 /* pngrtran.c */; }; + BC000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000801 /* pngrutil.c */; }; + BC000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000901 /* pngset.c */; }; + BC000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000A01 /* pngtrans.c */; }; + BC000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000B01 /* pngwio.c */; }; + BC000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000C01 /* pngwrite.c */; }; + BC000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000D01 /* pngwtran.c */; }; + BC000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000E01 /* pngwutil.c */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -177,22 +177,22 @@ BC000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fi AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; -/* libpng file references */ -BC000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; -BC000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; + /* libpng file references */ + BC000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; + BC000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -502,7 +502,7 @@ BC000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncod name = Boost; sourceTree = SOURCE_ROOT; }; -BC000001000000000000FF01 /* libpng */ = { + BC000001000000000000FF01 /* libpng */ = { isa = PBXGroup; children = ( BC000001000000000000000001 /* png.c */, @@ -524,7 +524,7 @@ BC000001000000000000FF01 /* libpng */ = { name = libpng; sourceTree = ""; }; -BC000001000000000000FF01 /* libpng */ = { + BC000001000000000000FF01 /* libpng */ = { isa = PBXGroup; children = ( BC000001000000000000000001 /* png.c */, diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index 5dd8c7b1..cfe6b223 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -9,18 +9,18 @@ /* Begin PBXBuildFile section */ 5D361D4A2AB83C0E006C5169 /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 5D361D492AB83C0E006C5169 /* libz.tbd */; }; /* RTLooneyLadders Component build files */ -LL000001000000000000000001 /* BuildingComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000011 /* BuildingComponent.cpp */; }; -LL000001000000000000000002 /* Character.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000012 /* Character.cpp */; }; -LL000001000000000000000003 /* CharComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000013 /* CharComponent.cpp */; }; -LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000014 /* CharManagerComponent.cpp */; }; -LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000015 /* ExplosionComponent.cpp */; }; -LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */; }; -/* RTLooneyLadders GUI build files */ -LL000001000000000000000007 /* AboutMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000017 /* AboutMenu.cpp */; }; -LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000018 /* ControllerTestMenu.cpp */; }; -LL000001000000000000000009 /* GameMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000019 /* GameMenu.cpp */; }; -LL00000100000000000000000A /* IntroMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL00000100000000000000001A /* IntroMenu.cpp */; }; -LL00000100000000000000000B /* MainMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL00000100000000000000001B /* MainMenu.cpp */; }; + LL000001000000000000000001 /* BuildingComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000011 /* BuildingComponent.cpp */; }; + LL000001000000000000000002 /* Character.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000012 /* Character.cpp */; }; + LL000001000000000000000003 /* CharComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000013 /* CharComponent.cpp */; }; + LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000014 /* CharManagerComponent.cpp */; }; + LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000015 /* ExplosionComponent.cpp */; }; + LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */; }; + /* RTLooneyLadders GUI build files */ + LL000001000000000000000007 /* AboutMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000017 /* AboutMenu.cpp */; }; + LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000018 /* ControllerTestMenu.cpp */; }; + LL000001000000000000000009 /* GameMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL000001000000000000000019 /* GameMenu.cpp */; }; + LL00000100000000000000000A /* IntroMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL00000100000000000000001A /* IntroMenu.cpp */; }; + LL00000100000000000000000B /* MainMenu.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LL00000100000000000000001B /* MainMenu.cpp */; }; 5D70B62512B5FED300A1AB17 /* OSXUtils.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B61B12B5FED300A1AB17 /* OSXUtils.mm */; }; 5D70B62612B5FED300A1AB17 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B61E12B5FED300A1AB17 /* main.m */; }; 5D70B62712B5FED300A1AB17 /* MainController.mm in Sources */ = {isa = PBXBuildFile; fileRef = 5D70B62012B5FED300A1AB17 /* MainController.mm */; }; @@ -167,22 +167,22 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF9DBBC5113C611C00D05754 /* QuartzCore.framework */; }; AFBD7716113895850015E685 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AFBD7714113895850015E685 /* MainMenu.xib */; }; AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; -/* libpng build files */ -BD000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000001 /* png.c */; }; -BD000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000101 /* pngerror.c */; }; -BD000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000201 /* pngget.c */; }; -BD000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000301 /* pngmem.c */; }; -BD000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000401 /* pngpread.c */; }; -BD000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000501 /* pngread.c */; }; -BD000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000601 /* pngrio.c */; }; -BD000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000701 /* pngrtran.c */; }; -BD000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000801 /* pngrutil.c */; }; -BD000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000901 /* pngset.c */; }; -BD000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000A01 /* pngtrans.c */; }; -BD000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000B01 /* pngwio.c */; }; -BD000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000C01 /* pngwrite.c */; }; -BD000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000D01 /* pngwtran.c */; }; -BD000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000E01 /* pngwutil.c */; }; + /* libpng build files */ + BD000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000001 /* png.c */; }; + BD000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000101 /* pngerror.c */; }; + BD000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000201 /* pngget.c */; }; + BD000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000301 /* pngmem.c */; }; + BD000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000401 /* pngpread.c */; }; + BD000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000501 /* pngread.c */; }; + BD000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000601 /* pngrio.c */; }; + BD000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000701 /* pngrtran.c */; }; + BD000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000801 /* pngrutil.c */; }; + BD000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000901 /* pngset.c */; }; + BD000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000A01 /* pngtrans.c */; }; + BD000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000B01 /* pngwio.c */; }; + BD000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000C01 /* pngwrite.c */; }; + BD000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000D01 /* pngwtran.c */; }; + BD000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000E01 /* pngwutil.c */; }; /* End PBXBuildFile section */ @@ -427,22 +427,22 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; -/* libpng file references */ -BD000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; -BD000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; + /* libpng file references */ + BD000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; + BD000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -460,30 +460,30 @@ BD000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncod /* End PBXFrameworksBuildPhase section */ -/* RTLooneyLadders app-specific file references */ -LL000001000000000000000011 /* BuildingComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BuildingComponent.cpp; path = ../source/Component/BuildingComponent.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000021 /* BuildingComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BuildingComponent.h; path = ../source/Component/BuildingComponent.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000012 /* Character.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Character.cpp; path = ../source/Component/Character.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000022 /* Character.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Character.h; path = ../source/Component/Character.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000013 /* CharComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharComponent.cpp; path = ../source/Component/CharComponent.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000023 /* CharComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharComponent.h; path = ../source/Component/CharComponent.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000014 /* CharManagerComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharManagerComponent.cpp; path = ../source/Component/CharManagerComponent.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000024 /* CharManagerComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharManagerComponent.h; path = ../source/Component/CharManagerComponent.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000015 /* ExplosionComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ExplosionComponent.cpp; path = ../source/Component/ExplosionComponent.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000025 /* ExplosionComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExplosionComponent.h; path = ../source/Component/ExplosionComponent.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OverlayRenderComponentSpy.cpp; path = ../source/Component/OverlayRenderComponentSpy.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000026 /* OverlayRenderComponentSpy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OverlayRenderComponentSpy.h; path = ../source/Component/OverlayRenderComponentSpy.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000017 /* AboutMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AboutMenu.cpp; path = ../source/GUI/AboutMenu.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000027 /* AboutMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutMenu.h; path = ../source/GUI/AboutMenu.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000018 /* ControllerTestMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ControllerTestMenu.cpp; path = ../source/GUI/ControllerTestMenu.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000028 /* ControllerTestMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ControllerTestMenu.h; path = ../source/GUI/ControllerTestMenu.h; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000019 /* GameMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GameMenu.cpp; path = ../source/GUI/GameMenu.cpp; sourceTree = SOURCE_ROOT; }; -LL000001000000000000000029 /* GameMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GameMenu.h; path = ../source/GUI/GameMenu.h; sourceTree = SOURCE_ROOT; }; -LL00000100000000000000001A /* IntroMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IntroMenu.cpp; path = ../source/GUI/IntroMenu.cpp; sourceTree = SOURCE_ROOT; }; -LL00000100000000000000002A /* IntroMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IntroMenu.h; path = ../source/GUI/IntroMenu.h; sourceTree = SOURCE_ROOT; }; -LL00000100000000000000001B /* MainMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MainMenu.cpp; path = ../source/GUI/MainMenu.cpp; sourceTree = SOURCE_ROOT; }; -LL00000100000000000000002B /* MainMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainMenu.h; path = ../source/GUI/MainMenu.h; sourceTree = SOURCE_ROOT; }; -/* End RTLooneyLadders app-specific file references */ + /* RTLooneyLadders app-specific file references */ + LL000001000000000000000011 /* BuildingComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = BuildingComponent.cpp; path = ../source/Component/BuildingComponent.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000021 /* BuildingComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BuildingComponent.h; path = ../source/Component/BuildingComponent.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000012 /* Character.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Character.cpp; path = ../source/Component/Character.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000022 /* Character.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Character.h; path = ../source/Component/Character.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000013 /* CharComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharComponent.cpp; path = ../source/Component/CharComponent.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000023 /* CharComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharComponent.h; path = ../source/Component/CharComponent.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000014 /* CharManagerComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = CharManagerComponent.cpp; path = ../source/Component/CharManagerComponent.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000024 /* CharManagerComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CharManagerComponent.h; path = ../source/Component/CharManagerComponent.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000015 /* ExplosionComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ExplosionComponent.cpp; path = ../source/Component/ExplosionComponent.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000025 /* ExplosionComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ExplosionComponent.h; path = ../source/Component/ExplosionComponent.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = OverlayRenderComponentSpy.cpp; path = ../source/Component/OverlayRenderComponentSpy.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000026 /* OverlayRenderComponentSpy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = OverlayRenderComponentSpy.h; path = ../source/Component/OverlayRenderComponentSpy.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000017 /* AboutMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AboutMenu.cpp; path = ../source/GUI/AboutMenu.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000027 /* AboutMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AboutMenu.h; path = ../source/GUI/AboutMenu.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000018 /* ControllerTestMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ControllerTestMenu.cpp; path = ../source/GUI/ControllerTestMenu.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000028 /* ControllerTestMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ControllerTestMenu.h; path = ../source/GUI/ControllerTestMenu.h; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000019 /* GameMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GameMenu.cpp; path = ../source/GUI/GameMenu.cpp; sourceTree = SOURCE_ROOT; }; + LL000001000000000000000029 /* GameMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GameMenu.h; path = ../source/GUI/GameMenu.h; sourceTree = SOURCE_ROOT; }; + LL00000100000000000000001A /* IntroMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = IntroMenu.cpp; path = ../source/GUI/IntroMenu.cpp; sourceTree = SOURCE_ROOT; }; + LL00000100000000000000002A /* IntroMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IntroMenu.h; path = ../source/GUI/IntroMenu.h; sourceTree = SOURCE_ROOT; }; + LL00000100000000000000001B /* MainMenu.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = MainMenu.cpp; path = ../source/GUI/MainMenu.cpp; sourceTree = SOURCE_ROOT; }; + LL00000100000000000000002B /* MainMenu.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MainMenu.h; path = ../source/GUI/MainMenu.h; sourceTree = SOURCE_ROOT; }; + /* End RTLooneyLadders app-specific file references */ /* Begin PBXGroup section */ 1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = { isa = PBXGroup; @@ -864,18 +864,18 @@ LL00000100000000000000002B /* MainMenu.h */ = {isa = PBXFileReference; fileEncod 5D70B81F12B6072D00A1AB17 /* Component */ = { isa = PBXGroup; children = ( -LL000001000000000000000011 /* BuildingComponent.cpp */, -LL000001000000000000000021 /* BuildingComponent.h */, -LL000001000000000000000012 /* Character.cpp */, -LL000001000000000000000022 /* Character.h */, -LL000001000000000000000013 /* CharComponent.cpp */, -LL000001000000000000000023 /* CharComponent.h */, -LL000001000000000000000014 /* CharManagerComponent.cpp */, -LL000001000000000000000024 /* CharManagerComponent.h */, -LL000001000000000000000015 /* ExplosionComponent.cpp */, -LL000001000000000000000025 /* ExplosionComponent.h */, -LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */, -LL000001000000000000000026 /* OverlayRenderComponentSpy.h */, + LL000001000000000000000011 /* BuildingComponent.cpp */, + LL000001000000000000000021 /* BuildingComponent.h */, + LL000001000000000000000012 /* Character.cpp */, + LL000001000000000000000022 /* Character.h */, + LL000001000000000000000013 /* CharComponent.cpp */, + LL000001000000000000000023 /* CharComponent.h */, + LL000001000000000000000014 /* CharManagerComponent.cpp */, + LL000001000000000000000024 /* CharManagerComponent.h */, + LL000001000000000000000015 /* ExplosionComponent.cpp */, + LL000001000000000000000025 /* ExplosionComponent.h */, + LL000001000000000000000016 /* OverlayRenderComponentSpy.cpp */, + LL000001000000000000000026 /* OverlayRenderComponentSpy.h */, ); name = Component; sourceTree = ""; @@ -883,16 +883,16 @@ LL000001000000000000000026 /* OverlayRenderComponentSpy.h */, 5D70B82212B6072D00A1AB17 /* GUI */ = { isa = PBXGroup; children = ( -LL000001000000000000000017 /* AboutMenu.cpp */, -LL000001000000000000000027 /* AboutMenu.h */, -LL000001000000000000000018 /* ControllerTestMenu.cpp */, -LL000001000000000000000028 /* ControllerTestMenu.h */, -LL000001000000000000000019 /* GameMenu.cpp */, -LL000001000000000000000029 /* GameMenu.h */, -LL00000100000000000000001A /* IntroMenu.cpp */, -LL00000100000000000000002A /* IntroMenu.h */, -LL00000100000000000000001B /* MainMenu.cpp */, -LL00000100000000000000002B /* MainMenu.h */, + LL000001000000000000000017 /* AboutMenu.cpp */, + LL000001000000000000000027 /* AboutMenu.h */, + LL000001000000000000000018 /* ControllerTestMenu.cpp */, + LL000001000000000000000028 /* ControllerTestMenu.h */, + LL000001000000000000000019 /* GameMenu.cpp */, + LL000001000000000000000029 /* GameMenu.h */, + LL00000100000000000000001A /* IntroMenu.cpp */, + LL00000100000000000000002A /* IntroMenu.h */, + LL00000100000000000000001B /* MainMenu.cpp */, + LL00000100000000000000002B /* MainMenu.h */, ); name = GUI; sourceTree = ""; @@ -974,7 +974,7 @@ LL00000100000000000000002B /* MainMenu.h */, name = shared; sourceTree = ""; }; -BD000001000000000000FF01 /* libpng */ = { + BD000001000000000000FF01 /* libpng */ = { isa = PBXGroup; children = ( BD000001000000000000000001 /* png.c */, @@ -1151,17 +1151,17 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, 5D70B81112B606DC00A1AB17 /* PlatformSetup.cpp in Sources */, 5D70B81212B606DC00A1AB17 /* PlatformPrecomp.cpp in Sources */, 5D70B81312B606DC00A1AB17 /* BaseApp.cpp in Sources */, -LL000001000000000000000001 /* BuildingComponent.cpp in Sources */, -LL000001000000000000000002 /* Character.cpp in Sources */, -LL000001000000000000000003 /* CharComponent.cpp in Sources */, -LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */, -LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */, -LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */, -LL000001000000000000000007 /* AboutMenu.cpp in Sources */, -LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */, -LL000001000000000000000009 /* GameMenu.cpp in Sources */, -LL00000100000000000000000A /* IntroMenu.cpp in Sources */, -LL00000100000000000000000B /* MainMenu.cpp in Sources */, + LL000001000000000000000001 /* BuildingComponent.cpp in Sources */, + LL000001000000000000000002 /* Character.cpp in Sources */, + LL000001000000000000000003 /* CharComponent.cpp in Sources */, + LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */, + LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */, + LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */, + LL000001000000000000000007 /* AboutMenu.cpp in Sources */, + LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */, + LL000001000000000000000009 /* GameMenu.cpp in Sources */, + LL00000100000000000000000A /* IntroMenu.cpp in Sources */, + LL00000100000000000000000B /* MainMenu.cpp in Sources */, 5D70C4BF12B7586D00A1AB17 /* MyApplication.mm in Sources */, 5D8E368214BEF412003BA3DA /* JPGSurfaceLoader.cpp in Sources */, 5D8E368314BEF412003BA3DA /* RTGLESExt.cpp in Sources */, diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index be53fbe8..eaeb1211 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -164,22 +164,22 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF AF9DBBC6113C611C00D05754 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AF9DBBC5113C611C00D05754 /* QuartzCore.framework */; }; AFBD7716113895850015E685 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = AFBD7714113895850015E685 /* MainMenu.xib */; }; AFD4D88A113C504F00C2DE76 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AFD4D889113C504F00C2DE76 /* OpenGL.framework */; }; -/* libpng build files */ -BB000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000001 /* png.c */; }; -BB000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000101 /* pngerror.c */; }; -BB000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000201 /* pngget.c */; }; -BB000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000301 /* pngmem.c */; }; -BB000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000401 /* pngpread.c */; }; -BB000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000501 /* pngread.c */; }; -BB000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000601 /* pngrio.c */; }; -BB000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000701 /* pngrtran.c */; }; -BB000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000801 /* pngrutil.c */; }; -BB000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000901 /* pngset.c */; }; -BB000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000A01 /* pngtrans.c */; }; -BB000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000B01 /* pngwio.c */; }; -BB000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000C01 /* pngwrite.c */; }; -BB000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000D01 /* pngwtran.c */; }; -BB000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000E01 /* pngwutil.c */; }; + /* libpng build files */ + BB000001000000000000000002 /* png.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000001 /* png.c */; }; + BB000001000000000000000102 /* pngerror.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000101 /* pngerror.c */; }; + BB000001000000000000000202 /* pngget.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000201 /* pngget.c */; }; + BB000001000000000000000302 /* pngmem.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000301 /* pngmem.c */; }; + BB000001000000000000000402 /* pngpread.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000401 /* pngpread.c */; }; + BB000001000000000000000502 /* pngread.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000501 /* pngread.c */; }; + BB000001000000000000000602 /* pngrio.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000601 /* pngrio.c */; }; + BB000001000000000000000702 /* pngrtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000701 /* pngrtran.c */; }; + BB000001000000000000000802 /* pngrutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000801 /* pngrutil.c */; }; + BB000001000000000000000902 /* pngset.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000901 /* pngset.c */; }; + BB000001000000000000000A02 /* pngtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000A01 /* pngtrans.c */; }; + BB000001000000000000000B02 /* pngwio.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000B01 /* pngwio.c */; }; + BB000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000C01 /* pngwrite.c */; }; + BB000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000D01 /* pngwtran.c */; }; + BB000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000E01 /* pngwutil.c */; }; /* End PBXBuildFile section */ @@ -445,22 +445,22 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; -/* libpng file references */ -BB000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; -BB000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; + /* libpng file references */ + BB000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000201 /* pngget.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngget.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngget.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000301 /* pngmem.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngmem.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngmem.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000401 /* pngpread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngpread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngpread.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000501 /* pngread.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngread.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngread.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000601 /* pngrio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrio.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000701 /* pngrtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrtran.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000801 /* pngrutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngrutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngrutil.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000901 /* pngset.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngset.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngset.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000A01 /* pngtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngtrans.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000B01 /* pngwio.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwio.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwio.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; + BB000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -965,7 +965,7 @@ BB000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncod name = shared; sourceTree = ""; }; -BB000001000000000000FF01 /* libpng */ = { + BB000001000000000000FF01 /* libpng */ = { isa = PBXGroup; children = ( BB000001000000000000000001 /* png.c */, From b38d62f4ac59e61a6c101249a1bb1f0d05b83e57 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 08:46:22 -0300 Subject: [PATCH 26/44] macOS: add libpng ARM NEON sources to all 3 demo Xcode projects Add arm_init.c, filter_neon_intrinsics.c, palette_neon_intrinsics.c from libpng/arm/ to fix undefined _png_*_neon linker errors on ARM64. Also add EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64] to exclude these ARM-only files when building for Intel, matching RTDink's approach. --- .../OSX/RTBareBones.xcodeproj/project.pbxproj | 14 ++++++++++++++ .../OSX/RTLooneyLadders.xcodeproj/project.pbxproj | 14 ++++++++++++++ .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 14 ++++++++++++++ 3 files changed, 42 insertions(+) diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index c83c86f6..1863d75c 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -76,6 +76,9 @@ BC000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000C01 /* pngwrite.c */; }; BC000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000D01 /* pngwtran.c */; }; BC000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BC000001000000000000000E01 /* pngwutil.c */; }; + BCARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BCARM000000000000000000001 /* arm_init.c */; }; + BCARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BCARM000000000000000000101 /* filter_neon_intrinsics.c */; }; + BCARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BCARM000000000000000000201 /* palette_neon_intrinsics.c */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -193,6 +196,9 @@ BC000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; BC000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; BC000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; + BCARM000000000000000000001 /* arm_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = arm_init.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/arm_init.c; sourceTree = SOURCE_ROOT; }; + BCARM000000000000000000101 /* filter_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filter_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/filter_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; + BCARM000000000000000000201 /* palette_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = palette_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/palette_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -520,6 +526,9 @@ BC000001000000000000000C01 /* pngwrite.c */, BC000001000000000000000D01 /* pngwtran.c */, BC000001000000000000000E01 /* pngwutil.c */, + BCARM000000000000000000001 /* arm_init.c */, + BCARM000000000000000000101 /* filter_neon_intrinsics.c */, + BCARM000000000000000000201 /* palette_neon_intrinsics.c */, ); name = libpng; sourceTree = ""; @@ -664,6 +673,9 @@ BC000001000000000000000C02 /* pngwrite.c in Sources */, BC000001000000000000000D02 /* pngwtran.c in Sources */, BC000001000000000000000E02 /* pngwutil.c in Sources */, + BCARM000000000000000000002 /* arm_init.c in Sources */, + BCARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */, + BCARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */, 5DDE01AC12B4D4F2000C5CC0 /* BaseApp.cpp in Sources */, 5DDE02A512B4F526000C5CC0 /* App.cpp in Sources */, 5D70B62512B5FED300A1AB17 /* OSXUtils.mm in Sources */, @@ -774,6 +786,7 @@ HEADER_SEARCH_PATHS = ( "$(HOME)/Library/Frameworks/SDL2.framework/Headers", ); MACOSX_DEPLOYMENT_TARGET = 11.0; + "EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64]" = "arm_init.c filter_neon_intrinsics.c palette_neon_intrinsics.c"; OTHER_CFLAGS = "-w -Wno-error"; }; name = Debug; @@ -807,6 +820,7 @@ HEADER_SEARCH_PATHS = ( "$(HOME)/Library/Frameworks/SDL2.framework/Headers", ); MACOSX_DEPLOYMENT_TARGET = 11.0; + "EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64]" = "arm_init.c filter_neon_intrinsics.c palette_neon_intrinsics.c"; OTHER_CFLAGS = "-w -Wno-error"; name = Release; }; diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index cfe6b223..5ce4e80c 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -183,6 +183,9 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BD000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000C01 /* pngwrite.c */; }; BD000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000D01 /* pngwtran.c */; }; BD000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BD000001000000000000000E01 /* pngwutil.c */; }; + BDARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000001 /* arm_init.c */; }; + BDARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000101 /* filter_neon_intrinsics.c */; }; + BDARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000201 /* palette_neon_intrinsics.c */; }; /* End PBXBuildFile section */ @@ -443,6 +446,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file BD000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; BD000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; BD000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; + BDARM000000000000000000001 /* arm_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = arm_init.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/arm_init.c; sourceTree = SOURCE_ROOT; }; + BDARM000000000000000000101 /* filter_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filter_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/filter_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; + BDARM000000000000000000201 /* palette_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = palette_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/palette_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -992,6 +998,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file BD000001000000000000000C01 /* pngwrite.c */, BD000001000000000000000D01 /* pngwtran.c */, BD000001000000000000000E01 /* pngwutil.c */, + BDARM000000000000000000001 /* arm_init.c */, + BDARM000000000000000000101 /* filter_neon_intrinsics.c */, + BDARM000000000000000000201 /* palette_neon_intrinsics.c */, ); name = libpng; sourceTree = ""; @@ -1226,6 +1235,9 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, BD000001000000000000000C02 /* pngwrite.c in Sources */, BD000001000000000000000D02 /* pngwtran.c in Sources */, BD000001000000000000000E02 /* pngwutil.c in Sources */, + BDARM000000000000000000002 /* arm_init.c in Sources */, + BDARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */, + BDARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */, 5D8E37B114BF0C85003BA3DA /* RenderScissorComponent.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1274,6 +1286,7 @@ LIBRARY_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 11.0; + "EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64]" = "arm_init.c filter_neon_intrinsics.c palette_neon_intrinsics.c"; PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = RTLooneyLadders; }; @@ -1297,6 +1310,7 @@ LIBRARY_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 11.0; + "EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64]" = "arm_init.c filter_neon_intrinsics.c palette_neon_intrinsics.c"; PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = RTLooneyLadders; }; diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index eaeb1211..0df04f1f 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -180,6 +180,9 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BB000001000000000000000C02 /* pngwrite.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000C01 /* pngwrite.c */; }; BB000001000000000000000D02 /* pngwtran.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000D01 /* pngwtran.c */; }; BB000001000000000000000E02 /* pngwutil.c in Sources */ = {isa = PBXBuildFile; fileRef = BB000001000000000000000E01 /* pngwutil.c */; }; + BBARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BBARM000000000000000000001 /* arm_init.c */; }; + BBARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BBARM000000000000000000101 /* filter_neon_intrinsics.c */; }; + BBARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BBARM000000000000000000201 /* palette_neon_intrinsics.c */; }; /* End PBXBuildFile section */ @@ -461,6 +464,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file BB000001000000000000000C01 /* pngwrite.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwrite.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwrite.c; sourceTree = SOURCE_ROOT; }; BB000001000000000000000D01 /* pngwtran.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwtran.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwtran.c; sourceTree = SOURCE_ROOT; }; BB000001000000000000000E01 /* pngwutil.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngwutil.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngwutil.c; sourceTree = SOURCE_ROOT; }; + BBARM000000000000000000001 /* arm_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = arm_init.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/arm_init.c; sourceTree = SOURCE_ROOT; }; + BBARM000000000000000000101 /* filter_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filter_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/filter_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; + BBARM000000000000000000201 /* palette_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = palette_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/palette_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -983,6 +989,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file BB000001000000000000000C01 /* pngwrite.c */, BB000001000000000000000D01 /* pngwtran.c */, BB000001000000000000000E01 /* pngwutil.c */, + BBARM000000000000000000001 /* arm_init.c */, + BBARM000000000000000000101 /* filter_neon_intrinsics.c */, + BBARM000000000000000000201 /* palette_neon_intrinsics.c */, ); name = libpng; sourceTree = ""; @@ -1216,6 +1225,9 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, BB000001000000000000000C02 /* pngwrite.c in Sources */, BB000001000000000000000D02 /* pngwtran.c in Sources */, BB000001000000000000000E02 /* pngwutil.c in Sources */, + BBARM000000000000000000002 /* arm_init.c in Sources */, + BBARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */, + BBARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */, 5D8E37B114BF0C85003BA3DA /* RenderScissorComponent.cpp in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -1264,6 +1276,7 @@ LIBRARY_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 11.0; + "EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64]" = "arm_init.c filter_neon_intrinsics.c palette_neon_intrinsics.c"; PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = RTSimpleApp; }; @@ -1287,6 +1300,7 @@ LIBRARY_SEARCH_PATHS = ( FRAMEWORK_SEARCH_PATHS = "$(HOME)/Library/Frameworks"; OTHER_LDFLAGS = "-framework SDL2 -framework SDL2_mixer -rpath @executable_path/../Frameworks"; MACOSX_DEPLOYMENT_TARGET = 11.0; + "EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64]" = "arm_init.c filter_neon_intrinsics.c palette_neon_intrinsics.c"; PRODUCT_BUNDLE_IDENTIFIER = "$(PRODUCT_BUNDLE_IDENTIFIER)"; PRODUCT_NAME = RTSimpleApp; }; From b56c1100922268b5439190be699fca86ceb669ec Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 08:59:26 -0300 Subject: [PATCH 27/44] macOS: fix LogMsg and g_bIsFullScreen undefined symbols in all 3 demo apps Two linker errors in RTSimpleApp (and potentially RTBareBones/RTLooneyLadders): 1. _LogMsg undefined: RT_CUSTOM_LOGMSG was set in all 3 Xcode projects, which suppresses LogMsg definition in OSXUtils.mm. The demo apps have no custom LogMsg, so remove RT_CUSTOM_LOGMSG from all 3 projects. 2. _g_bIsFullScreen (shown as _p_linearScreen in linker output) undefined: This global is defined in SDL2Main.cpp for SDL builds, but the OSX Cocoa build does not compile SDL2Main.cpp. Add definition in each App.cpp for the PLATFORM_OSX / macOS branch. --- .../OSX/RTBareBones.xcodeproj/project.pbxproj | 12 ++++-------- RTBareBones/source/App.cpp | 5 +++++ .../OSX/RTLooneyLadders.xcodeproj/project.pbxproj | 6 ++---- RTLooneyLadders/source/App.cpp | 2 ++ .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 6 ++---- RTSimpleApp/source/App.cpp | 2 ++ 6 files changed, 17 insertions(+), 16 deletions(-) diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index 1863d75c..ea13ff91 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -723,8 +723,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( GL_SILENCE_DEPRECATION, RT_PNG_SUPPORT, RT_JPG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, ); INFOPLIST_FILE = "RTBareBones-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; @@ -744,8 +743,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( GL_SILENCE_DEPRECATION, RT_PNG_SUPPORT, RT_JPG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, ); INFOPLIST_FILE = "RTBareBones-Info.plist"; INSTALL_PATH = "$(HOME)/Applications"; @@ -772,8 +770,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( GL_SILENCE_DEPRECATION, RT_PNG_SUPPORT, RT_JPG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, ); GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; @@ -806,8 +803,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( GL_SILENCE_DEPRECATION, RT_PNG_SUPPORT, RT_JPG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, ); GCC_WARN_ABOUT_RETURN_TYPE = YES; GCC_WARN_UNUSED_VARIABLE = YES; diff --git a/RTBareBones/source/App.cpp b/RTBareBones/source/App.cpp index c9d68a2e..03fed323 100644 --- a/RTBareBones/source/App.cpp +++ b/RTBareBones/source/App.cpp @@ -21,6 +21,11 @@ FileManager * GetFileManager() {return &g_fileManager;} AudioManager g_audioManager; //to disable sound, this is a dummy AudioManager * GetAudioManager(){return &g_audioManager;} +#ifdef PLATFORM_OSX +// Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds +bool g_bIsFullScreen = false; +#endif + App *g_pApp = NULL; BaseApp * GetBaseApp() diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index 5ce4e80c..6a92d61c 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -1332,8 +1332,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( C_GL_MODE, RT_JPG_SUPPORT, RT_PNG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, GL_SILENCE_DEPRECATION, RT_USE_SDL_AUDIO, ); @@ -1364,8 +1363,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = ( RT_JPG_SUPPORT, RT_PNG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, PLATFORM_OSX, BOOST_ALL_NO_LIB, NDEBUG, diff --git a/RTLooneyLadders/source/App.cpp b/RTLooneyLadders/source/App.cpp index 068aedad..23b46e47 100644 --- a/RTLooneyLadders/source/App.cpp +++ b/RTLooneyLadders/source/App.cpp @@ -35,6 +35,8 @@ AudioManagerOS g_audioManager; #include "Gamepad/GamepadProviderSDL2.h" #include AudioManagerSDL g_audioManager; +// Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds +bool g_bIsFullScreen = false; // g_sig_SDLEvent is defined in SDL2Main.cpp for SDL-main builds. // For the OSX Cocoa build which doesn't use SDL2Main.cpp, define it here. diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index 0df04f1f..39022a38 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -1322,8 +1322,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( C_GL_MODE, RT_JPG_SUPPORT, RT_PNG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, GL_SILENCE_DEPRECATION, RT_USE_SDL_AUDIO, ); @@ -1354,8 +1353,7 @@ GCC_PREPROCESSOR_DEFINITIONS = ( GCC_PREPROCESSOR_DEFINITIONS = ( RT_JPG_SUPPORT, RT_PNG_SUPPORT, - RT_CUSTOM_LOGMSG, - RT_IPV6, + RT_IPV6, PLATFORM_OSX, BOOST_ALL_NO_LIB, NDEBUG, diff --git a/RTSimpleApp/source/App.cpp b/RTSimpleApp/source/App.cpp index 5ebaf68e..1a4f448b 100644 --- a/RTSimpleApp/source/App.cpp +++ b/RTSimpleApp/source/App.cpp @@ -34,6 +34,8 @@ FileManager * GetFileManager() {return &g_fileManager;} //it's being compiled as a native OSX app - use SDL audio, no FMOD required #include "Audio/AudioManagerSDL.h" AudioManagerSDL g_audioManager; +// Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds +bool g_bIsFullScreen = false; #endif #else From 2aa706bb80fd9356372bbaf0e9feabd6b90cc800 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 09:03:08 -0300 Subject: [PATCH 28/44] Fix indentation in macOS SDL audio blocks in App.cpp for RTSimpleApp and RTLooneyLadders --- RTLooneyLadders/source/App.cpp | 6 +++--- RTSimpleApp/source/App.cpp | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/RTLooneyLadders/source/App.cpp b/RTLooneyLadders/source/App.cpp index 23b46e47..5882762d 100644 --- a/RTLooneyLadders/source/App.cpp +++ b/RTLooneyLadders/source/App.cpp @@ -34,9 +34,9 @@ AudioManagerOS g_audioManager; #include "Audio/AudioManagerSDL.h" #include "Gamepad/GamepadProviderSDL2.h" #include -AudioManagerSDL g_audioManager; -// Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds -bool g_bIsFullScreen = false; + AudioManagerSDL g_audioManager; + // Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds + bool g_bIsFullScreen = false; // g_sig_SDLEvent is defined in SDL2Main.cpp for SDL-main builds. // For the OSX Cocoa build which doesn't use SDL2Main.cpp, define it here. diff --git a/RTSimpleApp/source/App.cpp b/RTSimpleApp/source/App.cpp index 1a4f448b..3d2602ca 100644 --- a/RTSimpleApp/source/App.cpp +++ b/RTSimpleApp/source/App.cpp @@ -33,9 +33,9 @@ FileManager * GetFileManager() {return &g_fileManager;} #else //it's being compiled as a native OSX app - use SDL audio, no FMOD required #include "Audio/AudioManagerSDL.h" -AudioManagerSDL g_audioManager; -// Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds -bool g_bIsFullScreen = false; + AudioManagerSDL g_audioManager; + // Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds + bool g_bIsFullScreen = false; #endif #else From 8f0879bac4134f4a9c56dd156e837e3f759e3dfe Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 09:17:58 -0300 Subject: [PATCH 29/44] Add macOS build instructions for RTBareBones, RTSimpleApp, RTLooneyLadders demo apps --- README.md | 72 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/README.md b/README.md index fc858cce..742abff7 100644 --- a/README.md +++ b/README.md @@ -62,6 +62,78 @@ Credits and links - Fatalfeel's [Proton SDK forks](https://github.com/fatalfeel) for GLES 2 support and Cocos2D integration - Vita platform support by @NabsiYa +# Building the Demo Apps on macOS + +The following demo apps have Xcode projects under their `OSX/` folder: + +| App | Xcode Project | Audio | Notes | +|-----|--------------|-------|-------| +| **RTBareBones** | `RTBareBones/OSX/RTBareBones.xcodeproj` | Dummy (no audio) | Simplest starting point | +| **RTSimpleApp** | `RTSimpleApp/OSX/RTSimpleApp.xcodeproj` | SDL2_mixer | Basic app with SDL audio | +| **RTLooneyLadders** | `RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj` | SDL2_mixer | Full game with gamepad support | + +All projects target **macOS 11.0+** and build as **universal binaries** (arm64 + x86_64). + +## Prerequisites + +### 1. Install SDL2 frameworks + +RTSimpleApp and RTLooneyLadders require SDL2 and SDL2_mixer. RTBareBones only requires SDL2 headers (no audio). + +The Xcode projects look for both frameworks in `~/Library/Frameworks/` automatically. + +**Option A — Universal DMG** (arm64 + x86_64, recommended): + +```bash +# SDL2 +curl -L -o /tmp/SDL2.dmg https://github.com/libsdl-org/SDL/releases/download/release-2.30.9/SDL2-2.30.9.dmg +hdiutil attach /tmp/SDL2.dmg +cp -r "/Volumes/SDL2/SDL2.framework" ~/Library/Frameworks/ +hdiutil detach "/Volumes/SDL2" + +# SDL2_mixer (needed by RTSimpleApp and RTLooneyLadders) +curl -L -o /tmp/SDL2_mixer.dmg https://github.com/libsdl-org/SDL_mixer/releases/download/release-2.8.0/SDL2_mixer-2.8.0.dmg +hdiutil attach /tmp/SDL2_mixer.dmg +cp -r "/Volumes/SDL2_mixer/SDL2_mixer.framework" ~/Library/Frameworks/ +hdiutil detach "/Volumes/SDL2_mixer" +``` + +> These are universal frameworks (arm64 + x86_64) so the resulting `.app` runs on both Intel and Apple Silicon Macs. + +**Option B — Homebrew** (native arch only, not suitable for universal binary): + +```bash +brew install sdl2 sdl2_mixer +``` + +> **Note:** Homebrew on Apple Silicon only provides arm64 libraries. Use Option A if you need a universal binary. + +### 2. Generate the required libpng config header + +```bash +LIBPNG=shared/Irrlicht/source/Irrlicht/libpng +cp "$LIBPNG/pnglibconf.h.prebuilt" "$LIBPNG/pnglibconf.h" +``` + +## Build + +Open the desired Xcode project and build (`⌘B`): + +```bash +# RTBareBones +open RTBareBones/OSX/RTBareBones.xcodeproj + +# RTSimpleApp +open RTSimpleApp/OSX/RTSimpleApp.xcodeproj + +# RTLooneyLadders +open RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj +``` + +> **Note:** The SDL2 frameworks are automatically embedded into the `.app` bundle at build time via `@executable_path/../Frameworks`, so the final app is self-contained and does not require SDL2 to be installed on the target machine. + +--- + # Want to contribute? Feel free to submit a pull request! At this point the goal is that all changes be *non-breaking* to existing projects. From e5497410f6cbd03ab0528b219471986f277efffd Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 09:25:01 -0300 Subject: [PATCH 30/44] Add Embed Frameworks build phase for SDL2/SDL2_mixer in RTSimpleApp and RTLooneyLadders OSX projects --- .../RTLooneyLadders.xcodeproj/project.pbxproj | 22 +++++++++++++++++++ .../OSX/RTSimpleApp.xcodeproj/project.pbxproj | 22 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index 6a92d61c..c06b54f9 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -186,6 +186,9 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BDARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000001 /* arm_init.c */; }; BDARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000101 /* filter_neon_intrinsics.c */; }; BDARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000201 /* palette_neon_intrinsics.c */; }; + /* SDL2 embed build files */ + SDLLL00000000000000000001 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = SDLLL00000000000000000011 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + SDLLL00000000000000000002 /* SDL2_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = SDLLL00000000000000000012 /* SDL2_mixer.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ @@ -430,6 +433,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + /* SDL2 framework references */ + SDLLL00000000000000000011 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = "$(HOME)/Library/Frameworks/SDL2.framework"; sourceTree = ""; }; + SDLLL00000000000000000012 /* SDL2_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2_mixer.framework; path = "$(HOME)/Library/Frameworks/SDL2_mixer.framework"; sourceTree = ""; }; /* libpng file references */ BD000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; BD000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; @@ -451,6 +457,21 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file BDARM000000000000000000201 /* palette_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = palette_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/palette_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ +/* Begin PBXCopyFilesBuildPhase section */ + SDLLL00000000000000000020 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + SDLLL00000000000000000001 /* SDL2.framework in Frameworks */, + SDLLL00000000000000000002 /* SDL2_mixer.framework in Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFrameworksBuildPhase section */ 8D11072E0486CEB800E47090 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; @@ -1015,6 +1036,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 8D1107290486CEB800E47090 /* Resources */, 8D11072C0486CEB800E47090 /* Sources */, 8D11072E0486CEB800E47090 /* Frameworks */, + SDLLL00000000000000000020 /* Embed Frameworks */, ); buildRules = ( ); diff --git a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj index 39022a38..c22abab5 100644 --- a/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj +++ b/RTSimpleApp/OSX/RTSimpleApp.xcodeproj/project.pbxproj @@ -183,6 +183,9 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BBARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BBARM000000000000000000001 /* arm_init.c */; }; BBARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BBARM000000000000000000101 /* filter_neon_intrinsics.c */; }; BBARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BBARM000000000000000000201 /* palette_neon_intrinsics.c */; }; + /* SDL2 embed build files */ + SDLSA00000000000000000001 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = SDLSA00000000000000000011 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + SDLSA00000000000000000002 /* SDL2_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = SDLSA00000000000000000012 /* SDL2_mixer.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; /* End PBXBuildFile section */ @@ -448,6 +451,9 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + /* SDL2 framework references */ + SDLSA00000000000000000011 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = "$(HOME)/Library/Frameworks/SDL2.framework"; sourceTree = ""; }; + SDLSA00000000000000000012 /* SDL2_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2_mixer.framework; path = "$(HOME)/Library/Frameworks/SDL2_mixer.framework"; sourceTree = ""; }; /* libpng file references */ BB000001000000000000000001 /* png.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = png.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/png.c; sourceTree = SOURCE_ROOT; }; BB000001000000000000000101 /* pngerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = pngerror.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/pngerror.c; sourceTree = SOURCE_ROOT; }; @@ -469,6 +475,21 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file BBARM000000000000000000201 /* palette_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = palette_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/palette_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ +/* Begin PBXCopyFilesBuildPhase section */ + SDLSA00000000000000000020 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + SDLSA00000000000000000001 /* SDL2.framework in Frameworks */, + SDLSA00000000000000000002 /* SDL2_mixer.framework in Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + /* Begin PBXFrameworksBuildPhase section */ 8D11072E0486CEB800E47090 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; @@ -1006,6 +1027,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 8D1107290486CEB800E47090 /* Resources */, 8D11072C0486CEB800E47090 /* Sources */, 8D11072E0486CEB800E47090 /* Frameworks */, + SDLSA00000000000000000020 /* Embed Frameworks */, ); buildRules = ( ); From 341160e441e93f4b35a135948f15527652231210 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 09:30:14 -0300 Subject: [PATCH 31/44] Fix window title: read CFBundleName from Info.plist instead of hardcoded Dink Smallwood HD --- shared/OSX/app/MainController.mm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index 33de8412..45f020f0 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -23,7 +23,9 @@ - (void)applicationDidFinishLaunching:(NSNotification *)notification NSWindowStyleMaskResizable backing:NSBackingStoreBuffered defer:NO]; - [window setTitle:@"Dink Smallwood HD"]; + NSString *appName = [[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleName"]; + if (!appName) appName = @"App"; + [window setTitle:appName]; [window setReleasedWhenClosed:NO]; [window setDelegate:(id)self]; From e498cbf7e836ce3c7b0cabe35a0ab71981847ed2 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 09:34:46 -0300 Subject: [PATCH 32/44] Fix RTSimpleApp: don't fail on missing fonts, fix duplicate if check; add update_media note to README --- README.md | 13 ++++++++++++- RTSimpleApp/source/App.cpp | 13 +++---------- 2 files changed, 15 insertions(+), 11 deletions(-) diff --git a/README.md b/README.md index 742abff7..8e3a7bb2 100644 --- a/README.md +++ b/README.md @@ -108,7 +108,18 @@ brew install sdl2 sdl2_mixer > **Note:** Homebrew on Apple Silicon only provides arm64 libraries. Use Option A if you need a universal binary. -### 2. Generate the required libpng config header +### 2. Generate fonts and textures + +RTSimpleApp and RTLooneyLadders require `.rtfont` files generated from source assets. Run `update_media.sh` from each app's `media/` folder (requires RTPack — build it first from `RTPack/linux/` on Linux or use the Windows version): + +```bash +cd RTSimpleApp/media && sh update_media.sh +cd RTLooneyLadders/media && sh update_media.sh +``` + +> **Note:** Without this step the apps will still open but text/fonts will not render. + +### 3. Generate the required libpng config header ```bash LIBPNG=shared/Irrlicht/source/Irrlicht/libpng diff --git a/RTSimpleApp/source/App.cpp b/RTSimpleApp/source/App.cpp index 3d2602ca..4fc305e1 100644 --- a/RTSimpleApp/source/App.cpp +++ b/RTSimpleApp/source/App.cpp @@ -180,16 +180,10 @@ bool App::Init() LogMsg("Save path is %s", GetSavePath().c_str()); - if (!GetFont(FONT_SMALL)->Load("interface/font_arial.rtfont")) - { - LogMsg("Can't load font 1"); - return false; - } + if (!GetFont(FONT_SMALL)->Load("interface/font_arial.rtfont")) + LogMsg("Warning: Can't load font_arial.rtfont - run update_media.sh to generate fonts"); if (!GetFont(FONT_LARGE)->Load("interface/font_arial_big.rtfont")) - { - LogMsg("Can't load font 2"); - return false; - } + LogMsg("Warning: Can't load font_arial_big.rtfont - run update_media.sh to generate fonts"); //GetFont(FONT_SMALL)->SetSmoothing(false); //if we wanted to disable bilinear filtering on the font GetBaseApp()->SetFPSVisible(true); @@ -223,7 +217,6 @@ void App::Update() - if (!m_bDidPostInit) if (!m_bDidPostInit) { m_bDidPostInit = true; From be1f7d98f4bf9ef860c586c055ff5b9ed0ef2c5b Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 09:38:49 -0300 Subject: [PATCH 33/44] RTSimpleApp macOS: call SDL_Init(0) before BaseApp::Init and SDL_PumpEvents in Update --- RTSimpleApp/source/App.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/RTSimpleApp/source/App.cpp b/RTSimpleApp/source/App.cpp index 4fc305e1..7add6aa2 100644 --- a/RTSimpleApp/source/App.cpp +++ b/RTSimpleApp/source/App.cpp @@ -33,6 +33,7 @@ FileManager * GetFileManager() {return &g_fileManager;} #else //it's being compiled as a native OSX app - use SDL audio, no FMOD required #include "Audio/AudioManagerSDL.h" +#include AudioManagerSDL g_audioManager; // Required by MainController.mm and BaseApp.cpp - defined in SDL2Main.cpp for SDL builds bool g_bIsFullScreen = false; @@ -172,7 +173,12 @@ bool App::Init() { return true; } - + +#if defined(__APPLE__) && !TARGET_OS_IPHONE + // Initialize SDL before BaseApp::Init() which triggers SDL audio init + SDL_Init(0); +#endif + if (!BaseApp::Init()) return false; @@ -213,6 +219,9 @@ void App::Kill() void App::Update() { +#if defined(__APPLE__) && !TARGET_OS_IPHONE + SDL_PumpEvents(); +#endif BaseApp::Update(); From 0ef41e53643a3a008603d7498f2afc0f03efb017 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 09:59:50 -0300 Subject: [PATCH 34/44] RTLooneyLadders OSX: add Gamepad source files (GamepadManager, GamepadProviderSDL2, GamepadSDL2, etc.) --- .../RTLooneyLadders.xcodeproj/project.pbxproj | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index c06b54f9..fde6abe9 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -186,6 +186,12 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BDARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000001 /* arm_init.c */; }; BDARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000101 /* filter_neon_intrinsics.c */; }; BDARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000201 /* palette_neon_intrinsics.c */; }; + /* Gamepad build files */ + GPLL0000000000000000000001 /* GamepadManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = GPLL0000000000000000000011 /* GamepadManager.cpp */; }; + GPLL0000000000000000000002 /* GamepadProviderSDL2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = GPLL0000000000000000000012 /* GamepadProviderSDL2.cpp */; }; + GPLL0000000000000000000003 /* GamepadSDL2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = GPLL0000000000000000000013 /* GamepadSDL2.cpp */; }; + GPLL0000000000000000000004 /* GamepadProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = GPLL0000000000000000000014 /* GamepadProvider.cpp */; }; + GPLL0000000000000000000005 /* Gamepad.cpp in Sources */ = {isa = PBXBuildFile; fileRef = GPLL0000000000000000000015 /* Gamepad.cpp */; }; /* SDL2 embed build files */ SDLLL00000000000000000001 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = SDLLL00000000000000000011 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; SDLLL00000000000000000002 /* SDL2_mixer.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = SDLLL00000000000000000012 /* SDL2_mixer.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -433,6 +439,17 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + /* Gamepad file references */ + GPLL0000000000000000000011 /* GamepadManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GamepadManager.cpp; path = ../../shared/Gamepad/GamepadManager.cpp; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000021 /* GamepadManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GamepadManager.h; path = ../../shared/Gamepad/GamepadManager.h; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000012 /* GamepadProviderSDL2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GamepadProviderSDL2.cpp; path = ../../shared/Gamepad/GamepadProviderSDL2.cpp; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000022 /* GamepadProviderSDL2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GamepadProviderSDL2.h; path = ../../shared/Gamepad/GamepadProviderSDL2.h; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000013 /* GamepadSDL2.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GamepadSDL2.cpp; path = ../../shared/Gamepad/GamepadSDL2.cpp; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000023 /* GamepadSDL2.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GamepadSDL2.h; path = ../../shared/Gamepad/GamepadSDL2.h; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000014 /* GamepadProvider.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GamepadProvider.cpp; path = ../../shared/Gamepad/GamepadProvider.cpp; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000024 /* GamepadProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GamepadProvider.h; path = ../../shared/Gamepad/GamepadProvider.h; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000015 /* Gamepad.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = Gamepad.cpp; path = ../../shared/Gamepad/Gamepad.cpp; sourceTree = SOURCE_ROOT; }; + GPLL0000000000000000000025 /* Gamepad.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Gamepad.h; path = ../../shared/Gamepad/Gamepad.h; sourceTree = SOURCE_ROOT; }; /* SDL2 framework references */ SDLLL00000000000000000011 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = "$(HOME)/Library/Frameworks/SDL2.framework"; sourceTree = ""; }; SDLLL00000000000000000012 /* SDL2_mixer.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2_mixer.framework; path = "$(HOME)/Library/Frameworks/SDL2_mixer.framework"; sourceTree = ""; }; @@ -662,6 +679,23 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file name = Network; sourceTree = ""; }; + GPLL0000000000000000000030 /* Gamepad */ = { + isa = PBXGroup; + children = ( + GPLL0000000000000000000015 /* Gamepad.cpp */, + GPLL0000000000000000000025 /* Gamepad.h */, + GPLL0000000000000000000014 /* GamepadProvider.cpp */, + GPLL0000000000000000000024 /* GamepadProvider.h */, + GPLL0000000000000000000011 /* GamepadManager.cpp */, + GPLL0000000000000000000021 /* GamepadManager.h */, + GPLL0000000000000000000012 /* GamepadProviderSDL2.cpp */, + GPLL0000000000000000000022 /* GamepadProviderSDL2.h */, + GPLL0000000000000000000013 /* GamepadSDL2.cpp */, + GPLL0000000000000000000023 /* GamepadSDL2.h */, + ); + name = Gamepad; + sourceTree = ""; + }; 5D70B6D012B606DC00A1AB17 /* Audio */ = { isa = PBXGroup; children = ( @@ -987,6 +1021,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B6DF12B606DC00A1AB17 /* Entity */, 5D70B6D512B606DC00A1AB17 /* ClanLib */, 5D70B6D012B606DC00A1AB17 /* Audio */, + GPLL0000000000000000000030 /* Gamepad */, 5D70B6C912B606DC00A1AB17 /* Network */, 5D70B6BE12B606DC00A1AB17 /* Managers */, 5D70B6B112B606DB00A1AB17 /* FileSystem */, @@ -1182,6 +1217,11 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, 5D70B81112B606DC00A1AB17 /* PlatformSetup.cpp in Sources */, 5D70B81212B606DC00A1AB17 /* PlatformPrecomp.cpp in Sources */, 5D70B81312B606DC00A1AB17 /* BaseApp.cpp in Sources */, + GPLL0000000000000000000005 /* Gamepad.cpp in Sources */, + GPLL0000000000000000000004 /* GamepadProvider.cpp in Sources */, + GPLL0000000000000000000001 /* GamepadManager.cpp in Sources */, + GPLL0000000000000000000002 /* GamepadProviderSDL2.cpp in Sources */, + GPLL0000000000000000000003 /* GamepadSDL2.cpp in Sources */, LL000001000000000000000001 /* BuildingComponent.cpp in Sources */, LL000001000000000000000002 /* Character.cpp in Sources */, LL000001000000000000000003 /* CharComponent.cpp in Sources */, From 6584b38157caadc24a581724335132d202aa4fd9 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:00:46 -0300 Subject: [PATCH 35/44] Fix indentation in RTLooneyLadders pbxproj Sources phase --- .../RTLooneyLadders.xcodeproj/project.pbxproj | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index fde6abe9..36a6b2f3 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -1150,7 +1150,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B7AD12B606DC00A1AB17 /* NetSocket.cpp in Sources */, 5D70B7AE12B606DC00A1AB17 /* NetUtils.cpp in Sources */, 5D70B7B012B606DC00A1AB17 /* AudioManager.cpp in Sources */, -AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, + AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, 5D70B7B112B606DC00A1AB17 /* vec4.cpp in Sources */, 5D70B7B212B606DC00A1AB17 /* vec1.cpp in Sources */, 5D70B7B312B606DC00A1AB17 /* mat4.cpp in Sources */, @@ -1222,17 +1222,17 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */, GPLL0000000000000000000001 /* GamepadManager.cpp in Sources */, GPLL0000000000000000000002 /* GamepadProviderSDL2.cpp in Sources */, GPLL0000000000000000000003 /* GamepadSDL2.cpp in Sources */, - LL000001000000000000000001 /* BuildingComponent.cpp in Sources */, - LL000001000000000000000002 /* Character.cpp in Sources */, - LL000001000000000000000003 /* CharComponent.cpp in Sources */, - LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */, - LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */, - LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */, - LL000001000000000000000007 /* AboutMenu.cpp in Sources */, - LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */, - LL000001000000000000000009 /* GameMenu.cpp in Sources */, - LL00000100000000000000000A /* IntroMenu.cpp in Sources */, - LL00000100000000000000000B /* MainMenu.cpp in Sources */, + LL000001000000000000000001 /* BuildingComponent.cpp in Sources */, + LL000001000000000000000002 /* Character.cpp in Sources */, + LL000001000000000000000003 /* CharComponent.cpp in Sources */, + LL000001000000000000000004 /* CharManagerComponent.cpp in Sources */, + LL000001000000000000000005 /* ExplosionComponent.cpp in Sources */, + LL000001000000000000000006 /* OverlayRenderComponentSpy.cpp in Sources */, + LL000001000000000000000007 /* AboutMenu.cpp in Sources */, + LL000001000000000000000008 /* ControllerTestMenu.cpp in Sources */, + LL000001000000000000000009 /* GameMenu.cpp in Sources */, + LL00000100000000000000000A /* IntroMenu.cpp in Sources */, + LL00000100000000000000000B /* MainMenu.cpp in Sources */, 5D70C4BF12B7586D00A1AB17 /* MyApplication.mm in Sources */, 5D8E368214BEF412003BA3DA /* JPGSurfaceLoader.cpp in Sources */, 5D8E368314BEF412003BA3DA /* RTGLESExt.cpp in Sources */, From 8771ebfd1d8d6b62088d3c40ff627c75bdcafa79 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:13:18 -0300 Subject: [PATCH 36/44] RTLooneyLadders OSX: add missing Entity component sources to fix linker errors Add ArcadeInputComponent, DPadComponent, EmitVirtualKeyComponent, EmitVirtualKeyComponentAdvanced, and TouchHandlerArcadeComponent to the Xcode project build phases. These were referenced by game code but missing from the pbxproj, causing undefined symbol linker errors. --- .../RTLooneyLadders.xcodeproj/project.pbxproj | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index 36a6b2f3..b9dc298f 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -186,6 +186,12 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BDARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000001 /* arm_init.c */; }; BDARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000101 /* filter_neon_intrinsics.c */; }; BDARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000201 /* palette_neon_intrinsics.c */; }; + /* Missing Entity component build files */ + LLEC0000000000000000000001 /* ArcadeInputComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */; }; + LLEC0000000000000000000002 /* DPadComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000012 /* DPadComponent.cpp */; }; + LLEC0000000000000000000003 /* EmitVirtualKeyComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000013 /* EmitVirtualKeyComponent.cpp */; }; + LLEC0000000000000000000004 /* EmitVirtualKeyComponentAdvanced.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000014 /* EmitVirtualKeyComponentAdvanced.cpp */; }; + LLEC0000000000000000000005 /* TouchHandlerArcadeComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000015 /* TouchHandlerArcadeComponent.cpp */; }; /* Gamepad build files */ GPLL0000000000000000000001 /* GamepadManager.cpp in Sources */ = {isa = PBXBuildFile; fileRef = GPLL0000000000000000000011 /* GamepadManager.cpp */; }; GPLL0000000000000000000002 /* GamepadProviderSDL2.cpp in Sources */ = {isa = PBXBuildFile; fileRef = GPLL0000000000000000000012 /* GamepadProviderSDL2.cpp */; }; @@ -439,6 +445,17 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + /* Missing Entity component file references */ + LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ArcadeInputComponent.cpp; path = ../../shared/Entity/ArcadeInputComponent.cpp; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000021 /* ArcadeInputComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ArcadeInputComponent.h; path = ../../shared/Entity/ArcadeInputComponent.h; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000012 /* DPadComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DPadComponent.cpp; path = ../../shared/Entity/DPadComponent.cpp; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000022 /* DPadComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DPadComponent.h; path = ../../shared/Entity/DPadComponent.h; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000013 /* EmitVirtualKeyComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EmitVirtualKeyComponent.cpp; path = ../../shared/Entity/EmitVirtualKeyComponent.cpp; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000023 /* EmitVirtualKeyComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmitVirtualKeyComponent.h; path = ../../shared/Entity/EmitVirtualKeyComponent.h; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000014 /* EmitVirtualKeyComponentAdvanced.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = EmitVirtualKeyComponentAdvanced.cpp; path = ../../shared/Entity/EmitVirtualKeyComponentAdvanced.cpp; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000024 /* EmitVirtualKeyComponentAdvanced.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EmitVirtualKeyComponentAdvanced.h; path = ../../shared/Entity/EmitVirtualKeyComponentAdvanced.h; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000015 /* TouchHandlerArcadeComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TouchHandlerArcadeComponent.cpp; path = ../../shared/Entity/TouchHandlerArcadeComponent.cpp; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000025 /* TouchHandlerArcadeComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchHandlerArcadeComponent.h; path = ../../shared/Entity/TouchHandlerArcadeComponent.h; sourceTree = SOURCE_ROOT; }; /* Gamepad file references */ GPLL0000000000000000000011 /* GamepadManager.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = GamepadManager.cpp; path = ../../shared/Gamepad/GamepadManager.cpp; sourceTree = SOURCE_ROOT; }; GPLL0000000000000000000021 /* GamepadManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GamepadManager.h; path = ../../shared/Gamepad/GamepadManager.h; sourceTree = SOURCE_ROOT; }; @@ -754,6 +771,16 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B6E012B606DC00A1AB17 /* Components */ = { isa = PBXGroup; children = ( + LLEC0000000000000000000021 /* ArcadeInputComponent.h */, + LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */, + LLEC0000000000000000000022 /* DPadComponent.h */, + LLEC0000000000000000000012 /* DPadComponent.cpp */, + LLEC0000000000000000000023 /* EmitVirtualKeyComponent.h */, + LLEC0000000000000000000013 /* EmitVirtualKeyComponent.cpp */, + LLEC0000000000000000000024 /* EmitVirtualKeyComponentAdvanced.h */, + LLEC0000000000000000000014 /* EmitVirtualKeyComponentAdvanced.cpp */, + LLEC0000000000000000000025 /* TouchHandlerArcadeComponent.h */, + LLEC0000000000000000000015 /* TouchHandlerArcadeComponent.cpp */, 5D8E37AF14BF0C85003BA3DA /* RenderScissorComponent.h */, 5D8E37B014BF0C85003BA3DA /* RenderScissorComponent.cpp */, 5D70B6E112B606DC00A1AB17 /* SliderComponent.h */, @@ -1217,6 +1244,11 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B81112B606DC00A1AB17 /* PlatformSetup.cpp in Sources */, 5D70B81212B606DC00A1AB17 /* PlatformPrecomp.cpp in Sources */, 5D70B81312B606DC00A1AB17 /* BaseApp.cpp in Sources */, + LLEC0000000000000000000001 /* ArcadeInputComponent.cpp in Sources */, + LLEC0000000000000000000002 /* DPadComponent.cpp in Sources */, + LLEC0000000000000000000003 /* EmitVirtualKeyComponent.cpp in Sources */, + LLEC0000000000000000000004 /* EmitVirtualKeyComponentAdvanced.cpp in Sources */, + LLEC0000000000000000000005 /* TouchHandlerArcadeComponent.cpp in Sources */, GPLL0000000000000000000005 /* Gamepad.cpp in Sources */, GPLL0000000000000000000004 /* GamepadProvider.cpp in Sources */, GPLL0000000000000000000001 /* GamepadManager.cpp in Sources */, From 17c913b94c03e695a07968a0c3807d076c10b65e Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:20:32 -0300 Subject: [PATCH 37/44] RTLooneyLadders OSX: add LogDisplayComponent to fix SetConsole linker error LogDisplayComponent.cpp defines SetConsole(bool, bool) which is called by ControllerTestMenu.cpp but was missing from the Xcode project. --- .../OSX/RTLooneyLadders.xcodeproj/project.pbxproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index b9dc298f..73ce808c 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -186,6 +186,7 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BDARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000001 /* arm_init.c */; }; BDARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000101 /* filter_neon_intrinsics.c */; }; BDARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000201 /* palette_neon_intrinsics.c */; }; + LLEC0000000000000000000006 /* LogDisplayComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000016 /* LogDisplayComponent.cpp */; }; /* Missing Entity component build files */ LLEC0000000000000000000001 /* ArcadeInputComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */; }; LLEC0000000000000000000002 /* DPadComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000012 /* DPadComponent.cpp */; }; @@ -445,6 +446,8 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AF9DBBC5113C611C00D05754 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; AFBD7715113895850015E685 /* English */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = English; path = English.lproj/MainMenu.xib; sourceTree = ""; }; AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; + LLEC0000000000000000000016 /* LogDisplayComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LogDisplayComponent.cpp; path = ../../shared/Entity/LogDisplayComponent.cpp; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000026 /* LogDisplayComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LogDisplayComponent.h; path = ../../shared/Entity/LogDisplayComponent.h; sourceTree = SOURCE_ROOT; }; /* Missing Entity component file references */ LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ArcadeInputComponent.cpp; path = ../../shared/Entity/ArcadeInputComponent.cpp; sourceTree = SOURCE_ROOT; }; LLEC0000000000000000000021 /* ArcadeInputComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ArcadeInputComponent.h; path = ../../shared/Entity/ArcadeInputComponent.h; sourceTree = SOURCE_ROOT; }; @@ -771,6 +774,8 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B6E012B606DC00A1AB17 /* Components */ = { isa = PBXGroup; children = ( + LLEC0000000000000000000026 /* LogDisplayComponent.h */, + LLEC0000000000000000000016 /* LogDisplayComponent.cpp */, LLEC0000000000000000000021 /* ArcadeInputComponent.h */, LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */, LLEC0000000000000000000022 /* DPadComponent.h */, @@ -1244,6 +1249,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B81112B606DC00A1AB17 /* PlatformSetup.cpp in Sources */, 5D70B81212B606DC00A1AB17 /* PlatformPrecomp.cpp in Sources */, 5D70B81312B606DC00A1AB17 /* BaseApp.cpp in Sources */, + LLEC0000000000000000000006 /* LogDisplayComponent.cpp in Sources */, LLEC0000000000000000000001 /* ArcadeInputComponent.cpp in Sources */, LLEC0000000000000000000002 /* DPadComponent.cpp in Sources */, LLEC0000000000000000000003 /* EmitVirtualKeyComponent.cpp in Sources */, From 1ca256c9cb8c62ebda27660e7f33f58573eeeb2b Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:24:03 -0300 Subject: [PATCH 38/44] RTLooneyLadders OSX: add TouchDragComponent to fix linker error TouchDragComponent.cpp is included by LogDisplayComponent.cpp (for the scrollable console widget) but was missing from the Xcode project. --- .../OSX/RTLooneyLadders.xcodeproj/project.pbxproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj index 73ce808c..5d254374 100644 --- a/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj +++ b/RTLooneyLadders/OSX/RTLooneyLadders.xcodeproj/project.pbxproj @@ -187,6 +187,7 @@ AA000004000000000000AA01 /* AudioManagerSDL.cpp in Sources */ = {isa = PBXBuildF BDARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000101 /* filter_neon_intrinsics.c */; }; BDARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BDARM000000000000000000201 /* palette_neon_intrinsics.c */; }; LLEC0000000000000000000006 /* LogDisplayComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000016 /* LogDisplayComponent.cpp */; }; + LLEC0000000000000000000007 /* TouchDragComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000017 /* TouchDragComponent.cpp */; }; /* Missing Entity component build files */ LLEC0000000000000000000001 /* ArcadeInputComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */; }; LLEC0000000000000000000002 /* DPadComponent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = LLEC0000000000000000000012 /* DPadComponent.cpp */; }; @@ -448,6 +449,8 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file AFD4D889113C504F00C2DE76 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = System/Library/Frameworks/OpenGL.framework; sourceTree = SDKROOT; }; LLEC0000000000000000000016 /* LogDisplayComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LogDisplayComponent.cpp; path = ../../shared/Entity/LogDisplayComponent.cpp; sourceTree = SOURCE_ROOT; }; LLEC0000000000000000000026 /* LogDisplayComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LogDisplayComponent.h; path = ../../shared/Entity/LogDisplayComponent.h; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000017 /* TouchDragComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = TouchDragComponent.cpp; path = ../../shared/Entity/TouchDragComponent.cpp; sourceTree = SOURCE_ROOT; }; + LLEC0000000000000000000027 /* TouchDragComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TouchDragComponent.h; path = ../../shared/Entity/TouchDragComponent.h; sourceTree = SOURCE_ROOT; }; /* Missing Entity component file references */ LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ArcadeInputComponent.cpp; path = ../../shared/Entity/ArcadeInputComponent.cpp; sourceTree = SOURCE_ROOT; }; LLEC0000000000000000000021 /* ArcadeInputComponent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ArcadeInputComponent.h; path = ../../shared/Entity/ArcadeInputComponent.h; sourceTree = SOURCE_ROOT; }; @@ -776,6 +779,8 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file children = ( LLEC0000000000000000000026 /* LogDisplayComponent.h */, LLEC0000000000000000000016 /* LogDisplayComponent.cpp */, + LLEC0000000000000000000027 /* TouchDragComponent.h */, + LLEC0000000000000000000017 /* TouchDragComponent.cpp */, LLEC0000000000000000000021 /* ArcadeInputComponent.h */, LLEC0000000000000000000011 /* ArcadeInputComponent.cpp */, LLEC0000000000000000000022 /* DPadComponent.h */, @@ -1250,6 +1255,7 @@ AA000003000000000000AA02 /* AudioManagerSDL.h */ = {isa = PBXFileReference; file 5D70B81212B606DC00A1AB17 /* PlatformPrecomp.cpp in Sources */, 5D70B81312B606DC00A1AB17 /* BaseApp.cpp in Sources */, LLEC0000000000000000000006 /* LogDisplayComponent.cpp in Sources */, + LLEC0000000000000000000007 /* TouchDragComponent.cpp in Sources */, LLEC0000000000000000000001 /* ArcadeInputComponent.cpp in Sources */, LLEC0000000000000000000002 /* DPadComponent.cpp in Sources */, LLEC0000000000000000000003 /* EmitVirtualKeyComponent.cpp in Sources */, From d8081df0eb0f9beb2a063e03c31644239f6c48a7 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:31:04 -0300 Subject: [PATCH 39/44] RTSimpleApp/RTLooneyLadders OSX: remove XIB window to fix double window bug MainController.mm now creates the window programmatically in applicationDidFinishLaunching. The XIB window definition was still present, causing two windows to appear on launch. Remove the block and the openGLView outlet from both XIBs so only the programmatic window is created. --- .../OSX/English.lproj/MainMenu.xib | 35 +------------------ RTSimpleApp/OSX/English.lproj/MainMenu.xib | 35 +------------------ 2 files changed, 2 insertions(+), 68 deletions(-) diff --git a/RTLooneyLadders/OSX/English.lproj/MainMenu.xib b/RTLooneyLadders/OSX/English.lproj/MainMenu.xib index 4c30eff3..6cd15da7 100644 --- a/RTLooneyLadders/OSX/English.lproj/MainMenu.xib +++ b/RTLooneyLadders/OSX/English.lproj/MainMenu.xib @@ -649,40 +649,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + diff --git a/RTSimpleApp/OSX/English.lproj/MainMenu.xib b/RTSimpleApp/OSX/English.lproj/MainMenu.xib index 4c30eff3..6cd15da7 100644 --- a/RTSimpleApp/OSX/English.lproj/MainMenu.xib +++ b/RTSimpleApp/OSX/English.lproj/MainMenu.xib @@ -649,40 +649,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + From 176c0bc19855974b19d1878a3744b9dbf0ac160b Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:32:32 -0300 Subject: [PATCH 40/44] RTBareBones OSX: remove XIB window to fix double window bug Same fix as RTSimpleApp/RTLooneyLadders: MainController.mm creates the window programmatically, so the XIB window block and openGLView outlet are removed to prevent a second blank window on launch. --- RTBareBones/OSX/English.lproj/MainMenu.xib | 35 +--------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/RTBareBones/OSX/English.lproj/MainMenu.xib b/RTBareBones/OSX/English.lproj/MainMenu.xib index d52b59f2..2cbae73e 100644 --- a/RTBareBones/OSX/English.lproj/MainMenu.xib +++ b/RTBareBones/OSX/English.lproj/MainMenu.xib @@ -648,40 +648,7 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + From a3c2be7a460171fc64b90936320be0d54ebe4030 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:39:04 -0300 Subject: [PATCH 41/44] RTBareBones OSX: fix missing closing brace in project.pbxproj The Release XCBuildConfiguration was missing the closing }; for its buildSettings block, causing Xcode to report a parse error and refuse to open the project. --- RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj | 2 ++ 1 file changed, 2 insertions(+) diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index ea13ff91..36022e07 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -818,6 +818,7 @@ HEADER_SEARCH_PATHS = ( MACOSX_DEPLOYMENT_TARGET = 11.0; "EXCLUDED_SOURCE_FILE_NAMES[arch=x86_64]" = "arm_init.c filter_neon_intrinsics.c palette_neon_intrinsics.c"; OTHER_CFLAGS = "-w -Wno-error"; + }; name = Release; }; /* End XCBuildConfiguration section */ @@ -845,3 +846,4 @@ HEADER_SEARCH_PATHS = ( }; rootObject = 29B97313FDCFA39411CA2CEA /* Project object */; } + From cdaca05ee472b74188ae0ad17955fcab0a8e1465 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:41:07 -0300 Subject: [PATCH 42/44] shared OSX: use GetBaseApp() instead of GetApp() for fullscreen var GetApp() returns the app-specific subclass which may not have GetVar (e.g. RTBareBones). GetBaseApp()->GetVar() works for all apps. --- shared/OSX/app/MainController.mm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index 45f020f0..ce5d9e3a 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -170,7 +170,7 @@ - (void)windowDidEnterFullScreen:(NSNotification *)notification extern bool g_bIsFullScreen; g_bIsFullScreen = true; if (GetBaseApp()->IsInitted()) - GetApp()->GetVar("fullscreen")->Set(uint32(1)); + GetBaseApp()->GetVar("fullscreen")->Set(uint32(1)); } - (void)windowDidExitFullScreen:(NSNotification *)notification @@ -178,7 +178,7 @@ - (void)windowDidExitFullScreen:(NSNotification *)notification extern bool g_bIsFullScreen; g_bIsFullScreen = false; if (GetBaseApp()->IsInitted()) - GetApp()->GetVar("fullscreen")->Set(uint32(0)); + GetBaseApp()->GetVar("fullscreen")->Set(uint32(0)); [openGLView reshape]; } From 5378b41d80f01e94d1689690c5fb3ca2ef432549 Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:43:44 -0300 Subject: [PATCH 43/44] shared OSX: remove GetVar fullscreen calls, use g_bIsFullScreen only Neither BaseApp nor all App subclasses have GetVar. The global g_bIsFullScreen flag is sufficient for OSX fullscreen tracking. --- shared/OSX/app/MainController.mm | 4 ---- 1 file changed, 4 deletions(-) diff --git a/shared/OSX/app/MainController.mm b/shared/OSX/app/MainController.mm index ce5d9e3a..7482c9ba 100644 --- a/shared/OSX/app/MainController.mm +++ b/shared/OSX/app/MainController.mm @@ -169,16 +169,12 @@ - (void)windowDidEnterFullScreen:(NSNotification *)notification { extern bool g_bIsFullScreen; g_bIsFullScreen = true; - if (GetBaseApp()->IsInitted()) - GetBaseApp()->GetVar("fullscreen")->Set(uint32(1)); } - (void)windowDidExitFullScreen:(NSNotification *)notification { extern bool g_bIsFullScreen; g_bIsFullScreen = false; - if (GetBaseApp()->IsInitted()) - GetBaseApp()->GetVar("fullscreen")->Set(uint32(0)); [openGLView reshape]; } From 0d94a7d4ef7623bdf95f9b47a691ea0e266c730b Mon Sep 17 00:00:00 2001 From: Mateus Sales Bentes Date: Mon, 9 Mar 2026 10:52:03 -0300 Subject: [PATCH 44/44] RTBareBones OSX: add JPGSurfaceLoader, RTGLESExt and libjpeg sources These files provide JPEG loading support (RT_JPG_SUPPORT is defined in the build settings) but were missing from the Xcode project, causing undefined symbol linker errors. --- .../OSX/RTBareBones.xcodeproj/project.pbxproj | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) diff --git a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj index 36022e07..bb44ef38 100644 --- a/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj +++ b/RTBareBones/OSX/RTBareBones.xcodeproj/project.pbxproj @@ -79,6 +79,55 @@ BCARM000000000000000000002 /* arm_init.c in Sources */ = {isa = PBXBuildFile; fileRef = BCARM000000000000000000001 /* arm_init.c */; }; BCARM000000000000000000102 /* filter_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BCARM000000000000000000101 /* filter_neon_intrinsics.c */; }; BCARM000000000000000000202 /* palette_neon_intrinsics.c in Sources */ = {isa = PBXBuildFile; fileRef = BCARM000000000000000000201 /* palette_neon_intrinsics.c */; }; + /* libjpeg + JPGSurfaceLoader build files */ + 5D8E368214BEF412003BA3DA /* JPGSurfaceLoader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */; }; + 5D8E368314BEF412003BA3DA /* RTGLESExt.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368114BEF412003BA3DA /* RTGLESExt.cpp */; }; + 5D8E36B314BEF45B003BA3DA /* jcapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368514BEF45B003BA3DA /* jcapimin.c */; }; + 5D8E36B414BEF45B003BA3DA /* jcapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368614BEF45B003BA3DA /* jcapistd.c */; }; + 5D8E36B514BEF45B003BA3DA /* jccoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368714BEF45B003BA3DA /* jccoefct.c */; }; + 5D8E36B614BEF45B003BA3DA /* jccolor.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368814BEF45B003BA3DA /* jccolor.c */; }; + 5D8E36B714BEF45B003BA3DA /* jcdctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368914BEF45B003BA3DA /* jcdctmgr.c */; }; + 5D8E36B814BEF45B003BA3DA /* jchuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368A14BEF45B003BA3DA /* jchuff.c */; }; + 5D8E36B914BEF45B003BA3DA /* jcinit.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368B14BEF45B003BA3DA /* jcinit.c */; }; + 5D8E36BA14BEF45B003BA3DA /* jcmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368C14BEF45B003BA3DA /* jcmainct.c */; }; + 5D8E36BB14BEF45B003BA3DA /* jcmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368D14BEF45B003BA3DA /* jcmarker.c */; }; + 5D8E36BC14BEF45B003BA3DA /* jcmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368E14BEF45B003BA3DA /* jcmaster.c */; }; + 5D8E36BD14BEF45B003BA3DA /* jcomapi.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E368F14BEF45B003BA3DA /* jcomapi.c */; }; + 5D8E36BE14BEF45B003BA3DA /* jcparam.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369014BEF45B003BA3DA /* jcparam.c */; }; + 5D8E36BF14BEF45B003BA3DA /* jcphuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369114BEF45B003BA3DA /* jcphuff.c */; }; + 5D8E36C014BEF45B003BA3DA /* jcprepct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369214BEF45B003BA3DA /* jcprepct.c */; }; + 5D8E36C114BEF45B003BA3DA /* jcsample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369314BEF45B003BA3DA /* jcsample.c */; }; + 5D8E36C214BEF45B003BA3DA /* jctrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369414BEF45B003BA3DA /* jctrans.c */; }; + 5D8E36C314BEF45B003BA3DA /* jdapimin.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369514BEF45B003BA3DA /* jdapimin.c */; }; + 5D8E36C414BEF45B003BA3DA /* jdapistd.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369614BEF45B003BA3DA /* jdapistd.c */; }; + 5D8E36C514BEF45B003BA3DA /* jdatadst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369714BEF45B003BA3DA /* jdatadst.c */; }; + 5D8E36C614BEF45B003BA3DA /* jdatasrc.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369814BEF45B003BA3DA /* jdatasrc.c */; }; + 5D8E36C714BEF45B003BA3DA /* jdcoefct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369914BEF45B003BA3DA /* jdcoefct.c */; }; + 5D8E36C814BEF45B003BA3DA /* jdcolor.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369A14BEF45B003BA3DA /* jdcolor.c */; }; + 5D8E36C914BEF45B003BA3DA /* jddctmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369B14BEF45B003BA3DA /* jddctmgr.c */; }; + 5D8E36CA14BEF45B003BA3DA /* jdhuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369C14BEF45B003BA3DA /* jdhuff.c */; }; + 5D8E36CB14BEF45B003BA3DA /* jdinput.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369D14BEF45B003BA3DA /* jdinput.c */; }; + 5D8E36CC14BEF45B003BA3DA /* jdmainct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369E14BEF45B003BA3DA /* jdmainct.c */; }; + 5D8E36CD14BEF45B003BA3DA /* jdmarker.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E369F14BEF45B003BA3DA /* jdmarker.c */; }; + 5D8E36CE14BEF45B003BA3DA /* jdmaster.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A014BEF45B003BA3DA /* jdmaster.c */; }; + 5D8E36CF14BEF45B003BA3DA /* jdmerge.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A114BEF45B003BA3DA /* jdmerge.c */; }; + 5D8E36D014BEF45B003BA3DA /* jdphuff.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A214BEF45B003BA3DA /* jdphuff.c */; }; + 5D8E36D114BEF45B003BA3DA /* jdpostct.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A314BEF45B003BA3DA /* jdpostct.c */; }; + 5D8E36D214BEF45B003BA3DA /* jdsample.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A414BEF45B003BA3DA /* jdsample.c */; }; + 5D8E36D314BEF45B003BA3DA /* jdtrans.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A514BEF45B003BA3DA /* jdtrans.c */; }; + 5D8E36D414BEF45B003BA3DA /* jerror.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A614BEF45B003BA3DA /* jerror.c */; }; + 5D8E36D514BEF45B003BA3DA /* jfdctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A714BEF45B003BA3DA /* jfdctflt.c */; }; + 5D8E36D614BEF45B003BA3DA /* jfdctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A814BEF45B003BA3DA /* jfdctfst.c */; }; + 5D8E36D714BEF45B003BA3DA /* jfdctint.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36A914BEF45B003BA3DA /* jfdctint.c */; }; + 5D8E36D814BEF45B003BA3DA /* jidctflt.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AA14BEF45B003BA3DA /* jidctflt.c */; }; + 5D8E36D914BEF45B003BA3DA /* jidctfst.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AB14BEF45B003BA3DA /* jidctfst.c */; }; + 5D8E36DA14BEF45B003BA3DA /* jidctint.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AC14BEF45B003BA3DA /* jidctint.c */; }; + 5D8E36DB14BEF45B003BA3DA /* jidctred.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AD14BEF45B003BA3DA /* jidctred.c */; }; + 5D8E36DC14BEF45B003BA3DA /* jmemmgr.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AE14BEF45B003BA3DA /* jmemmgr.c */; }; + 5D8E36DD14BEF45B003BA3DA /* jmemnobs.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36AF14BEF45B003BA3DA /* jmemnobs.c */; }; + 5D8E36DE14BEF45B003BA3DA /* jquant1.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B014BEF45B003BA3DA /* jquant1.c */; }; + 5D8E36DF14BEF45B003BA3DA /* jquant2.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B114BEF45B003BA3DA /* jquant2.c */; }; + 5D8E36E014BEF45B003BA3DA /* jutils.c in Sources */ = {isa = PBXBuildFile; fileRef = 5D8E36B214BEF45B003BA3DA /* jutils.c */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -199,6 +248,57 @@ BCARM000000000000000000001 /* arm_init.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = arm_init.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/arm_init.c; sourceTree = SOURCE_ROOT; }; BCARM000000000000000000101 /* filter_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = filter_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/filter_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; BCARM000000000000000000201 /* palette_neon_intrinsics.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = palette_neon_intrinsics.c; path = ../../shared/Irrlicht/source/Irrlicht/libpng/arm/palette_neon_intrinsics.c; sourceTree = SOURCE_ROOT; }; + /* libjpeg + JPGSurfaceLoader file references */ + 5D8E367E14BEF412003BA3DA /* JPGSurfaceLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = JPGSurfaceLoader.h; path = ../../shared/Renderer/JPGSurfaceLoader.h; sourceTree = SOURCE_ROOT; }; + 5D8E368014BEF412003BA3DA /* JPGSurfaceLoader.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = JPGSurfaceLoader.cpp; path = ../../shared/Renderer/JPGSurfaceLoader.cpp; sourceTree = SOURCE_ROOT; }; + 5D8E367F14BEF412003BA3DA /* RTGLESExt.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RTGLESExt.h; path = ../../shared/Renderer/RTGLESExt.h; sourceTree = SOURCE_ROOT; }; + 5D8E368114BEF412003BA3DA /* RTGLESExt.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = RTGLESExt.cpp; path = ../../shared/Renderer/RTGLESExt.cpp; sourceTree = SOURCE_ROOT; }; + 5D8E368514BEF45B003BA3DA /* jcapimin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcapimin.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcapimin.c; sourceTree = SOURCE_ROOT; }; + 5D8E368614BEF45B003BA3DA /* jcapistd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcapistd.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcapistd.c; sourceTree = SOURCE_ROOT; }; + 5D8E368714BEF45B003BA3DA /* jccoefct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jccoefct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jccoefct.c; sourceTree = SOURCE_ROOT; }; + 5D8E368814BEF45B003BA3DA /* jccolor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jccolor.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jccolor.c; sourceTree = SOURCE_ROOT; }; + 5D8E368914BEF45B003BA3DA /* jcdctmgr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcdctmgr.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcdctmgr.c; sourceTree = SOURCE_ROOT; }; + 5D8E368A14BEF45B003BA3DA /* jchuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jchuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jchuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E368B14BEF45B003BA3DA /* jcinit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcinit.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcinit.c; sourceTree = SOURCE_ROOT; }; + 5D8E368C14BEF45B003BA3DA /* jcmainct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmainct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcmainct.c; sourceTree = SOURCE_ROOT; }; + 5D8E368D14BEF45B003BA3DA /* jcmarker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmarker.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcmarker.c; sourceTree = SOURCE_ROOT; }; + 5D8E368E14BEF45B003BA3DA /* jcmaster.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcmaster.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcmaster.c; sourceTree = SOURCE_ROOT; }; + 5D8E368F14BEF45B003BA3DA /* jcomapi.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcomapi.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcomapi.c; sourceTree = SOURCE_ROOT; }; + 5D8E369014BEF45B003BA3DA /* jcparam.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcparam.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcparam.c; sourceTree = SOURCE_ROOT; }; + 5D8E369114BEF45B003BA3DA /* jcphuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcphuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcphuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E369214BEF45B003BA3DA /* jcprepct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcprepct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcprepct.c; sourceTree = SOURCE_ROOT; }; + 5D8E369314BEF45B003BA3DA /* jcsample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jcsample.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jcsample.c; sourceTree = SOURCE_ROOT; }; + 5D8E369414BEF45B003BA3DA /* jctrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jctrans.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jctrans.c; sourceTree = SOURCE_ROOT; }; + 5D8E369514BEF45B003BA3DA /* jdapimin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdapimin.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdapimin.c; sourceTree = SOURCE_ROOT; }; + 5D8E369614BEF45B003BA3DA /* jdapistd.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdapistd.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdapistd.c; sourceTree = SOURCE_ROOT; }; + 5D8E369714BEF45B003BA3DA /* jdatadst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdatadst.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdatadst.c; sourceTree = SOURCE_ROOT; }; + 5D8E369814BEF45B003BA3DA /* jdatasrc.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdatasrc.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdatasrc.c; sourceTree = SOURCE_ROOT; }; + 5D8E369914BEF45B003BA3DA /* jdcoefct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdcoefct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdcoefct.c; sourceTree = SOURCE_ROOT; }; + 5D8E369A14BEF45B003BA3DA /* jdcolor.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdcolor.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdcolor.c; sourceTree = SOURCE_ROOT; }; + 5D8E369B14BEF45B003BA3DA /* jddctmgr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jddctmgr.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jddctmgr.c; sourceTree = SOURCE_ROOT; }; + 5D8E369C14BEF45B003BA3DA /* jdhuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdhuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdhuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E369D14BEF45B003BA3DA /* jdinput.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdinput.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdinput.c; sourceTree = SOURCE_ROOT; }; + 5D8E369E14BEF45B003BA3DA /* jdmainct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmainct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmainct.c; sourceTree = SOURCE_ROOT; }; + 5D8E369F14BEF45B003BA3DA /* jdmarker.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmarker.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmarker.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A014BEF45B003BA3DA /* jdmaster.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmaster.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmaster.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A114BEF45B003BA3DA /* jdmerge.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdmerge.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdmerge.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A214BEF45B003BA3DA /* jdphuff.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdphuff.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdphuff.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A314BEF45B003BA3DA /* jdpostct.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdpostct.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdpostct.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A414BEF45B003BA3DA /* jdsample.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdsample.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdsample.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A514BEF45B003BA3DA /* jdtrans.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jdtrans.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jdtrans.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A614BEF45B003BA3DA /* jerror.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jerror.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jerror.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A714BEF45B003BA3DA /* jfdctflt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jfdctflt.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jfdctflt.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A814BEF45B003BA3DA /* jfdctfst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jfdctfst.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jfdctfst.c; sourceTree = SOURCE_ROOT; }; + 5D8E36A914BEF45B003BA3DA /* jfdctint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jfdctint.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jfdctint.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AA14BEF45B003BA3DA /* jidctflt.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctflt.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctflt.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AB14BEF45B003BA3DA /* jidctfst.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctfst.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctfst.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AC14BEF45B003BA3DA /* jidctint.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctint.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctint.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AD14BEF45B003BA3DA /* jidctred.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jidctred.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jidctred.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AE14BEF45B003BA3DA /* jmemmgr.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jmemmgr.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jmemmgr.c; sourceTree = SOURCE_ROOT; }; + 5D8E36AF14BEF45B003BA3DA /* jmemnobs.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jmemnobs.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jmemnobs.c; sourceTree = SOURCE_ROOT; }; + 5D8E36B014BEF45B003BA3DA /* jquant1.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jquant1.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jquant1.c; sourceTree = SOURCE_ROOT; }; + 5D8E36B114BEF45B003BA3DA /* jquant2.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jquant2.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jquant2.c; sourceTree = SOURCE_ROOT; }; + 5D8E36B214BEF45B003BA3DA /* jutils.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = jutils.c; path = ../../shared/Irrlicht/source/Irrlicht/jpeglib/jutils.c; sourceTree = SOURCE_ROOT; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -684,6 +784,54 @@ 5D70B62912B5FED300A1AB17 /* MyOpenGLView.mm in Sources */, 5D70C47912B757F500A1AB17 /* MyApplication.mm in Sources */, 6424B73F1508A0AC00B545A2 /* ArcadeInputComponent.cpp in Sources */, + 5D8E368214BEF412003BA3DA /* JPGSurfaceLoader.cpp in Sources */, + 5D8E368314BEF412003BA3DA /* RTGLESExt.cpp in Sources */, + 5D8E36B314BEF45B003BA3DA /* jcapimin.c in Sources */, + 5D8E36B414BEF45B003BA3DA /* jcapistd.c in Sources */, + 5D8E36B514BEF45B003BA3DA /* jccoefct.c in Sources */, + 5D8E36B614BEF45B003BA3DA /* jccolor.c in Sources */, + 5D8E36B714BEF45B003BA3DA /* jcdctmgr.c in Sources */, + 5D8E36B814BEF45B003BA3DA /* jchuff.c in Sources */, + 5D8E36B914BEF45B003BA3DA /* jcinit.c in Sources */, + 5D8E36BA14BEF45B003BA3DA /* jcmainct.c in Sources */, + 5D8E36BB14BEF45B003BA3DA /* jcmarker.c in Sources */, + 5D8E36BC14BEF45B003BA3DA /* jcmaster.c in Sources */, + 5D8E36BD14BEF45B003BA3DA /* jcomapi.c in Sources */, + 5D8E36BE14BEF45B003BA3DA /* jcparam.c in Sources */, + 5D8E36BF14BEF45B003BA3DA /* jcphuff.c in Sources */, + 5D8E36C014BEF45B003BA3DA /* jcprepct.c in Sources */, + 5D8E36C114BEF45B003BA3DA /* jcsample.c in Sources */, + 5D8E36C214BEF45B003BA3DA /* jctrans.c in Sources */, + 5D8E36C314BEF45B003BA3DA /* jdapimin.c in Sources */, + 5D8E36C414BEF45B003BA3DA /* jdapistd.c in Sources */, + 5D8E36C514BEF45B003BA3DA /* jdatadst.c in Sources */, + 5D8E36C614BEF45B003BA3DA /* jdatasrc.c in Sources */, + 5D8E36C714BEF45B003BA3DA /* jdcoefct.c in Sources */, + 5D8E36C814BEF45B003BA3DA /* jdcolor.c in Sources */, + 5D8E36C914BEF45B003BA3DA /* jddctmgr.c in Sources */, + 5D8E36CA14BEF45B003BA3DA /* jdhuff.c in Sources */, + 5D8E36CB14BEF45B003BA3DA /* jdinput.c in Sources */, + 5D8E36CC14BEF45B003BA3DA /* jdmainct.c in Sources */, + 5D8E36CD14BEF45B003BA3DA /* jdmarker.c in Sources */, + 5D8E36CE14BEF45B003BA3DA /* jdmaster.c in Sources */, + 5D8E36CF14BEF45B003BA3DA /* jdmerge.c in Sources */, + 5D8E36D014BEF45B003BA3DA /* jdphuff.c in Sources */, + 5D8E36D114BEF45B003BA3DA /* jdpostct.c in Sources */, + 5D8E36D214BEF45B003BA3DA /* jdsample.c in Sources */, + 5D8E36D314BEF45B003BA3DA /* jdtrans.c in Sources */, + 5D8E36D414BEF45B003BA3DA /* jerror.c in Sources */, + 5D8E36D514BEF45B003BA3DA /* jfdctflt.c in Sources */, + 5D8E36D614BEF45B003BA3DA /* jfdctfst.c in Sources */, + 5D8E36D714BEF45B003BA3DA /* jfdctint.c in Sources */, + 5D8E36D814BEF45B003BA3DA /* jidctflt.c in Sources */, + 5D8E36D914BEF45B003BA3DA /* jidctfst.c in Sources */, + 5D8E36DA14BEF45B003BA3DA /* jidctint.c in Sources */, + 5D8E36DB14BEF45B003BA3DA /* jidctred.c in Sources */, + 5D8E36DC14BEF45B003BA3DA /* jmemmgr.c in Sources */, + 5D8E36DD14BEF45B003BA3DA /* jmemnobs.c in Sources */, + 5D8E36DE14BEF45B003BA3DA /* jquant1.c in Sources */, + 5D8E36DF14BEF45B003BA3DA /* jquant2.c in Sources */, + 5D8E36E014BEF45B003BA3DA /* jutils.c in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };