在OS X中以编程方式获取屏幕分辨率

时间:2011-02-07 13:25:38

标签: c++ macos core-graphics fullscreen

我想在Mac上以原始分辨率启动全屏3D C ++应用程序。 如何检索本机屏幕分辨率?

2 个答案:

答案 0 :(得分:11)

如果您不想使用Objective C,请获取您希望显示的显示ID(使用例如CGMainDisplayID),然后使用CGDisplayPixelsWideCGDisplayPixelsHigh获取屏幕宽度和高度,以像素为单位。有关如何获取其他显示信息,请参阅“Getting Information About Displays”。

如果您愿意使用一些Objective-C,只需使用[[NSScreen mainScreen] frame]即可。

请注意,全屏显示还有其他问题,即确保其他应用程序不会这样做。请阅读Apple的OpenGL编程指南中的“Drawing to the Full Screen”以获取更多信息。

答案 1 :(得分:1)

如果您正在寻找适用于mac和Windows的多平台解决方案

#include "ScreenSize.h"

#if WIN32
#include <windows.h>
#else
#include <CoreGraphics/CGDisplayConfiguration.h>
#endif

void ScreenSize::getScreenResolution(unsigned int& width, unsigned int& height) {
#if WIN32
    width = (int)GetSystemMetrics(SM_CXSCREEN);
    height = (int)GetSystemMetrics(SM_CYSCREEN);
#else
    auto mainDisplayId = CGMainDisplayID();
    width = CGDisplayPixelsWide(mainDisplayId);
    height = CGDisplayPixelsHigh(mainDisplayId);
#endif
}