
Untitled
By: a guest on
Aug 5th, 2012 | syntax:
None | size: 1.44 KB | hits: 17 | expires: Never
-(BOOL) enableRetinaDisplay:(BOOL)enabled
{
return [self enableRetinaDisplay:enabled onPad:FALSE];
}
-(BOOL) enableRetinaDisplay:(BOOL)enabled onPad:(BOOL)onPad
{
// Already enabled ?
if( enabled && __ccContentScaleFactor == 2 )
return YES;
// Already disabled
if( ! enabled && __ccContentScaleFactor == 1 )
return YES;
// setContentScaleFactor is not supported
if (! [openGLView_ respondsToSelector:@selector(setContentScaleFactor:)])
return NO;
// SD device
CGFloat scale = [[UIScreen mainScreen] scale];
if (scale == 1.0 && __ccPointScaleFactor == 1.0)
return NO;
float newScale = 1;
if (onPad) {
newScale = enabled ? (scale * __ccPointScaleFactor) : 1;
} else {
newScale = enabled ? 2 : 1;
}
[self setContentScaleFactor:newScale];
// Load Hi-Res FPS label
//[self createFPSLabel];
return YES;
}
-(void) updateContentScaleFactor
{
// Based on code snippet from: http://developer.apple.com/iphone/prerelease/library/snippets/sp2010/sp28.html
if ([openGLView_ respondsToSelector:@selector(setContentScaleFactor:)])
{
CGFloat scaleFactor = (__ccPointScaleFactor == 1) ? __ccContentScaleFactor : (__ccContentScaleFactor / __ccPointScaleFactor);
[openGLView_ setContentScaleFactor: scaleFactor];
isContentScaleSupported_ = YES;
}
else
{
CCLOG(@"cocos2d: WARNING: calling setContentScaleFactor on iOS < 4. Using fallback mechanism");
isContentScaleSupported_ = NO;
}
}