| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 | /*************************************************************************//*  view_controller.mm                                                   *//*************************************************************************//*                       This file is part of:                           *//*                           GODOT ENGINE                                *//*                      https://godotengine.org                          *//*************************************************************************//* Copyright (c) 2007-2019 Juan Linietsky, Ariel Manzur.                 *//* Copyright (c) 2014-2019 Godot Engine contributors (cf. AUTHORS.md)    *//*                                                                       *//* 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 "view_controller.h"#include "os_iphone.h"extern "C" {int add_path(int, char **);int add_cmdline(int, char **);int add_path(int p_argc, char **p_args) {	NSString *str = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"godot_path"];	if (!str)		return p_argc;	p_args[p_argc++] = "--path";	[str retain]; // memory leak lol (maybe make it static here and delete it in ViewController destructor? @todo	p_args[p_argc++] = (char *)[str cString];	p_args[p_argc] = NULL;	return p_argc;};int add_cmdline(int p_argc, char **p_args) {	NSArray *arr = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"godot_cmdline"];	if (!arr)		return p_argc;	for (int i = 0; i < [arr count]; i++) {		NSString *str = [arr objectAtIndex:i];		if (!str)			continue;		[str retain]; // @todo delete these at some point		p_args[p_argc++] = (char *)[str cString];	};	p_args[p_argc] = NULL;	return p_argc;};}; // extern "C"@interface ViewController ()@end@implementation ViewController- (void)didReceiveMemoryWarning {	printf("*********** did receive memory warning!\n");};- (BOOL)shouldAutorotate {	switch (OS::get_singleton()->get_screen_orientation()) {		case OS::SCREEN_SENSOR:		case OS::SCREEN_SENSOR_LANDSCAPE:		case OS::SCREEN_SENSOR_PORTRAIT:			return YES;		default:			return NO;	}};- (UIInterfaceOrientationMask)supportedInterfaceOrientations {	switch (OS::get_singleton()->get_screen_orientation()) {		case OS::SCREEN_PORTRAIT:			return UIInterfaceOrientationMaskPortrait;		case OS::SCREEN_REVERSE_LANDSCAPE:			return UIInterfaceOrientationMaskLandscapeRight;		case OS::SCREEN_REVERSE_PORTRAIT:			return UIInterfaceOrientationMaskPortraitUpsideDown;		case OS::SCREEN_SENSOR_LANDSCAPE:			return UIInterfaceOrientationMaskLandscape;		case OS::SCREEN_SENSOR_PORTRAIT:			return UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown;		case OS::SCREEN_SENSOR:			return UIInterfaceOrientationMaskAll;		case OS::SCREEN_LANDSCAPE:			return UIInterfaceOrientationMaskLandscapeLeft;	}};- (BOOL)prefersStatusBarHidden {	return YES;}#ifdef GAME_CENTER_ENABLED- (void)gameCenterViewControllerDidFinish:(GKGameCenterViewController *)gameCenterViewController {	//[gameCenterViewController dismissViewControllerAnimated:YES completion:^{GameCenter::get_singleton()->game_center_closed();}];//version for signaling when overlay is completely gone	GameCenter::get_singleton()->game_center_closed();	[gameCenterViewController dismissViewControllerAnimated:YES completion:nil];}#endif@end
 |