在我的OpenGL程序中,为了在全屏模式下运行,我使用GLUT函数glutGameModeString(const char * string)。
(其中'string'指定屏幕宽度,高度,pixelDepth和刷新率)
为了使它在任何系统中工作,我需要在调用'glutGameModeString'函数之前动态确定主机系统的屏幕宽度和屏幕高度。
我该怎么做?
答案 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();
即可使其全屏显示,没有边框或任何东西,不需要上面的内容来获得屏幕尺寸。