У меня возникли проблемы с использованием объекта в перенасыщении DisplayFunction.Использование объектов в функции отображения выдержки
class Modelisation
{
private:
int hauteur, largeur, x, y;
Camera *Cam;
void DisplayFunction();
static void RedisplayFunction (int, int);
public:
Modelisation (int argc, char **argv, char[]);
~Modelisation();
void StartMainLoop();
};
Modelisation.cpp
Modelisation::Modelisation (int argc, char **argv, char windowName [])
{
Cam = new Camera;
glutInit (&argc, argv);
glutInitDisplayMode (GLUT_SINGLE);
glutCreateWindow (windowName);
};
void Modelisation::StartMainLoop()
{
glutDisplayFunc(DisplayFunction);
glutIdleFunc(DisplayFunction);
glutReshapeFunc(RedisplayFunction);
glutMainLoop();
}
void Modelisation::DisplayFunction()
{
glClearDepth (1);
glClearColor (0.0f, 0.0f, 0.0f, 0.0f);
glClear (GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity();
Cam->Render();
glFlush();
glutSwapBuffers();
}
glutDisplayFunc (DisplayFunction); glutIdleFunc (DisplayFunction);
Это не работает. Я знаю, что я могу объявить DisplayFunction как статический член, но это не позволит мне использовать объект Cam, любую идею?
Thx !!!
Прошу прощения, но как объявить статический объект Cam в файле заголовка? – Athanase
Вы объявляете его как «статическую камеру» Cam, 'в своем заголовочном файле. – Adrian
Извините, я ошибся, это прекрасно работает. Я всегда получаю прекрасный ответ, когда задаю вопросы на этом форуме. Спасибо !! – Athanase