(iOS) Implement iOS runloop now through CADisplayLink

This commit is contained in:
Twinaphex 2015-03-12 01:15:42 +01:00
parent 7b22c397f9
commit 498fa2dd21
2 changed files with 30 additions and 26 deletions

View File

@ -14,6 +14,7 @@
501881EE184BB54C006F665D /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 501881ED184BB54C006F665D /* CoreMedia.framework */; };
5041BAF41A9D40D000A77A33 /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 963C3C33186E3DED00A6EB1E /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
50521A441AA23BF500185CC9 /* griffin_objc.m in Sources */ = {isa = PBXBuildFile; fileRef = 50521A431AA23BF500185CC9 /* griffin_objc.m */; };
50C3B1AE1AB1107200F478D3 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50C3B1AD1AB1107100F478D3 /* QuartzCore.framework */; };
50CCC828185E0E7D001F5BC8 /* CoreLocation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */; };
50D00E8E19D117C400EBA71E /* cc_resampler_neon.S in Sources */ = {isa = PBXBuildFile; fileRef = 50D00E8D19D117C400EBA71E /* cc_resampler_neon.S */; };
50E7189F184B88AA001956CE /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 50E7189E184B88AA001956CE /* CoreVideo.framework */; };
@ -45,6 +46,7 @@
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; };
50521A431AA23BF500185CC9 /* griffin_objc.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = griffin_objc.m; path = ../../griffin/griffin_objc.m; sourceTree = "<group>"; };
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; };
50D00E8D19D117C400EBA71E /* cc_resampler_neon.S */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm; name = cc_resampler_neon.S; path = ../../audio/drivers_resampler/cc_resampler_neon.S; sourceTree = "<group>"; };
50E7189E184B88AA001956CE /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
@ -79,6 +81,7 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
50C3B1AE1AB1107200F478D3 /* QuartzCore.framework in Frameworks */,
5041BAF41A9D40D000A77A33 /* GameController.framework in Frameworks */,
696012F219F3389A006A1088 /* CoreText.framework in Frameworks */,
50CCC828185E0E7D001F5BC8 /* CoreLocation.framework in Frameworks */,
@ -149,6 +152,7 @@
96AFAE2816C1D4EA009DE44C /* Frameworks */ = {
isa = PBXGroup;
children = (
50C3B1AD1AB1107100F478D3 /* QuartzCore.framework */,
696012F119F3389A006A1088 /* CoreText.framework */,
963C3C33186E3DED00A6EB1E /* GameController.framework */,
50CCC827185E0E7D001F5BC8 /* CoreLocation.framework */,
@ -252,7 +256,7 @@
ORGANIZATIONNAME = RetroArch;
TargetAttributes = {
96AFAE2416C1D4EA009DE44C = {
DevelopmentTeam = 778HQV8ZV4;
DevelopmentTeam = YLQUB5DVUQ;
};
};
};
@ -451,8 +455,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_CXX_LIBRARY = "libstdc++";
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist";
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
@ -499,6 +503,7 @@
"-D_LZMA_UINT32_IS_ULONG",
);
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
VALID_ARCHS = "armv7 armv7s";
WRAPPER_EXTENSION = app;
};
@ -514,8 +519,8 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_CXX_LIBRARY = "libstdc++";
CODE_SIGN_IDENTITY = "";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "";
CODE_SIGN_IDENTITY = "iPhone Developer";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_RESOURCE_RULES_PATH = "$(SDKROOT)/ResourceRules.plist";
GCC_PRECOMPILE_PREFIX_HEADER = NO;
GCC_PREFIX_HEADER = "";
@ -599,6 +604,7 @@
"-D_LZMA_UINT32_IS_ULONG",
);
PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE = "";
VALID_ARCHS = "armv7 armv7s";
WRAPPER_EXTENSION = app;
};

View File

@ -284,36 +284,34 @@ static void rarch_main_event_pump(void)
}while(result == kCFRunLoopRunHandledSource);
}
- (void) rarch_main
- (void) rarch_draw:(id)sender
{
int ret = 0;
while (ret != -1)
{
rarch_main_event_pump();
ret = rarch_main_iterate();
if (ret == -1)
break;
if (g_runloop.is_idle)
continue;
#if 0
if (g_runloop.is_menu && !menu_display_update_pending())
continue;
#endif
if (g_view)
[g_view display];
}
rarch_main_event_pump();
ret = rarch_main_iterate();
if (ret == -1)
goto exit;
if (g_runloop.is_idle)
return;
if (g_view)
[g_view display];
return;
exit:
main_exit_save_config();
main_exit(NULL);
}
- (void) apple_start_iteration
{
[self performSelectorOnMainThread:@selector(rarch_main) withObject:nil waitUntilDone:NO];
[[CADisplayLink displayLinkWithTarget:self
selector:@selector(rarch_draw:)] addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSDefaultRunLoopMode];
}
- (void) apple_stop_iteration