如何在C ++的Mac OS X中获得主显示器的分辨率?

时间:2020-03-06 14:51:01  来源:igfitidea点击:

我有一个图形应用程序,需要测试在Mac OS X中启动的显示器的分辨率,以确保它不大于分辨率。这是在窗口本身初始化之前完成的。

如果有多个显示器,则它必须是主要显示器。这是硬件加速(OpenGL)应用程序将在全屏模式下启动的显示,并且通常是顶部具有菜单栏的显示。

在Windows中,我可以成功使用GetSystemMetrics()。如何在OS X上执行此操作?

解决方案

使用CoreGraphics:

CGRect mainMonitor = CGDisplayBounds(CGMainDisplayID());
CGFloat monitorHeight = CGRectGetHeight(mainMonitor);
CGFloat monitorWidth = CGRectGetWidth(mainMonitor);

有关更多信息,请参阅Apple的Quartz Display Services Reference。