在OpenGL GLUT程序中动态查找屏幕宽度和高度

时间:2012-07-23 02:23:56

标签: opengl glut

在我的OpenGL程序中,为了在全屏模式下运行,我使用GLUT函数glutGameModeString(const char * string)。
(其中'string'指定屏幕宽度,高度,pixelDepth和刷新率)
为了使它在任何系统中工作,我需要在调用'glutGameModeString'函数之前动态确定主机系统的屏幕宽度和屏幕高度。
我该怎么做?

3 个答案:

答案 0 :(得分:3)

我认为你错了,有以下常数:

GLUT_SCREEN_HEIGHT
GLUT_SCREEN_WIDTH

我测试了它,它有效。

答案 1 :(得分:1)

您停止使用GLUT并使用旨在用于此类事情的系统。 GLUT没有这种功能,OpenGL也不知道窗外的任何东西。

GLFW是一种可能性。

答案 2 :(得分:0)

只需在Linux Mint 18上进行测试

std::cout << "glut screen width(DEFUALT): " << GLUT_SCREEN_WIDTH << std::endl;
std::cout << "glut screen height(DEFAULT): " << GLUT_SCREEN_HEIGHT << std::endl;
std::cout << "glut screen width: " << glutGet(GLUT_SCREEN_WIDTH) << std::endl;
std::cout << "glut screen height: " << glutGet(GLUT_SCREEN_HEIGHT) << std::endl;

输出:

glut screen width(DEFAULT): 200
glut screen height(DEFAULT): 201
glut screen width: 1366
glut screen height: 768

将窗口大小设置为glutGet(GLUT_SCREEN_WIDTH/HEIGHT);将最大化您的窗口,但仍具有顶部栏和边框。

初始化窗口后只需调用glutFullScreen();即可使其全屏显示,没有边框或任何东西,不需要上面的内容来获得屏幕尺寸。