我想在Mac上以原始分辨率启动全屏3D C ++应用程序。 如何检索本机屏幕分辨率?
答案 0 :(得分:11)
如果您不想使用Objective C,请获取您希望显示的显示ID(使用例如CGMainDisplayID
),然后使用CGDisplayPixelsWide
和CGDisplayPixelsHigh
获取屏幕宽度和高度,以像素为单位。有关如何获取其他显示信息,请参阅“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
}