I have to write a game for a uni project using openGL / glut. I am just going to use a generic example code as I'm just looking for a solution to one specific problem:
Using glut, I have to call a function 'glutDisplayFunc(display);' in the main function. I am also using an IdleFunc(update). The problem is that, as described here, the 'display' function cannot pass anything. I have some structs outside my main that I wish to be initialized in the main, and be accessible by display and update. Hopefully some code will explain my problem better:
#include <gl/glut.h>
struct Player
{
GLfloat x;
GLfloat y;
GLfloat z;
int score;
...
}
//function prototypes (showing how I would normally pass the struct)
void InitPlayer (Player &player);
void DrawPlayer (Player &player);
void UpdatePlayer (Player &player);
void main (int argc, char **argv)
{
Player player;
InitPlayer(player);
//...
//glut / openGL initialisation code left out
//...
glutDisplayFunc (display);
glutReshapeFunc (reshape);
glutIdleFunc (update);
glutMainLoop();
}
void display()
{
DrawPlayer(player);
}
void update ()
{
UpdatePlayer(player);
glutPostRedisplay ();
}
//end
The above code doesn't work: I hope it demonstrates what I would like to do though. Access the struct 'player' in 'display' and 'update', having the same values stored globally. How would I go about ?