From 8839973caa0ebc06aec17948295a87c24d2f4ecb Mon Sep 17 00:00:00 2001 From: rogerman Date: Wed, 7 Mar 2012 04:49:59 +0000 Subject: [PATCH] Cocoa Port: - Reduce spin lock time when setting the displayType property. --- desmume/src/cocoa/cocoa_output.mm | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/desmume/src/cocoa/cocoa_output.mm b/desmume/src/cocoa/cocoa_output.mm index 73f1641c7..06398e691 100644 --- a/desmume/src/cocoa/cocoa_output.mm +++ b/desmume/src/cocoa/cocoa_output.mm @@ -703,34 +703,33 @@ GPU3DInterface *core3DList[] = { - (void) setDisplayType:(NSInteger)dispType { - OSSpinLockLock(&spinlockDisplayType); - - displayType = dispType; - [property setValue:[NSNumber numberWithInteger:dispType] forKey:@"displayMode"]; - + NSString *newDispString = nil; NSSize newSrcSize = NSMakeSize((CGFloat)GPU_DISPLAY_WIDTH, (CGFloat)GPU_DISPLAY_HEIGHT); switch (dispType) { case DS_DISPLAY_TYPE_MAIN: - [property setValue:NSSTRING_DISPLAYMODE_MAIN forKey:@"displayModeString"]; + newDispString = NSSTRING_DISPLAYMODE_MAIN; break; case DS_DISPLAY_TYPE_TOUCH: - [property setValue:NSSTRING_DISPLAYMODE_TOUCH forKey:@"displayModeString"]; + newDispString = NSSTRING_DISPLAYMODE_TOUCH; break; case DS_DISPLAY_TYPE_COMBO: - [property setValue:NSSTRING_DISPLAYMODE_COMBO forKey:@"displayModeString"]; + newDispString = NSSTRING_DISPLAYMODE_COMBO; newSrcSize.height *= 2; break; default: - OSSpinLockUnlock(&spinlockDisplayType); return; break; } + OSSpinLockLock(&spinlockDisplayType); + displayType = dispType; + [property setValue:[NSNumber numberWithInteger:dispType] forKey:@"displayMode"]; + [property setValue:newDispString forKey:@"displayModeString"]; OSSpinLockUnlock(&spinlockDisplayType); OSSpinLockLock(&spinlockVfSrcBuffer);