所以我正在用C ++在opengl中进行测验。问题是我不知道如何在其他函数中声明函数,所以出现错误。
void main_menu_display()
{
glClear(GL_COLOR_BUFFER_BIT);
// code to draw main menu
glutSwapBuffers();
}
void main_menu_key(unsigned char key, int x, int y)
{
我也尝试过此方法来解决错误://避免first_screen_display();// void first_screen_key();
switch(key)
{
case 27: //< escape -> quit
exit(0);
case 13: //< enter -> goto first display
glutDisplayFunc(first_screen_display);
glutKeyboardFunc(first_screen_key);
break;
并且存在错误:在此范围内未声明“ first_screen_display”第一个屏幕键也会发生同样的情况。
}
glutPostRedisplay();
}
void first_screen_display()
{
glClear(GL_COLOR_BUFFER_BIT);
// code to draw first screen of game
glutSwapBuffers();
}
void first_screen_key(unsigned char key, int x, int y)
{
switch(key)
{
case 27: //< escape -> return to main menu
glutDisplayFunc(first_screen_display);
glutKeyboardFunc(first_screen_key);
break;
/* other stuff */
default:
break;
}
glutPostRedisplay();
}
int main(int argc, char* argv[]) //argument count, argument variables
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB|GLUT_SINGLE);
glutInitWindowSize(600,600);
glutInitWindowPosition(100,100);
glutCreateWindow("Quiz");
glutDisplayFunc(main_menu_display);
glutKeyboardFunc(main_menu_key);
//glutDisplayFunc(first_screen_display);
//glutKeyboardFunc(first_screen_key);
Init();
glutMainLoop();
return 0;
}
因此,我在全局范围内声明了函数,并且没有错误,但是我的屏幕是白色的,文本没有以某种方式显示。我在使用命名空间std之后立即声明了它们;void first_screen_display();void first_screen_key(unsigned char key,int x,int y);
在另一个函数中定义一个函数是在C ++中声明一个函数的无效方法。For more details see: