ゲームを作成しており、ランチャーの有効なフルスクリーン解像度のリストを取得したいと考えています。Mac OS X でこれを行う方法が見つかりません。
システム設定 Displays
ペインのように。
出来ますか?
ゲームを作成しており、ランチャーの有効なフルスクリーン解像度のリストを取得したいと考えています。Mac OS X でこれを行う方法が見つかりません。
システム設定 Displays
ペインのように。
出来ますか?
ディスプレイの画面解像度を取得することを意味する場合。
これはあなたが求めているものかもしれません。
NSScreen* thescreen;
id theScreens = [NSScreen screens];
for (thescreen in theScreens) {
NSLog(@"%@x%@", [NSNumber numberWithFloat:[thescreen frame].size.width], [NSNumber numberWithFloat:[thescreen frame].size.height]);
}
この例では、すべてのディスプレイの設定解像度が得られます
リンゴのNSScreenを見てください
これがあなたの求めているものではない場合は、質問を拡大できます。
乾杯
これはおそらくあなたが求めているものであり、実際に正しい情報を返すかどうかを確認するためにそれをいじる必要があります。複数の結果が得られたため、フィルターが適用されました。しかし、それで遊ぶなら、それを薄くすることができるはずです.
テスト プロジェクトでは ARC が使用されていたため、__bridges が強制的に使用されていました。
私の参照は Quartz Display Services Referenceでした
NSArray* theref = (__bridge NSArray *)(CGDisplayCopyAllDisplayModes ( CGMainDisplayID(), nil ));
NSMutableArray * rezes = [[NSMutableArray alloc]init];
for (id aMode in theref) {
CGDisplayModeRef thisMode = (__bridge CGDisplayModeRef)(aMode);
size_t theWidth = CGDisplayModeGetWidth( thisMode );
size_t theHeight = CGDisplayModeGetHeight( thisMode );
NSString *theRez = [NSString stringWithFormat:@"%zux%zu",theWidth,theHeight];
if (![rezes containsObject:theRez]) {
[rezes addObject:theRez];
}
}
NSLog(@" display deatails = %@", rezes);
-->
display deatails = (
2560x1440,
1280x720,
640x480,
800x600,
1024x768,
1280x1024,
1344x756,
1600x900,
1680x1050,
1920x1080,
1600x1200,
1920x1200
)