From 6308ba1acb1ef527e05f96a9ac92905d077f7ba3 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Tue, 7 Jul 2020 05:03:42 -1000 Subject: [PATCH 01/19] support ApplePlatform for iOS and conform app delegate class to it, move app delegate class to apple_platform.h, fix metal references for iOS --- gfx/common/metal/MenuDisplay.m | 2 +- gfx/common/metal/View.m | 7 +- gfx/common/metal_common.m | 21 ++++- gfx/drivers_context/cocoa_gl_ctx.m | 30 +++---- gfx/drivers_font/metal_raster_font.m | 34 +++++++- gfx/gfx_display.c | 2 +- griffin/griffin_objc.m | 2 +- .../RetroArch_iOS11.xcodeproj/project.pbxproj | 81 +++++++++++++++---- .../xcschemes/RetroArch iOS Debug.xcscheme | 16 ++-- .../xcschemes/RetroArch iOS Release.xcscheme | 16 ++-- retroarch.c | 2 +- ui/drivers/cocoa/apple_platform.h | 36 ++++++++- ui/drivers/cocoa/cocoa_common.h | 21 +---- ui/drivers/cocoa/cocoa_common.m | 12 +-- ui/drivers/ui_cocoatouch.m | 61 ++++++++++++++ 15 files changed, 254 insertions(+), 89 deletions(-) diff --git a/gfx/common/metal/MenuDisplay.m b/gfx/common/metal/MenuDisplay.m index bb69b314a8..c340744cfa 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" +//#import "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.m b/gfx/common/metal_common.m index 892f3b7487..3240df3dd3 100644 --- a/gfx/common/metal_common.m +++ b/gfx/common/metal_common.m @@ -27,7 +27,8 @@ #import "metal_common.h" #import "../../ui/drivers/cocoa/cocoa_common.h" -#import "Context.h" +//#import "Context.h" +#include "metal/Context.h" #ifdef HAVE_MENU #import "../../menu/menu_driver.h" @@ -50,9 +51,11 @@ @implementation MetalView +#if !defined(HAVE_COCOATOUCH) - (void)keyDown:(NSEvent*)theEvent { } +#endif /* Stop the annoying sound when pressing a key. */ - (BOOL)acceptsFirstResponder @@ -690,7 +693,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: @@ -1010,7 +1017,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 } } @@ -1343,7 +1352,11 @@ typedef struct MTLALIGN(16) if (size == 0) continue; +#if defined(HAVE_COCOATOUCH) + id buf = [_context.device newBufferWithLength:size options:MTLResourceStorageModeShared]; +#else id buf = [_context.device newBufferWithLength:size options:MTLResourceStorageModeManaged]; +#endif STRUCT_ASSIGN(_engine.pass[i].buffers[j], buf); } } @finally @@ -1459,7 +1472,11 @@ typedef struct MTLALIGN(16) NSUInteger needed = sizeof(SpriteVertex) * count * 4; if (!_vert || _vert.length < needed) { +#if defined(HAVE_COCOATOUCH) + _vert = [_context.device newBufferWithLength:needed options:MTLResourceStorageModeShared]; +#else _vert = [_context.device newBufferWithLength:needed options:MTLResourceStorageModeManaged]; +#endif } for (NSUInteger i = 0; i < count; i++) @@ -1477,11 +1494,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 59e6b8fceb..cd81639c09 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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) #include #include #include @@ -115,7 +115,7 @@ void nsview_set_ptr(CocoaView *p) g_instance = p; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) static NSOpenGLPixelFormat* g_format; void *glcontext_get_ptr(void) @@ -239,7 +239,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) screen = (BRIDGE RAScreen*)get_chosen_screen(); if (screen) @@ -268,7 +268,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) #if MAC_OS_X_VERSION_10_7 CGLUpdateContext(g_hw_ctx.CGLContextObj); CGLUpdateContext(g_context.CGLContextObj); @@ -298,7 +298,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) [g_context clearDrawable]; RELEASE(g_context); RELEASE(g_format); @@ -339,7 +339,7 @@ static void cocoagl_gfx_ctx_show_mouse(void *data, bool state) { (void)data; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) if (state) [NSCursor unhide]; else @@ -368,7 +368,7 @@ float cocoagl_gfx_ctx_get_native_scale(void) return ret; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) static void cocoagl_gfx_ctx_update_title(void *data) { const ui_window_t *window = ui_companion_driver_get_window_ptr(); @@ -391,7 +391,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) NSDictionary *description = [screen deviceDescription]; NSSize display_pixel_size = [[description objectForKey:NSDeviceSize] sizeValue]; CGSize display_physical_size = CGDisplayScreenSize( @@ -481,7 +481,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) CGRect size, cgrect; GLsizei backingPixelWidth, backingPixelHeight; #if defined(HAVE_COCOA_METAL) @@ -629,7 +629,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) [g_context flushBuffer]; [g_hw_ctx flushBuffer]; #elif defined(HAVE_COCOATOUCH) @@ -691,12 +691,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) cocoa_ctx_data_t *cocoa_ctx = (cocoa_ctx_data_t*)data; cocoa_ctx->width = width; cocoa_ctx->height = height; @@ -707,7 +707,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) if ([g_view respondsToSelector: @selector(setWantsBestResolutionOpenGLSurface:)]) [g_view setWantsBestResolutionOpenGLSurface:YES]; @@ -783,7 +783,7 @@ static bool cocoagl_gfx_ctx_set_video_mode(void *data, break; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) static bool has_went_fullscreen = false; /* TODO: Screen mode support. */ @@ -913,7 +913,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) 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 724d8d4fff..6f85873981 100644 --- a/gfx/drivers_font/metal_raster_font.m +++ b/gfx/drivers_font/metal_raster_font.m @@ -79,18 +79,32 @@ { _buffer = [_context.device newBufferWithBytes:_atlas->buffer length:(NSUInteger)(_stride * _atlas->height) - options:MTLResourceStorageModeManaged]; + options: +#if defined(HAVE_COCOATOUCH) + MTLResourceStorageModeShared +#else + MTLResourceStorageModeManaged +#endif + ]; // 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: +#if defined(HAVE_COCOATOUCH) + MTLResourceStorageModeShared +#else + MTLResourceStorageModeManaged +#endif + ]; void *dst = _buffer.contents; void *src = _atlas->buffer; for (unsigned i = 0; i < _atlas->height; i++) @@ -99,7 +113,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 @@ -111,7 +127,13 @@ _capacity = 12000; _vert = [_context.device newBufferWithLength:sizeof(SpriteVertex) * - _capacity options:MTLResourceStorageModeManaged]; + _capacity options: +#if defined(HAVE_COCOATOUCH) + MTLResourceStorageModeShared +#else + MTLResourceStorageModeManaged +#endif + ]; if (![self _initializeState]) { return nil; @@ -181,7 +203,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; } @@ -324,7 +348,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..97c61d82cb 100644 --- a/griffin/griffin_objc.m +++ b/griffin/griffin_objc.m @@ -41,7 +41,7 @@ #else -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) #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/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj index 49ccf0538e..5918ae3249 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj @@ -26,6 +26,12 @@ 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 */; }; 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 */; }; @@ -85,7 +91,11 @@ 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; }; + 9204BE2B1D319EF300BD49DB /* RADEBUG.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RADEBUG.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 = ""; }; 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 = ""; }; @@ -153,6 +163,8 @@ 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 */, @@ -343,7 +355,7 @@ 96AFAE2616C1D4EA009DE44C /* Products */ = { isa = PBXGroup; children = ( - 9204BE2B1D319EF300BD49DB /* RetroArch.app */, + 9204BE2B1D319EF300BD49DB /* RADEBUG.app */, 926C77D721FD1E6500103EDE /* RetroArchTV.app */, ); name = Products; @@ -352,6 +364,8 @@ 96AFAE2816C1D4EA009DE44C /* Frameworks */ = { isa = PBXGroup; children = ( + 9210C2F124B3A19100E6FE7C /* Metal.framework */, + 9210C2F024B3A19100E6FE7C /* MetalKit.framework */, 92CC05C621FEDD0B00FF79F0 /* MobileCoreServices.framework */, 92CC05C421FEDC9F00FF79F0 /* CFNetwork.framework */, 926C77F021FD26E800103EDE /* GameController.framework */, @@ -398,6 +412,8 @@ children = ( 50521A431AA23BF500185CC9 /* griffin_objc.m */, 501232C9192E5FC40063A359 /* griffin.c */, + 9210C2F424B3A32D00E6FE7C /* griffin_cpp.cpp */, + 9210C2F524B3A32D00E6FE7C /* griffin_glslang.cpp */, ); name = griffin; sourceTree = ""; @@ -420,7 +436,7 @@ ); name = RetroArchiOS11; productName = RetroArch; - productReference = 9204BE2B1D319EF300BD49DB /* RetroArch.app */; + productReference = 9204BE2B1D319EF300BD49DB /* RADEBUG.app */; productType = "com.apple.product-type.application"; }; 926C77D621FD1E6500103EDE /* RetroArchTV */ = { @@ -554,6 +570,7 @@ 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 */, @@ -562,6 +579,7 @@ 92CC05C221FE3C6D00FF79F0 /* WebServer.m 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 */, ); @@ -578,6 +596,7 @@ 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 */, @@ -586,6 +605,7 @@ 92CC05C321FE3C6D00FF79F0 /* WebServer.m 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 */, ); @@ -610,11 +630,13 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LIBRARY = "libstdc++"; + 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.5; + CURRENT_PROJECT_VERSION = 1.8.9; + DEPS_DIR = "$(SRCBASE)/deps"; DEVELOPMENT_TEAM = R72X3BF4KE; ENABLE_BITCODE = NO; GCC_PRECOMPILE_PREFIX_HEADER = NO; @@ -626,12 +648,18 @@ ../../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.5; + MARKETING_VERSION = 1.8.9; ONLY_ACTIVE_ARCH = NO; OTHER_CFLAGS = ( "-DDONT_WANT_ARM_OPTIMIZATIONS", @@ -690,10 +718,20 @@ "-DHAVE_MFI", "-DHAVE_BTSTACK", "-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; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchDBUG; + PRODUCT_NAME = RADEBUG; PROVISIONING_PROFILE = ""; + SRCBASE = "$(SRCROOT)/../.."; VALID_ARCHS = "armv7 arm64"; WARNING_CFLAGS = "-Wno-invalid-source-encoding"; WRAPPER_EXTENSION = app; @@ -705,11 +743,13 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LIBRARY = "libstdc++"; + 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.5; + CURRENT_PROJECT_VERSION = 1.8.9; + DEPS_DIR = "$(SRCBASE)/deps"; DEVELOPMENT_TEAM = R72X3BF4KE; ENABLE_BITCODE = NO; GCC_PRECOMPILE_PREFIX_HEADER = NO; @@ -721,12 +761,18 @@ ../../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.5; + MARKETING_VERSION = 1.8.9; "OTHER_CFLAGS[arch=*]" = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", @@ -788,9 +834,10 @@ "-DHAVE_BTSTACK", "-DHAVE_KEYMAPPER", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; - PRODUCT_NAME = RetroArch; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchDBUG; + PRODUCT_NAME = RADEBUG; PROVISIONING_PROFILE = ""; + SRCBASE = "$(SRCROOT)/../.."; VALID_ARCHS = "armv7 arm64"; WARNING_CFLAGS = "-Wno-invalid-source-encoding"; WRAPPER_EXTENSION = app; @@ -828,7 +875,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1.8.5; + CURRENT_PROJECT_VERSION = 1.8.9; DEBUG_INFORMATION_FORMAT = dwarf; DEVELOPMENT_TEAM = R72X3BF4KE; ENABLE_STRICT_OBJC_MSGSEND = YES; @@ -850,7 +897,7 @@ ); INFOPLIST_FILE = "$(SRCROOT)/tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.8.5; + MARKETING_VERSION = 1.8.9; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -950,7 +997,7 @@ CLANG_WARN_UNREACHABLE_CODE = YES; CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 1.8.5; + CURRENT_PROJECT_VERSION = 1.8.9; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEVELOPMENT_TEAM = R72X3BF4KE; ENABLE_NS_ASSERTIONS = NO; @@ -972,7 +1019,7 @@ ); INFOPLIST_FILE = "$(SRCROOT)/tvOS/Info.plist"; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 1.8.5; + MARKETING_VERSION = 1.8.9; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; OTHER_CFLAGS = ( diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme index 63abbb2ea4..ee9e3b4bee 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme @@ -15,7 +15,7 @@ @@ -27,19 +27,17 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + - - diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme index 54573fab59..b970cdcaef 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme @@ -15,7 +15,7 @@ @@ -27,19 +27,17 @@ selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" shouldUseLaunchSchemeArgsEnv = "YES"> - - - - + + - - diff --git a/retroarch.c b/retroarch.c index c8ed7369e8..fc216d8713 100644 --- a/retroarch.c +++ b/retroarch.c @@ -920,7 +920,7 @@ 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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) &ui_companion_cocoa, #endif #ifdef HAVE_COCOATOUCH diff --git a/ui/drivers/cocoa/apple_platform.h b/ui/drivers/cocoa/apple_platform.h index 0bdc062051..c6f062cb2c 100644 --- a/ui/drivers/cocoa/apple_platform.h +++ b/ui/drivers/cocoa/apple_platform.h @@ -5,6 +5,7 @@ #import #import +#if !defined(HAVE_COCOATOUCH) @interface WindowListener : NSResponder @end @@ -22,6 +23,7 @@ } @end +#endif @protocol ApplePlatform @@ -48,6 +50,36 @@ extern id apple_platform; id apple_platform; + +#if defined(HAVE_COCOATOUCH) +#if defined(HAVE_COCOA_METAL) +@interface RetroArch_iOS : UINavigationController { + UIView *_renderView; + apple_view_type_t _vt; +} +#else +@interface RetroArch_iOS : UINavigationController +#endif + +@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 +87,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 +101,7 @@ id apple_platform; } #endif -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) @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..2b8282109d 100644 --- a/ui/drivers/cocoa/cocoa_common.h +++ b/ui/drivers/cocoa/cocoa_common.h @@ -81,25 +81,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 +93,7 @@ typedef struct } apple_frontend_settings_t; extern apple_frontend_settings_t apple_frontend_settings; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) #include @interface CocoaView : NSView diff --git a/ui/drivers/cocoa/cocoa_common.m b/ui/drivers/cocoa/cocoa_common.m index 848eae740d..bc946d28b4 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -46,13 +46,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 !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) - (void)scrollWheel:(NSEvent *)theEvent { cocoa_input_data_t *apple = (cocoa_input_data_t*)input_driver_get_data(); (void)apple; @@ -74,7 +74,7 @@ void *glkitview_init(void); { self = [super init]; -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) [self setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; #endif @@ -83,7 +83,7 @@ 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) self.view = (BRIDGE GLKView*)glkitview_init(); @@ -108,7 +108,7 @@ void *glkitview_init(void); return self; } -#if defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL) +#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) - (void)setFrame:(NSRect)frameRect { [super setFrame:frameRect]; @@ -169,7 +169,7 @@ void *glkitview_init(void); #elif TARGET_OS_IOS -(void) showNativeMenu { dispatch_async(dispatch_get_main_queue(), ^{ - [[RetroArch_iOS get] toggleUI]; +// [[RetroArch_iOS get] toggleUI]; }); } diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 8a9cad2eb1..58d2ba0c39 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" @@ -317,6 +318,66 @@ enum @implementation RetroArch_iOS +#pragma mark - ApplePlatform + +#ifdef HAVE_COCOA_METAL +-(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.wantsLayer = NO; +// _renderView.layer = nil; + [_renderView removeFromSuperview]; +// self.window.contentView = nil; + _renderView = nil; + } + + switch (vt) { + case APPLE_VIEW_TYPE_VULKAN: + case APPLE_VIEW_TYPE_METAL: + { + MetalView *v = [MetalView new]; + v.paused = YES; + v.enableSetNeedsDisplay = NO; + _renderView = v; + } + break; + + case APPLE_VIEW_TYPE_OPENGL: + { + _renderView = [CocoaView get]; + break; + } + + case APPLE_VIEW_TYPE_NONE: + default: + return; + } + +// _renderView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; + [_renderView setFrame:self.window.bounds]; + + [self.window addSubview:_renderView]; +// self.window.contentView.nextResponder = _listener; +} + +- (apple_view_type_t)viewType { + return _vt; +} + +#endif + + (RetroArch_iOS*)get { return (RetroArch_iOS*)[[UIApplication sharedApplication] delegate]; From 8e1dd5def14c944300e2cd85b5b1509f549bac5b Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Tue, 7 Jul 2020 05:38:50 -1000 Subject: [PATCH 02/19] protocol conformance for ApplePlatform for iOS; add metal shader functions files to xcode project --- pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj | 12 ++++++++++++ ui/drivers/ui_cocoatouch.m | 12 +++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj index 5918ae3249..2e8463de17 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj @@ -32,6 +32,10 @@ 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 */; }; @@ -96,6 +100,8 @@ 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 = ""; }; @@ -340,6 +346,8 @@ 9222F2082315DAD50097C0FD /* Launch Screen.storyboard */, 9222F1FE2314BA7C0097C0FD /* assets.zip */, 96AFAE9C16C1D976009DE44C /* core */, + 9210C2FA24B4CB4900E6FE7C /* menu_pipeline.metal */, + 9210C2FB24B4CB4900E6FE7C /* Shaders.metal */, 83D632D719ECFCC4009E3161 /* iOS */, 926C77D821FD1E6500103EDE /* tvOS */, 92D3D565232D8661001B0D86 /* Sources */, @@ -577,6 +585,8 @@ 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 */, @@ -603,6 +613,8 @@ 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 */, diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 58d2ba0c39..433887e2fe 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -319,7 +319,6 @@ enum @implementation RetroArch_iOS #pragma mark - ApplePlatform - #ifdef HAVE_COCOA_METAL -(id)renderView { return _renderView; @@ -376,6 +375,17 @@ enum return _vt; } +- (void)setVideoMode:(gfx_ctx_mode_t)mode { + // no-op for iOS? +} + +- (void)setCursorVisible:(bool)v { + // no-op for iOS +} + +- (bool)setDisableDisplaySleep:(bool)disable { + // no-op for iOS +} #endif + (RetroArch_iOS*)get From 82d6d8e876da40a0e154e8260862355b419ab2aa Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Tue, 7 Jul 2020 08:19:46 -1000 Subject: [PATCH 03/19] add the metal view to the view controller view after initializing the metal view for iOS --- gfx/drivers_context/cocoa_gl_ctx.m | 2 +- ui/drivers/cocoa/cocoa_common.m | 7 +++++++ ui/drivers/ui_cocoatouch.m | 3 ++- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/gfx/drivers_context/cocoa_gl_ctx.m b/gfx/drivers_context/cocoa_gl_ctx.m index cd81639c09..6a597acd79 100644 --- a/gfx/drivers_context/cocoa_gl_ctx.m +++ b/gfx/drivers_context/cocoa_gl_ctx.m @@ -102,7 +102,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); diff --git a/ui/drivers/cocoa/cocoa_common.m b/ui/drivers/cocoa/cocoa_common.m index bc946d28b4..80dd933d90 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -29,6 +29,9 @@ #ifdef HAVE_COCOATOUCH #import "GCDWebUploader.h" #import "WebServer.h" +#ifdef HAVE_COCOA_METAL +#include "apple_platform.h" +#endif #endif @@ -86,7 +89,11 @@ void *glkitview_init(void); #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; diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 433887e2fe..3478cea5fb 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -366,8 +366,9 @@ enum // _renderView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; [_renderView setFrame:self.window.bounds]; + [[CocoaView get].view addSubview:_renderView]; - [self.window addSubview:_renderView]; +// [self.window addSubview:_renderView]; // self.window.contentView.nextResponder = _listener; } From 897aee0bcf54427dff54bea9c0e6a0618ab7118c Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Tue, 14 Jul 2020 17:49:38 -1000 Subject: [PATCH 04/19] add more logging, use autolayout constraints to pin metal view to superview to support orientation changes easier --- gfx/common/metal_common.m | 6 ++++++ retroarch.c | 5 +++-- ui/drivers/ui_cocoatouch.m | 21 ++++++++++++++++----- 3 files changed, 25 insertions(+), 7 deletions(-) diff --git a/gfx/common/metal_common.m b/gfx/common/metal_common.m index 3240df3dd3..ba1e297b97 100644 --- a/gfx/common/metal_common.m +++ b/gfx/common/metal_common.m @@ -500,6 +500,12 @@ - (void)mtkView:(MTKView *)view drawableSizeWillChange:(CGSize)size { + NSLog(@"mtkView drawableSizeWillChange to: %f x %f",size.width,size.height); + // due to autolayout constraints? + if (size.width == INFINITY || size.height == INFINITY) { + NSLog(@"mtkView drawableSizeWillChange width or height is inifinity, skipping..."); + return; + } [self setViewportWidth:(unsigned int)size.width height:(unsigned int)size.height forceFull:NO allowRotate:YES]; } diff --git a/retroarch.c b/retroarch.c index fc216d8713..eaec1c5f34 100644 --- a/retroarch.c +++ b/retroarch.c @@ -31196,7 +31196,8 @@ 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; - + printf("yoshi debug: video size: %i, %i full size: %i, %i \n",norm_vp_width,norm_vp_height,norm_full_vp_width,norm_full_vp_height); + printf("yoshi debug: video_driver_translate_coord_viewport: incoming mouse coord: %i,%i \n",mouse_x,mouse_y); if (norm_vp_width <= 0 || norm_vp_height <= 0 || norm_full_vp_width <= 0 || @@ -31234,7 +31235,7 @@ bool video_driver_translate_coord_viewport( *res_y = scaled_y; *res_screen_x = scaled_screen_x; *res_screen_y = scaled_screen_y; - + printf("yoshi debug: translated coordinates: res: (%i,%i) res_screen:(%i,%i) \n",scaled_x,scaled_y,scaled_screen_x,scaled_screen_y); return true; } diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 3478cea5fb..b7020ec22f 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -125,10 +125,11 @@ 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]]; + NSLog(@"yoshi debug: handle_touch_event: coord = %f,%f , scaled = %f,%f",coord.x,coord.y,coord.x*scale,coord.y*scale); if (touch.phase != UITouchPhaseEnded && touch.phase != UITouchPhaseCancelled) { @@ -365,8 +366,15 @@ enum } // _renderView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; - [_renderView setFrame:self.window.bounds]; - [[CocoaView get].view addSubview:_renderView]; +// [_renderView setFrame:self.window.bounds]; + _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]; + // [self.window addSubview:_renderView]; // self.window.contentView.nextResponder = _listener; @@ -377,7 +385,10 @@ enum } - (void)setVideoMode:(gfx_ctx_mode_t)mode { - // no-op for iOS? + // hmm might need some scaling factor... + MetalView *metalView = (MetalView*) _renderView; + [metalView setDrawableSize:CGSizeMake(mode.width, mode.height)]; + NSLog(@"setVideoMode set drawable size to %i x %i",mode.width,mode.height); } - (void)setCursorVisible:(bool)v { From eed84b3021759c98880ae6709ef28b6433cb2dcd Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sat, 18 Jul 2020 07:47:10 -1000 Subject: [PATCH 05/19] re-created RetroArch_iOS11_Metal.xcodeproj with the appropriate compiler flags and fixed building for both metal and opengl; hardcoding the metal drawable size for now for testing --- .../RetroArch_iOS11.xcodeproj/project.pbxproj | 158 +- .../xcschemes/RetroArch iOS Debug.xcscheme | 8 +- .../xcschemes/RetroArch iOS Release.xcscheme | 8 +- .../project.pbxproj | 1300 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcshareddata/RetroArch_iOS.xccheckout | 101 ++ .../RetroArch_iOS10.xcscmblueprint | 30 + .../xcshareddata/WorkspaceSettings.xcsettings | 5 + .../xcschemes/RetroArch iOS Debug.xcscheme | 87 ++ .../xcschemes/RetroArch iOS Release.xcscheme | 87 ++ .../xcschemes/RetroArch tvOS Debug.xcscheme | 87 ++ .../xcschemes/RetroArch tvOS Release.xcscheme | 87 ++ ui/drivers/cocoa/cocoa_common.h | 21 + ui/drivers/ui_cocoatouch.m | 2 + 15 files changed, 1900 insertions(+), 96 deletions(-) create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS.xccheckout create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/RetroArch_iOS10.xcscmblueprint create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Debug.xcscheme create mode 100644 pkg/apple/RetroArch_iOS11_Metal.xcodeproj/xcshareddata/xcschemes/RetroArch tvOS Release.xcscheme diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj index 2e8463de17..40f1d37395 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj @@ -7,9 +7,11 @@ objects = { /* Begin PBXBuildFile section */ + 04306A9524A2C8BE002CAEFE /* libz.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 04306A9424A2C8BE002CAEFE /* libz.tbd */; }; + 04306A9724A2C907002CAEFE /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04306A9624A2C907002CAEFE /* GameController.framework */; }; + 04306A9924A2C911002CAEFE /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 04306A9824A2C911002CAEFE /* AudioToolbox.framework */; }; 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 */; }; @@ -26,16 +28,6 @@ 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 */; }; @@ -43,8 +35,6 @@ 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 */; }; @@ -84,10 +74,12 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + 04306A9424A2C8BE002CAEFE /* libz.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libz.tbd; path = usr/lib/libz.tbd; sourceTree = SDKROOT; }; + 04306A9624A2C907002CAEFE /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS13.4.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; }; + 04306A9824A2C911002CAEFE /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS13.4.sdk/System/Library/Frameworks/AudioToolbox.framework; sourceTree = DEVELOPER_DIR; }; 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; }; @@ -95,22 +87,13 @@ 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 /* RADEBUG.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RADEBUG.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 = ""; }; + 9204BE2B1D319EF300BD49DB /* RADEBUGL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RADEBUGL.app; sourceTree = BUILT_PRODUCTS_DIR; }; 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 = ""; }; @@ -146,11 +129,11 @@ 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 = ""; }; + 92D3D56B232D86AC001B0D86 /* cocoa_common.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cocoa_common.h; sourceTree = ""; }; + 92D3D56C232D86AC001B0D86 /* cocoatouch_menu.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = cocoatouch_menu.m; sourceTree = ""; }; + 92D3D56D232D86AC001B0D86 /* cocoa_common.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = cocoa_common.m; sourceTree = ""; }; + 92D3D56F232D86AC001B0D86 /* cocoa_defines.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = cocoa_defines.h; sourceTree = ""; }; + 92D3D572232D8AEF001B0D86 /* ui_cocoatouch.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = ui_cocoatouch.m; path = 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; }; @@ -169,11 +152,9 @@ 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 */, + 04306A9524A2C8BE002CAEFE /* libz.tbd in Frameworks */, 9204BE131D319EF300BD49DB /* QuartzCore.framework in Frameworks */, 9204BE141D319EF300BD49DB /* GameController.framework in Frameworks */, 9204BE151D319EF300BD49DB /* CoreText.framework in Frameworks */, @@ -195,8 +176,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 926C77F121FD26E800103EDE /* GameController.framework in Frameworks */, - 926C77EF21FD263800103EDE /* AudioToolbox.framework in Frameworks */, + 04306A9724A2C907002CAEFE /* GameController.framework in Frameworks */, + 04306A9924A2C911002CAEFE /* AudioToolbox.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -318,7 +299,8 @@ 92D3D567232D8688001B0D86 /* drivers */, 92D3D572232D8AEF001B0D86 /* ui_cocoatouch.m */, ); - path = ui; + name = ui; + path = ../../ui; sourceTree = ""; }; 92D3D567232D8688001B0D86 /* drivers */ = { @@ -346,8 +328,6 @@ 9222F2082315DAD50097C0FD /* Launch Screen.storyboard */, 9222F1FE2314BA7C0097C0FD /* assets.zip */, 96AFAE9C16C1D976009DE44C /* core */, - 9210C2FA24B4CB4900E6FE7C /* menu_pipeline.metal */, - 9210C2FB24B4CB4900E6FE7C /* Shaders.metal */, 83D632D719ECFCC4009E3161 /* iOS */, 926C77D821FD1E6500103EDE /* tvOS */, 92D3D565232D8661001B0D86 /* Sources */, @@ -363,7 +343,7 @@ 96AFAE2616C1D4EA009DE44C /* Products */ = { isa = PBXGroup; children = ( - 9204BE2B1D319EF300BD49DB /* RADEBUG.app */, + 9204BE2B1D319EF300BD49DB /* RADEBUGL.app */, 926C77D721FD1E6500103EDE /* RetroArchTV.app */, ); name = Products; @@ -372,14 +352,11 @@ 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 */, + 04306A9624A2C907002CAEFE /* GameController.framework */, + 04306A9824A2C911002CAEFE /* AudioToolbox.framework */, + 04306A9424A2C8BE002CAEFE /* libz.tbd */, 50C3B1AD1AB1107100F478D3 /* QuartzCore.framework */, 696012F119F3389A006A1088 /* CoreText.framework */, 963C3C33186E3DED00A6EB1E /* GameController.framework */, @@ -420,8 +397,6 @@ children = ( 50521A431AA23BF500185CC9 /* griffin_objc.m */, 501232C9192E5FC40063A359 /* griffin.c */, - 9210C2F424B3A32D00E6FE7C /* griffin_cpp.cpp */, - 9210C2F524B3A32D00E6FE7C /* griffin_glslang.cpp */, ); name = griffin; sourceTree = ""; @@ -444,7 +419,7 @@ ); name = RetroArchiOS11; productName = RetroArch; - productReference = 9204BE2B1D319EF300BD49DB /* RADEBUG.app */; + productReference = 9204BE2B1D319EF300BD49DB /* RADEBUGL.app */; productType = "com.apple.product-type.application"; }; 926C77D621FD1E6500103EDE /* RetroArchTV */ = { @@ -578,18 +553,14 @@ 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 */, ); @@ -606,18 +577,14 @@ 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 */, ); @@ -642,13 +609,11 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_CXX_LIBRARY = "libc++"; + CLANG_CXX_LIBRARY = "libstdc++"; 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; @@ -660,12 +625,6 @@ ../../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; @@ -695,10 +654,17 @@ "-DHAVE_IMAGEVIEWER", "-DHAVE_RGUI", "-DHAVE_CONFIGFILE", + "-DHAVE_PATCH", + "-DHAVE_DSP_FILTER", + "-DHAVE_VIDEO_FILTER", + "-DHAVE_REWIND", + "-DHAVE_SCREENSHOTS", + "-DHAVE_CHEATS", "-DHAVE_MENU", "-DHAVE_GFX_WIDGETS", "-DHAVE_LIBRETRODB", "-DHAVE_AUDIOMIXER", + "-DHAVE_RWAV", "-DIOS", "-DHAVE_OPENGL", "-DHAVE_OPENGLES", @@ -730,20 +696,10 @@ "-DHAVE_MFI", "-DHAVE_BTSTACK", "-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.RetroArchDBUG; - PRODUCT_NAME = RADEBUG; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RADEBUG2; + PRODUCT_NAME = RADEBUGL; PROVISIONING_PROFILE = ""; - SRCBASE = "$(SRCROOT)/../.."; VALID_ARCHS = "armv7 arm64"; WARNING_CFLAGS = "-Wno-invalid-source-encoding"; WRAPPER_EXTENSION = app; @@ -755,13 +711,11 @@ buildSettings = { ARCHS = "$(ARCHS_STANDARD)"; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - CLANG_CXX_LANGUAGE_STANDARD = "c++0x"; - CLANG_CXX_LIBRARY = "libc++"; + CLANG_CXX_LIBRARY = "libstdc++"; 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; @@ -773,12 +727,6 @@ ../../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; @@ -809,10 +757,17 @@ "-DHAVE_IMAGEVIEWER", "-DHAVE_RGUI", "-DHAVE_CONFIGFILE", + "-DHAVE_PATCH", + "-DHAVE_DSP_FILTER", + "-DHAVE_VIDEO_FILTER", + "-DHAVE_REWIND", + "-DHAVE_SCREENSHOTS", + "-DHAVE_CHEATS", "-DHAVE_MENU", "-DHAVE_GFX_WIDGETS", "-DHAVE_LIBRETRODB", "-DHAVE_AUDIOMIXER", + "-DHAVE_RWAV", "-DIOS", "-DHAVE_OPENGL", "-DHAVE_OPENGLES", @@ -846,10 +801,9 @@ "-DHAVE_BTSTACK", "-DHAVE_KEYMAPPER", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchDBUG; - PRODUCT_NAME = RADEBUG; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RADEBUG2; + PRODUCT_NAME = RADEBUGL; PROVISIONING_PROFILE = ""; - SRCBASE = "$(SRCROOT)/../.."; VALID_ARCHS = "armv7 arm64"; WARNING_CFLAGS = "-Wno-invalid-source-encoding"; WRAPPER_EXTENSION = app; @@ -935,10 +889,17 @@ "-DHAVE_IMAGEVIEWER", "-DHAVE_RGUI", "-DHAVE_CONFIGFILE", + "-DHAVE_PATCH", + "-DHAVE_DSP_FILTER", + "-DHAVE_VIDEO_FILTER", + "-DHAVE_REWIND", + "-DHAVE_SCREENSHOTS", + "-DHAVE_CHEATS", "-DHAVE_MENU", "-DHAVE_GFX_WIDGETS", "-DHAVE_LIBRETRODB", "-DHAVE_AUDIOMIXER", + "-DHAVE_RWAV", "-DIOS", "-DHAVE_OPENGL", "-DHAVE_OPENGLES", @@ -1058,10 +1019,17 @@ "-DHAVE_IMAGEVIEWER", "-DHAVE_RGUI", "-DHAVE_CONFIGFILE", + "-DHAVE_PATCH", + "-DHAVE_DSP_FILTER", + "-DHAVE_VIDEO_FILTER", + "-DHAVE_REWIND", + "-DHAVE_SCREENSHOTS", + "-DHAVE_CHEATS", "-DHAVE_MENU", "-DHAVE_GFX_WIDGETS", "-DHAVE_LIBRETRODB", "-DHAVE_AUDIOMIXER", + "-DHAVE_RWAV", "-DIOS", "-DHAVE_OPENGL", "-DHAVE_OPENGLES", @@ -1151,10 +1119,17 @@ "-DHAVE_IMAGEVIEWER", "-DHAVE_RGUI", "-DHAVE_CONFIGFILE", + "-DHAVE_PATCH", + "-DHAVE_DSP_FILTER", + "-DHAVE_VIDEO_FILTER", + "-DHAVE_REWIND", + "-DHAVE_SCREENSHOTS", + "-DHAVE_CHEATS", "-DHAVE_MENU", "-DHAVE_GFX_WIDGETS", "-DHAVE_LIBRETRODB", "-DHAVE_AUDIOMIXER", + "-DHAVE_RWAV", "-DIOS", "-DHAVE_DYNAMIC", "-DHAVE_OPENGL", @@ -1229,10 +1204,17 @@ "-DHAVE_IMAGEVIEWER", "-DHAVE_RGUI", "-DHAVE_CONFIGFILE", + "-DHAVE_PATCH", + "-DHAVE_DSP_FILTER", + "-DHAVE_VIDEO_FILTER", + "-DHAVE_REWIND", + "-DHAVE_SCREENSHOTS", + "-DHAVE_CHEATS", "-DHAVE_MENU", "-DHAVE_GFX_WIDGETS", "-DHAVE_LIBRETRODB", "-DHAVE_AUDIOMIXER", + "-DHAVE_RWAV", "-DIOS", "-DHAVE_DYNAMIC", "-DHAVE_OPENGL", diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme index ee9e3b4bee..6c3a32bc21 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Debug.xcscheme @@ -15,7 +15,7 @@ @@ -31,7 +31,7 @@ @@ -54,7 +54,7 @@ @@ -71,7 +71,7 @@ diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme index b970cdcaef..9683b3128d 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/xcshareddata/xcschemes/RetroArch iOS Release.xcscheme @@ -15,7 +15,7 @@ @@ -31,7 +31,7 @@ @@ -54,7 +54,7 @@ @@ -71,7 +71,7 @@ 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..53630ed637 --- /dev/null +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj @@ -0,0 +1,1300 @@ +// !$*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 /* RADEBUG.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RADEBUG.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 /* RADEBUG.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 /* RADEBUG.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; + 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_BTSTACK", + "-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.RetroArchDBUG; + PRODUCT_NAME = RADEBUG; + 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; + "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_BTSTACK", + "-DHAVE_KEYMAPPER", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchDBUG; + PRODUCT_NAME = RADEBUG; + 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; + 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, + ); + 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_BTSTACK", + "-DHAVE_KEYMAPPER", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.tvos.RetroArch; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + 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"; + 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, + ); + 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_BTSTACK", + "-DHAVE_KEYMAPPER", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.tvos.RetroArch; + PRODUCT_NAME = "$(TARGET_NAME)"; + PROVISIONING_PROFILE_SPECIFIER = ""; + SDKROOT = appletvos; + 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/ui/drivers/cocoa/cocoa_common.h b/ui/drivers/cocoa/cocoa_common.h index 2b8282109d..0f8af00a27 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,6 +82,26 @@ typedef enum apple_view_type { + (CocoaView*)get; @end +#if !defined(HAVE_COCOA_METAL) +@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 +#endif + void get_ios_version(int *major, int *minor); #endif diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index b7020ec22f..000f9ce339 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -389,6 +389,8 @@ enum MetalView *metalView = (MetalView*) _renderView; [metalView setDrawableSize:CGSizeMake(mode.width, mode.height)]; NSLog(@"setVideoMode set drawable size to %i x %i",mode.width,mode.height); + // hardcoding test! + [metalView setDrawableSize:CGSizeMake(1242.0,2668.0)]; } - (void)setCursorVisible:(bool)v { From a19f1451cdff5f441e3d6d4794cfaf5f36fc2de0 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 00:11:15 -1000 Subject: [PATCH 06/19] removed debug logging statements; enable multi touch on metal view to support touchscreen controls; fixed setting the metal view drawable size based on the view bounds size in pixels --- gfx/common/metal_common.m | 13 ++++++++----- retroarch.c | 3 --- ui/drivers/ui_cocoatouch.m | 20 +++++++------------- 3 files changed, 15 insertions(+), 21 deletions(-) diff --git a/gfx/common/metal_common.m b/gfx/common/metal_common.m index ba1e297b97..9846c944b5 100644 --- a/gfx/common/metal_common.m +++ b/gfx/common/metal_common.m @@ -501,12 +501,15 @@ - (void)mtkView:(MTKView *)view drawableSizeWillChange:(CGSize)size { NSLog(@"mtkView drawableSizeWillChange to: %f x %f",size.width,size.height); - // due to autolayout constraints? - if (size.width == INFINITY || size.height == INFINITY) { - NSLog(@"mtkView drawableSizeWillChange width or height is inifinity, skipping..."); - return; - } +#ifdef HAVE_COCOATOUCH + CGFloat scale = [[UIScreen mainScreen] scale]; +// // due to autolayout constraints? +//// if (size.width == INFINITY || size.height == INFINITY) { +// NSLog(@"mtkView drawableSizeWillChange width or height is infinity, flipping..."); + [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 diff --git a/retroarch.c b/retroarch.c index eaec1c5f34..15ee9ef9e5 100644 --- a/retroarch.c +++ b/retroarch.c @@ -31196,8 +31196,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; - printf("yoshi debug: video size: %i, %i full size: %i, %i \n",norm_vp_width,norm_vp_height,norm_full_vp_width,norm_full_vp_height); - printf("yoshi debug: video_driver_translate_coord_viewport: incoming mouse coord: %i,%i \n",mouse_x,mouse_y); if (norm_vp_width <= 0 || norm_vp_height <= 0 || norm_full_vp_width <= 0 || @@ -31235,7 +31233,6 @@ bool video_driver_translate_coord_viewport( *res_y = scaled_y; *res_screen_x = scaled_screen_x; *res_screen_y = scaled_screen_y; - printf("yoshi debug: translated coordinates: res: (%i,%i) res_screen:(%i,%i) \n",scaled_x,scaled_y,scaled_screen_x,scaled_screen_y); return true; } diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 000f9ce339..ec7a52e299 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -129,8 +129,6 @@ static void handle_touch_event(NSArray* touches) // continue; coord = [touch locationInView:[touch view]]; - NSLog(@"yoshi debug: handle_touch_event: coord = %f,%f , scaled = %f,%f",coord.x,coord.y,coord.x*scale,coord.y*scale); - if (touch.phase != UITouchPhaseEnded && touch.phase != UITouchPhaseCancelled) { apple->touches[apple->touch_count ].screen_x = coord.x * scale; @@ -350,6 +348,7 @@ enum MetalView *v = [MetalView new]; v.paused = YES; v.enableSetNeedsDisplay = NO; + v.multipleTouchEnabled = YES; _renderView = v; } break; @@ -365,8 +364,6 @@ enum return; } -// _renderView.autoresizingMask = NSViewWidthSizable | NSViewHeightSizable; -// [_renderView setFrame:self.window.bounds]; _renderView.translatesAutoresizingMaskIntoConstraints = NO; UIView *rootView = [CocoaView get].view; [rootView addSubview:_renderView]; @@ -374,10 +371,6 @@ enum [[_renderView.bottomAnchor constraintEqualToAnchor:rootView.bottomAnchor] setActive:YES]; [[_renderView.leadingAnchor constraintEqualToAnchor:rootView.leadingAnchor] setActive:YES]; [[_renderView.trailingAnchor constraintEqualToAnchor:rootView.trailingAnchor] setActive:YES]; - - -// [self.window addSubview:_renderView]; -// self.window.contentView.nextResponder = _listener; } - (apple_view_type_t)viewType { @@ -385,12 +378,13 @@ enum } - (void)setVideoMode:(gfx_ctx_mode_t)mode { - // hmm might need some scaling factor... MetalView *metalView = (MetalView*) _renderView; - [metalView setDrawableSize:CGSizeMake(mode.width, mode.height)]; - NSLog(@"setVideoMode set drawable size to %i x %i",mode.width,mode.height); - // hardcoding test! - [metalView setDrawableSize:CGSizeMake(1242.0,2668.0)]; + CGFloat scale = [[UIScreen mainScreen] scale]; + [metalView setDrawableSize:CGSizeMake( + _renderView.bounds.size.width * scale, + _renderView.bounds.size.height * scale + ) + ]; } - (void)setCursorVisible:(bool)v { From a2327be378cea0eb168c76b73ff65622dd81b0c6 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 07:48:07 -1000 Subject: [PATCH 07/19] improved readability for references to the platform specific metal storage mode option; removed support for btstack since its not compiling and is less relevant for the iOS platform; removed commented out code --- gfx/common/metal/Context.m | 9 ++---- gfx/common/metal/MenuDisplay.m | 2 +- gfx/common/metal_common.h | 6 ++++ gfx/common/metal_common.m | 15 ++-------- gfx/drivers_font/metal_raster_font.m | 24 ++------------- .../project.pbxproj | 30 +++++++++++++++++-- 6 files changed, 41 insertions(+), 45 deletions(-) diff --git a/gfx/common/metal/Context.m b/gfx/common/metal/Context.m index c56bfbc691..1ab4403a04 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; @@ -759,15 +760,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 c340744cfa..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_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 0b94dd2b77..8b87bdd880 100644 --- a/gfx/common/metal_common.m +++ b/gfx/common/metal_common.m @@ -505,9 +505,6 @@ NSLog(@"mtkView drawableSizeWillChange to: %f x %f",size.width,size.height); #ifdef HAVE_COCOATOUCH CGFloat scale = [[UIScreen mainScreen] scale]; -// // due to autolayout constraints? -//// if (size.width == INFINITY || size.height == INFINITY) { -// NSLog(@"mtkView drawableSizeWillChange width or height is infinity, flipping..."); [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]; @@ -1373,11 +1370,7 @@ typedef struct MTLALIGN(16) if (size == 0) continue; -#if defined(HAVE_COCOATOUCH) - id buf = [_context.device newBufferWithLength:size options:MTLResourceStorageModeShared]; -#else - id buf = [_context.device newBufferWithLength:size options:MTLResourceStorageModeManaged]; -#endif + id buf = [_context.device newBufferWithLength:size options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; STRUCT_ASSIGN(_engine.pass[i].buffers[j], buf); } } @finally @@ -1493,11 +1486,7 @@ typedef struct MTLALIGN(16) NSUInteger needed = sizeof(SpriteVertex) * count * 4; if (!_vert || _vert.length < needed) { -#if defined(HAVE_COCOATOUCH) - _vert = [_context.device newBufferWithLength:needed options:MTLResourceStorageModeShared]; -#else - _vert = [_context.device newBufferWithLength:needed options:MTLResourceStorageModeManaged]; -#endif + _vert = [_context.device newBufferWithLength:needed options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; } for (NSUInteger i = 0; i < count; i++) diff --git a/gfx/drivers_font/metal_raster_font.m b/gfx/drivers_font/metal_raster_font.m index 376f30f093..2783461f68 100644 --- a/gfx/drivers_font/metal_raster_font.m +++ b/gfx/drivers_font/metal_raster_font.m @@ -79,13 +79,7 @@ { _buffer = [_context.device newBufferWithBytes:_atlas->buffer length:(NSUInteger)(_stride * _atlas->height) - options: -#if defined(HAVE_COCOATOUCH) - MTLResourceStorageModeShared -#else - MTLResourceStorageModeManaged -#endif - ]; + 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 @@ -98,13 +92,7 @@ else { _buffer = [_context.device newBufferWithLength:(NSUInteger)(_stride * _atlas->height) - options: -#if defined(HAVE_COCOATOUCH) - MTLResourceStorageModeShared -#else - MTLResourceStorageModeManaged -#endif - ]; + options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; void *dst = _buffer.contents; void *src = _atlas->buffer; for (unsigned i = 0; i < _atlas->height; i++) @@ -127,13 +115,7 @@ _capacity = 12000; _vert = [_context.device newBufferWithLength:sizeof(SpriteVertex) * - _capacity options: -#if defined(HAVE_COCOATOUCH) - MTLResourceStorageModeShared -#else - MTLResourceStorageModeManaged -#endif - ]; + _capacity options:PLATFORM_METAL_RESOURCE_STORAGE_MODE]; if (![self _initializeState]) { return nil; diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj index 6c9042ed3d..88d745b7e5 100644 --- a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj @@ -842,8 +842,16 @@ "-DHAVE_SHADERPIPELINE", "-D_LZMA_UINT32_IS_ULONG", "-DHAVE_MFI", - "-DHAVE_BTSTACK", "-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.RetroArchDBUG; PRODUCT_NAME = RADEBUG; @@ -965,8 +973,16 @@ "-DHAVE_SHADERPIPELINE", "-D_LZMA_UINT32_IS_ULONG", "-DHAVE_MFI", - "-DHAVE_BTSTACK", "-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)"; @@ -1089,8 +1105,16 @@ "-DHAVE_SHADERPIPELINE", "-D_LZMA_UINT32_IS_ULONG", "-DHAVE_MFI", - "-DHAVE_BTSTACK", "-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)"; From 3dc716299fdd8f427a177bf8c1f57a74a4e695f6 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 07:54:47 -1000 Subject: [PATCH 08/19] replaced confusing ifdef with a more concise #if TARGET_OS_OSX --- gfx/drivers_context/cocoa_gl_ctx.m | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/gfx/drivers_context/cocoa_gl_ctx.m b/gfx/drivers_context/cocoa_gl_ctx.m index 6a597acd79..bb4d25ec46 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_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX #include #include #include @@ -115,7 +115,7 @@ void nsview_set_ptr(CocoaView *p) g_instance = p; } -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX static NSOpenGLPixelFormat* g_format; void *glcontext_get_ptr(void) @@ -239,7 +239,7 @@ float get_backing_scale_factor(void) return backing_scale_def; backing_scale_def = 1.0f; -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX screen = (BRIDGE RAScreen*)get_chosen_screen(); if (screen) @@ -268,7 +268,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_COCOATOUCH) && (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); @@ -298,7 +298,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_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX [g_context clearDrawable]; RELEASE(g_context); RELEASE(g_format); @@ -339,7 +339,7 @@ static void cocoagl_gfx_ctx_show_mouse(void *data, bool state) { (void)data; -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX if (state) [NSCursor unhide]; else @@ -368,7 +368,7 @@ float cocoagl_gfx_ctx_get_native_scale(void) return ret; } -#if !defined(HAVE_COCOATOUCH) && (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(); @@ -391,7 +391,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_COCOATOUCH) && (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( @@ -481,7 +481,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_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX CGRect size, cgrect; GLsizei backingPixelWidth, backingPixelHeight; #if defined(HAVE_COCOA_METAL) @@ -629,7 +629,7 @@ static void cocoagl_gfx_ctx_swap_buffers(void *data) if (!(--g_fast_forward_skips < 0)) return; -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX [g_context flushBuffer]; [g_hw_ctx flushBuffer]; #elif defined(HAVE_COCOATOUCH) @@ -696,7 +696,7 @@ static bool cocoagl_gfx_ctx_set_video_mode(void *data, #elif defined(HAVE_COCOA) CocoaView *g_view = (CocoaView*)nsview_get_ptr(); #endif -#if !defined(HAVE_COCOATOUCH) && (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; @@ -707,7 +707,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_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX if ([g_view respondsToSelector: @selector(setWantsBestResolutionOpenGLSurface:)]) [g_view setWantsBestResolutionOpenGLSurface:YES]; @@ -783,7 +783,7 @@ static bool cocoagl_gfx_ctx_set_video_mode(void *data, break; } -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX static bool has_went_fullscreen = false; /* TODO: Screen mode support. */ @@ -913,7 +913,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_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX cocoagl_gfx_ctx_update_title, #else NULL, /* update_title */ From 42e48542452cb4fb60ab02965f77fb6b323d7c16 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 07:57:10 -1000 Subject: [PATCH 09/19] replaced confusing ifdef with a more concise #if TARGET_OS_OSX --- ui/drivers/cocoa/cocoa_common.h | 2 +- ui/drivers/cocoa/cocoa_common.m | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ui/drivers/cocoa/cocoa_common.h b/ui/drivers/cocoa/cocoa_common.h index 0f8af00a27..06187a7bf8 100644 --- a/ui/drivers/cocoa/cocoa_common.h +++ b/ui/drivers/cocoa/cocoa_common.h @@ -114,7 +114,7 @@ typedef struct } apple_frontend_settings_t; extern apple_frontend_settings_t apple_frontend_settings; -#if !defined(HAVE_COCOATOUCH) && (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 80dd933d90..f0310c6b42 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -55,7 +55,7 @@ void *glkitview_init(void); } #endif -#if !defined(HAVE_COCOATOUCH) && (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; @@ -77,7 +77,7 @@ void *glkitview_init(void); { self = [super init]; -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX [self setAutoresizingMask:NSViewWidthSizable | NSViewHeightSizable]; #endif @@ -115,7 +115,7 @@ void *glkitview_init(void); return self; } -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX - (void)setFrame:(NSRect)frameRect { [super setFrame:frameRect]; From 588d0b7595321e8425bc0fa1f302c7e67f51858f Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 08:02:17 -1000 Subject: [PATCH 10/19] removed commented out code --- ui/drivers/ui_cocoatouch.m | 3 --- 1 file changed, 3 deletions(-) diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index dfc267e398..a1cf2f8fc4 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -334,10 +334,7 @@ enum _vt = vt; if (_renderView != nil) { -// _renderView.wantsLayer = NO; -// _renderView.layer = nil; [_renderView removeFromSuperview]; -// self.window.contentView = nil; _renderView = nil; } From 6692a8797fff26df5f13dc3a8ca6cc367e1e25f9 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 08:04:17 -1000 Subject: [PATCH 11/19] added comments on why native companion menu is disabled --- ui/drivers/cocoa/cocoa_common.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ui/drivers/cocoa/cocoa_common.m b/ui/drivers/cocoa/cocoa_common.m index f0310c6b42..0f9e52ecfa 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -176,6 +176,8 @@ void *glkitview_init(void); #elif TARGET_OS_IOS -(void) showNativeMenu { dispatch_async(dispatch_get_main_queue(), ^{ + // disabling this for now - the UIKit menu is becoming less useful + // TODO: maybe show the RA menu instead // [[RetroArch_iOS get] toggleUI]; }); } From 941a4887330c1bda9e32c2ec451ad548c5102f39 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 08:37:06 -1000 Subject: [PATCH 12/19] removed btstack since less relevant for iOS --- pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj index 40f1d37395..ca76c217a4 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.RADEBUG2; @@ -798,7 +797,6 @@ "-DHAVE_SHADERPIPELINE", "-D_LZMA_UINT32_IS_ULONG", "-DHAVE_MFI", - "-DHAVE_BTSTACK", "-DHAVE_KEYMAPPER", ); PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RADEBUG2; From b83823f1f17b1f9044f077c4f2cf155db2588613 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 11:42:19 -1000 Subject: [PATCH 13/19] Add preprocessor flags for tvOS and other build settings; fix compiler errors when building for tvOS sdk --- gfx/common/metal/Context.m | 2 ++ .../project.pbxproj | 18 ++++++++++++++++++ ui/drivers/ui_cocoatouch.m | 3 +++ 3 files changed, 23 insertions(+) diff --git a/gfx/common/metal/Context.m b/gfx/common/metal/Context.m index 1ab4403a04..6b4f2a8851 100644 --- a/gfx/common/metal/Context.m +++ b/gfx/common/metal/Context.m @@ -175,6 +175,8 @@ { #if TARGET_OS_OSX return _layer.displaySyncEnabled; +#else + return NO; #endif } diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj index 88d745b7e5..74ba5cad9a 100644 --- a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj @@ -672,6 +672,7 @@ 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", @@ -784,6 +785,7 @@ LD_NO_PIE = YES; LIBRARY_SEARCH_PATHS = ""; MARKETING_VERSION = 1.8.9; + MTL_FAST_MATH = YES; "OTHER_CFLAGS[arch=*]" = ( "-DNS_BLOCK_ASSERTIONS=1", "-DNDEBUG", @@ -896,6 +898,7 @@ 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; @@ -913,6 +916,12 @@ ../../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"; @@ -988,6 +997,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = appletvos; + SRCBASE = "$(SRCROOT)/../.."; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.1; }; @@ -1026,6 +1036,7 @@ 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; @@ -1043,6 +1054,12 @@ ../../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"; @@ -1120,6 +1137,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; SDKROOT = appletvos; + SRCBASE = "$(SRCROOT)/../.."; TARGETED_DEVICE_FAMILY = 3; TVOS_DEPLOYMENT_TARGET = 12.1; }; diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index a1cf2f8fc4..84bb196859 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -345,7 +345,9 @@ enum MetalView *v = [MetalView new]; v.paused = YES; v.enableSetNeedsDisplay = NO; +#if TARGET_OS_IOS v.multipleTouchEnabled = YES; +#endif _renderView = v; } break; @@ -390,6 +392,7 @@ enum - (bool)setDisableDisplaySleep:(bool)disable { // no-op for iOS + return NO; } #endif From a5fd455c33d85ea520455c3c9fc2c84af8a96029 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 15:19:15 -1000 Subject: [PATCH 14/19] fixed setting default audio driver for coreaudio - no need to check for HAVE_COCOA_METAL --- configuration.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/configuration.c b/configuration.c index a8eeac4c32..0d661982a4 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) From 59ae1a1ca8b59b85f4b481522922518a035a39bb Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 15:25:24 -1000 Subject: [PATCH 15/19] revert bundle id and product name --- .../project.pbxproj | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj index 74ba5cad9a..3fd77a1332 100644 --- a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj @@ -95,7 +95,7 @@ 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 /* RADEBUG.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RADEBUG.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 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 = ""; }; @@ -363,7 +363,7 @@ 96AFAE2616C1D4EA009DE44C /* Products */ = { isa = PBXGroup; children = ( - 9204BE2B1D319EF300BD49DB /* RADEBUG.app */, + 9204BE2B1D319EF300BD49DB /* RetroArch.app */, 926C77D721FD1E6500103EDE /* RetroArchTV.app */, ); name = Products; @@ -444,7 +444,7 @@ ); name = RetroArchiOS11; productName = RetroArch; - productReference = 9204BE2B1D319EF300BD49DB /* RADEBUG.app */; + productReference = 9204BE2B1D319EF300BD49DB /* RetroArch.app */; productType = "com.apple.product-type.application"; }; 926C77D621FD1E6500103EDE /* RetroArchTV */ = { @@ -740,8 +740,8 @@ "-DENABLE_HLSL", "-DHAVE_BUILTINGLSLANG", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchDBUG; - PRODUCT_NAME = RADEBUG; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.iosRetroArch; + PRODUCT_NAME = RetroArch; PROVISIONING_PROFILE = ""; SRCBASE = "$(SRCROOT)/../.."; VALID_ARCHS = "armv7 arm64"; @@ -855,8 +855,8 @@ "-DENABLE_HLSL", "-DHAVE_BUILTINGLSLANG", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RetroArchDBUG; - PRODUCT_NAME = RADEBUG; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.iosRetroArch; + PRODUCT_NAME = RetroArch; PROVISIONING_PROFILE = ""; SRCBASE = "$(SRCROOT)/../.."; VALID_ARCHS = "armv7 arm64"; From b1a718d8c5f21cf2f681587b892bfc3b5487010d Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Sun, 19 Jul 2020 15:32:23 -1000 Subject: [PATCH 16/19] fixed typo in bundle id --- pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj index 3fd77a1332..aa4b2ddc25 100644 --- a/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11_Metal.xcodeproj/project.pbxproj @@ -740,7 +740,7 @@ "-DENABLE_HLSL", "-DHAVE_BUILTINGLSLANG", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.iosRetroArch; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; PRODUCT_NAME = RetroArch; PROVISIONING_PROFILE = ""; SRCBASE = "$(SRCROOT)/../.."; @@ -855,7 +855,7 @@ "-DENABLE_HLSL", "-DHAVE_BUILTINGLSLANG", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.iosRetroArch; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; PRODUCT_NAME = RetroArch; PROVISIONING_PROFILE = ""; SRCBASE = "$(SRCROOT)/../.."; From 271ac7f92554d3be40f01731ba0a17f0b873966c Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Mon, 20 Jul 2020 14:00:28 -1000 Subject: [PATCH 17/19] support the OpenGL driver in the metal build by delegating the view initialization to the ApplePlatform delegate (metal build only for now) --- gfx/drivers_context/cocoa_gl_ctx.m | 4 ++++ retroarch.c | 2 +- ui/drivers/ui_cocoatouch.m | 4 ++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/gfx/drivers_context/cocoa_gl_ctx.m b/gfx/drivers_context/cocoa_gl_ctx.m index bb4d25ec46..bfe6c22fd7 100644 --- a/gfx/drivers_context/cocoa_gl_ctx.m +++ b/gfx/drivers_context/cocoa_gl_ctx.m @@ -831,6 +831,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; diff --git a/retroarch.c b/retroarch.c index d9de6eb266..f9a3182252 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1005,7 +1005,7 @@ static const ui_companion_driver_t *ui_companion_drivers[] = { #if defined(_WIN32) && !defined(_XBOX) && !defined(__WINRT__) &ui_companion_win32, #endif -#if !defined(HAVE_COCOATOUCH) && (defined(HAVE_COCOA) || defined(HAVE_COCOA_METAL)) +#if TARGET_OS_OSX &ui_companion_cocoa, #endif #ifdef HAVE_COCOATOUCH diff --git a/ui/drivers/ui_cocoatouch.m b/ui/drivers/ui_cocoatouch.m index 84bb196859..0d12eca44a 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -352,9 +352,9 @@ enum } break; - case APPLE_VIEW_TYPE_OPENGL: + case APPLE_VIEW_TYPE_OPENGL_ES: { - _renderView = [CocoaView get]; + _renderView = (BRIDGE GLKView*)glkitview_init(); break; } From 2187cf67c938b706f2c624f4ab4d9e4a38181d4a Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Mon, 20 Jul 2020 15:38:24 -1000 Subject: [PATCH 18/19] Support the ApplePlatform delegate for all iOS builds (the OpenGL one) so that the view initialization happens in the same way; remove the companion UI for iOS; four finger swipe down now shows RA menu on iOS --- griffin/griffin_objc.m | 6 +- .../RetroArch_iOS11.xcodeproj/project.pbxproj | 14 +- retroarch.c | 3 - ui/drivers/cocoa/apple_platform.h | 12 +- ui/drivers/cocoa/cocoa_common.h | 20 -- ui/drivers/cocoa/cocoa_common.m | 6 +- ui/drivers/ui_cocoatouch.m | 186 +----------------- 7 files changed, 22 insertions(+), 225 deletions(-) diff --git a/griffin/griffin_objc.m b/griffin/griffin_objc.m index 97c61d82cb..1ea7b5a959 100644 --- a/griffin/griffin_objc.m +++ b/griffin/griffin_objc.m @@ -34,9 +34,9 @@ #if defined(HAVE_COCOATOUCH) -#if TARGET_OS_IOS -#include "../ui/drivers/cocoa/cocoatouch_menu.m" -#endif +//#if TARGET_OS_IOS +//#include "../ui/drivers/cocoa/cocoatouch_menu.m" +//#endif #include "../ui/drivers/ui_cocoatouch.m" #else diff --git a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj index ca76c217a4..ebaa1ad514 100644 --- a/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj +++ b/pkg/apple/RetroArch_iOS11.xcodeproj/project.pbxproj @@ -87,7 +87,7 @@ 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 /* RADEBUGL.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RADEBUGL.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 9204BE2B1D319EF300BD49DB /* RetroArch.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RetroArch.app; sourceTree = BUILT_PRODUCTS_DIR; }; 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 = ""; }; @@ -343,7 +343,7 @@ 96AFAE2616C1D4EA009DE44C /* Products */ = { isa = PBXGroup; children = ( - 9204BE2B1D319EF300BD49DB /* RADEBUGL.app */, + 9204BE2B1D319EF300BD49DB /* RetroArch.app */, 926C77D721FD1E6500103EDE /* RetroArchTV.app */, ); name = Products; @@ -419,7 +419,7 @@ ); name = RetroArchiOS11; productName = RetroArch; - productReference = 9204BE2B1D319EF300BD49DB /* RADEBUGL.app */; + productReference = 9204BE2B1D319EF300BD49DB /* RetroArch.app */; productType = "com.apple.product-type.application"; }; 926C77D621FD1E6500103EDE /* RetroArchTV */ = { @@ -696,8 +696,8 @@ "-DHAVE_MFI", "-DHAVE_KEYMAPPER", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RADEBUG2; - PRODUCT_NAME = RADEBUGL; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; + PRODUCT_NAME = RetroArch; PROVISIONING_PROFILE = ""; VALID_ARCHS = "armv7 arm64"; WARNING_CFLAGS = "-Wno-invalid-source-encoding"; @@ -799,8 +799,8 @@ "-DHAVE_MFI", "-DHAVE_KEYMAPPER", ); - PRODUCT_BUNDLE_IDENTIFIER = com.libretro.RADEBUG2; - PRODUCT_NAME = RADEBUGL; + PRODUCT_BUNDLE_IDENTIFIER = com.libretro.dist.ios.RetroArch; + PRODUCT_NAME = RetroArch; PROVISIONING_PROFILE = ""; VALID_ARCHS = "armv7 arm64"; WARNING_CFLAGS = "-Wno-invalid-source-encoding"; diff --git a/retroarch.c b/retroarch.c index f9a3182252..086b6e083b 100644 --- a/retroarch.c +++ b/retroarch.c @@ -1007,9 +1007,6 @@ static const ui_companion_driver_t *ui_companion_drivers[] = { #endif #if TARGET_OS_OSX &ui_companion_cocoa, -#endif -#ifdef HAVE_COCOATOUCH - &ui_companion_cocoatouch, #endif &ui_companion_null, NULL diff --git a/ui/drivers/cocoa/apple_platform.h b/ui/drivers/cocoa/apple_platform.h index c6f062cb2c..b8d007461f 100644 --- a/ui/drivers/cocoa/apple_platform.h +++ b/ui/drivers/cocoa/apple_platform.h @@ -1,9 +1,12 @@ #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 @@ -52,16 +55,11 @@ extern id apple_platform; id apple_platform; #if defined(HAVE_COCOATOUCH) -#if defined(HAVE_COCOA_METAL) @interface RetroArch_iOS : UINavigationController { UIView *_renderView; apple_view_type_t _vt; } -#else -@interface RetroArch_iOS : UINavigationController -#endif @property (nonatomic) UIWindow* window; @property (nonatomic) NSString* documentsDirectory; @@ -101,7 +99,7 @@ id apple_platform; } #endif -#if !defined(HAVE_COCOATOUCH) && (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 06187a7bf8..695561baf2 100644 --- a/ui/drivers/cocoa/cocoa_common.h +++ b/ui/drivers/cocoa/cocoa_common.h @@ -82,26 +82,6 @@ typedef enum apple_view_type { + (CocoaView*)get; @end -#if !defined(HAVE_COCOA_METAL) -@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 -#endif - void get_ios_version(int *major, int *minor); #endif diff --git a/ui/drivers/cocoa/cocoa_common.m b/ui/drivers/cocoa/cocoa_common.m index 0f9e52ecfa..e163fff64f 100644 --- a/ui/drivers/cocoa/cocoa_common.m +++ b/ui/drivers/cocoa/cocoa_common.m @@ -29,10 +29,8 @@ #ifdef HAVE_COCOATOUCH #import "GCDWebUploader.h" #import "WebServer.h" -#ifdef HAVE_COCOA_METAL #include "apple_platform.h" #endif -#endif @@ -176,9 +174,7 @@ void *glkitview_init(void); #elif TARGET_OS_IOS -(void) showNativeMenu { dispatch_async(dispatch_get_main_queue(), ^{ - // disabling this for now - the UIKit menu is becoming less useful - // TODO: maybe show the RA menu instead -// [[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 0d12eca44a..e2bdeffb06 100644 --- a/ui/drivers/ui_cocoatouch.m +++ b/ui/drivers/ui_cocoatouch.m @@ -40,7 +40,7 @@ #import -#ifdef HAVE_COCOA_METAL +#if defined(HAVE_COCOA_METAL) || defined(HAVE_COCOATOUCH) id apple_platform; #else static id apple_platform; @@ -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; @@ -318,7 +318,6 @@ enum @implementation RetroArch_iOS #pragma mark - ApplePlatform -#ifdef HAVE_COCOA_METAL -(id)renderView { return _renderView; } @@ -339,6 +338,7 @@ enum } switch (vt) { +#ifdef HAVE_COCOA_METAL case APPLE_VIEW_TYPE_VULKAN: case APPLE_VIEW_TYPE_METAL: { @@ -351,7 +351,7 @@ enum _renderView = v; } break; - +#endif case APPLE_VIEW_TYPE_OPENGL_ES: { _renderView = (BRIDGE GLKView*)glkitview_init(); @@ -377,6 +377,7 @@ enum } - (void)setVideoMode:(gfx_ctx_mode_t)mode { +#ifdef HAVE_COCOA_METAL MetalView *metalView = (MetalView*) _renderView; CGFloat scale = [[UIScreen mainScreen] scale]; [metalView setDrawableSize:CGSizeMake( @@ -384,6 +385,7 @@ enum _renderView.bounds.size.height * scale ) ]; +#endif } - (void)setCursorVisible:(bool)v { @@ -394,7 +396,6 @@ enum // no-op for iOS return NO; } -#endif + (RetroArch_iOS*)get { @@ -428,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) { @@ -556,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[]) @@ -617,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", -}; From 0b0f55f04345958a1da8414bc825b18cdb684dd3 Mon Sep 17 00:00:00 2001 From: Yoshi Sugawara Date: Mon, 20 Jul 2020 16:51:55 -1000 Subject: [PATCH 19/19] remove commented out code, simplify ifdef for macOS --- griffin/griffin_objc.m | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/griffin/griffin_objc.m b/griffin/griffin_objc.m index 1ea7b5a959..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_COCOATOUCH) && (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"