所谓游戏模式其实就是一种全屏模式,这里可以对该模式下的屏幕显示方式进行简单设置.详见下面具体解释.
//*******************************************************************************************
void glutGameModeString(const char *string);
通过一个字符串对game mode(游戏模式,也即全屏模式)进行设置,即对屏幕进行设置.
参数:
string:一个指向字符串的指针,字符串的内容即是对屏幕的设置.字符串的格式如下所示:
"W*H"
"W*H:Bpp"
"W*H@Rr"
"W*H:Bpp@Rr"
"@Rr"
":Bpp"
"Bpp:@Rr"
(注:W:屏幕宽度,以像素单位;H:屏幕高度,以像素为单位;Bpp:每个像素的内存大小(位数);Rr:屏幕的刷新率.)
例子:
1.如果我们只关心屏幕大小(800*600)而不关心每个像素的内存占用和刷新频率,可以写成:
glutGameModeString("800*600");
2.如果只想把每个像素的内存占用设置成32位,可以写成:
glutGameModeString(":32");
3.如果只想把刷新率设置成75赫兹,可以写成:
glutGameModeString("@75");
4.如果前三种情况都考虑,可以写成:
glutGameModeString("800*600:32@75");
其他情况按照上面给出的字符串格式写出即可.
注:
1.这个函数只是对硬件的请求,如果设置不合法,则将被忽略.
2.这个函数并不返回错误值,如果要获得错误信息,则要用glutGameModeGet()函数.
//*******************************************************************************************
int glutEnterGameMode(void);
进入相应的game mode,即让glutGameModeString()的设置生效.
//*******************************************************************************************
void glutLeaveGameMode(void);
离开glutGameModeString()设置的game mode.
//*******************************************************************************************
int glutGameModeGet(GLenum mode);
检测设置的模式是否有效
参数:
mode:
GLUT_GAME_MODE_ACTIVE:如果程序运行在game mode,则返回非0值,如果运行在窗口模式,则返回0.
GLUT_GAME_MODE_POSSIBLE:判断glutAameModeString()的设置是否有效,如果有效则返回非0值,否则返回0.但是glut手册中有一个警告,即使这个设置是有效的,也不能保证屏幕设置可以一定成功生效.
GLUT_GAME_MODE_WIDTH:返回屏幕的宽度.
GLUT_GAME_MODE_HEIGHT:返回屏幕的高度.
GLUT_GAME_MODE_PIXEL_DEPTH:返回当前模式下每个像素所占用的内存空间(位数).
GLUT_GAME_MODE_REFRESH_RATE:返回实际的刷新率(单位赫兹).
GLUT_GAME_MODE_DISPLAY_CHANGED:正如前面所说,不能保证屏幕显示模式一定根据设置发生改变,这个常量可以用来测试是否真的进入了game mode(先前是窗口模式下的情况下),如果先前已经是game mode,则可以用来测试设置是否发生改变.返回非0值表示进入了game mode或设置已经发生改变,否则返回0.