diff --git a/configuration.c b/configuration.c index 994a2a792c..b61cdaf8cc 100644 --- a/configuration.c +++ b/configuration.c @@ -408,10 +408,10 @@ static const enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_AUDIOIO; static const enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_OSS; #elif defined(HAVE_JACK) static const enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_JACK; -#elif defined(HAVE_COREAUDIO) && !defined(HAVE_COCOA_METAL) -static const enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_COREAUDIO; #elif defined(HAVE_COREAUDIO3) static const enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_COREAUDIO3; +#elif defined(HAVE_COREAUDIO) +static const enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_COREAUDIO; #elif defined(HAVE_XAUDIO) static const enum audio_driver_enum AUDIO_DEFAULT_DRIVER = AUDIO_XAUDIO; #elif defined(HAVE_DSOUND) diff --git a/gfx/common/metal/Context.m b/gfx/common/metal/Context.m index c56bfbc691..6b4f2a8851 100644 --- a/gfx/common/metal/Context.m +++ b/gfx/common/metal/Context.m @@ -9,6 +9,7 @@ #import "Context.h" #import "Filter.h" #import +#import "metal_common.h" @interface BufferNode : NSObject @property (nonatomic, readonly) id src; @@ -174,6 +175,8 @@ { #if TARGET_OS_OSX return _layer.displaySyncEnabled; +#else + return NO; #endif } @@ -759,15 +762,9 @@ static const NSUInteger kConstantAlignment = 4; - (bool)allocRange:(BufferRange *)range length:(NSUInteger)length { MTLResourceOptions opts; - + opts = PLATFORM_METAL_RESOURCE_STORAGE_MODE; memset(range, 0, sizeof(*range)); -#if TARGET_OS_OSX - opts = MTLResourceStorageModeManaged; -#else - opts = MTLResourceStorageModeShared; -#endif - if (!_head) { _head = [[BufferNode alloc] initWithBuffer:[_device newBufferWithLength:_blockLen options:opts]]; diff --git a/gfx/common/metal/MenuDisplay.m b/gfx/common/metal/MenuDisplay.m index bb69b314a8..a7cf8e267d 100644 --- a/gfx/common/metal/MenuDisplay.m +++ b/gfx/common/metal/MenuDisplay.m @@ -5,7 +5,7 @@ #import "Context.h" #import "MenuDisplay.h" #import "ShaderTypes.h" -#import "menu_driver.h" +#include "../../../menu/menu_driver.h" #import /* TODO(sgc): this dependency is incorrect */ #import "../metal_common.h" diff --git a/gfx/common/metal/View.m b/gfx/common/metal/View.m index 475983bc86..7c6bfd9f10 100644 --- a/gfx/common/metal/View.m +++ b/gfx/common/metal/View.m @@ -23,9 +23,14 @@ - (NSString *)debugDescription { +#if defined(HAVE_COCOATOUCH) + NSString *sizeDesc = [NSString stringWithFormat:@"width: %f, height: %f",_size.width,_size.height]; +#else + NSString *sizeDesc = NSStringFromSize(_size); +#endif return [NSString stringWithFormat:@"( format = %@, frame = %@ )", NSStringFromRPixelFormat(_format), - NSStringFromSize(_size)]; + sizeDesc]; } @end diff --git a/gfx/common/metal_common.h b/gfx/common/metal_common.h index fb4f7197f9..e7df4ee3de 100644 --- a/gfx/common/metal_common.h +++ b/gfx/common/metal_common.h @@ -28,6 +28,12 @@ #include "../../config.h" #endif +#ifdef HAVE_COCOATOUCH +#define PLATFORM_METAL_RESOURCE_STORAGE_MODE MTLResourceStorageModeShared +#else +#define PLATFORM_METAL_RESOURCE_STORAGE_MODE MTLResourceStorageModeManaged +#endif + RETRO_BEGIN_DECLS extern MTLPixelFormat glslang_format_to_metal(glslang_format fmt); diff --git a/gfx/common/metal_common.m b/gfx/common/metal_common.m index 6104896a1d..8b87bdd880 100644 --- a/gfx/common/metal_common.m +++ b/gfx/common/metal_common.m @@ -25,7 +25,7 @@ #import #import "metal_common.h" -#import "Context.h" +#include "metal/Context.h" #include "../../ui/drivers/cocoa/cocoa_common.h" @@ -53,9 +53,11 @@ @implementation MetalView +#if !defined(HAVE_COCOATOUCH) - (void)keyDown:(NSEvent*)theEvent { } +#endif /* Stop the annoying sound when pressing a key. */ - (BOOL)acceptsFirstResponder @@ -500,7 +502,13 @@ - (void)mtkView:(MTKView *)view drawableSizeWillChange:(CGSize)size { + NSLog(@"mtkView drawableSizeWillChange to: %f x %f",size.width,size.height); +#ifdef HAVE_COCOATOUCH + CGFloat scale = [[UIScreen mainScreen] scale]; + [self setViewportWidth:(unsigned int)view.bounds.size.width*scale height:(unsigned int)view.bounds.size.height*scale forceFull:NO allowRotate:YES]; +#else [self setViewportWidth:(unsigned int)size.width height:(unsigned int)size.height forceFull:NO allowRotate:YES]; +#endif } - (void)drawInMTKView:(MTKView *)view @@ -693,7 +701,11 @@ typedef struct MTLALIGN(16) switch (i) { case RARCH_WRAP_BORDER: +#if defined(HAVE_COCOATOUCH) + sd.sAddressMode = MTLSamplerAddressModeClampToZero; +#else sd.sAddressMode = MTLSamplerAddressModeClampToBorderColor; +#endif break; case RARCH_WRAP_EDGE: @@ -1023,7 +1035,9 @@ typedef struct MTLALIGN(16) if (buffer_sem->stage_mask & SLANG_STAGE_FRAGMENT_MASK) [rce setFragmentBuffer:buffer offset:0 atIndex:buffer_sem->binding]; +#if !defined(HAVE_COCOATOUCH) [buffer didModifyRange:NSMakeRange(0, buffer.length)]; +#endif } } @@ -1356,7 +1370,7 @@ typedef struct MTLALIGN(16) if (size == 0) continue; - id buf = [_context.device newBufferWithLength:size options:MTLResourceStorageModeManaged]; + id buf = [_context.device newBufferWithLength:size options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; STRUCT_ASSIGN(_engine.pass[i].buffers[j], buf); } } @finally @@ -1472,7 +1486,7 @@ typedef struct MTLALIGN(16) NSUInteger needed = sizeof(SpriteVertex) * count * 4; if (!_vert || _vert.length < needed) { - _vert = [_context.device newBufferWithLength:needed options:MTLResourceStorageModeManaged]; + _vert = [_context.device newBufferWithLength:needed options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; } for (NSUInteger i = 0; i < count; i++) @@ -1490,11 +1504,13 @@ typedef struct MTLALIGN(16) - (void)drawWithEncoder:(id)rce { +#if !defined(HAVE_COCOATOUCH) if (_vertDirty) { [_vert didModifyRange:NSMakeRange(0, _vert.length)]; _vertDirty = NO; } +#endif NSUInteger count = _images.count; for (NSUInteger i = 0; i < count; ++i) diff --git a/gfx/drivers_context/cocoa_gl_ctx.m b/gfx/drivers_context/cocoa_gl_ctx.m index 561db293e1..08538a49f1 100644 --- a/gfx/drivers_context/cocoa_gl_ctx.m +++ b/gfx/drivers_context/cocoa_gl_ctx.m @@ -23,7 +23,7 @@ #else #include #endif -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX #include #include #include @@ -103,7 +103,7 @@ void *nsview_get_ptr(void) video_driver_display_type_set(RARCH_DISPLAY_OSX); video_driver_display_set(0); video_driver_display_userdata_set((uintptr_t)g_instance); -#elif defined(HAVE_COCOA_METAL) +#elif defined(HAVE_COCOA_METAL) && !defined(HAVE_COCOATOUCH) video_driver_display_type_set(RARCH_DISPLAY_OSX); video_driver_display_set(0); video_driver_display_userdata_set((uintptr_t)g_instance); @@ -116,7 +116,7 @@ void nsview_set_ptr(CocoaView *p) g_instance = p; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX static NSOpenGLPixelFormat* g_format; void *glcontext_get_ptr(void) @@ -240,7 +240,7 @@ float get_backing_scale_factor(void) return backing_scale_def; backing_scale_def = 1.0f; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX screen = (BRIDGE RAScreen*)get_chosen_screen(); if (screen) @@ -269,7 +269,7 @@ void cocoagl_gfx_ctx_update(void) { case GFX_CTX_OPENGL_API: #if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES) || defined(HAVE_OPENGL_CORE) -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX #if MAC_OS_X_VERSION_10_7 CGLUpdateContext(g_hw_ctx.CGLContextObj); CGLUpdateContext(g_context.CGLContextObj); @@ -299,7 +299,7 @@ static void cocoagl_gfx_ctx_destroy(void *data) #if defined(HAVE_OPENGL) || defined(HAVE_OPENGLES) || defined(HAVE_OPENGL_CORE) [GLContextClass clearCurrentContext]; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX [g_context clearDrawable]; RELEASE(g_context); RELEASE(g_format); @@ -340,7 +340,7 @@ static void cocoagl_gfx_ctx_show_mouse(void *data, bool state) { (void)data; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX if (state) [NSCursor unhide]; else @@ -369,7 +369,7 @@ float cocoagl_gfx_ctx_get_native_scale(void) return ret; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX static void cocoagl_gfx_ctx_update_title(void *data) { const ui_window_t *window = ui_companion_driver_get_window_ptr(); @@ -392,7 +392,7 @@ static bool cocoagl_gfx_ctx_get_metrics(void *data, enum display_metric_types ty float *value) { RAScreen *screen = (BRIDGE RAScreen*)get_chosen_screen(); -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX NSDictionary *description = [screen deviceDescription]; NSSize display_pixel_size = [[description objectForKey:NSDeviceSize] sizeValue]; CGSize display_physical_size = CGDisplayScreenSize( @@ -482,7 +482,7 @@ static void cocoagl_gfx_ctx_input_driver(void *data, static void cocoagl_gfx_ctx_get_video_size(void *data, unsigned* width, unsigned* height) { float screenscale = cocoagl_gfx_ctx_get_native_scale(); -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX CGRect size, cgrect; GLsizei backingPixelWidth, backingPixelHeight; #if defined(HAVE_COCOA_METAL) @@ -630,7 +630,7 @@ static void cocoagl_gfx_ctx_swap_buffers(void *data) if (!(--g_fast_forward_skips < 0)) return; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX [g_context flushBuffer]; [g_hw_ctx flushBuffer]; #elif defined(HAVE_COCOATOUCH) @@ -699,12 +699,12 @@ static void *cocoagl_gfx_ctx_get_context_data(void *data) static bool cocoagl_gfx_ctx_set_video_mode(void *data, unsigned width, unsigned height, bool fullscreen) { -#if defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && defined(HAVE_COCOA_METAL) NSView *g_view = apple_platform.renderView; #elif defined(HAVE_COCOA) CocoaView *g_view = (CocoaView*)nsview_get_ptr(); #endif -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX cocoa_ctx_data_t *cocoa_ctx = (cocoa_ctx_data_t*)data; cocoa_ctx->width = width; cocoa_ctx->height = height; @@ -715,7 +715,7 @@ static bool cocoagl_gfx_ctx_set_video_mode(void *data, case GFX_CTX_OPENGL_API: case GFX_CTX_OPENGL_ES_API: { -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX if ([g_view respondsToSelector: @selector(setWantsBestResolutionOpenGLSurface:)]) [g_view setWantsBestResolutionOpenGLSurface:YES]; @@ -791,7 +791,7 @@ static bool cocoagl_gfx_ctx_set_video_mode(void *data, break; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX static bool has_went_fullscreen = false; /* TODO: Screen mode support. */ @@ -839,6 +839,10 @@ static void *cocoagl_gfx_ctx_init(void *video_driver) { #if defined(HAVE_COCOATOUCH) case GFX_CTX_OPENGL_ES_API: +#if defined(HAVE_COCOA_METAL) + // the metal build supports both the OpenGL and Metal video drivers + [apple_platform setViewType:APPLE_VIEW_TYPE_OPENGL_ES]; +#endif // setViewType is not (yet?) defined for iOS // [apple_platform setViewType:APPLE_VIEW_TYPE_OPENGL_ES]; break; @@ -921,7 +925,7 @@ const gfx_ctx_driver_t gfx_ctx_cocoagl = { NULL, /* get_video_output_next */ cocoagl_gfx_ctx_get_metrics, NULL, /* translate_aspect */ -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX cocoagl_gfx_ctx_update_title, #else NULL, /* update_title */ diff --git a/gfx/drivers_font/metal_raster_font.m b/gfx/drivers_font/metal_raster_font.m index 5b165905fe..2783461f68 100644 --- a/gfx/drivers_font/metal_raster_font.m +++ b/gfx/drivers_font/metal_raster_font.m @@ -79,19 +79,20 @@ { _buffer = [_context.device newBufferWithBytes:_atlas->buffer length:(NSUInteger)(_stride * _atlas->height) - options:MTLResourceStorageModeManaged]; + options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; - /* Even though newBufferWithBytes will copy the initial contents - * from our atlas, it doesn't seem to invalidate the buffer when - * doing so, causing corrupted text rendering if we hit this code - * path. To work around it we manually invalidate the buffer. - */ + // Even though newBufferWithBytes will copy the initial contents + // from our atlas, it doesn't seem to invalidate the buffer when + // doing so, causing corrupted text rendering if we hit this code + // path. To work around it we manually invalidate the buffer. +#if !defined(HAVE_COCOATOUCH) [_buffer didModifyRange:NSMakeRange(0, _buffer.length)]; +#endif } else { _buffer = [_context.device newBufferWithLength:(NSUInteger)(_stride * _atlas->height) - options:MTLResourceStorageModeManaged]; + options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; void *dst = _buffer.contents; void *src = _atlas->buffer; for (unsigned i = 0; i < _atlas->height; i++) @@ -100,7 +101,9 @@ dst += _stride; src += _atlas->width; } - [_buffer didModifyRange:NSMakeRange(0, _buffer.length)]; +#if !defined(HAVE_COCOATOUCH) + [_buffer didModifyRange:NSMakeRange(0, _buffer.length)]; +#endif } MTLTextureDescriptor *td = [MTLTextureDescriptor texture2DDescriptorWithPixelFormat:MTLPixelFormatR8Unorm @@ -112,7 +115,7 @@ _capacity = 12000; _vert = [_context.device newBufferWithLength:sizeof(SpriteVertex) * - _capacity options:MTLResourceStorageModeManaged]; + _capacity options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; if (![self _initializeState]) { return nil; @@ -182,7 +185,9 @@ NSUInteger offset = glyph->atlas_offset_y; NSUInteger len = glyph->height * _stride; +#if !defined(HAVE_COCOATOUCH) [_buffer didModifyRange:NSMakeRange(offset, len)]; +#endif _atlas->dirty = false; } @@ -325,7 +330,9 @@ static INLINE void write_quad6(SpriteVertex *pv, - (void)_flush { NSUInteger start = _offset * sizeof(SpriteVertex); +#if !defined(HAVE_COCOATOUCH) [_vert didModifyRange:NSMakeRange(start, sizeof(SpriteVertex) * _vertices)]; +#endif id rce = _context.rce; [rce pushDebugGroup:@"render fonts"]; diff --git a/gfx/gfx_display.c b/gfx/gfx_display.c index 143f6560e6..8cca39e36c 100644 --- a/gfx/gfx_display.c +++ b/gfx/gfx_display.c @@ -304,7 +304,7 @@ float gfx_display_get_dpi_scale_internal(unsigned width, unsigned height) * unfortunate, and needs to be fixed at the gfx context driver * level. Until this is done, all we can do is fallback to using * the old legacy 'magic number' scaling on Mac platforms. */ -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) if (true) { scale = (diagonal_pixels / 6.5f) / 212.0f; diff --git a/griffin/griffin_objc.m b/griffin/griffin_objc.m index a30e582489..dad5e96e12 100644 --- a/griffin/griffin_objc.m +++ b/griffin/griffin_objc.m @@ -33,15 +33,10 @@ #include "../gfx/drivers_context/cocoa_gl_ctx.m" #if defined(HAVE_COCOATOUCH) - -#if TARGET_OS_IOS -#include "../ui/drivers/cocoa/cocoatouch_menu.m" -#endif #include "../ui/drivers/ui_cocoatouch.m" - #else -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX #include "../ui/drivers/cocoa/ui_cocoa_window.m" #include "../ui/drivers/cocoa/ui_cocoa_browser_window.m" #include "../ui/drivers/cocoa/ui_cocoa_application.m" diff --git a/input/drivers_joypad/mfi_joypad.m b/input/drivers_joypad/mfi_joypad.m index 4d9d794176..b578aafcb5 100644 --- a/input/drivers_joypad/mfi_joypad.m +++ b/input/drivers_joypad/mfi_joypad.m @@ -339,10 +339,10 @@ static int16_t apple_gamecontroller_joypad_button( if (port >= DEFAULT_MAX_PADS) return 0; /* Check hat. */ - else if (GET_HAT_DIR(i)) + else if (GET_HAT_DIR(joykey)) return 0; - else if (i < 32) - return ((mfi_buttons[port] & (1 << i)) != 0); + else if (joykey < 32) + return ((mfi_buttons[port] & (1 << joykey)) != 0); return 0; } @@ -407,7 +407,7 @@ static int16_t apple_gamecontroller_joypad_state( ) ret |= ( 1 << i); else if (joyaxis != AXIS_NONE && - ((float)abs(apple_gamecontroller_joypad_axis(pad, joyaxis)) + ((float)abs(apple_gamecontroller_joypad_axis(port, joyaxis)) / 0x8000) > joypad_info->axis_threshold) ret |= (1 << i); } diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj index c126396765..ebaa1ad514 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj @@ -694,7 +694,6 @@ "-DHAVE_SHADERPIPELINE", "-D_LZMA_UINT32_IS_ULONG", "-DHAVE_MFI", - "-DHAVE_BTSTACK", "-DHAVE_KEYMAPPER", ); PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; @@ -798,7 +797,6 @@ "-DHAVE_SHADERPIPELINE", "-D_LZMA_UINT32_IS_ULONG", "-DHAVE_MFI", - "-DHAVE_BTSTACK", "-DHAVE_KEYMAPPER", ); PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..aa4b2ddc25 --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj @@ -0,0 +1,1341 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 9204BE0D1D319EF300BD49DB /* griffin_objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 50521A431AA23BF500185CC9 /* griffin_objc.m */; }; + 9204BE101D319EF300BD49DB /* griffin.c in Sources */ = {isa = PBXBuildFile; fileRef = 501232C9192E5FC40063A359 /* griffin.c */; }; + 9204BE121D319EF300BD49DB /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 5040F04F1AE47ED4006F6972 /* libz.dylib */; }; + 9204BE131D319EF300BD49DB /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50C3B1AD1AB1107100F478D3 /* QuartzCore.framework */; }; + 9204BE141D319EF300BD49DB /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 963C3C33186E3DED00A6EB1E /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; + 9204BE151D319EF300BD49DB /* CoreText.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 696012F119F3389A006A1088 /* CoreText.framework */; }; + 9204BE161D319EF300BD49DB /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */; }; + 9204BE171D319EF300BD49DB /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501881ED184BB54C006F665D /* CoreMedia.framework */; }; + 9204BE181D319EF300BD49DB /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501881EB184BAD6D006F665D /* AVFoundation.framework */; }; + 9204BE191D319EF300BD49DB /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50E7189E184B88AA001956CE /* CoreVideo.framework */; }; + 9204BE1A1D319EF300BD49DB /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96366C5816C9ACF500D64A22 /* AudioToolbox.framework */; }; + 9204BE1B1D319EF300BD49DB /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96366C5416C9AC3300D64A22 /* CoreAudio.framework */; }; + 9204BE1C1D319EF300BD49DB /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2916C1D4EA009DE44C /* UIKit.framework */; }; + 9204BE1D1D319EF300BD49DB /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2B16C1D4EA009DE44C /* Foundation.framework */; }; + 9204BE1E1D319EF300BD49DB /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2D16C1D4EA009DE44C /* CoreGraphics.framework */; }; + 9204BE1F1D319EF300BD49DB /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE2F16C1D4EA009DE44C /* GLKit.framework */; }; + 9204BE201D319EF300BD49DB /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96AFAE3116C1D4EA009DE44C /* OpenGLES.framework */; }; + 9204BE231D319EF300BD49DB /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = 967894611788EBD800D6CA69 /* InfoPlist.strings */; }; + 9204BE261D319EF300BD49DB /* iOS/modules in Resources */ = {isa = PBXBuildFile; fileRef = 83EB675F19EEAF050096F441 /* iOS/modules */; }; + 9210C2F224B3A19100E6FE7C /* MetalKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9210C2F024B3A19100E6FE7C /* MetalKit.framework */; }; + 9210C2F324B3A19100E6FE7C /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9210C2F124B3A19100E6FE7C /* Metal.framework */; }; + 9210C2F624B3A32D00E6FE7C /* griffin_cpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2F424B3A32D00E6FE7C /* griffin_cpp.cpp */; }; + 9210C2F724B3A32D00E6FE7C /* griffin_cpp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2F424B3A32D00E6FE7C /* griffin_cpp.cpp */; }; + 9210C2F824B3A32D00E6FE7C /* griffin_glslang.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2F524B3A32D00E6FE7C /* griffin_glslang.cpp */; }; + 9210C2F924B3A32D00E6FE7C /* griffin_glslang.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2F524B3A32D00E6FE7C /* griffin_glslang.cpp */; }; + 9210C2FC24B4CB4900E6FE7C /* menu_pipeline.metal in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2FA24B4CB4900E6FE7C /* menu_pipeline.metal */; }; + 9210C2FD24B4CB4900E6FE7C /* menu_pipeline.metal in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2FA24B4CB4900E6FE7C /* menu_pipeline.metal */; }; + 9210C2FE24B4CB4900E6FE7C /* Shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2FB24B4CB4900E6FE7C /* Shaders.metal */; }; + 9210C2FF24B4CB4900E6FE7C /* Shaders.metal in Sources */ = {isa = PBXBuildFile; fileRef = 9210C2FB24B4CB4900E6FE7C /* Shaders.metal */; }; + 9222F1FF2314BA7C0097C0FD /* assets.zip in Resources */ = {isa = PBXBuildFile; fileRef = 9222F1FE2314BA7C0097C0FD /* assets.zip */; }; + 9222F2002314BA7C0097C0FD /* assets.zip in Resources */ = {isa = PBXBuildFile; fileRef = 9222F1FE2314BA7C0097C0FD /* assets.zip */; }; + 9222F2092315DAD50097C0FD /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9222F2082315DAD50097C0FD /* Launch Screen.storyboard */; }; + 9222F20B2315DD3D0097C0FD /* retroarch_logo.png in Resources */ = {isa = PBXBuildFile; fileRef = 9222F20A2315DD3D0097C0FD /* retroarch_logo.png */; }; + 926C77E321FD1E6700103EDE /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 926C77E221FD1E6700103EDE /* Assets.xcassets */; }; + 926C77EA21FD20C100103EDE /* griffin_objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 50521A431AA23BF500185CC9 /* griffin_objc.m */; }; + 926C77EB21FD20C400103EDE /* griffin.c in Sources */ = {isa = PBXBuildFile; fileRef = 501232C9192E5FC40063A359 /* griffin.c */; }; + 926C77EF21FD263800103EDE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 926C77EE21FD263800103EDE /* AudioToolbox.framework */; }; + 926C77F121FD26E800103EDE /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 926C77F021FD26E800103EDE /* GameController.framework */; }; + 929784502200EEE400989A60 /* iOS/Resources/Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 69D31DE31A547EC800EF4C92 /* iOS/Resources/Media.xcassets */; }; + 92CC05A221FE3C1700FF79F0 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058221FE3C1700FF79F0 /* GCDWebServerResponse.m */; }; + 92CC05A321FE3C1700FF79F0 /* GCDWebServerResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058221FE3C1700FF79F0 /* GCDWebServerResponse.m */; }; + 92CC05A421FE3C1700FF79F0 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058521FE3C1700FF79F0 /* GCDWebServerRequest.m */; }; + 92CC05A521FE3C1700FF79F0 /* GCDWebServerRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058521FE3C1700FF79F0 /* GCDWebServerRequest.m */; }; + 92CC05A621FE3C1700FF79F0 /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058821FE3C1700FF79F0 /* GCDWebServerFunctions.m */; }; + 92CC05A721FE3C1700FF79F0 /* GCDWebServerFunctions.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058821FE3C1700FF79F0 /* GCDWebServerFunctions.m */; }; + 92CC05A821FE3C1700FF79F0 /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058921FE3C1700FF79F0 /* GCDWebServer.m */; }; + 92CC05A921FE3C1700FF79F0 /* GCDWebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058921FE3C1700FF79F0 /* GCDWebServer.m */; }; + 92CC05AA21FE3C1700FF79F0 /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058A21FE3C1700FF79F0 /* GCDWebServerConnection.m */; }; + 92CC05AB21FE3C1700FF79F0 /* GCDWebServerConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058A21FE3C1700FF79F0 /* GCDWebServerConnection.m */; }; + 92CC05AC21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058F21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m */; }; + 92CC05AD21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC058F21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m */; }; + 92CC05AE21FE3C1700FF79F0 /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059121FE3C1700FF79F0 /* GCDWebServerFileResponse.m */; }; + 92CC05AF21FE3C1700FF79F0 /* GCDWebServerFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059121FE3C1700FF79F0 /* GCDWebServerFileResponse.m */; }; + 92CC05B021FE3C1700FF79F0 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059221FE3C1700FF79F0 /* GCDWebServerDataResponse.m */; }; + 92CC05B121FE3C1700FF79F0 /* GCDWebServerDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059221FE3C1700FF79F0 /* GCDWebServerDataResponse.m */; }; + 92CC05B221FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059421FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m */; }; + 92CC05B321FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059421FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m */; }; + 92CC05B421FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059921FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m */; }; + 92CC05B521FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059921FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m */; }; + 92CC05B621FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059A21FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m */; }; + 92CC05B721FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059A21FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m */; }; + 92CC05B821FE3C1700FF79F0 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059B21FE3C1700FF79F0 /* GCDWebServerDataRequest.m */; }; + 92CC05B921FE3C1700FF79F0 /* GCDWebServerDataRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059B21FE3C1700FF79F0 /* GCDWebServerDataRequest.m */; }; + 92CC05BA21FE3C1700FF79F0 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059C21FE3C1700FF79F0 /* GCDWebServerFileRequest.m */; }; + 92CC05BB21FE3C1700FF79F0 /* GCDWebServerFileRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC059C21FE3C1700FF79F0 /* GCDWebServerFileRequest.m */; }; + 92CC05BC21FE3C1700FF79F0 /* GCDWebUploader.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 92CC059F21FE3C1700FF79F0 /* GCDWebUploader.bundle */; }; + 92CC05BD21FE3C1700FF79F0 /* GCDWebUploader.bundle in Resources */ = {isa = PBXBuildFile; fileRef = 92CC059F21FE3C1700FF79F0 /* GCDWebUploader.bundle */; }; + 92CC05BE21FE3C1700FF79F0 /* GCDWebUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC05A121FE3C1700FF79F0 /* GCDWebUploader.m */; }; + 92CC05BF21FE3C1700FF79F0 /* GCDWebUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC05A121FE3C1700FF79F0 /* GCDWebUploader.m */; }; + 92CC05C221FE3C6D00FF79F0 /* WebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC05C121FE3C6D00FF79F0 /* WebServer.m */; }; + 92CC05C321FE3C6D00FF79F0 /* WebServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 92CC05C121FE3C6D00FF79F0 /* WebServer.m */; }; + 92CC05C521FEDC9F00FF79F0 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92CC05C421FEDC9F00FF79F0 /* CFNetwork.framework */; }; + 92CC05C721FEDD0B00FF79F0 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 92CC05C621FEDD0B00FF79F0 /* MobileCoreServices.framework */; }; + 92E5DCD4231A5786006491BF /* modules in Resources */ = {isa = PBXBuildFile; fileRef = 92E5DCD3231A5786006491BF /* modules */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 501232C9192E5FC40063A359 /* griffin.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; name = griffin.c; path = ../../griffin/griffin.c; sourceTree = SOURCE_ROOT; }; + 501881EB184BAD6D006F665D /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; }; + 501881ED184BB54C006F665D /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; }; + 5040F04F1AE47ED4006F6972 /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; }; + 50521A431AA23BF500185CC9 /* griffin_objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = griffin_objc.m; path = ../../griffin/griffin_objc.m; sourceTree = SOURCE_ROOT; }; + 50C3B1AD1AB1107100F478D3 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; }; + 50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreLocation.framework; path = System/Library/Frameworks/CoreLocation.framework; sourceTree = SDKROOT; }; + 50E7189E184B88AA001956CE /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; }; + 696012F119F3389A006A1088 /* CoreText.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreText.framework; path = System/Library/Frameworks/CoreText.framework; sourceTree = SDKROOT; }; + 69D31DE31A547EC800EF4C92 /* iOS/Resources/Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = iOS/Resources/Media.xcassets; sourceTree = SOURCE_ROOT; }; + 83EB675F19EEAF050096F441 /* iOS/modules */ = {isa = PBXFileReference; lastKnownFileType = folder; path = iOS/modules; sourceTree = SOURCE_ROOT; }; + 9204BE2B1D319EF300BD49DB /* RetroArch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArch.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9210C2F024B3A19100E6FE7C /* MetalKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MetalKit.framework; path = System/Library/Frameworks/MetalKit.framework; sourceTree = SDKROOT; }; + 9210C2F124B3A19100E6FE7C /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = System/Library/Frameworks/Metal.framework; sourceTree = SDKROOT; }; + 9210C2F424B3A32D00E6FE7C /* griffin_cpp.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = griffin_cpp.cpp; path = ../../griffin/griffin_cpp.cpp; sourceTree = ""; }; + 9210C2F524B3A32D00E6FE7C /* griffin_glslang.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = griffin_glslang.cpp; path = ../../griffin/griffin_glslang.cpp; sourceTree = ""; }; + 9210C2FA24B4CB4900E6FE7C /* menu_pipeline.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = menu_pipeline.metal; path = ../../gfx/common/metal/menu_pipeline.metal; sourceTree = ""; }; + 9210C2FB24B4CB4900E6FE7C /* Shaders.metal */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.metal; name = Shaders.metal; path = ../../gfx/common/metal/Shaders.metal; sourceTree = ""; }; + 9222F1FE2314BA7C0097C0FD /* assets.zip */ = {isa = PBXFileReference; lastKnownFileType = archive.zip; path = assets.zip; sourceTree = ""; }; + 9222F2082315DAD50097C0FD /* Launch Screen.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = "Launch Screen.storyboard"; sourceTree = ""; }; + 9222F20A2315DD3D0097C0FD /* retroarch_logo.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = retroarch_logo.png; sourceTree = ""; }; + 926C77D721FD1E6500103EDE /* RetroArchTV.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArchTV.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 926C77E221FD1E6700103EDE /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 926C77E421FD1E6700103EDE /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 926C77EC21FD261600103EDE /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.1.sdk/System/Library/Frameworks/CoreAudio.framework; sourceTree = DEVELOPER_DIR; }; + 926C77EE21FD263800103EDE /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.1.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = DEVELOPER_DIR; }; + 926C77F021FD26E800103EDE /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.1.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; }; + 92CC058021FE3C1700FF79F0 /* GCDWebServerFunctions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFunctions.h; sourceTree = ""; }; + 92CC058121FE3C1700FF79F0 /* GCDWebServerPrivate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerPrivate.h; sourceTree = ""; }; + 92CC058221FE3C1700FF79F0 /* GCDWebServerResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerResponse.m; sourceTree = ""; }; + 92CC058321FE3C1700FF79F0 /* GCDWebServerConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerConnection.h; sourceTree = ""; }; + 92CC058421FE3C1700FF79F0 /* GCDWebServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServer.h; sourceTree = ""; }; + 92CC058521FE3C1700FF79F0 /* GCDWebServerRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerRequest.m; sourceTree = ""; }; + 92CC058621FE3C1700FF79F0 /* GCDWebServerHTTPStatusCodes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerHTTPStatusCodes.h; sourceTree = ""; }; + 92CC058721FE3C1700FF79F0 /* GCDWebServerResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerResponse.h; sourceTree = ""; }; + 92CC058821FE3C1700FF79F0 /* GCDWebServerFunctions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFunctions.m; sourceTree = ""; }; + 92CC058921FE3C1700FF79F0 /* GCDWebServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServer.m; sourceTree = ""; }; + 92CC058A21FE3C1700FF79F0 /* GCDWebServerConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerConnection.m; sourceTree = ""; }; + 92CC058B21FE3C1700FF79F0 /* GCDWebServerRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerRequest.h; sourceTree = ""; }; + 92CC058D21FE3C1700FF79F0 /* GCDWebServerFileResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFileResponse.h; sourceTree = ""; }; + 92CC058E21FE3C1700FF79F0 /* GCDWebServerStreamedResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerStreamedResponse.h; sourceTree = ""; }; + 92CC058F21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerErrorResponse.m; sourceTree = ""; }; + 92CC059021FE3C1700FF79F0 /* GCDWebServerDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerDataResponse.h; sourceTree = ""; }; + 92CC059121FE3C1700FF79F0 /* GCDWebServerFileResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFileResponse.m; sourceTree = ""; }; + 92CC059221FE3C1700FF79F0 /* GCDWebServerDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerDataResponse.m; sourceTree = ""; }; + 92CC059321FE3C1700FF79F0 /* GCDWebServerErrorResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerErrorResponse.h; sourceTree = ""; }; + 92CC059421FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerStreamedResponse.m; sourceTree = ""; }; + 92CC059621FE3C1700FF79F0 /* GCDWebServerDataRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerDataRequest.h; sourceTree = ""; }; + 92CC059721FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerMultiPartFormRequest.h; sourceTree = ""; }; + 92CC059821FE3C1700FF79F0 /* GCDWebServerFileRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerFileRequest.h; sourceTree = ""; }; + 92CC059921FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerURLEncodedFormRequest.m; sourceTree = ""; }; + 92CC059A21FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerMultiPartFormRequest.m; sourceTree = ""; }; + 92CC059B21FE3C1700FF79F0 /* GCDWebServerDataRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerDataRequest.m; sourceTree = ""; }; + 92CC059C21FE3C1700FF79F0 /* GCDWebServerFileRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebServerFileRequest.m; sourceTree = ""; }; + 92CC059D21FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebServerURLEncodedFormRequest.h; sourceTree = ""; }; + 92CC059F21FE3C1700FF79F0 /* GCDWebUploader.bundle */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.plug-in"; path = GCDWebUploader.bundle; sourceTree = ""; }; + 92CC05A021FE3C1700FF79F0 /* GCDWebUploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDWebUploader.h; sourceTree = ""; }; + 92CC05A121FE3C1700FF79F0 /* GCDWebUploader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDWebUploader.m; sourceTree = ""; }; + 92CC05C021FE3C6D00FF79F0 /* WebServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebServer.h; sourceTree = ""; }; + 92CC05C121FE3C6D00FF79F0 /* WebServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebServer.m; sourceTree = ""; }; + 92CC05C421FEDC9F00FF79F0 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; }; + 92CC05C621FEDD0B00FF79F0 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; }; + 92D3D56B232D86AC001B0D86 /* cocoa_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cocoa_common.h; path = ../../../../../../ui/drivers/cocoa/cocoa_common.h; sourceTree = ""; }; + 92D3D56C232D86AC001B0D86 /* cocoatouch_menu.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = cocoatouch_menu.m; path = ../../../../../../ui/drivers/cocoa/cocoatouch_menu.m; sourceTree = ""; }; + 92D3D56D232D86AC001B0D86 /* cocoa_common.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = cocoa_common.m; path = ../../../../../../ui/drivers/cocoa/cocoa_common.m; sourceTree = ""; }; + 92D3D56F232D86AC001B0D86 /* cocoa_defines.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = cocoa_defines.h; path = ../../../../../../ui/drivers/cocoa/cocoa_defines.h; sourceTree = ""; }; + 92D3D572232D8AEF001B0D86 /* ui_cocoatouch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ui_cocoatouch.m; path = ../../../../ui/drivers/ui_cocoatouch.m; sourceTree = ""; }; + 92E5DCD3231A5786006491BF /* modules */ = {isa = PBXFileReference; lastKnownFileType = folder; path = modules; sourceTree = ""; }; + 96366C5416C9AC3300D64A22 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = System/Library/Frameworks/CoreAudio.framework; sourceTree = SDKROOT; }; + 96366C5816C9ACF500D64A22 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; + 963C3C33186E3DED00A6EB1E /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = System/Library/Frameworks/GameController.framework; sourceTree = SDKROOT; }; + 9678945F1788EBD000D6CA69 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = Info.plist; path = iOS/Info.plist; sourceTree = SOURCE_ROOT; }; + 967894621788EBD800D6CA69 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = iOS/en.lproj/InfoPlist.strings; sourceTree = SOURCE_ROOT; }; + 96AFAE2916C1D4EA009DE44C /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 96AFAE2B16C1D4EA009DE44C /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 96AFAE2D16C1D4EA009DE44C /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 96AFAE2F16C1D4EA009DE44C /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; + 96AFAE3116C1D4EA009DE44C /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 9204BE111D319EF300BD49DB /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 9210C2F224B3A19100E6FE7C /* MetalKit.framework in Frameworks */, + 9210C2F324B3A19100E6FE7C /* Metal.framework in Frameworks */, + 92CC05C721FEDD0B00FF79F0 /* MobileCoreServices.framework in Frameworks */, + 92CC05C521FEDC9F00FF79F0 /* CFNetwork.framework in Frameworks */, + 9204BE121D319EF300BD49DB /* libz.dylib in Frameworks */, + 9204BE131D319EF300BD49DB /* QuartzCore.framework in Frameworks */, + 9204BE141D319EF300BD49DB /* GameController.framework in Frameworks */, + 9204BE151D319EF300BD49DB /* CoreText.framework in Frameworks */, + 9204BE161D319EF300BD49DB /* CoreLocation.framework in Frameworks */, + 9204BE171D319EF300BD49DB /* CoreMedia.framework in Frameworks */, + 9204BE181D319EF300BD49DB /* AVFoundation.framework in Frameworks */, + 9204BE191D319EF300BD49DB /* CoreVideo.framework in Frameworks */, + 9204BE1A1D319EF300BD49DB /* AudioToolbox.framework in Frameworks */, + 9204BE1B1D319EF300BD49DB /* CoreAudio.framework in Frameworks */, + 9204BE1C1D319EF300BD49DB /* UIKit.framework in Frameworks */, + 9204BE1D1D319EF300BD49DB /* Foundation.framework in Frameworks */, + 9204BE1E1D319EF300BD49DB /* CoreGraphics.framework in Frameworks */, + 9204BE1F1D319EF300BD49DB /* GLKit.framework in Frameworks */, + 9204BE201D319EF300BD49DB /* OpenGLES.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 926C77D421FD1E6500103EDE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 926C77F121FD26E800103EDE /* GameController.framework in Frameworks */, + 926C77EF21FD263800103EDE /* AudioToolbox.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 83D632D719ECFCC4009E3161 /* iOS */ = { + isa = PBXGroup; + children = ( + 9222F20A2315DD3D0097C0FD /* retroarch_logo.png */, + 83EB675F19EEAF050096F441 /* iOS/modules */, + 69D31DE31A547EC800EF4C92 /* iOS/Resources/Media.xcassets */, + ); + name = iOS; + path = Resources; + sourceTree = ""; + }; + 926C77D821FD1E6500103EDE /* tvOS */ = { + isa = PBXGroup; + children = ( + 92E5DCD3231A5786006491BF /* modules */, + 926C77E221FD1E6700103EDE /* Assets.xcassets */, + 926C77E421FD1E6700103EDE /* Info.plist */, + ); + path = tvOS; + sourceTree = ""; + }; + 92CC057E21FE3C1700FF79F0 /* GCDWebServer */ = { + isa = PBXGroup; + children = ( + 92CC057F21FE3C1700FF79F0 /* Core */, + 92CC058C21FE3C1700FF79F0 /* Responses */, + 92CC059521FE3C1700FF79F0 /* Requests */, + ); + path = GCDWebServer; + sourceTree = ""; + }; + 92CC057F21FE3C1700FF79F0 /* Core */ = { + isa = PBXGroup; + children = ( + 92CC058021FE3C1700FF79F0 /* GCDWebServerFunctions.h */, + 92CC058121FE3C1700FF79F0 /* GCDWebServerPrivate.h */, + 92CC058221FE3C1700FF79F0 /* GCDWebServerResponse.m */, + 92CC058321FE3C1700FF79F0 /* GCDWebServerConnection.h */, + 92CC058421FE3C1700FF79F0 /* GCDWebServer.h */, + 92CC058521FE3C1700FF79F0 /* GCDWebServerRequest.m */, + 92CC058621FE3C1700FF79F0 /* GCDWebServerHTTPStatusCodes.h */, + 92CC058721FE3C1700FF79F0 /* GCDWebServerResponse.h */, + 92CC058821FE3C1700FF79F0 /* GCDWebServerFunctions.m */, + 92CC058921FE3C1700FF79F0 /* GCDWebServer.m */, + 92CC058A21FE3C1700FF79F0 /* GCDWebServerConnection.m */, + 92CC058B21FE3C1700FF79F0 /* GCDWebServerRequest.h */, + ); + path = Core; + sourceTree = ""; + }; + 92CC058C21FE3C1700FF79F0 /* Responses */ = { + isa = PBXGroup; + children = ( + 92CC058D21FE3C1700FF79F0 /* GCDWebServerFileResponse.h */, + 92CC058E21FE3C1700FF79F0 /* GCDWebServerStreamedResponse.h */, + 92CC058F21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m */, + 92CC059021FE3C1700FF79F0 /* GCDWebServerDataResponse.h */, + 92CC059121FE3C1700FF79F0 /* GCDWebServerFileResponse.m */, + 92CC059221FE3C1700FF79F0 /* GCDWebServerDataResponse.m */, + 92CC059321FE3C1700FF79F0 /* GCDWebServerErrorResponse.h */, + 92CC059421FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m */, + ); + path = Responses; + sourceTree = ""; + }; + 92CC059521FE3C1700FF79F0 /* Requests */ = { + isa = PBXGroup; + children = ( + 92CC059621FE3C1700FF79F0 /* GCDWebServerDataRequest.h */, + 92CC059721FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.h */, + 92CC059821FE3C1700FF79F0 /* GCDWebServerFileRequest.h */, + 92CC059921FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m */, + 92CC059A21FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m */, + 92CC059B21FE3C1700FF79F0 /* GCDWebServerDataRequest.m */, + 92CC059C21FE3C1700FF79F0 /* GCDWebServerFileRequest.m */, + 92CC059D21FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.h */, + ); + path = Requests; + sourceTree = ""; + }; + 92CC059E21FE3C1700FF79F0 /* GCDWebUploader */ = { + isa = PBXGroup; + children = ( + 92CC059F21FE3C1700FF79F0 /* GCDWebUploader.bundle */, + 92CC05A021FE3C1700FF79F0 /* GCDWebUploader.h */, + 92CC05A121FE3C1700FF79F0 /* GCDWebUploader.m */, + ); + path = GCDWebUploader; + sourceTree = ""; + }; + 92CC05CC21FF782C00FF79F0 /* WebServer */ = { + isa = PBXGroup; + children = ( + 92CC05C021FE3C6D00FF79F0 /* WebServer.h */, + 92CC05C121FE3C6D00FF79F0 /* WebServer.m */, + 92CC057E21FE3C1700FF79F0 /* GCDWebServer */, + 92CC059E21FE3C1700FF79F0 /* GCDWebUploader */, + ); + path = WebServer; + sourceTree = ""; + }; + 92D3D565232D8661001B0D86 /* Sources */ = { + isa = PBXGroup; + children = ( + 92D3D566232D867C001B0D86 /* ui */, + ); + path = Sources; + sourceTree = ""; + }; + 92D3D566232D867C001B0D86 /* ui */ = { + isa = PBXGroup; + children = ( + 92D3D567232D8688001B0D86 /* drivers */, + 92D3D572232D8AEF001B0D86 /* ui_cocoatouch.m */, + ); + path = ui; + sourceTree = ""; + }; + 92D3D567232D8688001B0D86 /* drivers */ = { + isa = PBXGroup; + children = ( + 92D3D568232D868E001B0D86 /* cocoa */, + ); + path = drivers; + sourceTree = ""; + }; + 92D3D568232D868E001B0D86 /* cocoa */ = { + isa = PBXGroup; + children = ( + 92D3D56B232D86AC001B0D86 /* cocoa_common.h */, + 92D3D56D232D86AC001B0D86 /* cocoa_common.m */, + 92D3D56F232D86AC001B0D86 /* cocoa_defines.h */, + 92D3D56C232D86AC001B0D86 /* cocoatouch_menu.m */, + ); + path = cocoa; + sourceTree = ""; + }; + 96AFAE1A16C1D4EA009DE44C = { + isa = PBXGroup; + children = ( + 9222F2082315DAD50097C0FD /* Launch Screen.storyboard */, + 9222F1FE2314BA7C0097C0FD /* assets.zip */, + 96AFAE9C16C1D976009DE44C /* core */, + 9210C2FA24B4CB4900E6FE7C /* menu_pipeline.metal */, + 9210C2FB24B4CB4900E6FE7C /* Shaders.metal */, + 83D632D719ECFCC4009E3161 /* iOS */, + 926C77D821FD1E6500103EDE /* tvOS */, + 92D3D565232D8661001B0D86 /* Sources */, + 92CC05CC21FF782C00FF79F0 /* WebServer */, + 96AFAE2816C1D4EA009DE44C /* Frameworks */, + 96AFAE2616C1D4EA009DE44C /* Products */, + 96AFAE3416C1D4EA009DE44C /* Supporting Files */, + ); + indentWidth = 3; + sourceTree = ""; + tabWidth = 3; + }; + 96AFAE2616C1D4EA009DE44C /* Products */ = { + isa = PBXGroup; + children = ( + 9204BE2B1D319EF300BD49DB /* RetroArch.app */, + 926C77D721FD1E6500103EDE /* RetroArchTV.app */, + ); + name = Products; + sourceTree = ""; + }; + 96AFAE2816C1D4EA009DE44C /* Frameworks */ = { + isa = PBXGroup; + children = ( + 9210C2F124B3A19100E6FE7C /* Metal.framework */, + 9210C2F024B3A19100E6FE7C /* MetalKit.framework */, + 92CC05C621FEDD0B00FF79F0 /* MobileCoreServices.framework */, + 92CC05C421FEDC9F00FF79F0 /* CFNetwork.framework */, + 926C77F021FD26E800103EDE /* GameController.framework */, + 926C77EE21FD263800103EDE /* AudioToolbox.framework */, + 926C77EC21FD261600103EDE /* CoreAudio.framework */, + 5040F04F1AE47ED4006F6972 /* libz.dylib */, + 50C3B1AD1AB1107100F478D3 /* QuartzCore.framework */, + 696012F119F3389A006A1088 /* CoreText.framework */, + 963C3C33186E3DED00A6EB1E /* GameController.framework */, + 50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */, + 501881ED184BB54C006F665D /* CoreMedia.framework */, + 501881EB184BAD6D006F665D /* AVFoundation.framework */, + 50E7189E184B88AA001956CE /* CoreVideo.framework */, + 96366C5816C9ACF500D64A22 /* AudioToolbox.framework */, + 96366C5416C9AC3300D64A22 /* CoreAudio.framework */, + 96AFAE2916C1D4EA009DE44C /* UIKit.framework */, + 96AFAE2B16C1D4EA009DE44C /* Foundation.framework */, + 96AFAE2D16C1D4EA009DE44C /* CoreGraphics.framework */, + 96AFAE2F16C1D4EA009DE44C /* GLKit.framework */, + 96AFAE3116C1D4EA009DE44C /* OpenGLES.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 96AFAE3416C1D4EA009DE44C /* Supporting Files */ = { + isa = PBXGroup; + children = ( + 967894611788EBD800D6CA69 /* InfoPlist.strings */, + 9678945F1788EBD000D6CA69 /* Info.plist */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 96AFAE9C16C1D976009DE44C /* core */ = { + isa = PBXGroup; + children = ( + D48581DC16F823E2004BEB17 /* griffin */, + ); + name = core; + sourceTree = ""; + }; + D48581DC16F823E2004BEB17 /* griffin */ = { + isa = PBXGroup; + children = ( + 50521A431AA23BF500185CC9 /* griffin_objc.m */, + 501232C9192E5FC40063A359 /* griffin.c */, + 9210C2F424B3A32D00E6FE7C /* griffin_cpp.cpp */, + 9210C2F524B3A32D00E6FE7C /* griffin_glslang.cpp */, + ); + name = griffin; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 9204BE091D319EF300BD49DB /* RetroArchiOS11 */ = { + isa = PBXNativeTarget; + buildConfigurationList = 9204BE281D319EF300BD49DB /* Build configuration list for PBXNativeTarget "RetroArchiOS11" */; + buildPhases = ( + 9204BE0A1D319EF300BD49DB /* Sources */, + 9204BE111D319EF300BD49DB /* Frameworks */, + 9204BE271D319EF300BD49DB /* ShellScript */, + 9204BE211D319EF300BD49DB /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RetroArchiOS11; + productName = RetroArch; + productReference = 9204BE2B1D319EF300BD49DB /* RetroArch.app */; + productType = "com.apple.product-type.application"; + }; + 926C77D621FD1E6500103EDE /* RetroArchTV */ = { + isa = PBXNativeTarget; + buildConfigurationList = 926C77E921FD1E6700103EDE /* Build configuration list for PBXNativeTarget "RetroArchTV" */; + buildPhases = ( + 926C77D321FD1E6500103EDE /* Sources */, + 926C77D421FD1E6500103EDE /* Frameworks */, + 92CC057521FE2D4900FF79F0 /* ShellScript */, + 926C77D521FD1E6500103EDE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = RetroArchTV; + productName = RetroArchTV; + productReference = 926C77D721FD1E6500103EDE /* RetroArchTV.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 96AFAE1C16C1D4EA009DE44C /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0450; + ORGANIZATIONNAME = RetroArch; + TargetAttributes = { + 9204BE091D319EF300BD49DB = { + DevelopmentTeam = R72X3BF4KE; + DevelopmentTeamName = RetroArch; + }; + 926C77D621FD1E6500103EDE = { + CreatedOnToolsVersion = 10.1; + DevelopmentTeam = R72X3BF4KE; + ProvisioningStyle = Automatic; + }; + }; + }; + buildConfigurationList = 96AFAE1F16C1D4EA009DE44C /* Build configuration list for PBXProject "RetroArch_iOS11_Metal" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + English, + en, + Base, + ); + mainGroup = 96AFAE1A16C1D4EA009DE44C; + productRefGroup = 96AFAE2616C1D4EA009DE44C /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 9204BE091D319EF300BD49DB /* RetroArchiOS11 */, + 926C77D621FD1E6500103EDE /* RetroArchTV */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 9204BE211D319EF300BD49DB /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 9222F2092315DAD50097C0FD /* Launch Screen.storyboard in Resources */, + 9204BE231D319EF300BD49DB /* InfoPlist.strings in Resources */, + 92CC05BC21FE3C1700FF79F0 /* GCDWebUploader.bundle in Resources */, + 9222F20B2315DD3D0097C0FD /* retroarch_logo.png in Resources */, + 929784502200EEE400989A60 /* iOS/Resources/Media.xcassets in Resources */, + 9204BE261D319EF300BD49DB /* iOS/modules in Resources */, + 9222F1FF2314BA7C0097C0FD /* assets.zip in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 926C77D521FD1E6500103EDE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 92CC05BD21FE3C1700FF79F0 /* GCDWebUploader.bundle in Resources */, + 92E5DCD4231A5786006491BF /* modules in Resources */, + 9222F2002314BA7C0097C0FD /* assets.zip in Resources */, + 926C77E321FD1E6700103EDE /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + 9204BE271D319EF300BD49DB /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "./code-sign-cores.sh\n"; + }; + 92CC057521FE2D4900FF79F0 /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "./code-sign-cores.sh tvos\n"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 9204BE0A1D319EF300BD49DB /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 92CC05B821FE3C1700FF79F0 /* GCDWebServerDataRequest.m in Sources */, + 92CC05A421FE3C1700FF79F0 /* GCDWebServerRequest.m in Sources */, + 92CC05AA21FE3C1700FF79F0 /* GCDWebServerConnection.m in Sources */, + 92CC05BE21FE3C1700FF79F0 /* GCDWebUploader.m in Sources */, + 92CC05B621FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m in Sources */, + 92CC05AC21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m in Sources */, + 92CC05A621FE3C1700FF79F0 /* GCDWebServerFunctions.m in Sources */, + 9210C2F824B3A32D00E6FE7C /* griffin_glslang.cpp in Sources */, + 92CC05A821FE3C1700FF79F0 /* GCDWebServer.m in Sources */, + 9204BE0D1D319EF300BD49DB /* griffin_objc.m in Sources */, + 9204BE101D319EF300BD49DB /* griffin.c in Sources */, + 92CC05B421FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m in Sources */, + 92CC05B021FE3C1700FF79F0 /* GCDWebServerDataResponse.m in Sources */, + 92CC05C221FE3C6D00FF79F0 /* WebServer.m in Sources */, + 9210C2FC24B4CB4900E6FE7C /* menu_pipeline.metal in Sources */, + 9210C2FE24B4CB4900E6FE7C /* Shaders.metal in Sources */, + 92CC05BA21FE3C1700FF79F0 /* GCDWebServerFileRequest.m in Sources */, + 92CC05AE21FE3C1700FF79F0 /* GCDWebServerFileResponse.m in Sources */, + 9210C2F624B3A32D00E6FE7C /* griffin_cpp.cpp in Sources */, + 92CC05B221FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m in Sources */, + 92CC05A221FE3C1700FF79F0 /* GCDWebServerResponse.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 926C77D321FD1E6500103EDE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 92CC05B921FE3C1700FF79F0 /* GCDWebServerDataRequest.m in Sources */, + 92CC05A521FE3C1700FF79F0 /* GCDWebServerRequest.m in Sources */, + 92CC05AB21FE3C1700FF79F0 /* GCDWebServerConnection.m in Sources */, + 92CC05BF21FE3C1700FF79F0 /* GCDWebUploader.m in Sources */, + 92CC05B721FE3C1700FF79F0 /* GCDWebServerMultiPartFormRequest.m in Sources */, + 92CC05AD21FE3C1700FF79F0 /* GCDWebServerErrorResponse.m in Sources */, + 92CC05A721FE3C1700FF79F0 /* GCDWebServerFunctions.m in Sources */, + 9210C2F924B3A32D00E6FE7C /* griffin_glslang.cpp in Sources */, + 92CC05A921FE3C1700FF79F0 /* GCDWebServer.m in Sources */, + 926C77EA21FD20C100103EDE /* griffin_objc.m in Sources */, + 926C77EB21FD20C400103EDE /* griffin.c in Sources */, + 92CC05B521FE3C1700FF79F0 /* GCDWebServerURLEncodedFormRequest.m in Sources */, + 92CC05B121FE3C1700FF79F0 /* GCDWebServerDataResponse.m in Sources */, + 92CC05C321FE3C6D00FF79F0 /* WebServer.m in Sources */, + 9210C2FD24B4CB4900E6FE7C /* menu_pipeline.metal in Sources */, + 9210C2FF24B4CB4900E6FE7C /* Shaders.metal in Sources */, + 92CC05BB21FE3C1700FF79F0 /* GCDWebServerFileRequest.m in Sources */, + 92CC05AF21FE3C1700FF79F0 /* GCDWebServerFileResponse.m in Sources */, + 9210C2F724B3A32D00E6FE7C /* griffin_cpp.cpp in Sources */, + 92CC05B321FE3C1700FF79F0 /* GCDWebServerStreamedResponse.m in Sources */, + 92CC05A321FE3C1700FF79F0 /* GCDWebServerResponse.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 967894611788EBD800D6CA69 /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + 967894621788EBD800D6CA69 /* en */, + ); + name = InfoPlist.strings; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 9204BE291D319EF300BD49DB /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + CURRENT_PROJECT_VERSION = 1.8.9; + DEPS_DIR = "$(SRCBASE)/deps"; + DEVELOPMENT_TEAM = R72X3BF4KE; + ENABLE_BITCODE = NO; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = ( + ../../, + "../../libretro-common/include", + "../../libretro-common/include/compat/zlib", + ../../deps/stb, + ../../deps/rcheevos/include, + ../../deps, + "$(DEPS_DIR)/glslang", + "$(DEPS_DIR)/SPIRV-Cross", + "$(DEPS_DIR)/glslang/glslang/glslang/Public", + "$(DEPS_DIR)/glslang/glslang/glslang/OSDependent/Unix", + "$(DEPS_DIR)/glslang/glslang/SPIRV", + "$(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent", + ); + INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_NO_PIE = YES; + LIBRARY_SEARCH_PATHS = ""; + MARKETING_VERSION = 1.8.9; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = ( + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_STB_FONT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_NETPLAYDISCOVERY", + "-DHAVE_RUNAHEAD", + "-DHAVE_TRANSLATE", + "-DHAVE_GRIFFIN", + "-DHAVE_STB_VORBIS", + "-DHAVE_MINIUPNPC", + "-DHAVE_BUILTINMINIUPNPC", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_UPDATE_CORES", + "-DHAVE_ONLINE_UPDATER", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DRC_DISABLE_LUA", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_RGUI", + "-DHAVE_CONFIGFILE", + "-DHAVE_MENU", + "-DHAVE_GFX_WIDGETS", + "-DHAVE_LIBRETRODB", + "-DHAVE_AUDIOMIXER", + "-DIOS", + "-DHAVE_OPENGL", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_OVERLAY", + "-DHAVE_VIDEO_LAYOUT", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_FILTERS_BUILTIN", + "-DHAVE_MATERIALUI", + "-DHAVE_XMB", + "-DHAVE_OZONE", + "-DHAVE_SHADERPIPELINE", + "-D_LZMA_UINT32_IS_ULONG", + "-DHAVE_MFI", + "-DHAVE_KEYMAPPER", + "-DHAVE_COCOA_METAL", + "-DHAVE_METAL", + "-DHAVE_SLANG", + "-DHAVE_SPIRV_CROSS", + "-DHAVE_GLSLANG", + "-DWANT_GLSLANG", + "-DGLSLANG_OSINCLUDE_UNIX", + "-DENABLE_HLSL", + "-DHAVE_BUILTINGLSLANG", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; + PRODUCT_NAME = RetroArch; + PROVISIONING_PROFILE = ""; + SRCBASE = "$(SRCROOT)/../.."; + VALID_ARCHS = "armv7 arm64"; + WARNING_CFLAGS = "-Wno-invalid-source-encoding"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 9204BE2A1D319EF300BD49DB /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CODE_SIGN_IDENTITY = "iPhone Developer"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist"; + CURRENT_PROJECT_VERSION = 1.8.9; + DEPS_DIR = "$(SRCBASE)/deps"; + DEVELOPMENT_TEAM = R72X3BF4KE; + ENABLE_BITCODE = NO; + GCC_PRECOMPILE_PREFIX_HEADER = NO; + GCC_PREFIX_HEADER = ""; + HEADER_SEARCH_PATHS = ( + ../../, + "../../libretro-common/include", + "../../libretro-common/include/compat/zlib", + ../../deps/stb, + ../../deps/rcheevos/include, + ../../deps, + "$(DEPS_DIR)/glslang", + "$(DEPS_DIR)/SPIRV-Cross", + "$(DEPS_DIR)/glslang/glslang/glslang/Public", + "$(DEPS_DIR)/glslang/glslang/glslang/OSDependent/Unix", + "$(DEPS_DIR)/glslang/glslang/SPIRV", + "$(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent", + ); + INFOPLIST_FILE = "$(SRCROOT)/iOS/Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + LD_NO_PIE = YES; + LIBRARY_SEARCH_PATHS = ""; + MARKETING_VERSION = 1.8.9; + MTL_FAST_MATH = YES; + "OTHER_CFLAGS[arch=*]" = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DNDEBUG", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_STB_FONT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_NETPLAYDISCOVERY", + "-DHAVE_RUNAHEAD", + "-DHAVE_TRANSLATE", + "-DHAVE_GRIFFIN", + "-DHAVE_STB_VORBIS", + "-DHAVE_MINIUPNPC", + "-DHAVE_BUILTINMINIUPNPC", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_UPDATE_CORES", + "-DHAVE_ONLINE_UPDATER", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DRC_DISABLE_LUA", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_RGUI", + "-DHAVE_CONFIGFILE", + "-DHAVE_MENU", + "-DHAVE_GFX_WIDGETS", + "-DHAVE_LIBRETRODB", + "-DHAVE_AUDIOMIXER", + "-DIOS", + "-DHAVE_OPENGL", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DRARCH_INTERNAL", + "-DHAVE_OVERLAY", + "-DHAVE_VIDEO_LAYOUT", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + "-DHAVE_THREADS", + "-DHAVE_FILTERS_BUILTIN", + "-DHAVE_7ZIP", + "-DHAVE_MATERIALUI", + "-DHAVE_XMB", + "-DHAVE_OZONE", + "-DHAVE_SHADERPIPELINE", + "-D_LZMA_UINT32_IS_ULONG", + "-DHAVE_MFI", + "-DHAVE_KEYMAPPER", + "-DHAVE_COCOA_METAL", + "-DHAVE_METAL", + "-DHAVE_SLANG", + "-DHAVE_SPIRV_CROSS", + "-DHAVE_GLSLANG", + "-DWANT_GLSLANG", + "-DGLSLANG_OSINCLUDE_UNIX", + "-DENABLE_HLSL", + "-DHAVE_BUILTINGLSLANG", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; + PRODUCT_NAME = RetroArch; + PROVISIONING_PROFILE = ""; + SRCBASE = "$(SRCROOT)/../.."; + VALID_ARCHS = "armv7 arm64"; + WARNING_CFLAGS = "-Wno-invalid-source-encoding"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; + 926C77E721FD1E6700103EDE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1.8.9; + DEBUG_INFORMATION_FORMAT = dwarf; + DEPS_DIR = "$(SRCBASE)/deps"; + DEVELOPMENT_TEAM = R72X3BF4KE; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + HEADER_SEARCH_PATHS = ( + ../../, + "../../libretro-common/include", + "../../libretro-common/include/compat/zlib", + ../../deps/stb, + ../../deps/rcheevos/include, + ../../deps, + "$(DEPS_DIR)/glslang", + "$(DEPS_DIR)/SPIRV-Cross", + "$(DEPS_DIR)/glslang/glslang/glslang/Public", + "$(DEPS_DIR)/glslang/glslang/glslang/OSDependent/Unix", + "$(DEPS_DIR)/glslang/glslang/SPIRV", + "$(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent", + ); + INFOPLIST_FILE = "$(SRCROOT)/tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.8.9; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + OTHER_CFLAGS = ( + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_STB_FONT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_NETPLAYDISCOVERY", + "-DHAVE_RUNAHEAD", + "-DHAVE_TRANSLATE", + "-DHAVE_GRIFFIN", + "-DHAVE_STB_VORBIS", + "-DHAVE_MINIUPNPC", + "-DHAVE_BUILTINMINIUPNPC", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_UPDATE_CORES", + "-DHAVE_ONLINE_UPDATER", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DRC_DISABLE_LUA", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_RGUI", + "-DHAVE_CONFIGFILE", + "-DHAVE_MENU", + "-DHAVE_GFX_WIDGETS", + "-DHAVE_LIBRETRODB", + "-DHAVE_AUDIOMIXER", + "-DIOS", + "-DHAVE_OPENGL", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_VIDEO_LAYOUT", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_FILTERS_BUILTIN", + "-DHAVE_XMB", + "-DHAVE_OZONE", + "-DHAVE_SHADERPIPELINE", + "-D_LZMA_UINT32_IS_ULONG", + "-DHAVE_MFI", + "-DHAVE_KEYMAPPER", + "-DHAVE_COCOA_METAL", + "-DHAVE_METAL", + "-DHAVE_SLANG", + "-DHAVE_SPIRV_CROSS", + "-DHAVE_GLSLANG", + "-DWANT_GLSLANG", + "-DGLSLANG_OSINCLUDE_UNIX", + "-DENABLE_HLSL", + "-DHAVE_BUILTINGLSLANG", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.tvos.RetroArch; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + SRCBASE = "$(SRCROOT)/../.."; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 12.1; + }; + name = Debug; + }; + 926C77E821FD1E6700103EDE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image"; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1.8.9; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + DEPS_DIR = "$(SRCBASE)/deps"; + DEVELOPMENT_TEAM = R72X3BF4KE; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + HEADER_SEARCH_PATHS = ( + ../../, + "../../libretro-common/include", + "../../libretro-common/include/compat/zlib", + ../../deps/stb, + ../../deps/rcheevos/include, + ../../deps, + "$(DEPS_DIR)/glslang", + "$(DEPS_DIR)/SPIRV-Cross", + "$(DEPS_DIR)/glslang/glslang/glslang/Public", + "$(DEPS_DIR)/glslang/glslang/glslang/OSDependent/Unix", + "$(DEPS_DIR)/glslang/glslang/SPIRV", + "$(DEPS_DIR)/glslang/glslang/glslang/MachineIndependent", + ); + INFOPLIST_FILE = "$(SRCROOT)/tvOS/Info.plist"; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; + MARKETING_VERSION = 1.8.9; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DNDEBUG", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_STB_FONT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_NETPLAYDISCOVERY", + "-DHAVE_RUNAHEAD", + "-DHAVE_TRANSLATE", + "-DHAVE_GRIFFIN", + "-DHAVE_STB_VORBIS", + "-DHAVE_MINIUPNPC", + "-DHAVE_BUILTINMINIUPNPC", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_UPDATE_CORES", + "-DHAVE_ONLINE_UPDATER", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DRC_DISABLE_LUA", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_RGUI", + "-DHAVE_CONFIGFILE", + "-DHAVE_MENU", + "-DHAVE_GFX_WIDGETS", + "-DHAVE_LIBRETRODB", + "-DHAVE_AUDIOMIXER", + "-DIOS", + "-DHAVE_OPENGL", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-DHAVE_COREAUDIO", + "-DHAVE_DYNAMIC", + "-DHAVE_VIDEO_LAYOUT", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + "-DRARCH_INTERNAL", + "-DHAVE_THREADS", + "-DHAVE_FILTERS_BUILTIN", + "-DHAVE_7ZIP", + "-DHAVE_XMB", + "-DHAVE_OZONE", + "-DHAVE_SHADERPIPELINE", + "-D_LZMA_UINT32_IS_ULONG", + "-DHAVE_MFI", + "-DHAVE_KEYMAPPER", + "-DHAVE_COCOA_METAL", + "-DHAVE_METAL", + "-DHAVE_SLANG", + "-DHAVE_SPIRV_CROSS", + "-DHAVE_GLSLANG", + "-DWANT_GLSLANG", + "-DGLSLANG_OSINCLUDE_UNIX", + "-DENABLE_HLSL", + "-DHAVE_BUILTINGLSLANG", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.tvos.RetroArch; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + SRCBASE = "$(SRCROOT)/../.."; + TARGETED_DEVICE_FAMILY = 3; + TVOS_DEPLOYMENT_TARGET = 12.1; + }; + name = Release; + }; + 96AFAE5216C1D4EA009DE44C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + COPY_PHASE_STRIP = NO; + ENABLE_BITCODE = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ../; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + ONLY_ACTIVE_ARCH = NO; + OTHER_CFLAGS = ( + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_STB_FONT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_NETPLAYDISCOVERY", + "-DHAVE_RUNAHEAD", + "-DHAVE_TRANSLATE", + "-DHAVE_GRIFFIN", + "-DHAVE_STB_VORBIS", + "-DHAVE_MINIUPNPC", + "-DHAVE_BUILTINMINIUPNPC", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_UPDATE_CORES", + "-DHAVE_ONLINE_UPDATER", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DRC_DISABLE_LUA", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_RGUI", + "-DHAVE_CONFIGFILE", + "-DHAVE_MENU", + "-DHAVE_GFX_WIDGETS", + "-DHAVE_LIBRETRODB", + "-DHAVE_AUDIOMIXER", + "-DIOS", + "-DHAVE_DYNAMIC", + "-DHAVE_OPENGL", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-DHAVE_THREADS", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-std=gnu99", + "-DHAVE_COREAUDIO", + "-DHAVE_OVERLAY", + "-DHAVE_VIDEO_LAYOUT", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + ); + "OTHER_LDFLAGS[arch=*]" = "-Wl,-segalign,4000"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "armv7 arm64"; + }; + name = Debug; + }; + 96AFAE5316C1D4EA009DE44C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = ""; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = ""; + COPY_PHASE_STRIP = NO; + ENABLE_BITCODE = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_OPTIMIZATION_LEVEL = 2; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + HEADER_SEARCH_PATHS = ../; + IPHONEOS_DEPLOYMENT_TARGET = 11.0; + OTHER_CFLAGS = ( + "-DNS_BLOCK_ASSERTIONS=1", + "-DNDEBUG", + "-DDONT_WANT_ARM_OPTIMIZATIONS", + "-DHAVE_NETWORKGAMEPAD", + "-DHAVE_STB_FONT", + "-DHAVE_HID", + "-DHAVE_NETWORKING", + "-DHAVE_NETPLAYDISCOVERY", + "-DHAVE_RUNAHEAD", + "-DHAVE_TRANSLATE", + "-DHAVE_GRIFFIN", + "-DHAVE_STB_VORBIS", + "-DHAVE_MINIUPNPC", + "-DHAVE_BUILTINMINIUPNPC", + "-DHAVE_UPDATE_ASSETS", + "-DHAVE_UPDATE_CORES", + "-DHAVE_ONLINE_UPDATER", + "-DHAVE_LANGEXTRA", + "-DHAVE_CHEEVOS", + "-DRC_DISABLE_LUA", + "-DHAVE_IMAGEVIEWER", + "-DHAVE_RGUI", + "-DHAVE_CONFIGFILE", + "-DHAVE_MENU", + "-DHAVE_GFX_WIDGETS", + "-DHAVE_LIBRETRODB", + "-DHAVE_AUDIOMIXER", + "-DIOS", + "-DHAVE_DYNAMIC", + "-DHAVE_OPENGL", + "-DHAVE_OPENGLES", + "-DHAVE_OPENGLES2", + "-DHAVE_CC_RESAMPLER", + "-DHAVE_GLSL", + "-DINLINE=inline", + "-DHAVE_THREADS", + "-D__LIBRETRO__", + "-DRARCH_MOBILE", + "-std=gnu99", + "-DHAVE_COREAUDIO", + "-DHAVE_OVERLAY", + "-DHAVE_VIDEO_LAYOUT", + "-DHAVE_ZLIB", + "-DHAVE_RPNG", + "-DHAVE_RJPEG", + "-DHAVE_RBMP", + "-DHAVE_RTGA", + "-DHAVE_COCOATOUCH", + "-DHAVE_MAIN", + ); + "OTHER_LDFLAGS[arch=*]" = "-Wl,-segalign,4000"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + VALID_ARCHS = "armv7 arm64"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 9204BE281D319EF300BD49DB /* Build configuration list for PBXNativeTarget "RetroArchiOS11" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 9204BE291D319EF300BD49DB /* Debug */, + 9204BE2A1D319EF300BD49DB /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 926C77E921FD1E6700103EDE /* Build configuration list for PBXNativeTarget "RetroArchTV" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 926C77E721FD1E6700103EDE /* Debug */, + 926C77E821FD1E6700103EDE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 96AFAE1F16C1D4EA009DE44C /* Build configuration list for PBXProject "RetroArch_iOS11_Metal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 96AFAE5216C1D4EA009DE44C /* Debug */, + 96AFAE5316C1D4EA009DE44C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 96AFAE1C16C1D4EA009DE44C /* Project object */; +} diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..58085afb06 --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000000..18d981003d --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS.xccheckout b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS.xccheckout new file mode 100644 index 0000000000..92a419b12f --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS.xccheckout @@ -0,0 +1,101 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 6D7FAF49-495D-480E-B0C9-8C39AC77CE3C + IDESourceControlProjectName + RetroArch_iOS + IDESourceControlProjectOriginsDictionary + + 6B9F0B13E5864452B91F13C09B7ED9EB989E82AD + https://github.com/libretro/retroarch-joypad-autoconfig.git + 76200F0D6584D865E96F58DE862E738E88B23A3C + https://github.com/libretro/libretro-super.git + A267D9543F572B4C32EC6E1B876E3B9BFE4DE8F6 + https://github.com/libretro/retroarch-assets.git + C3AEE01BDA902108663DB5DB9CD7916436919463 + https://github.com/libretro/libretro-database.git + C7C12374C7051F8843B3EFA1ACCAF2907102CCF7 + https://github.com/libretro/RetroArch.git + EF363D58F01B3FB341FA6C851870E60E4F080E97 + https://github.com/libretro/common-overlays.git + + IDESourceControlProjectPath + apple/iOS/RetroArch_iOS.xcodeproj + IDESourceControlProjectRelativeInstallPathDictionary + + 6B9F0B13E5864452B91F13C09B7ED9EB989E82AD + ../../../..media/autoconfig + 76200F0D6584D865E96F58DE862E738E88B23A3C + ../../../../.. + A267D9543F572B4C32EC6E1B876E3B9BFE4DE8F6 + ../../../..media/assets + C3AEE01BDA902108663DB5DB9CD7916436919463 + ../../../..media/libretrodb + C7C12374C7051F8843B3EFA1ACCAF2907102CCF7 + ../../../.. + EF363D58F01B3FB341FA6C851870E60E4F080E97 + ../../../..media/overlays + + IDESourceControlProjectURL + https://github.com/libretro/RetroArch.git + IDESourceControlProjectVersion + 111 + IDESourceControlProjectWCCIdentifier + C7C12374C7051F8843B3EFA1ACCAF2907102CCF7 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 76200F0D6584D865E96F58DE862E738E88B23A3C + IDESourceControlWCCName + + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + A267D9543F572B4C32EC6E1B876E3B9BFE4DE8F6 + IDESourceControlWCCName + assets + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 6B9F0B13E5864452B91F13C09B7ED9EB989E82AD + IDESourceControlWCCName + autoconfig + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + C3AEE01BDA902108663DB5DB9CD7916436919463 + IDESourceControlWCCName + libretrodb + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + EF363D58F01B3FB341FA6C851870E60E4F080E97 + IDESourceControlWCCName + overlays + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + C7C12374C7051F8843B3EFA1ACCAF2907102CCF7 + IDESourceControlWCCName + retroarch + + + + diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS10.xcscmblueprint b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS10.xcscmblueprint new file mode 100644 index 0000000000..b1429b86f1 --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS10.xcscmblueprint @@ -0,0 +1,30 @@ +{ + "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "C7C12374C7051F8843B3EFA1ACCAF2907102CCF7", + "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { + + }, + "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { + "76200F0D6584D865E96F58DE862E738E88B23A3C" : 9223372036854775807, + "C7C12374C7051F8843B3EFA1ACCAF2907102CCF7" : 9223372036854775807 + }, + "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "8BA6E269-73BB-4AAE-8F4A-967CCF8ACA14", + "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { + "76200F0D6584D865E96F58DE862E738E88B23A3C" : "", + "C7C12374C7051F8843B3EFA1ACCAF2907102CCF7" : "retroarch\/" + }, + "DVTSourceControlWorkspaceBlueprintNameKey" : "RetroArch_iOS10", + "DVTSourceControlWorkspaceBlueprintVersion" : 204, + "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "pkg\/apple\/RetroArch_iOS10.xcodeproj", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/libretro\/libretro-super.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "76200F0D6584D865E96F58DE862E738E88B23A3C" + }, + { + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/libretro\/RetroArch.git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", + "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "C7C12374C7051F8843B3EFA1ACCAF2907102CCF7" + } + ] +} \ No newline at end of file diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings new file mode 100644 index 0000000000..0c67376eba --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings @@ -0,0 +1,5 @@ + + + + + diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme new file mode 100644 index 0000000000..4f7a7ef22a --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme new file mode 100644 index 0000000000..e819f4a633 --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Debug.xcscheme b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Debug.xcscheme new file mode 100644 index 0000000000..1c1ea00979 --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Debug.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Release.xcscheme b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Release.xcscheme new file mode 100644 index 0000000000..c5a53eb54c --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Release.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/retroarch.c b/retroarch.c index 17dd85ae00..aa53a8b92b 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1005,11 +1005,8 @@ static const ui_companion_driver_t *ui_companion_drivers[] = { #if defined(_WIN32) && !defined(_XBOX) && !defined(__WINRT__) &ui_companion_win32, #endif -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX &ui_companion_cocoa, -#endif -#ifdef HAVE_COCOATOUCH - &ui_companion_cocoatouch, #endif &ui_companion_null, NULL @@ -33002,7 +32999,6 @@ bool video_driver_translate_coord_viewport( int norm_vp_height = (int)vp->height; int norm_full_vp_width = (int)vp->full_width; int norm_full_vp_height = (int)vp->full_height; - if (norm_vp_width <= 0 || norm_vp_height <= 0 || norm_full_vp_width <= 0 || @@ -33040,7 +33036,6 @@ bool video_driver_translate_coord_viewport( *res_y = scaled_y; *res_screen_x = scaled_screen_x; *res_screen_y = scaled_screen_y; - return true; } diff --git a/ui/drivers/cocoa/apple_platform.h b/ui/drivers/cocoa/apple_platform.h index 0bdc062051..b8d007461f 100644 --- a/ui/drivers/cocoa/apple_platform.h +++ b/ui/drivers/cocoa/apple_platform.h @@ -1,10 +1,14 @@ #ifndef COCOA_APPLE_PLATFORM_H #define COCOA_APPLE_PLATFORM_H -#if defined(HAVE_COCOA_METAL) +#if defined(HAVE_COCOA_METAL) || defined(HAVE_COCOATOUCH) + +#ifdef HAVE_COCOA_METAL #import #import +#endif +#if !defined(HAVE_COCOATOUCH) @interface WindowListener : NSResponder @end @@ -22,6 +26,7 @@ } @end +#endif @protocol ApplePlatform @@ -48,6 +53,31 @@ extern id apple_platform; id apple_platform; + +#if defined(HAVE_COCOATOUCH) +@interface RetroArch_iOS : UINavigationController { + UIView *_renderView; + apple_view_type_t _vt; +} + +@property (nonatomic) UIWindow* window; +@property (nonatomic) NSString* documentsDirectory; +@property (nonatomic) RAMenuBase* mainmenu; +@property (nonatomic) int menu_count; + ++ (RetroArch_iOS*)get; + +- (void)showGameView; +- (void)toggleUI; +- (void)supportOtherAudioSessions; + +- (void)refreshSystemConfig; +- (void)mainMenuPushPop: (bool)pushp; +- (void)mainMenuRefresh; +@end + +#else @interface RetroArch_OSX : NSObject { NSWindow *_window; apple_view_type_t _vt; @@ -55,6 +85,8 @@ id apple_platform; id _sleepActivity; WindowListener *_listener; } +#endif + #elif defined(HAVE_COCOA) id apple_platform; #if (defined(__MACH__) && (defined(__ppc__) || defined(__ppc64__))) @@ -67,7 +99,7 @@ id apple_platform; } #endif -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX @property(nonatomic, retain) NSWindow IBOutlet *window; @end diff --git a/ui/drivers/cocoa/cocoa_common.h b/ui/drivers/cocoa/cocoa_common.h index b785221c6a..695561baf2 100644 --- a/ui/drivers/cocoa/cocoa_common.h +++ b/ui/drivers/cocoa/cocoa_common.h @@ -57,6 +57,7 @@ typedef enum apple_view_type { #import #endif + /*********************************************/ /* RAMenuBase */ /* A menu class that displays RAMenuItemBase */ @@ -81,25 +82,6 @@ typedef enum apple_view_type { + (CocoaView*)get; @end -@interface RetroArch_iOS : UINavigationController - -@property (nonatomic) UIWindow* window; -@property (nonatomic) NSString* documentsDirectory; -@property (nonatomic) RAMenuBase* mainmenu; -@property (nonatomic) int menu_count; - -+ (RetroArch_iOS*)get; - -- (void)showGameView; -- (void)toggleUI; -- (void)supportOtherAudioSessions; - -- (void)refreshSystemConfig; -- (void)mainMenuPushPop: (bool)pushp; -- (void)mainMenuRefresh; -@end - void get_ios_version(int *major, int *minor); #endif @@ -112,7 +94,7 @@ typedef struct } apple_frontend_settings_t; extern apple_frontend_settings_t apple_frontend_settings; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX #include @interface CocoaView : NSView diff --git a/ui/drivers/cocoa/cocoa_common.m b/ui/drivers/cocoa/cocoa_common.m index 848eae740d..e163fff64f 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -29,6 +29,7 @@ #ifdef HAVE_COCOATOUCH #import "GCDWebUploader.h" #import "WebServer.h" +#include "apple_platform.h" #endif @@ -46,13 +47,13 @@ void *glkitview_init(void); @implementation CocoaView -#if defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && defined(HAVE_COCOA_METAL) - (BOOL)layer:(CALayer *)layer shouldInheritContentsScale:(CGFloat)newScale fromWindow:(NSWindow *)window { return YES; } #endif -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX - (void)scrollWheel:(NSEvent *)theEvent { cocoa_input_data_t *apple = (cocoa_input_data_t*)input_driver_get_data(); (void)apple; @@ -74,7 +75,7 @@ void *glkitview_init(void); { self = [super init]; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX [self setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; #endif @@ -83,10 +84,14 @@ void *glkitview_init(void); cocoa_view.data = (CocoaView*)self; [self registerForDraggedTypes:[NSArray arrayWithObjects:NSColorPboardType, NSFilenamesPboardType, nil]]; -#elif defined(HAVE_COCOA_METAL) +#elif !defined(HAVE_COCOATOUCH) && defined(HAVE_COCOA_METAL) [self registerForDraggedTypes:@[NSColorPboardType, NSFilenamesPboardType]]; #elif defined(HAVE_COCOATOUCH) +#if defined(HAVE_COCOA_METAL) + self.view = [UIView new]; +#else self.view = (BRIDGE GLKView*)glkitview_init(); +#endif #if TARGET_OS_IOS UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(showNativeMenu)]; swipe.numberOfTouchesRequired = 4; @@ -108,7 +113,7 @@ void *glkitview_init(void); return self; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if TARGET_OS_OSX - (void)setFrame:(NSRect)frameRect { [super setFrame:frameRect]; @@ -169,7 +174,7 @@ void *glkitview_init(void); #elif TARGET_OS_IOS -(void) showNativeMenu { dispatch_async(dispatch_get_main_queue(), ^{ - [[RetroArch_iOS get] toggleUI]; + command_event(CMD_EVENT_MENU_TOGGLE, NULL); }); } diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index ba8c954366..e2bdeffb06 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -26,6 +26,7 @@ #include #include "cocoa/cocoa_common.h" +#include "cocoa/apple_platform.h" #include "../ui_companion_driver.h" #include "../../configuration.h" #include "../../frontend/frontend.h" @@ -39,7 +40,7 @@ #import -#ifdef HAVE_COCOA_METAL +#if defined(HAVE_COCOA_METAL) || defined(HAVE_COCOATOUCH) id apple_platform; #else static id apple_platform; @@ -124,11 +125,10 @@ static void handle_touch_event(NSArray* touches) CGPoint coord; UITouch *touch = [touches objectAtIndex:i]; - if (touch.view != [CocoaView get].view) - continue; +// if (touch.view != [CocoaView get].view) +// continue; coord = [touch locationInView:[touch view]]; - if (touch.phase != UITouchPhaseEnded && touch.phase != UITouchPhaseCancelled) { apple->touches[apple->touch_count ].screen_x = coord.x * scale; @@ -138,7 +138,7 @@ static void handle_touch_event(NSArray* touches) } #ifndef HAVE_APPLE_STORE -// iO7 Keyboard support +// iOS7 Keyboard support @interface UIEvent(iOS7Keyboard) @property(readonly, nonatomic) long long _keyCode; @property(readonly, nonatomic) _Bool _isKeyDown; @@ -317,6 +317,86 @@ enum @implementation RetroArch_iOS +#pragma mark - ApplePlatform +-(id)renderView { + return _renderView; +} +-(bool)hasFocus { + return YES; +} +- (void)setViewType:(apple_view_type_t)vt { + if (vt == _vt) + return; + + RARCH_LOG("[Cocoa]: change view type: %d ? %d\n", _vt, vt); + + _vt = vt; + if (_renderView != nil) + { + [_renderView removeFromSuperview]; + _renderView = nil; + } + + switch (vt) { +#ifdef HAVE_COCOA_METAL + case APPLE_VIEW_TYPE_VULKAN: + case APPLE_VIEW_TYPE_METAL: + { + MetalView *v = [MetalView new]; + v.paused = YES; + v.enableSetNeedsDisplay = NO; +#if TARGET_OS_IOS + v.multipleTouchEnabled = YES; +#endif + _renderView = v; + } + break; +#endif + case APPLE_VIEW_TYPE_OPENGL_ES: + { + _renderView = (BRIDGE GLKView*)glkitview_init(); + break; + } + + case APPLE_VIEW_TYPE_NONE: + default: + return; + } + + _renderView.translatesAutoresizingMaskIntoConstraints = NO; + UIView *rootView = [CocoaView get].view; + [rootView addSubview:_renderView]; + [[_renderView.topAnchor constraintEqualToAnchor:rootView.topAnchor] setActive:YES]; + [[_renderView.bottomAnchor constraintEqualToAnchor:rootView.bottomAnchor] setActive:YES]; + [[_renderView.leadingAnchor constraintEqualToAnchor:rootView.leadingAnchor] setActive:YES]; + [[_renderView.trailingAnchor constraintEqualToAnchor:rootView.trailingAnchor] setActive:YES]; +} + +- (apple_view_type_t)viewType { + return _vt; +} + +- (void)setVideoMode:(gfx_ctx_mode_t)mode { +#ifdef HAVE_COCOA_METAL + MetalView *metalView = (MetalView*) _renderView; + CGFloat scale = [[UIScreen mainScreen] scale]; + [metalView setDrawableSize:CGSizeMake( + _renderView.bounds.size.width * scale, + _renderView.bounds.size.height * scale + ) + ]; +#endif +} + +- (void)setCursorVisible:(bool)v { + // no-op for iOS +} + +- (bool)setDisableDisplaySleep:(bool)disable { + // no-op for iOS + return NO; +} + + (RetroArch_iOS*)get { return (RetroArch_iOS*)[[UIApplication sharedApplication] delegate]; @@ -349,12 +429,6 @@ enum self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; [self.window makeKeyAndVisible]; -#if TARGET_OS_IOS - self.mainmenu = [RAMainMenu new]; - self.mainmenu.last_menu = self.mainmenu; - [self pushViewController:self.mainmenu animated:NO]; -#endif - NSError *error; [[AVAudioSession sharedInstance] setCategory:AVAudioSessionCategoryAmbient error:&error]; if (error) { @@ -477,50 +551,10 @@ enum #endif } -- (void)mainMenuRefresh -{ -#if TARGET_OS_IOS - [self.mainmenu reloadData]; -#endif -} - -- (void)mainMenuPushPop: (bool)pushp -{ -#if TARGET_OS_IOS - if (pushp) - { - self.menu_count++; - RAMenuBase* next_menu = [RAMainMenu new]; - next_menu.last_menu = self.mainmenu; - self.mainmenu = next_menu; - [self pushViewController:self.mainmenu animated:YES]; - } - else - { - if (self.menu_count == 0) - [self.mainmenu reloadData]; - else - { - self.menu_count--; - - [self popViewControllerAnimated:YES]; - self.mainmenu = self.mainmenu.last_menu; - } - } -#endif -} - - (void)supportOtherAudioSessions { } -- (void)mainMenuRenderMessageBox:(NSString *)msg -{ -#if TARGET_OS_IOS - [self.mainmenu renderMessageBox:msg]; -#endif -} - @end int main(int argc, char *argv[]) @@ -538,132 +572,3 @@ static void apple_rarch_exited(void) return; [ap showPauseMenu:ap]; } - -typedef struct ui_companion_cocoatouch -{ - void *empty; -} ui_companion_cocoatouch_t; - -static void ui_companion_cocoatouch_notify_content_loaded(void *data) -{ - RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; - - (void)data; - - if (ap) - [ap showGameView]; -} - -static void ui_companion_cocoatouch_toggle(void *data, bool force) -{ - RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; - - (void)data; - - if (ap) - [ap toggleUI]; -} - -static void ui_companion_cocoatouch_deinit(void *data) -{ - ui_companion_cocoatouch_t *handle = (ui_companion_cocoatouch_t*)data; - - apple_rarch_exited(); - - if (handle) - free(handle); -} - -static void *ui_companion_cocoatouch_init(void) -{ - ui_companion_cocoatouch_t *handle = (ui_companion_cocoatouch_t*) - calloc(1, sizeof(*handle)); - - if (!handle) - return NULL; - - rarch_enable_ui(); - - return handle; -} - -static void ui_companion_cocoatouch_notify_list_pushed(void *data, - file_list_t *list, file_list_t *menu_list) -{ - static size_t old_size = 0; - RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; - bool pushp = false; - size_t new_size = file_list_get_size(menu_list); - - /* FIXME workaround for the double call */ - if (old_size == 0) - { - old_size = new_size; - return; - } - - if (old_size == new_size) - pushp = false; - else if (old_size < new_size) - pushp = true; - else if (old_size > new_size) - printf("notify_list_pushed: old size should not be larger\n" ); - - old_size = new_size; - - if (ap) - [ap mainMenuPushPop: pushp]; -} - -static void ui_companion_cocoatouch_notify_refresh(void *data) -{ - RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; - - if (ap) - [ap mainMenuRefresh]; -} - -static void ui_companion_cocoatouch_render_messagebox(const char *msg) -{ - static char msg_old[PATH_MAX_LENGTH]; - RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; - - if (ap && !string_is_equal(msg, msg_old)) - { - [ap mainMenuRenderMessageBox: [NSString stringWithUTF8String:msg]]; - strlcpy(msg_old, msg, sizeof(msg_old)); - } -} - -static void ui_companion_cocoatouch_msg_queue_push(void *data, const char *msg, - unsigned priority, unsigned duration, bool flush) -{ - RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; - - if (ap && msg) - { -#if TARGET_OS_IOS - [ap.mainmenu msgQueuePush: [NSString stringWithUTF8String:msg]]; -#endif - } -} - -ui_companion_driver_t ui_companion_cocoatouch = { - ui_companion_cocoatouch_init, - ui_companion_cocoatouch_deinit, - ui_companion_cocoatouch_toggle, - ui_companion_cocoatouch_event_command, - ui_companion_cocoatouch_notify_content_loaded, - ui_companion_cocoatouch_notify_list_pushed, - ui_companion_cocoatouch_notify_refresh, - ui_companion_cocoatouch_msg_queue_push, - ui_companion_cocoatouch_render_messagebox, - NULL, /* get_main_window */ - NULL, /* log_msg */ - NULL, /* is_active */ - NULL, /* ui_browser_window_null */ - NULL, /* ui_msg_window_null */ - NULL, /* ui_window_null */ - NULL, /* ui_application_null */ - "cocoatouch", -};