Cocoa Port:

- Reduce spin lock time when setting the displayType property.
This commit is contained in:
rogerman 2012-03-07 04:49:59 +00:00
parent e214a9b6c7
commit 8839973caa
1 changed files with 8 additions and 9 deletions

View File

@ -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);