33#import "MyOpenGLView.h"
38@implementation GameController (FullScreen)
42 NSArray *modes = [gameView getScreenSizeArray];
44 unsigned int modeIndex, modeCount;
45 unsigned int modeWidth, modeHeight;
48 modeCount = [modes count];
49 for (modeIndex = 0; modeIndex < modeCount; modeIndex++)
51 mode = [modes objectAtIndex: modeIndex];
52 modeWidth = [[mode
objectForKey: kOODisplayWidth] intValue];
53 modeHeight = [[mode
objectForKey: kOODisplayHeight] intValue];
60 [displayModes addObject: mode];
63 NSDictionary *currentMode = [gameView currentScreenMode];
66 width = [[currentMode objectForKey: kOODisplayWidth] intValue];
67 height = [[currentMode objectForKey: kOODisplayHeight] intValue];
68 refresh = [[currentMode objectForKey: kOODisplayRefreshRate] intValue];
72 NSSize fsmSize = [gameView currentScreenSize];
73 width = fsmSize.width;
74 height = fsmSize.height;
79- (void) setFullScreenMode:(BOOL)fsm
87 [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"fullscreen"];
88 stayInFullScreenMode = NO;
94 return [gameView inFullScreenMode];
98- (BOOL) setDisplayWidth:(
unsigned int) d_width Height:(
unsigned int) d_height Refresh:(
unsigned int) d_refresh
100 NSDictionary *d_mode = [
self findDisplayModeForWidth: d_width Height: d_height Refresh: d_refresh];
106 fullscreenDisplayMode = d_mode;
108 NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
110 [userDefaults setInteger:width forKey:@"display_width"];
111 [userDefaults setInteger:height forKey:@"display_height"];
112 [userDefaults setInteger:refresh forKey:@"display_refresh"];
115 [userDefaults synchronize];
123- (NSDictionary *) findDisplayModeForWidth:(
unsigned int) d_width Height:(
unsigned int) d_height Refresh:(
unsigned int) d_refresh
127 unsigned int modeWidth, modeHeight, modeRefresh;
129 modeCount = [displayModes count];
131 for (i = 0; i < modeCount; i++)
133 mode = [displayModes objectAtIndex: i];
134 modeWidth = [[mode
objectForKey:kOODisplayWidth] intValue];
135 modeHeight = [[mode
objectForKey:kOODisplayHeight] intValue];
136 modeRefresh = [[mode
objectForKey:kOODisplayRefreshRate] intValue];
137 if ((modeWidth == d_width)&&(modeHeight == d_height)&&(modeRefresh == d_refresh))
148 return [NSArray arrayWithArray:displayModes];
156 mode = [
self findDisplayModeForWidth: width Height: height Refresh: refresh];
160 return [displayModes indexOfObject:mode];
166- (void) pauseFullScreenModeToPerform:(
SEL) selector onTarget:(
id) target
168 pauseSelector = selector;
169 pauseTarget = target;
170 stayInFullScreenMode = NO;
#define DISPLAY_MAX_WIDTH
#define DISPLAY_MAX_HEIGHT
#define DISPLAY_MIN_HEIGHT
#define DISPLAY_MIN_WIDTH
void exitFullScreenMode()
NSUInteger indexOfCurrentDisplayMode()