diff options
Diffstat (limited to 'platform')
52 files changed, 710 insertions, 86 deletions
diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index d4755f4ed6..6fc78e3264 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -1493,6 +1493,16 @@ void EditorExportPlatformAndroid::_device_poll_thread(void *ud) { OS::get_singleton()->delay_usec(3000000); } + if (EditorSettings::get_singleton()->get("android/shutdown_adb_on_exit")) { + String adb=EditorSettings::get_singleton()->get("android/adb"); + if (!FileAccess::exists(adb)) { + return; //adb not configured + } + + List<String> args; + args.push_back("kill-server"); + OS::get_singleton()->execute(adb,args,true); + }; } Error EditorExportPlatformAndroid::run(int p_device, int p_flags) { diff --git a/platform/haiku/key_mapping_haiku.cpp b/platform/haiku/key_mapping_haiku.cpp index d7bde9a727..1c0584523a 100644 --- a/platform/haiku/key_mapping_haiku.cpp +++ b/platform/haiku/key_mapping_haiku.cpp @@ -160,7 +160,7 @@ unsigned int KeyMappingHaiku::get_keysym(int32 raw_char, int32 key) { if (raw_char == B_UP_ARROW && key == 0x38) { return KEY_KP_8; } if (raw_char == B_PAGE_UP && key == 0x39) { return KEY_KP_9; } if (raw_char == 0x2F && key == 0x23) { return KEY_KP_DIVIDE; } - if (raw_char == 0x2D && key == 0x25) { return KEY_KP_SUBSTRACT; } + if (raw_char == 0x2D && key == 0x25) { return KEY_KP_SUBTRACT; } if (raw_char == B_DELETE && key == 0x65) { return KEY_KP_PERIOD; } if (raw_char == 0x10) { diff --git a/platform/iphone/gl_view.mm b/platform/iphone/gl_view.mm index 88361e87e4..94fbb9e174 100755 --- a/platform/iphone/gl_view.mm +++ b/platform/iphone/gl_view.mm @@ -58,6 +58,7 @@ void _show_keyboard(String); void _hide_keyboard(); bool _play_video(String, float, String, String); bool _is_video_playing(); +void _pause_video(); void _focus_out_video(); void _unpause_video(); void _stop_video(); @@ -74,64 +75,30 @@ void _hide_keyboard() { keyboard_text = ""; }; -/* -bool _play_video(String p_path, float p_volume) { - - float player_volume = p_volume * AudioServer::get_singleton()->get_singleton()->get_stream_global_volume_scale(); - video_previous_volume = [[MPMusicPlayerController applicationMusicPlayer] volume]; - - //[[MPMusicPlayerController applicationMusicPlayer] setVolume: player_volume]; - - p_path = Globals::get_singleton()->globalize_path(p_path); - - NSString* file_path = [[[NSString alloc] initWithUTF8String:p_path.utf8().get_data()] autorelease]; - NSURL *file_url = [NSURL fileURLWithPath:file_path]; - - _instance.moviePlayerController = [[MPMoviePlayerController alloc] initWithContentURL:file_url]; - _instance.moviePlayerController.controlStyle = MPMovieControlStyleNone; - [_instance.moviePlayerController setScalingMode:MPMovieScalingModeAspectFit]; - //[_instance.moviePlayerController setScalingMode:MPMovieScalingModeAspectFill]; - - [[NSNotificationCenter defaultCenter] addObserver:_instance - selector:@selector(moviePlayBackDidFinish:) - name:MPMoviePlayerPlaybackDidFinishNotification - object:_instance.moviePlayerController]; - - [_instance.moviePlayerController.view setFrame:_instance.bounds]; - _instance.moviePlayerController.view.userInteractionEnabled = NO; - [_instance addSubview:_instance.moviePlayerController.view]; - [_instance.moviePlayerController play]; - - video_playing = true; - - return true; -} -*/ - bool _play_video(String p_path, float p_volume, String p_audio_track, String p_subtitle_track) { p_path = Globals::get_singleton()->globalize_path(p_path); NSString* file_path = [[[NSString alloc] initWithUTF8String:p_path.utf8().get_data()] autorelease]; - //NSURL *file_url = [NSURL fileURLWithPath:file_path]; _instance.avAsset = [AVAsset assetWithURL:[NSURL fileURLWithPath:file_path]]; + _instance.avPlayerItem =[[AVPlayerItem alloc]initWithAsset:_instance.avAsset]; [_instance.avPlayerItem addObserver:_instance forKeyPath:@"status" options:0 context:nil]; - _instance.avPlayer = [[AVPlayer alloc]initWithPlayerItem:_instance.avPlayerItem]; - _instance.avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:_instance.avPlayer]; + _instance.avPlayer = [[AVPlayer alloc]initWithPlayerItem:_instance.avPlayerItem]; + _instance.avPlayerLayer =[AVPlayerLayer playerLayerWithPlayer:_instance.avPlayer]; - [_instance.avPlayer addObserver:_instance forKeyPath:@"status" options:0 context:nil]; - [[NSNotificationCenter defaultCenter] addObserver:_instance + [_instance.avPlayer addObserver:_instance forKeyPath:@"status" options:0 context:nil]; + [[NSNotificationCenter defaultCenter] addObserver:_instance selector:@selector(playerItemDidReachEnd:) name:AVPlayerItemDidPlayToEndTimeNotification object:[_instance.avPlayer currentItem]]; [_instance.avPlayer addObserver:_instance forKeyPath:@"rate" options:NSKeyValueObservingOptionNew context:0]; - [_instance.avPlayerLayer setFrame:_instance.bounds]; - [_instance.layer addSublayer:_instance.avPlayerLayer]; - [_instance.avPlayer play]; + [_instance.avPlayerLayer setFrame:_instance.bounds]; + [_instance.layer addSublayer:_instance.avPlayerLayer]; + [_instance.avPlayer play]; AVMediaSelectionGroup *audioGroup = [_instance.avAsset mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicAudible]; @@ -173,23 +140,19 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s } } - video_playing = true; + video_playing = true; return true; } bool _is_video_playing() { - //NSInteger playback_state = _instance.moviePlayerController.playbackState; - //return video_playing || _instance.moviePlayerController.playbackState == MPMoviePlaybackStatePlaying; - //if (video_found_error) - // return false; - //return (_instance.moviePlayerController.playbackState == MPMoviePlaybackStatePlaying); - - return video_playing || (_instance.avPlayer.rate > 0 && !_instance.avPlayer.error); + if (_instance.avPlayer.error) { + printf("Error during playback\n"); + } + return (_instance.avPlayer.rate > 0 && !_instance.avPlayer.error); } void _pause_video() { - //[_instance.moviePlayerController pause]; video_current_time = _instance.avPlayer.currentTime; [_instance.avPlayer pause]; video_playing = false; @@ -204,15 +167,9 @@ void _unpause_video() { [_instance.avPlayer play]; video_playing = true; - - //video_current_time = kCMTimeZero; }; void _stop_video() { - //[_instance.moviePlayerController stop]; - //[_instance.moviePlayerController.view removeFromSuperview]; - //[[MPMusicPlayerController applicationMusicPlayer] setVolume: video_previous_volume]; - [_instance.avPlayer pause]; [_instance.avPlayerLayer removeFromSuperlayer]; _instance.avPlayer = nil; diff --git a/platform/iphone/os_iphone.cpp b/platform/iphone/os_iphone.cpp index ec62cb5c26..9f6b8433aa 100644 --- a/platform/iphone/os_iphone.cpp +++ b/platform/iphone/os_iphone.cpp @@ -41,6 +41,7 @@ #include "core/os/dir_access.h" #include "core/os/file_access.h" +#include "core/io/file_access_pack.h" #include "core/globals.h" #include "sem_iphone.h" @@ -517,12 +518,25 @@ extern void _focus_out_video(); Error OSIPhone::native_video_play(String p_path, float p_volume, String p_audio_track, String p_subtitle_track) { FileAccess* f = FileAccess::open(p_path, FileAccess::READ); bool exists = f && f->is_open(); - printf("file exists for %ls, %i, %p\n", p_path.c_str(), (int)exists, f); - if (f) - memdelete(f); + + String tempFile = get_data_dir(); if (!exists) return FAILED; - if ( _play_video(p_path, p_volume, p_audio_track, p_subtitle_track) ) + + if (p_path.begins_with("res://")) { + if (PackedData::get_singleton()->has_path(p_path)) { + print("Unable to play %S using the native player as it resides in a .pck file\n", p_path.c_str()); + return ERR_INVALID_PARAMETER; + } else { + p_path = p_path.replace("res:/", Globals::get_singleton()->get_resource_path()); + } + } else if (p_path.begins_with("user://")) + p_path = p_path.replace("user:/", get_data_dir()); + + memdelete(f); + + print("Playing video: %S\n", p_path.c_str()); + if (_play_video(p_path, p_volume, p_audio_track, p_subtitle_track) ) return OK; return FAILED; } diff --git a/platform/iphone/os_iphone.h b/platform/iphone/os_iphone.h index abe797fed1..d34e8bfe95 100644 --- a/platform/iphone/os_iphone.h +++ b/platform/iphone/os_iphone.h @@ -195,12 +195,12 @@ public: void set_unique_ID(String p_ID); String get_unique_ID() const; - virtual Error native_video_play(String p_path, float p_volume, String p_audio_track, String p_subtitle_track); - virtual bool native_video_is_playing() const; - virtual void native_video_pause(); + virtual Error native_video_play(String p_path, float p_volume, String p_audio_track, String p_subtitle_track); + virtual bool native_video_is_playing() const; + virtual void native_video_pause(); virtual void native_video_unpause(); virtual void native_video_focus_out(); - virtual void native_video_stop(); + virtual void native_video_stop(); OSIPhone(int width, int height); ~OSIPhone(); diff --git a/platform/iphone/xcode/godot_xcode/data.pck b/platform/iphone/xcode/godot_xcode/data.pck new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/data.pck diff --git a/platform/iphone/xcode/godot_xcode/godot_debug.iphone b/platform/iphone/xcode/godot_xcode/godot_debug.iphone new file mode 100755 index 0000000000..e69de29bb2 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_debug.iphone diff --git a/platform/iphone/xcode/godot_xcode/godot_ios.xcodeproj/project.pbxproj b/platform/iphone/xcode/godot_xcode/godot_ios.xcodeproj/project.pbxproj new file mode 100644 index 0000000000..bdba8488c8 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios.xcodeproj/project.pbxproj @@ -0,0 +1,370 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + D07CD43F1C5D573600B7FB28 /* Default-568h@2x~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4331C5D573600B7FB28 /* Default-568h@2x~iphone.png */; }; + D07CD4401C5D573600B7FB28 /* Default-667h.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4341C5D573600B7FB28 /* Default-667h.png */; }; + D07CD4411C5D573600B7FB28 /* Default-667h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */; }; + D07CD4421C5D573600B7FB28 /* Default-736h.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4361C5D573600B7FB28 /* Default-736h.png */; }; + D07CD4431C5D573600B7FB28 /* Default-736h@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4371C5D573600B7FB28 /* Default-736h@3x.png */; }; + D07CD4441C5D573600B7FB28 /* Default-Landscape-736h.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4381C5D573600B7FB28 /* Default-Landscape-736h.png */; }; + D07CD4451C5D573600B7FB28 /* Default-Landscape@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD4391C5D573600B7FB28 /* Default-Landscape@2x~ipad.png */; }; + D07CD4461C5D573600B7FB28 /* Default-Landscape~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43A1C5D573600B7FB28 /* Default-Landscape~ipad.png */; }; + D07CD4471C5D573600B7FB28 /* Default-Portrait@2x~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43B1C5D573600B7FB28 /* Default-Portrait@2x~ipad.png */; }; + D07CD4481C5D573600B7FB28 /* Default-Portrait~ipad.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43C1C5D573600B7FB28 /* Default-Portrait~ipad.png */; }; + D07CD4491C5D573600B7FB28 /* Default@2x~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43D1C5D573600B7FB28 /* Default@2x~iphone.png */; }; + D07CD44A1C5D573600B7FB28 /* Default~iphone.png in Resources */ = {isa = PBXBuildFile; fileRef = D07CD43E1C5D573600B7FB28 /* Default~iphone.png */; }; + D07CD44E1C5D589C00B7FB28 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = D07CD44D1C5D589C00B7FB28 /* Images.xcassets */; }; + D0BCFE3818AEBDA2004A7AAE /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */; }; + D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */; }; + D0BCFE3C18AEBDA2004A7AAE /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */; }; + D0BCFE3E18AEBDA2004A7AAE /* GLKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */; }; + D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */; }; + D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */; }; + D0BCFE7818AEBFEB004A7AAE /* data.pck in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7718AEBFEB004A7AAE /* data.pck */; }; + D0BCFE7A18AEC06A004A7AAE /* godot_opt.iphone in Resources */ = {isa = PBXBuildFile; fileRef = D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + D07CD4331C5D573600B7FB28 /* Default-568h@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x~iphone.png"; sourceTree = "<group>"; }; + D07CD4341C5D573600B7FB28 /* Default-667h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h.png"; sourceTree = "<group>"; }; + D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-667h@2x.png"; sourceTree = "<group>"; }; + D07CD4361C5D573600B7FB28 /* Default-736h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-736h.png"; sourceTree = "<group>"; }; + D07CD4371C5D573600B7FB28 /* Default-736h@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-736h@3x.png"; sourceTree = "<group>"; }; + D07CD4381C5D573600B7FB28 /* Default-Landscape-736h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape-736h.png"; sourceTree = "<group>"; }; + D07CD4391C5D573600B7FB28 /* Default-Landscape@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape@2x~ipad.png"; sourceTree = "<group>"; }; + D07CD43A1C5D573600B7FB28 /* Default-Landscape~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Landscape~ipad.png"; sourceTree = "<group>"; }; + D07CD43B1C5D573600B7FB28 /* Default-Portrait@2x~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait@2x~ipad.png"; sourceTree = "<group>"; }; + D07CD43C1C5D573600B7FB28 /* Default-Portrait~ipad.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-Portrait~ipad.png"; sourceTree = "<group>"; }; + D07CD43D1C5D573600B7FB28 /* Default@2x~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x~iphone.png"; sourceTree = "<group>"; }; + D07CD43E1C5D573600B7FB28 /* Default~iphone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default~iphone.png"; sourceTree = "<group>"; }; + D07CD44D1C5D589C00B7FB28 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; }; + D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = godot_ios.app; sourceTree = BUILT_PRODUCTS_DIR; }; + D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLKit.framework; path = System/Library/Frameworks/GLKit.framework; sourceTree = SDKROOT; }; + D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = System/Library/Frameworks/OpenGLES.framework; sourceTree = SDKROOT; }; + D0BCFE4318AEBDA2004A7AAE /* godot_ios-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "godot_ios-Info.plist"; sourceTree = "<group>"; }; + D0BCFE4518AEBDA2004A7AAE /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; }; + D0BCFE4918AEBDA2004A7AAE /* godot_ios-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "godot_ios-Prefix.pch"; sourceTree = "<group>"; }; + D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + D0BCFE7718AEBFEB004A7AAE /* data.pck */ = {isa = PBXFileReference; lastKnownFileType = text; path = data.pck; sourceTree = "<group>"; }; + D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.executable"; path = godot_opt.iphone; sourceTree = "<group>"; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + D0BCFE3118AEBDA2004A7AAE /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + D0BCFE4018AEBDA2004A7AAE /* OpenGLES.framework in Frameworks */, + D0BCFE3A18AEBDA2004A7AAE /* CoreGraphics.framework in Frameworks */, + D0BCFE3C18AEBDA2004A7AAE /* UIKit.framework in Frameworks */, + D0BCFE3E18AEBDA2004A7AAE /* GLKit.framework in Frameworks */, + D0BCFE3818AEBDA2004A7AAE /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + D0BCFE2B18AEBDA2004A7AAE = { + isa = PBXGroup; + children = ( + D0BCFE7918AEC06A004A7AAE /* godot_opt.iphone */, + D0BCFE7718AEBFEB004A7AAE /* data.pck */, + D0BCFE4118AEBDA2004A7AAE /* godot_ios */, + D0BCFE3618AEBDA2004A7AAE /* Frameworks */, + D0BCFE3518AEBDA2004A7AAE /* Products */, + ); + sourceTree = "<group>"; + }; + D0BCFE3518AEBDA2004A7AAE /* Products */ = { + isa = PBXGroup; + children = ( + D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + D0BCFE3618AEBDA2004A7AAE /* Frameworks */ = { + isa = PBXGroup; + children = ( + D0BCFE3718AEBDA2004A7AAE /* Foundation.framework */, + D0BCFE3918AEBDA2004A7AAE /* CoreGraphics.framework */, + D0BCFE3B18AEBDA2004A7AAE /* UIKit.framework */, + D0BCFE3D18AEBDA2004A7AAE /* GLKit.framework */, + D0BCFE3F18AEBDA2004A7AAE /* OpenGLES.framework */, + D0BCFE6118AEBDA3004A7AAE /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + D0BCFE4118AEBDA2004A7AAE /* godot_ios */ = { + isa = PBXGroup; + children = ( + D07CD4331C5D573600B7FB28 /* Default-568h@2x~iphone.png */, + D07CD4341C5D573600B7FB28 /* Default-667h.png */, + D07CD4351C5D573600B7FB28 /* Default-667h@2x.png */, + D07CD4361C5D573600B7FB28 /* Default-736h.png */, + D07CD4371C5D573600B7FB28 /* Default-736h@3x.png */, + D07CD4381C5D573600B7FB28 /* Default-Landscape-736h.png */, + D07CD4391C5D573600B7FB28 /* Default-Landscape@2x~ipad.png */, + D07CD43A1C5D573600B7FB28 /* Default-Landscape~ipad.png */, + D07CD43B1C5D573600B7FB28 /* Default-Portrait@2x~ipad.png */, + D07CD43C1C5D573600B7FB28 /* Default-Portrait~ipad.png */, + D07CD43D1C5D573600B7FB28 /* Default@2x~iphone.png */, + D07CD43E1C5D573600B7FB28 /* Default~iphone.png */, + D07CD44D1C5D589C00B7FB28 /* Images.xcassets */, + D0BCFE4218AEBDA2004A7AAE /* Supporting Files */, + ); + path = godot_ios; + sourceTree = "<group>"; + }; + D0BCFE4218AEBDA2004A7AAE /* Supporting Files */ = { + isa = PBXGroup; + children = ( + D0BCFE4318AEBDA2004A7AAE /* godot_ios-Info.plist */, + D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */, + D0BCFE4918AEBDA2004A7AAE /* godot_ios-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + D0BCFE3318AEBDA2004A7AAE /* godot_ios */ = { + isa = PBXNativeTarget; + buildConfigurationList = D0BCFE7118AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_ios" */; + buildPhases = ( + D0BCFE3018AEBDA2004A7AAE /* Sources */, + D0BCFE3118AEBDA2004A7AAE /* Frameworks */, + D0BCFE3218AEBDA2004A7AAE /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = godot_ios; + productName = godot_ios; + productReference = D0BCFE3418AEBDA2004A7AAE /* godot_ios.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + D0BCFE2C18AEBDA2004A7AAE /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0500; + ORGANIZATIONNAME = GodotEngine; + }; + buildConfigurationList = D0BCFE2F18AEBDA2004A7AAE /* Build configuration list for PBXProject "godot_ios" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = D0BCFE2B18AEBDA2004A7AAE; + productRefGroup = D0BCFE3518AEBDA2004A7AAE /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + D0BCFE3318AEBDA2004A7AAE /* godot_ios */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + D0BCFE3218AEBDA2004A7AAE /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + D07CD4471C5D573600B7FB28 /* Default-Portrait@2x~ipad.png in Resources */, + D07CD44E1C5D589C00B7FB28 /* Images.xcassets in Resources */, + D0BCFE7818AEBFEB004A7AAE /* data.pck in Resources */, + D07CD4461C5D573600B7FB28 /* Default-Landscape~ipad.png in Resources */, + D07CD4411C5D573600B7FB28 /* Default-667h@2x.png in Resources */, + D07CD4401C5D573600B7FB28 /* Default-667h.png in Resources */, + D07CD4431C5D573600B7FB28 /* Default-736h@3x.png in Resources */, + D07CD43F1C5D573600B7FB28 /* Default-568h@2x~iphone.png in Resources */, + D07CD4451C5D573600B7FB28 /* Default-Landscape@2x~ipad.png in Resources */, + D07CD44A1C5D573600B7FB28 /* Default~iphone.png in Resources */, + D07CD4491C5D573600B7FB28 /* Default@2x~iphone.png in Resources */, + D07CD4441C5D573600B7FB28 /* Default-Landscape-736h.png in Resources */, + D07CD4421C5D573600B7FB28 /* Default-736h.png in Resources */, + D0BCFE4618AEBDA2004A7AAE /* InfoPlist.strings in Resources */, + D0BCFE7A18AEC06A004A7AAE /* godot_opt.iphone in Resources */, + D07CD4481C5D573600B7FB28 /* Default-Portrait~ipad.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + D0BCFE3018AEBDA2004A7AAE /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + D0BCFE4418AEBDA2004A7AAE /* InfoPlist.strings */ = { + isa = PBXVariantGroup; + children = ( + D0BCFE4518AEBDA2004A7AAE /* en */, + ); + name = InfoPlist.strings; + sourceTree = "<group>"; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + D0BCFE6F18AEBDA3004A7AAE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = 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_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + D0BCFE7018AEBDA3004A7AAE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)"; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + 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; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 7.0; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + D0BCFE7218AEBDA3004A7AAE /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch"; + INFOPLIST_FILE = "godot_ios/godot_ios-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + PRODUCT_BUNDLE_IDENTIFIER = org.godotengine.game.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "armv7 armv7s"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + D0BCFE7318AEBDA3004A7AAE /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ARCHS = "$(ARCHS_STANDARD)"; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_IDENTITY = "iPhone Distribution: Ariel Manzur (BYC57PA2Q5)"; + CONFIGURATION_BUILD_DIR = "$(BUILD_DIR)/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME)"; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "godot_ios/godot_ios-Prefix.pch"; + INFOPLIST_FILE = "godot_ios/godot_ios-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.0; + PRODUCT_BUNDLE_IDENTIFIER = org.godotengine.game.ios; + PRODUCT_NAME = "$(TARGET_NAME)"; + TARGETED_DEVICE_FAMILY = "1,2"; + VALID_ARCHS = "armv7 armv7s"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + D0BCFE2F18AEBDA2004A7AAE /* Build configuration list for PBXProject "godot_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0BCFE6F18AEBDA3004A7AAE /* Debug */, + D0BCFE7018AEBDA3004A7AAE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + D0BCFE7118AEBDA3004A7AAE /* Build configuration list for PBXNativeTarget "godot_ios" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + D0BCFE7218AEBDA3004A7AAE /* Debug */, + D0BCFE7318AEBDA3004A7AAE /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = D0BCFE2C18AEBDA2004A7AAE /* Project object */; +} diff --git a/platform/iphone/xcode/godot_xcode/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/platform/iphone/xcode/godot_xcode/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000000..3c9ba38bbe --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:godot_ios.xcodeproj"> + </FileRef> +</Workspace> diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-568h@2x~iphone.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-568h@2x~iphone.png Binary files differnew file mode 100644 index 0000000000..1341174454 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-568h@2x~iphone.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-667h.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-667h.png Binary files differnew file mode 100644 index 0000000000..c480d2e3c0 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-667h.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-667h@2x.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-667h@2x.png Binary files differnew file mode 100644 index 0000000000..3cc1dfa290 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-667h@2x.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-736h.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-736h.png Binary files differnew file mode 100644 index 0000000000..813d689162 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-736h.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-736h@3x.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-736h@3x.png Binary files differnew file mode 100644 index 0000000000..7707005e76 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-736h@3x.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape-736h.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape-736h.png Binary files differnew file mode 100644 index 0000000000..b02873323e --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape-736h.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape@2x~ipad.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape@2x~ipad.png Binary files differnew file mode 100644 index 0000000000..d86c4a2510 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape@2x~ipad.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape~ipad.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape~ipad.png Binary files differnew file mode 100644 index 0000000000..e4f6cef02b --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Landscape~ipad.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-Portrait@2x~ipad.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Portrait@2x~ipad.png Binary files differnew file mode 100644 index 0000000000..f306652a31 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Portrait@2x~ipad.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default-Portrait~ipad.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Portrait~ipad.png Binary files differnew file mode 100644 index 0000000000..71a16db6df --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default-Portrait~ipad.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default@2x~iphone.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default@2x~iphone.png Binary files differnew file mode 100644 index 0000000000..5305cb9bdb --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default@2x~iphone.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Default~iphone.png b/platform/iphone/xcode/godot_xcode/godot_ios/Default~iphone.png Binary files differnew file mode 100644 index 0000000000..91c62d1e43 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Default~iphone.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Contents.json b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000000..a458b67873 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,128 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "1x", + "filename": "Icon-29.png", + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x", + "filename": "Icon-58.png", + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x", + "filename": "icon-87.png", + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x", + "filename": "Icon-80.png", + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x", + "filename": "Icon-120.png", + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "1x", + "filename": "Icon-57.png", + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "2x", + "filename": "Icon-114.png", + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x", + "filename": "Icon-120.png", + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x", + "filename": "Icon-180.png", + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x", + "filename": "Icon-29.png", + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x", + "filename": "Icon-58.png", + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x", + "filename": "Icon-40.png", + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x", + "filename": "Icon-80.png", + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "1x", + "filename": "Icon-50.png", + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "2x", + "filename": "Icon-100.png", + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "1x", + "filename": "Icon-72.png", + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "2x", + "filename": "Icon-144.png", + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "Icon-76.png", + "scale" : "1x", + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x", + "filename": "Icon-152.png", + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x", + "filename": "icon-167.png", + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-100.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-100.png Binary files differnew file mode 100644 index 0000000000..f9dca1ab57 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-100.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-114.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-114.png Binary files differnew file mode 100644 index 0000000000..e7f9bd7388 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-114.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-120.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-120.png Binary files differnew file mode 100644 index 0000000000..4faa0f28e2 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-120.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-144.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-144.png Binary files differnew file mode 100644 index 0000000000..1c4cb51d56 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-144.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-152.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-152.png Binary files differnew file mode 100644 index 0000000000..e99b11c519 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-152.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-180.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-180.png Binary files differnew file mode 100644 index 0000000000..3edbcadfc5 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-180.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-29.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-29.png Binary files differnew file mode 100644 index 0000000000..0ae5893203 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-29.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-40.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-40.png Binary files differnew file mode 100644 index 0000000000..bb4ffa70ad --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-40.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-50.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-50.png Binary files differnew file mode 100644 index 0000000000..7a4b7107e7 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-50.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-57.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-57.png Binary files differnew file mode 100644 index 0000000000..b00bd79091 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-57.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-58.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-58.png Binary files differnew file mode 100644 index 0000000000..46335efdf6 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-58.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-60.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-60.png Binary files differnew file mode 100644 index 0000000000..2c9c2b61dc --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-60.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-72.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-72.png Binary files differnew file mode 100644 index 0000000000..d711958ef1 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-72.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-76.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-76.png Binary files differnew file mode 100644 index 0000000000..464e7e7289 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-76.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-80.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-80.png Binary files differnew file mode 100644 index 0000000000..1151bc6b4b --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/Icon-80.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-167.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-167.png Binary files differnew file mode 100644 index 0000000000..487c8326be --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-167.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-87.png b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-87.png Binary files differnew file mode 100644 index 0000000000..e54cee23a6 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/icon-87.png diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/sizes b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/sizes new file mode 100644 index 0000000000..e328a62cb6 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/Images.xcassets/AppIcon.appiconset/sizes @@ -0,0 +1,17 @@ +100 +114 +120 +144 +152 +167 +180 +29 +40 +50 +57 +58 +60 +72 +76 +80 +87 diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/en.lproj/InfoPlist.strings b/platform/iphone/xcode/godot_xcode/godot_ios/en.lproj/InfoPlist.strings new file mode 100644 index 0000000000..477b28ff8f --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/godot_ios-Info.plist b/platform/iphone/xcode/godot_xcode/godot_ios/godot_ios-Info.plist new file mode 100644 index 0000000000..f97b0fca36 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/godot_ios-Info.plist @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleDisplayName</key> + <string>Insert Name Here</string> + <key>CFBundleExecutable</key> + <string>godot_opt.iphone</string> + <key>CFBundleIcons</key> + <dict/> + <key>CFBundleIcons~ipad</key> + <dict/> + <key>CFBundleIdentifier</key> + <string>$(PRODUCT_BUNDLE_IDENTIFIER)</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + </array> + <key>UIRequiresFullScreen</key> + <true/> + <key>UIStatusBarHidden</key> + <true/> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> + <key>UISupportedInterfaceOrientations~ipad</key> + <array> + <string>UIInterfaceOrientationLandscapeLeft</string> + <string>UIInterfaceOrientationLandscapeRight</string> + </array> +</dict> +</plist> diff --git a/platform/iphone/xcode/godot_xcode/godot_ios/main.m b/platform/iphone/xcode/godot_xcode/godot_ios/main.m new file mode 100644 index 0000000000..3e4ea5e129 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_ios/main.m @@ -0,0 +1,39 @@ +/*************************************************************************/ +/* main.m */ +/*************************************************************************/ +/* This file is part of: */ +/* GODOT ENGINE */ +/* http://www.godotengine.org */ +/*************************************************************************/ +/* Copyright (c) 2007-2016 Juan Linietsky, Ariel Manzur. */ +/* */ +/* Permission is hereby granted, free of charge, to any person obtaining */ +/* a copy of this software and associated documentation files (the */ +/* "Software"), to deal in the Software without restriction, including */ +/* without limitation the rights to use, copy, modify, merge, publish, */ +/* distribute, sublicense, and/or sell copies of the Software, and to */ +/* permit persons to whom the Software is furnished to do so, subject to */ +/* the following conditions: */ +/* */ +/* The above copyright notice and this permission notice shall be */ +/* included in all copies or substantial portions of the Software. */ +/* */ +/* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, */ +/* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF */ +/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.*/ +/* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY */ +/* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, */ +/* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE */ +/* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ +/*************************************************************************/ + +#import <UIKit/UIKit.h> + +#import "AppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/platform/iphone/xcode/godot_xcode/godot_opt.iphone b/platform/iphone/xcode/godot_xcode/godot_opt.iphone new file mode 100755 index 0000000000..e69de29bb2 --- /dev/null +++ b/platform/iphone/xcode/godot_xcode/godot_opt.iphone diff --git a/platform/nacl/nacl_keycodes.h b/platform/nacl/nacl_keycodes.h index 45dba075db..a0642fc3b7 100644 --- a/platform/nacl/nacl_keycodes.h +++ b/platform/nacl/nacl_keycodes.h @@ -286,7 +286,7 @@ static uint32_t godot_key(uint32_t p_key, bool& is_char) { case VKEY_MULTIPLY: return KEY_KP_MULTIPLY; case VKEY_ADD: return KEY_KP_ADD; // case VKEY_SEPARATOR: return KEY_SEPARATOR; - case VKEY_SUBTRACT: return KEY_KP_SUBSTRACT; + case VKEY_SUBTRACT: return KEY_KP_SUBTRACT; case VKEY_DECIMAL: return KEY_KP_PERIOD; case VKEY_DIVIDE: return KEY_KP_DIVIDE; case VKEY_F1: return KEY_F1; diff --git a/platform/osx/os_osx.mm b/platform/osx/os_osx.mm index d808fb67a2..bb99e6ade7 100644 --- a/platform/osx/os_osx.mm +++ b/platform/osx/os_osx.mm @@ -650,7 +650,7 @@ static int translateKey(unsigned int key) /* 4b */ KEY_KP_DIVIDE, /* 4c */ KEY_KP_ENTER, /* 4d */ KEY_UNKNOWN, - /* 4e */ KEY_KP_SUBSTRACT, + /* 4e */ KEY_KP_SUBTRACT, /* 4f */ KEY_UNKNOWN, /* 50 */ KEY_UNKNOWN, /* 51 */ KEY_EQUAL, //wtf equal? diff --git a/platform/server/detect.py b/platform/server/detect.py index e2d64c6545..15c5982b14 100644 --- a/platform/server/detect.py +++ b/platform/server/detect.py @@ -28,7 +28,6 @@ def get_flags(): return [ ('builtin_zlib', 'no'), - ('theora','no'), #use builtin openssl ] diff --git a/platform/windows/key_mapping_win.cpp b/platform/windows/key_mapping_win.cpp index 07d5f32253..23fa29d68f 100644 --- a/platform/windows/key_mapping_win.cpp +++ b/platform/windows/key_mapping_win.cpp @@ -145,7 +145,7 @@ static _WinTranslatePair _vk_to_keycode[]={ { KEY_KP_MULTIPLY,VK_MULTIPLY},// (0x6A) { KEY_KP_ADD,VK_ADD},// (0x6B) //VK_SEPARATOR (0x6C) -{ KEY_KP_SUBSTRACT,VK_SUBTRACT},// (0x6D) +{ KEY_KP_SUBTRACT,VK_SUBTRACT},// (0x6D) { KEY_KP_PERIOD,VK_DECIMAL},// (0x6E) { KEY_KP_DIVIDE,VK_DIVIDE},// (0x6F) { KEY_F1,VK_F1},// (0x70) diff --git a/platform/x11/detect.py b/platform/x11/detect.py index f49475a2d5..6b147db130 100644 --- a/platform/x11/detect.py +++ b/platform/x11/detect.py @@ -56,7 +56,7 @@ def get_opts(): ('use_sanitizer','Use llvm compiler sanitize address','no'), ('use_leak_sanitizer','Use llvm compiler sanitize memory leaks','no'), ('pulseaudio','Detect & Use pulseaudio','yes'), - ('gamepad','Gamepad support, requires libudev and libevdev','yes'), + ('udev','Use udev for gamepad connection callbacks','no'), ('new_wm_api', 'Use experimental window management API','no'), ('debug_release', 'Add debug symbols to release version','no'), ] @@ -156,20 +156,18 @@ def configure(env): else: print("ALSA libraries not found, disabling driver") - if (env["gamepad"]=="yes" and platform.system() == "Linux"): + if (platform.system() == "Linux"): + env.Append(CPPFLAGS=["-DJOYDEV_ENABLED"]) + if (env["udev"]=="yes"): # pkg-config returns 0 when the lib exists... found_udev = not os.system("pkg-config --exists libudev") - + if (found_udev): - print("Enabling gamepad support with udev") - env.Append(CPPFLAGS=["-DJOYDEV_ENABLED"]) + print("Enabling udev support") + env.Append(CPPFLAGS=["-DUDEV_ENABLED"]) env.ParseConfig('pkg-config libudev --cflags --libs') else: - print("libudev development libraries not found") - - print("Some libraries are missing for the required gamepad support, aborting!") - print("Install the mentioned libraries or build with 'gamepad=no' to disable gamepad support.") - sys.exit(255) + print("libudev development libraries not found, disabling udev support") if (env["pulseaudio"]=="yes"): if not os.system("pkg-config --exists libpulse-simple"): diff --git a/platform/x11/joystick_linux.cpp b/platform/x11/joystick_linux.cpp index ef866d5d3a..9a52c4ff36 100644 --- a/platform/x11/joystick_linux.cpp +++ b/platform/x11/joystick_linux.cpp @@ -33,11 +33,14 @@ #include "joystick_linux.h" #include <linux/input.h> -#include <libudev.h> #include <unistd.h> #include <fcntl.h> #include <errno.h> +#ifdef UDEV_ENABLED +#include <libudev.h> +#endif + #define LONG_BITS (sizeof(long) * 8) #define test_bit(nr, addr) (((1UL << ((nr) % LONG_BITS)) & ((addr)[(nr) / LONG_BITS])) != 0) #define NBITS(x) ((((x)-1)/LONG_BITS)+1) @@ -99,14 +102,18 @@ void joystick_linux::joy_thread_func(void *p_user) { } void joystick_linux::run_joystick_thread() { - +#ifdef UDEV_ENABLED udev *_udev = udev_new(); ERR_FAIL_COND(!_udev); enumerate_joysticks(_udev); monitor_joysticks(_udev); udev_unref(_udev); +#else + monitor_joysticks(); +#endif } +#ifdef UDEV_ENABLED void joystick_linux::enumerate_joysticks(udev *p_udev) { udev_enumerate *enumerate; @@ -192,6 +199,23 @@ void joystick_linux::monitor_joysticks(udev *p_udev) { //printf("exit udev\n"); udev_monitor_unref(mon); } +#endif + +void joystick_linux::monitor_joysticks() { + + while (!exit_udev) { + joy_mutex->lock(); + for (int i = 0; i < 32; i++) { + char fname[64]; + sprintf(fname, "/dev/input/event%d", i); + if (attached_devices.find(fname) == -1) { + open_joystick(fname); + } + } + joy_mutex->unlock(); + usleep(1000000); // 1s + } +} int joystick_linux::get_free_joy_slot() const { @@ -229,6 +253,7 @@ void joystick_linux::close_joystick(int p_id) { close(joy.fd); joy.fd = -1; + attached_devices.remove(attached_devices.find(joy.devpath)); input->joy_connection_changed(p_id, false, ""); }; }; @@ -302,6 +327,9 @@ void joystick_linux::open_joystick(const char *p_path) { unsigned long keybit[NBITS(KEY_MAX)] = { 0 }; unsigned long absbit[NBITS(ABS_MAX)] = { 0 }; + // add to attached devices so we don't try to open it again + attached_devices.push_back(String(p_path)); + if ((ioctl(fd, EVIOCGBIT(0, sizeof(evbit)), evbit) < 0) || (ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(keybit)), keybit) < 0) || (ioctl(fd, EVIOCGBIT(EV_ABS, sizeof(absbit)), absbit) < 0)) { @@ -446,6 +474,9 @@ uint32_t joystick_linux::process_joysticks(uint32_t p_event_id) { p_event_id = input->joy_axis(p_event_id, i, index, joy->curr_axis[index]); } } + if (len == 0 || (len < 0 && errno != EAGAIN)) { + close_joystick(i); + }; } joy_mutex->unlock(); return p_event_id; diff --git a/platform/x11/joystick_linux.h b/platform/x11/joystick_linux.h index 7f96e3451f..4f0533721b 100644 --- a/platform/x11/joystick_linux.h +++ b/platform/x11/joystick_linux.h @@ -49,13 +49,11 @@ private: JOYSTICKS_MAX = 16, MAX_ABS = 63, MAX_KEY = 767, // Hack because <linux/input.h> can't be included here - BT_MISC = 256, - HAT_MAX = 4, }; struct Joystick { InputDefault::JoyAxis curr_axis[MAX_ABS]; - int key_map[MAX_KEY - BT_MISC]; + int key_map[MAX_KEY]; int abs_map[MAX_ABS]; int dpad; int fd; @@ -73,6 +71,7 @@ private: Thread *joy_thread; InputDefault *input; Joystick joysticks[JOYSTICKS_MAX]; + Vector<String> attached_devices; static void joy_thread_func(void *p_user); @@ -81,8 +80,11 @@ private: void setup_joystick_properties(int p_id); void close_joystick(int p_id = -1); +#ifdef UDEV_ENABLED void enumerate_joysticks(struct udev *_udev); void monitor_joysticks(struct udev *_udev); +#endif + void monitor_joysticks(); void run_joystick_thread(); void open_joystick(const char* path); diff --git a/platform/x11/key_mapping_x11.cpp b/platform/x11/key_mapping_x11.cpp index 48f415a730..46f1483767 100644 --- a/platform/x11/key_mapping_x11.cpp +++ b/platform/x11/key_mapping_x11.cpp @@ -97,7 +97,7 @@ static _XTranslatePair _xkeysym_to_keycode[]={ { XK_KP_Enter, KEY_KP_ENTER }, { XK_KP_Multiply, KEY_KP_MULTIPLY}, { XK_KP_Divide, KEY_KP_DIVIDE}, - { XK_KP_Subtract, KEY_KP_SUBSTRACT}, + { XK_KP_Subtract, KEY_KP_SUBTRACT}, { XK_KP_Add, KEY_KP_ADD}, { XK_KP_0, KEY_KP_0}, { XK_KP_1, KEY_KP_1}, |