2011-02-07 14 views
7

フルスクリーン3D C++アプリケーションをMacでネイティブ解像度で起動したいと考えています。 ネイティブ画面解像度を取得するにはどうすればよいですか?OS Xでプログラムで画面解像度を取得

+0

理想的には、すべての処理を行うAPI関数(たとえば、 'fullscreenize()')が必要です。次に、あなたはウィンドウのサイズを使用します。 – ulidtko

+0

[Objective C - 現在の画面解像度を取得するにはどうすればいいですか?](0120-325-331) –

+1

ちょうどC++であること、またはObj-Cが受け入れられることですか? – outis

答えて

10

Objective Cを使用しない場合は、表示するディスプレイID(たとえばCGMainDisplayIDなど)を取得してから、CGDisplayPixelsWideCGDisplayPixelsHighを使用して、画面の幅と高さをピクセル単位で取得します。他の表示情報を取得する方法については、「Getting Information About Displays」を参照してください。

Objective-Cを使いたい場合は、単に[[NSScreen mainScreen] frame]を使用してください。

フルスクリーン表示では、他のアプリケーションでも同じことが起こらないようにすることが他の問題であることに注意してください。詳細については、AppleのOpenGLプログラミングガイドの "Drawing to the Full Screen"を参照してください。

+0

NSScreen mainScreenは必ずしも "mainScreen"を返すわけではありません - サイズは他のものに依存するようです...おそらく最後に選択されたウィンドウですか?いずれにしても、実際には一貫した結果を提供しません – jheriko