Formatting of mm files

This commit is contained in:
BastiaanOlij 2017-04-09 21:22:40 +10:00
parent 21727657ff
commit 5c2ddb299b
12 changed files with 1097 additions and 1220 deletions

1
.gitattributes vendored
View file

@ -4,6 +4,7 @@
drivers/* linguist-vendored
*.cpp eol=lf
*.mm eol=lf
*.h eol=lf
*.py eol=lf
*.hpp eol=lf

View file

@ -85,8 +85,7 @@ CMMotionManager *motionManager;
bool motionInitialised;
static ViewController* mainViewController = nil;
+ (ViewController*) getViewController
{
+ (ViewController*) getViewController {
return mainViewController;
}
@ -94,14 +93,12 @@ static int frame_count = 0;
- (void)drawView:(GLView*)view; {
switch (frame_count) {
case 0: {
int backingWidth;
int backingHeight;
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_WIDTH_OES, &backingWidth);
glGetRenderbufferParameterivOES(GL_RENDERBUFFER_OES, GL_RENDERBUFFER_HEIGHT_OES, &backingHeight);
OS::VideoMode vm;
vm.fullscreen = true;
vm.width = backingWidth;
@ -126,7 +123,6 @@ static int frame_count = 0;
if ([[UIDevice currentDevice]respondsToSelector:@selector(identifierForVendor)]) {
uuid = [UIDevice currentDevice].identifierForVendor.UUIDString;
} else {
// before iOS 6, so just generate an identifier and store it
uuid = [[NSUserDefaults standardUserDefaults] objectForKey:@"identiferForVendor"];
if( !uuid ) {
@ -143,7 +139,7 @@ static int frame_count = 0;
/*
case 1: {
++frame_count;
} break;
}; break;
*/
case 1: {
@ -174,11 +170,11 @@ static int frame_count = 0;
// do stuff
}
} break;
}; break;
/*
case 3: {
++frame_count;
} break;
}; break;
*/
case 2: {
@ -243,7 +239,7 @@ static int frame_count = 0;
bool quit_request = OSIPhone::get_singleton()->iterate();
};
};
}; break;
};
};
@ -313,12 +309,10 @@ static int frame_count = 0;
#ifdef MODULE_GAME_ANALYTICS_ENABLED
printf("********************* didFinishLaunchingWithOptions\n");
if(!GlobalConfig::get_singleton()->has("mobileapptracker/advertiser_id"))
{
if (!GlobalConfig::get_singleton()->has("mobileapptracker/advertiser_id")) {
return;
}
if(!GlobalConfig::get_singleton()->has("mobileapptracker/conversion_key"))
{
if (!GlobalConfig::get_singleton()->has("mobileapptracker/conversion_key")) {
return;
}
@ -329,8 +323,7 @@ static int frame_count = 0;
NSString * conversion_key = [NSString stringWithUTF8String:convkey.utf8().get_data()];
// Account Configuration info - must be set
[MobileAppTracker initializeWithMATAdvertiserId:advertiser_id
MATConversionKey:conversion_key];
[MobileAppTracker initializeWithMATAdvertiserId:advertiser_id MATConversionKey:conversion_key];
// Used to pass us the IFA, enables highly accurate 1-to-1 attribution.
// Required for many advertising networks.
@ -356,35 +349,32 @@ static int frame_count = 0;
iphone_finish();
};
- (void)applicationDidEnterBackground:(UIApplication *)application
{
- (void)applicationDidEnterBackground:(UIApplication *)application {
printf("********************* did enter background\n");
///@TODO maybe add pause motionManager? and where would we unpause it?
if (OS::get_singleton()->get_main_loop())
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
[view_controller.view stopAnimation];
if (OS::get_singleton()->native_video_is_playing()) {
OSIPhone::get_singleton()->native_video_focus_out();
};
}
- (void)applicationWillEnterForeground:(UIApplication *)application
{
- (void)applicationWillEnterForeground:(UIApplication *)application {
printf("********************* did enter foreground\n");
//OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
[view_controller.view startAnimation];
}
- (void) applicationWillResignActive:(UIApplication *)application
{
- (void) applicationWillResignActive:(UIApplication *)application {
printf("********************* will resign active\n");
//OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
[view_controller.view stopAnimation]; // FIXME: pause seems to be recommended elsewhere
}
- (void) applicationDidBecomeActive:(UIApplication *)application
{
- (void) applicationDidBecomeActive:(UIApplication *)application {
printf("********************* did become active\n");
#ifdef MODULE_GAME_ANALYTICS_ENABLED
printf("********************* mobile app tracker found\n");
@ -392,6 +382,7 @@ static int frame_count = 0;
#endif
if (OS::get_singleton()->get_main_loop())
OS::get_singleton()->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
[view_controller.view startAnimation]; // FIXME: resume seems to be recommended elsewhere
if (OSIPhone::get_singleton()->native_video_is_playing()) {
OSIPhone::get_singleton()->native_video_unpause();
@ -450,8 +441,7 @@ static int frame_count = 0;
#endif
}
- (void)dealloc
{
- (void)dealloc {
[window release];
[super dealloc];
}

View file

@ -82,8 +82,7 @@ Error GameCenter::connect() {
player.authenticateHandler = (^(UIViewController *controller, NSError *error) {
if (controller) {
[root_controller presentViewController:controller animated:YES completion:nil];
}
else {
} else {
Dictionary ret;
ret["type"] = "authentication";
if (player.isAuthenticated) {
@ -98,7 +97,6 @@ Error GameCenter::connect() {
pending_events.push_back(ret);
};
});
return OK;
@ -266,8 +264,7 @@ void GameCenter::request_achievements() {
void GameCenter::reset_achievements() {
[GKAchievement resetAchievementsWithCompletionHandler:^(NSError *error)
{
[GKAchievement resetAchievementsWithCompletionHandler:^(NSError *error) {
Dictionary ret;
ret["type"] = "reset_achievements";
if (error == nil) {
@ -292,17 +289,13 @@ Error GameCenter::show_game_center(Variant p_params) {
String view_name = params["view"];
if (view_name == "default") {
view_state = GKGameCenterViewControllerStateDefault;
}
else if (view_name == "leaderboards") {
} else if (view_name == "leaderboards") {
view_state = GKGameCenterViewControllerStateLeaderboards;
}
else if (view_name == "achievements") {
} else if (view_name == "achievements") {
view_state = GKGameCenterViewControllerStateAchievements;
}
else if (view_name == "challenges") {
} else if (view_name == "challenges") {
view_state = GKGameCenterViewControllerStateChallenges;
}
else {
} else {
return ERR_INVALID_PARAMETER;
}
}

View file

@ -104,13 +104,11 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s
AVMediaSelectionGroup *audioGroup = [_instance.avAsset mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicAudible];
NSMutableArray *allAudioParams = [NSMutableArray array];
for (id track in audioGroup.options)
{
for (id track in audioGroup.options) {
NSString* language = [[track locale] localeIdentifier];
NSLog(@"subtitle lang: %@", language);
if ([language isEqualToString:[NSString stringWithUTF8String:p_audio_track.utf8()]])
{
if ([language isEqualToString:[NSString stringWithUTF8String:p_audio_track.utf8()]]) {
AVMutableAudioMixInputParameters *audioInputParams = [AVMutableAudioMixInputParameters audioMixInputParameters];
[audioInputParams setVolume:p_volume atTime:kCMTimeZero];
[audioInputParams setTrackID:[track trackID]];
@ -129,13 +127,11 @@ bool _play_video(String p_path, float p_volume, String p_audio_track, String p_s
AVMediaSelectionGroup *subtitlesGroup = [_instance.avAsset mediaSelectionGroupForMediaCharacteristic: AVMediaCharacteristicLegible];
NSArray *useableTracks = [AVMediaSelectionGroup mediaSelectionOptionsFromArray:subtitlesGroup.options withoutMediaCharacteristics:[NSArray arrayWithObject:AVMediaCharacteristicContainsOnlyForcedSubtitles]];
for (id track in useableTracks)
{
for (id track in useableTracks) {
NSString* language = [[track locale] localeIdentifier];
NSLog(@"subtitle lang: %@", language);
if ([language isEqualToString:[NSString stringWithUTF8String:p_subtitle_track.utf8()]])
{
if ([language isEqualToString:[NSString stringWithUTF8String:p_subtitle_track.utf8()]]) {
[_instance.avPlayer.currentItem selectMediaOption:track inMediaSelectionGroup: subtitlesGroup];
break;
}
@ -246,14 +242,12 @@ static void clear_touches() {
// Implement this to override the default layer class (which is [CALayer class]).
// We do this so that our view will be backed by a layer that is capable of OpenGL ES rendering.
+ (Class) layerClass
{
+ (Class) layerClass {
return [CAEAGLLayer class];
}
//The GL view is stored in the nib file. When it's unarchived it's sent -initWithCoder:
- (id)initWithCoder:(NSCoder*)coder
{
- (id)initWithCoder:(NSCoder*)coder {
active = FALSE;
if((self = [super initWithCoder:coder]))
{
@ -262,8 +256,7 @@ static void clear_touches() {
return self;
}
-(id)initGLES
{
-(id)initGLES {
// Get our backing layer
CAEAGLLayer *eaglLayer = (CAEAGLLayer*) self.layer;
@ -277,8 +270,7 @@ static void clear_touches() {
// Create our EAGLContext, and if successful make it current and create our framebuffer.
context = [[EAGLContext alloc] initWithAPI:kEAGLRenderingAPIOpenGLES3];
if(!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer])
{
if(!context || ![EAGLContext setCurrentContext:context] || ![self createFramebuffer]) {
[self release];
return nil;
}
@ -288,14 +280,12 @@ static void clear_touches() {
return self;
}
-(id<GLViewDelegate>)delegate
{
-(id<GLViewDelegate>)delegate {
return delegate;
}
// Update the delegate, and if it needs a -setupView: call, set our internal flag so that it will be called.
-(void)setDelegate:(id<GLViewDelegate>)d
{
-(void)setDelegate:(id<GLViewDelegate>)d {
delegate = d;
delegateSetup = ![delegate respondsToSelector:@selector(setupView:)];
}
@ -306,8 +296,7 @@ static void clear_touches() {
// This is the perfect opportunity to also update the framebuffer so that it is
// the same size as our display area.
-(void)layoutSubviews
{
-(void)layoutSubviews {
//printf("HERE\n");
[EAGLContext setCurrentContext:context];
[self destroyFramebuffer];
@ -317,8 +306,7 @@ static void clear_touches() {
}
- (BOOL)createFramebuffer
{
- (BOOL)createFramebuffer {
// Generate IDs for a framebuffer object and a color renderbuffer
UIScreen* mainscr = [UIScreen mainScreen];
printf("******** screen size %i, %i\n", (int)mainscr.currentMode.size.width, (int)mainscr.currentMode.size.height);
@ -345,8 +333,7 @@ static void clear_touches() {
glRenderbufferStorageOES(GL_RENDERBUFFER_OES, GL_DEPTH_COMPONENT16_OES, backingWidth, backingHeight);
glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);
if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES)
{
if(glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES) != GL_FRAMEBUFFER_COMPLETE_OES) {
NSLog(@"failed to make complete framebuffer object %x", glCheckFramebufferStatusOES(GL_FRAMEBUFFER_OES));
return NO;
}
@ -366,8 +353,7 @@ static void clear_touches() {
}
// Clean up any buffers we have allocated.
- (void)destroyFramebuffer
{
- (void)destroyFramebuffer {
glDeleteFramebuffersOES(1, &viewFramebuffer);
viewFramebuffer = 0;
glDeleteRenderbuffersOES(1, &viewRenderbuffer);
@ -380,8 +366,7 @@ static void clear_touches() {
}
}
- (void)startAnimation
{
- (void)startAnimation {
if (active)
return;
active = TRUE;
@ -397,19 +382,16 @@ static void clear_touches() {
// Setup DisplayLink in main thread
[displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
}
else {
} else {
animationTimer = [NSTimer scheduledTimerWithTimeInterval:animationInterval target:self selector:@selector(drawView) userInfo:nil repeats:YES];
}
if (video_playing)
{
if (video_playing) {
_unpause_video();
}
}
- (void)stopAnimation
{
- (void)stopAnimation {
if (!active)
return;
active = FALSE;
@ -418,22 +400,19 @@ static void clear_touches() {
if (useCADisplayLink) {
[displayLink invalidate];
displayLink = nil;
}
else {
} else {
[animationTimer invalidate];
animationTimer = nil;
}
clear_touches();
if (video_playing)
{
if (video_playing) {
// save position
}
}
- (void)setAnimationInterval:(NSTimeInterval)interval
{
- (void)setAnimationInterval:(NSTimeInterval)interval {
animationInterval = interval;
if ( (useCADisplayLink && displayLink) || ( !useCADisplayLink && animationTimer ) ) {
[self stopAnimation];
@ -442,8 +421,7 @@ static void clear_touches() {
}
// Updates the OpenGL view when the timer fires
- (void)drawView
{
- (void)drawView {
if (useCADisplayLink) {
// Pause the CADisplayLink to avoid recursion
[displayLink setPaused: YES];
@ -464,8 +442,7 @@ static void clear_touches() {
[EAGLContext setCurrentContext:context];
// If our drawing delegate needs to have the view setup, then call -setupView: and flag that it won't need to be called again.
if(!delegateSetup)
{
if(!delegateSetup) {
[delegate setupView:self];
delegateSetup = YES;
}
@ -484,8 +461,7 @@ static void clear_touches() {
#endif
}
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {
NSArray* tlist = [[event allTouches] allObjects];
for (unsigned int i=0; i< [tlist count]; i++) {
@ -502,8 +478,7 @@ static void clear_touches() {
};
}
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {
NSArray* tlist = [[event allTouches] allObjects];
for (unsigned int i=0; i< [tlist count]; i++) {
@ -524,8 +499,7 @@ static void clear_touches() {
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
NSArray* tlist = [[event allTouches] allObjects];
for (unsigned int i=0; i< [tlist count]; i++) {
@ -582,8 +556,7 @@ static void clear_touches() {
printf("inserting text with character %i\n", character[0]);
};
- (void)audioRouteChangeListenerCallback:(NSNotification*)notification
{
- (void)audioRouteChangeListenerCallback:(NSNotification*)notification {
printf("*********** route changed!\n");
NSDictionary *interuptionDict = notification.userInfo;
@ -591,12 +564,12 @@ static void clear_touches() {
switch (routeChangeReason) {
case AVAudioSessionRouteChangeReasonNewDeviceAvailable:
case AVAudioSessionRouteChangeReasonNewDeviceAvailable: {
NSLog(@"AVAudioSessionRouteChangeReasonNewDeviceAvailable");
NSLog(@"Headphone/Line plugged in");
break;
}; break;
case AVAudioSessionRouteChangeReasonOldDeviceUnavailable:
case AVAudioSessionRouteChangeReasonOldDeviceUnavailable: {
NSLog(@"AVAudioSessionRouteChangeReasonOldDeviceUnavailable");
NSLog(@"Headphone/Line was pulled. Resuming video play....");
if (_is_video_playing()) {
@ -606,19 +579,18 @@ static void clear_touches() {
NSLog(@"resumed play");
});
};
break;
}; break;
case AVAudioSessionRouteChangeReasonCategoryChange:
case AVAudioSessionRouteChangeReasonCategoryChange: {
// called at start - also when other audio wants to play
NSLog(@"AVAudioSessionRouteChangeReasonCategoryChange");
break;
}; break;
}
}
// When created via code however, we get initWithFrame
-(id)initWithFrame:(CGRect)frame
{
-(id)initWithFrame:(CGRect)frame {
self = [super initWithFrame:frame];
_instance = self;
printf("after init super %p\n", self);
@ -650,12 +622,10 @@ static void clear_touches() {
//}
// Stop animating and release resources when they are no longer needed.
- (void)dealloc
{
- (void)dealloc {
[self stopAnimation];
if([EAGLContext currentContext] == context)
{
if([EAGLContext currentContext] == context) {
[EAGLContext setCurrentContext:nil];
}
@ -665,8 +635,7 @@ static void clear_touches() {
[super dealloc];
}
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
change:(NSDictionary *)change context:(void *)context {
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if (object == _instance.avPlayerItem && [keyPath isEqualToString:@"status"]) {
if (_instance.avPlayerItem.status == AVPlayerStatusFailed || _instance.avPlayer.status == AVPlayerStatusFailed) {

View file

@ -77,8 +77,7 @@ Variant nsobject_to_variant(NSObject* object) {
if ([object isKindOfClass:[NSString class]]) {
const char* str = [(NSString*)object UTF8String];
return String::utf8(str != NULL ? str : "");
}
else if ([object isKindOfClass:[NSData class]]) {
} else if ([object isKindOfClass:[NSData class]]) {
PoolByteArray ret;
NSData* data = (NSData*)object;
if ([data length] > 0) {
@ -89,8 +88,7 @@ Variant nsobject_to_variant(NSObject* object) {
}
}
return ret;
}
else if ([object isKindOfClass:[NSArray class]]) {
} else if ([object isKindOfClass:[NSArray class]]) {
Array result;
NSArray* array = (NSArray*)object;
for (unsigned int i = 0; i < [array count]; ++i) {
@ -98,8 +96,7 @@ Variant nsobject_to_variant(NSObject* object) {
result.push_back(nsobject_to_variant(value));
}
return result;
}
else if ([object isKindOfClass:[NSDictionary class]]) {
} else if ([object isKindOfClass:[NSDictionary class]]) {
Dictionary result;
NSDictionary* dic = (NSDictionary*)object;
@ -113,8 +110,7 @@ Variant nsobject_to_variant(NSObject* object) {
result[nsobject_to_variant(k)] = nsobject_to_variant(v);
}
return result;
}
else if ([object isKindOfClass:[NSNumber class]]) {
} else if ([object isKindOfClass:[NSNumber class]]) {
//Every type except numbers can reliably identify its type. The following is comparing to the *internal* representation, which isn't guaranteed to match the type that was used to create it, and is not advised, particularly when dealing with potential platform differences (ie, 32/64 bit)
//To avoid errors, we'll cast as broadly as possible, and only return int or float.
//bool, char, int, uint, longlong -> int
@ -122,37 +118,28 @@ Variant nsobject_to_variant(NSObject* object) {
NSNumber* num = (NSNumber*)object;
if(strcmp([num objCType], @encode(BOOL)) == 0) {
return Variant((int)[num boolValue]);
}
else if(strcmp([num objCType], @encode(char)) == 0) {
} else if(strcmp([num objCType], @encode(char)) == 0) {
return Variant((int)[num charValue]);
}
else if(strcmp([num objCType], @encode(int)) == 0) {
} else if(strcmp([num objCType], @encode(int)) == 0) {
return Variant([num intValue]);
}
else if(strcmp([num objCType], @encode(unsigned int)) == 0) {
} else if(strcmp([num objCType], @encode(unsigned int)) == 0) {
return Variant((int)[num unsignedIntValue]);
}
else if(strcmp([num objCType], @encode(long long)) == 0) {
} else if(strcmp([num objCType], @encode(long long)) == 0) {
return Variant((int)[num longValue]);
}
else if(strcmp([num objCType], @encode(float)) == 0) {
} else if(strcmp([num objCType], @encode(float)) == 0) {
return Variant([num floatValue]);
}
else if(strcmp([num objCType], @encode(double)) == 0) {
} else if(strcmp([num objCType], @encode(double)) == 0) {
return Variant((float)[num doubleValue]);
}
}
else if ([object isKindOfClass:[NSDate class]]) {
} else if ([object isKindOfClass:[NSDate class]]) {
//this is a type that icloud supports...but how did you submit it in the first place?
//I guess this is a type that *might* show up, if you were, say, trying to make your game
//compatible with existing cloud data written by another engine's version of your game
WARN_PRINT("NSDate unsupported, returning null Variant")
return Variant();
}
else if ([object isKindOfClass:[NSNull class]] or object == nil) {
} else if ([object isKindOfClass:[NSNull class]] or object == nil) {
return Variant();
}
else {
} else {
WARN_PRINT("Trying to convert unknown NSObject type to Variant");
return Variant();
}
@ -161,17 +148,13 @@ Variant nsobject_to_variant(NSObject* object) {
NSObject* variant_to_nsobject(Variant v) {
if (v.get_type() == Variant::STRING) {
return [[[NSString alloc] initWithUTF8String:((String)v).utf8().get_data()] autorelease];
}
else if (v.get_type() == Variant::REAL) {
} else if (v.get_type() == Variant::REAL) {
return [NSNumber numberWithDouble:(double)v];
}
else if (v.get_type() == Variant::INT) {
} else if (v.get_type() == Variant::INT) {
return [NSNumber numberWithLongLong:(long)(int)v];
}
else if (v.get_type() == Variant::BOOL) {
} else if (v.get_type() == Variant::BOOL) {
return [NSNumber numberWithBool:BOOL((bool)v)];
}
else if (v.get_type() == Variant::DICTIONARY) {
} else if (v.get_type() == Variant::DICTIONARY) {
NSMutableDictionary* result = [[[NSMutableDictionary alloc] init] autorelease];
Dictionary dic = v;
Array keys = dic.keys();
@ -186,8 +169,7 @@ NSObject* variant_to_nsobject(Variant v) {
[result setObject:value forKey:key];
}
return result;
}
else if (v.get_type() == Variant::ARRAY) {
} else if (v.get_type() == Variant::ARRAY) {
NSMutableArray* result = [[[NSMutableArray alloc] init] autorelease];
Array arr = v;
for (unsigned int i = 0; i < arr.size(); ++i) {
@ -199,8 +181,7 @@ NSObject* variant_to_nsobject(Variant v) {
[result addObject:value];
}
return result;
}
else if (v.get_type() == Variant::POOL_BYTE_ARRAY) {
} else if (v.get_type() == Variant::POOL_BYTE_ARRAY) {
PoolByteArray arr = v;
PoolByteArray::Read r = arr.read();
NSData* result = [NSData dataWithBytes:r.ptr() length:arr.size()];
@ -297,8 +278,7 @@ Error ICloud::synchronize_key_values() {
BOOL result = [store synchronize];
if (result == YES) {
return OK;
}
else {
} else {
return FAILED;
}
}
@ -341,14 +321,11 @@ ICloud::ICloud() {
if (change == NSUbiquitousKeyValueStoreServerChange) {
reason = "server";
}
else if (change == NSUbiquitousKeyValueStoreInitialSyncChange) {
} else if (change == NSUbiquitousKeyValueStoreInitialSyncChange) {
reason = "initial_sync";
}
else if (change == NSUbiquitousKeyValueStoreQuotaViolationChange) {
} else if (change == NSUbiquitousKeyValueStoreQuotaViolationChange) {
reason = "quota_violation";
}
else if (change == NSUbiquitousKeyValueStoreAccountChange) {
} else if (change == NSUbiquitousKeyValueStoreAccountChange) {
reason = "account";
}

View file

@ -51,8 +51,7 @@ NSMutableDictionary* pending_transactions = [NSMutableDictionary dictionary];
// SKProduct extension
//----------------------------------//
@implementation SKProduct (LocalizedPrice)
- (NSString *)localizedPrice
{
- (NSString *)localizedPrice {
NSNumberFormatter *numberFormatter = [[NSNumberFormatter alloc] init];
[numberFormatter setFormatterBehavior:NSNumberFormatterBehavior10_4];
[numberFormatter setNumberStyle:NSNumberFormatterCurrencyStyle];
@ -169,7 +168,6 @@ Error InAppStore::request_product_info(Variant p_params) {
for (SKPaymentTransaction* transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchased: {
printf("status purchased!\n");
String pid = String::utf8([transaction.payment.productIdentifier UTF8String]);
@ -210,8 +208,7 @@ Error InAppStore::request_product_info(Variant p_params) {
}
NSString* receipt_to_send = nil;
if (receipt != nil)
{
if (receipt != nil) {
receipt_to_send = [receipt description];
}
Dictionary receipt_ret;
@ -223,8 +220,7 @@ Error InAppStore::request_product_info(Variant p_params) {
if (auto_finish_transactions){
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
}
else{
} else{
[pending_transactions setObject:transaction forKey:transaction.payment.productIdentifier];
}
@ -232,7 +228,7 @@ Error InAppStore::request_product_info(Variant p_params) {
printf("Registering transaction on Fuseboxx!\n");
[FuseSDK registerInAppPurchase: transaction];
#endif
} break;
}; break;
case SKPaymentTransactionStateFailed: {
printf("status transaction failed!\n");
String pid = String::utf8([transaction.payment.productIdentifier UTF8String]);
@ -249,11 +245,9 @@ Error InAppStore::request_product_info(Variant p_params) {
InAppStore::get_singleton()->_record_purchase(pid);
[[SKPaymentQueue defaultQueue] finishTransaction:transaction];
} break;
default:
default: {
printf("status default %i!\n", (int)transaction.transactionState);
break;
}; break;
};
};
};

View file

@ -44,14 +44,11 @@ String iOS::get_rate_url(int p_app_id) const {
//ios7 before
String ret = templ;
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 7.1) {
// iOS 7 needs a different templateReviewURL @see https://github.com/arashpayan/appirater/issues/131
if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 7.0 && [[[UIDevice currentDevice] systemVersion] floatValue] < 7.1)
{
ret = templ_iOS7;
}
} else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {
// iOS 8 needs a different templateReviewURL also @see https://github.com/arashpayan/appirater/issues/182
else if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0)
{
ret = templ_iOS8;
}

View file

@ -34,8 +34,7 @@
int gargc;
char** gargv;
int main(int argc, char *argv[])
{
int main(int argc, char *argv[]) {
printf("*********** main.m\n");
gargc = argc;
gargv = argv;

View file

@ -128,8 +128,7 @@ int add_cmdline(int p_argc, char** p_args) {
}
};
- (BOOL)prefersStatusBarHidden
{
- (BOOL)prefersStatusBarHidden {
return YES;
}

View file

@ -76,8 +76,6 @@ int main(int argc, char** argv) {
free(pathinfo);
}
}
OS_OSX os;
@ -89,6 +87,7 @@ int main(int argc, char** argv) {
if (Main::start())
os.run(); // it is actually the OS that decides how to run
Main::cleanup();
return 0;

View file

@ -42,8 +42,7 @@ static int global_argc;
static char **global_argv;
static BOOL gCalledAppMainline = FALSE;
static NSString *getApplicationName(void)
{
static NSString *getApplicationName(void) {
const NSDictionary *dict;
NSString *appName = 0;
@ -61,8 +60,7 @@ static NSString *getApplicationName(void)
/* The main class of the application, the application's delegate */
@implementation GodotMain
static void setApplicationMenu(void)
{
static void setApplicationMenu(void) {
/* warning: this code is very odd */
NSMenu *appleMenu;
NSMenuItem *menuItem;
@ -106,8 +104,7 @@ static void setApplicationMenu(void)
}
/* Create a window menu */
static void setupWindowMenu(void)
{
static void setupWindowMenu(void) {
NSMenu *windowMenu;
NSMenuItem *windowMenuItem;
NSMenuItem *menuItem;
@ -133,8 +130,7 @@ static void setupWindowMenu(void)
}
/* Replacement for NSApplicationMain */
static void CustomApplicationMain (int argc, char **argv)
{
static void CustomApplicationMain (int argc, char **argv) {
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
GodotMain *main;
@ -159,8 +155,7 @@ static void CustomApplicationMain (int argc, char **argv)
extern int godot_main(int argc, char** argv);
/* Called when the internal event loop has just started running */
- (void) applicationDidFinishLaunching: (NSNotification *) note
{
- (void) applicationDidFinishLaunching: (NSNotification *) note {
int status;
/* Hand off to main application code */
@ -177,8 +172,7 @@ extern int godot_main(int argc, char** argv);
#endif
int main (int argc, char **argv)
{
int main (int argc, char **argv) {
/* Copy the arguments into a global variable */
/* This is passed if we are launched by double-clicking */
if ( argc >= 2 && strncmp (argv[1], "-psn", 4) == 0 ) {

View file

@ -96,8 +96,7 @@ static NSRect convertRectToBacking(NSRect contentRect) {
}
static InputModifierState translateFlags(NSUInteger flags)
{
static InputModifierState translateFlags(NSUInteger flags) {
InputModifierState mod;
@ -124,8 +123,7 @@ static int button_mask=0;
// From http://cocoadev.com/index.pl?GameKeyboardHandlingAlmost
// This works around an AppKit bug, where key up events while holding
// down the command key don't get sent to the key window.
- (void)sendEvent:(NSEvent *)event
{
- (void)sendEvent:(NSEvent *)event {
if ([event type] == NSKeyUp && ([event modifierFlags] & NSCommandKeyMask))
[[self keyWindow] sendEvent:event];
else
@ -139,16 +137,14 @@ static int button_mask=0;
@implementation GodotApplicationDelegate
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
{
- (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender {
if (OS_OSX::singleton->get_main_loop())
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_QUIT_REQUEST);
return NSTerminateCancel;
}
- (void)applicationDidHide:(NSNotification *)notification
{
- (void)applicationDidHide:(NSNotification *)notification{
/*
_Godotwindow* window;
for (window = _Godot.windowListHead; window; window = window->next)
@ -156,28 +152,24 @@ static int button_mask=0;
*/
}
- (void)applicationDidUnhide:(NSNotification *)notification
{
- (void)applicationDidUnhide:(NSNotification *)notification {
/*
_Godotwindow* window;
for (window = _Godot.windowListHead; window; window = window->next)
{
for (window = _Godot.windowListHead; window; window = window->next) {
if ([window_object isVisible])
_GodotInputWindowVisibility(window, GL_TRUE);
}
*/
}
- (void)applicationDidChangeScreenParameters:(NSNotification *) notification
{
- (void)applicationDidChangeScreenParameters:(NSNotification *) notification {
//_GodotInputMonitorChange();
}
@end
@interface GodotWindowDelegate : NSObject
{
@interface GodotWindowDelegate : NSObject {
//_Godotwindow* window;
}
@ -186,19 +178,18 @@ static int button_mask=0;
@implementation GodotWindowDelegate
- (BOOL)windowShouldClose:(id)sender
{
- (BOOL)windowShouldClose:(id)sender {
//_GodotInputWindowCloseRequest(window);
if (OS_OSX::singleton->get_main_loop())
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_QUIT_REQUEST);
return NO;
}
- (void)windowDidResize:(NSNotification *)notification
{
- (void)windowDidResize:(NSNotification *)notification {
[OS_OSX::singleton->context update];
const NSRect contentRect = [OS_OSX::singleton->window_view frame];
@ -218,8 +209,7 @@ static int button_mask=0;
*/
}
- (void)windowDidMove:(NSNotification *)notification
{
- (void)windowDidMove:(NSNotification *)notification {
/*
[window->nsgl.context update];
@ -232,32 +222,27 @@ static int button_mask=0;
*/
}
- (void)windowDidBecomeKey:(NSNotification *)notification
{
- (void)windowDidBecomeKey:(NSNotification *)notification {
//_GodotInputWindowFocus(window, GL_TRUE);
//_GodotPlatformSetCursorMode(window, window->cursorMode);
if (OS_OSX::singleton->get_main_loop())
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
}
- (void)windowDidResignKey:(NSNotification *)notification
{
- (void)windowDidResignKey:(NSNotification *)notification {
//_GodotInputWindowFocus(window, GL_FALSE);
//_GodotPlatformSetCursorMode(window, Godot_CURSOR_NORMAL);
if (OS_OSX::singleton->get_main_loop())
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
}
- (void)windowDidMiniaturize:(NSNotification*)notification
{
- (void)windowDidMiniaturize:(NSNotification*)notification {
OS_OSX::singleton->wm_minimized(true);
if (OS_OSX::singleton->get_main_loop())
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_OUT);
};
- (void)windowDidDeminiaturize:(NSNotification*)notification
{
- (void)windowDidDeminiaturize:(NSNotification*)notification {
OS_OSX::singleton->wm_minimized(false);
if (OS_OSX::singleton->get_main_loop())
OS_OSX::singleton->get_main_loop()->notification(MainLoop::NOTIFICATION_WM_FOCUS_IN);
@ -265,24 +250,18 @@ static int button_mask=0;
@end
@interface GodotContentView : NSView
{
@interface GodotContentView : NSView {
NSTrackingArea* trackingArea;
}
@end
@implementation GodotContentView
+ (void)initialize
{
if (self == [GodotContentView class])
{
+ (void)initialize {
if (self == [GodotContentView class]) {
/*
if (_glfw.ns.cursor == nil)
{
if (_glfw.ns.cursor == nil) {
NSImage* data = [[NSImage alloc] initWithSize:NSMakeSize(1, 1)];
_glfw.ns.cursor = [[NSCursor alloc] initWithImage:data
hotSpot:NSZeroPoint];
@ -292,8 +271,7 @@ static int button_mask=0;
}
}
- (id)init
{
- (id)init {
self = [super init];
trackingArea = nil;
[self updateTrackingAreas];
@ -302,8 +280,7 @@ static int button_mask=0;
}
-(void)dealloc
{
-(void)dealloc {
[trackingArea release];
[super dealloc];
}
@ -318,7 +295,6 @@ static int button_mask=0;
- (BOOL)performDragOperation:(id<NSDraggingInfo>)sender {
NSPasteboard *pboard = [sender draggingPasteboard];
NSArray *filenames = [pboard propertyListForType:NSFilenamesPboardType];
@ -343,28 +319,23 @@ static int button_mask=0;
}
- (BOOL)isOpaque
{
- (BOOL)isOpaque {
return YES;
}
- (BOOL)canBecomeKeyView
{
- (BOOL)canBecomeKeyView {
return YES;
}
- (BOOL)acceptsFirstResponder
{
- (BOOL)acceptsFirstResponder {
return YES;
}
- (void)cursorUpdate:(NSEvent *)event
{
- (void)cursorUpdate:(NSEvent *)event {
//setModeCursor(window, window->cursorMode);
}
- (void)mouseDown:(NSEvent *)event
{
- (void)mouseDown:(NSEvent *)event {
//print_line("mouse down:");
button_mask |= BUTTON_MASK_LEFT;
@ -381,20 +352,19 @@ static int button_mask=0;
ev.mouse_button.mod = translateFlags([event modifierFlags]);
OS_OSX::singleton->push_input(ev);
/* _glfwInputMouseClick(window,
/*
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_LEFT,
GLFW_PRESS,
translateFlags([event modifierFlags]));*/
translateFlags([event modifierFlags]));
*/
}
- (void)mouseDragged:(NSEvent *)event
{
- (void)mouseDragged:(NSEvent *)event {
[self mouseMoved:event];
}
- (void)mouseUp:(NSEvent *)event
{
- (void)mouseUp:(NSEvent *)event {
button_mask &= ~BUTTON_MASK_LEFT;
InputEvent ev;
@ -409,14 +379,15 @@ static int button_mask=0;
ev.mouse_button.mod = translateFlags([event modifierFlags]);
OS_OSX::singleton->push_input(ev);
/* _glfwInputMouseClick(window,
/*
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_LEFT,
GLFW_RELEASE,
translateFlags([event modifierFlags]));*/
translateFlags([event modifierFlags]));
*/
}
- (void)mouseMoved:(NSEvent *)event
{
- (void)mouseMoved:(NSEvent *)event {
InputEvent ev;
ev.type = InputEvent::MOUSE_MOTION;
@ -438,20 +409,19 @@ static int button_mask=0;
OS_OSX::singleton->input->set_mouse_pos(Point2(mouse_x,mouse_y));
OS_OSX::singleton->push_input(ev);
/* if (window->cursorMode == GLFW_CURSOR_DISABLED)
/*
if (window->cursorMode == GLFW_CURSOR_DISABLED)
_glfwInputCursorMotion(window, [event deltaX], [event deltaY]);
else
{
else {
const NSRect contentRect = [window->ns.view frame];
const NSPoint p = [event locationInWindow];
_glfwInputCursorMotion(window, p.x, contentRect.size.height - p.y);
}*/
}
*/
}
- (void)rightMouseDown:(NSEvent *)event
{
- (void)rightMouseDown:(NSEvent *)event {
button_mask |= BUTTON_MASK_RIGHT;
InputEvent ev;
@ -466,19 +436,19 @@ static int button_mask=0;
ev.mouse_button.mod = translateFlags([event modifierFlags]);
OS_OSX::singleton->push_input(ev);
/* _glfwInputMouseClick(window,
/*
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_RIGHT,
GLFW_PRESS,
translateFlags([event modifierFlags]));*/
translateFlags([event modifierFlags]));
*/
}
- (void)rightMouseDragged:(NSEvent *)event
{
- (void)rightMouseDragged:(NSEvent *)event {
[self mouseMoved:event];
}
- (void)rightMouseUp:(NSEvent *)event
{
- (void)rightMouseUp:(NSEvent *)event {
button_mask &= ~BUTTON_MASK_RIGHT;
InputEvent ev;
@ -493,14 +463,15 @@ static int button_mask=0;
ev.mouse_button.mod = translateFlags([event modifierFlags]);
OS_OSX::singleton->push_input(ev);
/*_glfwInputMouseClick(window,
/*
_glfwInputMouseClick(window,
GLFW_MOUSE_BUTTON_RIGHT,
GLFW_RELEASE,
translateFlags([event modifierFlags]));*/
translateFlags([event modifierFlags]));
*/
}
- (void)otherMouseDown:(NSEvent *)event
{
- (void)otherMouseDown:(NSEvent *)event {
if ((int) [event buttonNumber]!=2)
return;
@ -518,19 +489,19 @@ static int button_mask=0;
ev.mouse_button.mod = translateFlags([event modifierFlags]);
OS_OSX::singleton->push_input(ev);
/*_glfwInputMouseClick(window,
/*
_glfwInputMouseClick(window,
(int) [event buttonNumber],
GLFW_PRESS,
translateFlags([event modifierFlags]));*/
translateFlags([event modifierFlags]));
*/
}
- (void)otherMouseDragged:(NSEvent *)event
{
- (void)otherMouseDragged:(NSEvent *)event {
[self mouseMoved:event];
}
- (void)otherMouseUp:(NSEvent *)event
{
- (void)otherMouseUp:(NSEvent *)event {
if ((int) [event buttonNumber]!=2)
return;
@ -547,14 +518,16 @@ static int button_mask=0;
ev.mouse_button.button_mask = button_mask;
ev.mouse_button.mod = translateFlags([event modifierFlags]);
OS_OSX::singleton->push_input(ev);
/* _glfwInputMouseClick(window,
/*
_glfwInputMouseClick(window,
(int) [event buttonNumber],
GLFW_RELEASE,
translateFlags([event modifierFlags]));*/
translateFlags([event modifierFlags]));
*/
}
- (void)mouseExited:(NSEvent *)event
{
- (void)mouseExited:(NSEvent *)event {
if (!OS_OSX::singleton)
return;
@ -565,8 +538,7 @@ static int button_mask=0;
//_glfwInputCursorEnter(window, GL_FALSE);
}
- (void)mouseEntered:(NSEvent *)event
{
- (void)mouseEntered:(NSEvent *)event {
//_glfwInputCursorEnter(window, GL_TRUE);
if (!OS_OSX::singleton)
return;
@ -577,18 +549,17 @@ static int button_mask=0;
}
- (void)viewDidChangeBackingProperties
{
/* const NSRect contentRect = [window->ns.view frame];
- (void)viewDidChangeBackingProperties {
/*
const NSRect contentRect = [window->ns.view frame];
const NSRect fbRect = convertRectToBacking(window, contentRect);
_glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height);*/
_glfwInputFramebufferSize(window, fbRect.size.width, fbRect.size.height);
*/
}
- (void)updateTrackingAreas
{
if (trackingArea != nil)
{
- (void)updateTrackingAreas {
if (trackingArea != nil) {
[self removeTrackingArea:trackingArea];
[trackingArea release];
}
@ -609,11 +580,9 @@ static int button_mask=0;
// Translates a OS X keycode to a Godot keycode
//
static int translateKey(unsigned int key)
{
static int translateKey(unsigned int key) {
// Keyboard symbol translation table
static const unsigned int table[128] =
{
static const unsigned int table[128] = {
/* 00 */ KEY_A,
/* 01 */ KEY_S,
/* 02 */ KEY_D,
@ -749,8 +718,8 @@ static int translateKey(unsigned int key)
return table[key];
}
- (void)keyDown:(NSEvent *)event
{
- (void)keyDown:(NSEvent *)event {
InputEvent ev;
ev.type = InputEvent::KEY;
ev.key.pressed = true;
@ -761,23 +730,18 @@ static int translateKey(unsigned int key)
NSString* characters = [event characters];
NSUInteger i, length = [characters length];
if (length>0 && keycode_has_unicode(ev.key.scancode)) {
for (i = 0; i < length; i++) {
ev.key.unicode = [characters characterAtIndex:i];
OS_OSX::singleton->push_input(ev);
ev.key.scancode=0;
}
} else {
OS_OSX::singleton->push_input(ev);
}
}
- (void)flagsChanged:(NSEvent *)event
{
- (void)flagsChanged:(NSEvent *)event {
InputEvent ev;
int key = [event keyCode];
int mod = [event modifierFlags];
@ -822,8 +786,7 @@ static int translateKey(unsigned int key)
OS_OSX::singleton->push_input(ev);
}
- (void)keyUp:(NSEvent *)event
{
- (void)keyUp:(NSEvent *)event {
InputEvent ev;
ev.type = InputEvent::KEY;
@ -832,36 +795,33 @@ static int translateKey(unsigned int key)
ev.key.scancode = latin_keyboard_keycode_convert(translateKey([event keyCode]));
OS_OSX::singleton->push_input(ev);
/* const int key = translateKey([event keyCode]);
/*
const int key = translateKey([event keyCode]);
const int mods = translateFlags([event modifierFlags]);
_glfwInputKey(window, key, [event keyCode], GLFW_RELEASE, mods);*/
_glfwInputKey(window, key, [event keyCode], GLFW_RELEASE, mods);
*/
}
- (void)scrollWheel:(NSEvent *)event
{
- (void)scrollWheel:(NSEvent *)event {
double deltaX, deltaY;
#if MAC_OS_X_VERSION_MAX_ALLOWED >= 1070
if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6)
{
if (floor(NSAppKitVersionNumber) > NSAppKitVersionNumber10_6) {
deltaX = [event scrollingDeltaX];
deltaY = [event scrollingDeltaY];
if ([event hasPreciseScrollingDeltas])
{
if ([event hasPreciseScrollingDeltas]) {
deltaX *= 0.1;
deltaY *= 0.1;
}
}
else
#endif /*MAC_OS_X_VERSION_MAX_ALLOWED*/
{
} else {
deltaX = [event deltaX];
deltaY = [event deltaY];
}
#else
deltaX = [event deltaX];
deltaY = [event deltaY];
#endif /*MAC_OS_X_VERSION_MAX_ALLOWED*/
if (fabs(deltaY)) {
@ -904,8 +864,7 @@ static int translateKey(unsigned int key)
@implementation GodotWindow
- (BOOL)canBecomeKeyWindow
{
- (BOOL)canBecomeKeyWindow {
// Required for NSBorderlessWindowMask windows
return YES;
}
@ -914,9 +873,9 @@ static int translateKey(unsigned int key)
int OS_OSX::get_video_driver_count() const {
return 1;
}
const char * OS_OSX::get_video_driver_name(int p_driver) const {
return "GLES2";
@ -1031,21 +990,26 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
ADD_ATTR2(NSOpenGLPFAColorSize, colorBits);
/* if (fbconfig->alphaBits > 0)
ADD_ATTR2(NSOpenGLPFAAlphaSize, fbconfig->alphaBits);*/
/*
if (fbconfig->alphaBits > 0)
ADD_ATTR2(NSOpenGLPFAAlphaSize, fbconfig->alphaBits);
*/
ADD_ATTR2(NSOpenGLPFADepthSize, 24);
ADD_ATTR2(NSOpenGLPFAStencilSize, 8);
/*if (fbconfig->stereo)
ADD_ATTR(NSOpenGLPFAStereo);*/
/*
if (fbconfig->stereo)
ADD_ATTR(NSOpenGLPFAStereo);
*/
/* if (fbconfig->samples > 0)
{
/*
if (fbconfig->samples > 0) {
ADD_ATTR2(NSOpenGLPFASampleBuffers, 1);
ADD_ATTR2(NSOpenGLPFASamples, fbconfig->samples);
}*/
}
*/
// NOTE: All NSOpenGLPixelFormats on the relevant cards support sRGB
// frambuffer, so there's no need (and no way) to request it
@ -1059,12 +1023,10 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
ERR_FAIL_COND( pixelFormat == nil);
context = [[NSOpenGLContext alloc] initWithFormat:pixelFormat
shareContext:nil];
context = [[NSOpenGLContext alloc] initWithFormat:pixelFormat shareContext:nil];
ERR_FAIL_COND(context==nil);
[context setView:window_view];
[context makeCurrentContext];
@ -1083,7 +1045,6 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
bool use_gl2=p_video_driver!=1;
AudioDriverManager::add_driver(&audio_driver_osx);
// only opengl support here...
@ -1153,6 +1114,7 @@ void OS_OSX::initialize(const VideoMode& p_desired,int p_video_driver,int p_audi
};
restore_rect = Rect2(get_window_position(), get_window_size());
}
void OS_OSX::finalize() {
CFNotificationCenterRemoveObserver(CFNotificationCenterGetDistributedCenter(), NULL, kTISNotifySelectedKeyboardInputSourceChanged, NULL);
@ -1173,7 +1135,6 @@ void OS_OSX::finalize() {
screens.clear();
}
void OS_OSX::set_main_loop( MainLoop * p_main_loop ) {
@ -1245,9 +1206,11 @@ void OS_OSX::set_cursor_shape(CursorShape p_shape) {
void OS_OSX::set_mouse_show(bool p_show) {
}
void OS_OSX::set_mouse_grab(bool p_grab) {
}
bool OS_OSX::is_mouse_grab_enabled() const {
return mouse_grab;
@ -1259,8 +1222,7 @@ void OS_OSX::warp_mouse_pos(const Point2& p_to) {
if (mouse_mode == MOUSE_MODE_CAPTURED){
mouse_x = p_to.x;
mouse_y = p_to.y;
}
else{ //set OS position
} else { //set OS position
/* this code has not been tested, please be a kind soul and fix it if it fails! */
@ -1288,9 +1250,11 @@ Point2 OS_OSX::get_mouse_pos() const {
return Vector2(mouse_x,mouse_y);
}
int OS_OSX::get_mouse_button_state() const {
return button_mask;
}
void OS_OSX::set_window_title(const String& p_title) {
[window_object setTitle:[NSString stringWithUTF8String:p_title.utf8().get_data()]];
@ -1355,18 +1319,17 @@ void OS_OSX::set_clipboard(const String& p_text) {
[pasteboard setString:[NSString stringWithUTF8String:p_text.utf8().get_data()]
forType:NSStringPboardType];
}
String OS_OSX::get_clipboard() const {
NSPasteboard* pasteboard = [NSPasteboard generalPasteboard];
if (![[pasteboard types] containsObject:NSStringPboardType])
{
if (![[pasteboard types] containsObject:NSStringPboardType]) {
return "";
}
NSString* object = [pasteboard stringForType:NSStringPboardType];
if (!object)
{
if (!object) {
return "";
}
@ -1383,6 +1346,7 @@ void OS_OSX::release_rendering_thread() {
[NSOpenGLContext clearCurrentContext];
}
void OS_OSX::make_rendering_thread() {
[context makeCurrentContext];
@ -1423,11 +1387,11 @@ OS::VideoMode OS_OSX::get_video_mode(int p_screen) const {
return vm;
}
void OS_OSX::get_fullscreen_mode_list(List<VideoMode> *p_list,int p_screen) const {
}
int OS_OSX::get_screen_count() const {
return screens.size();
@ -1645,6 +1609,7 @@ static NSString *createStringForKeys(const CGKeyCode *keyCode, int length) {
return (NSString *)output;
}
OS::LatinKeyboardVariant OS_OSX::get_latin_keyboard_variant() const {
static LatinKeyboardVariant layout = LATIN_KEYBOARD_QWERTY;
@ -1792,12 +1757,12 @@ OS_OSX::OS_OSX() {
CGEventSourceSetLocalEventsSuppressionInterval(eventSource, 0.0);
/*if (pthread_key_create(&_Godot.nsgl.current, NULL) != 0)
{
_GodotInputError(Godot_PLATFORM_ERROR,
"NSGL: Failed to create context TLS");
/*
if (pthread_key_create(&_Godot.nsgl.current, NULL) != 0) {
_GodotInputError(Godot_PLATFORM_ERROR, "NSGL: Failed to create context TLS");
return GL_FALSE;
}*/
}
*/
framework = CFBundleGetBundleWithIdentifier(CFSTR("com.apple.opengl"));
ERR_FAIL_COND(!framework);