//Called after the window and OpenGL are initialized. Called exactly once, before the main loop. void init() { tasks.push_back(new TaskOne()); tasks.push_back(new TaskTwo()); tasks.push_back(new TaskThree()); tasks.push_back(new TaskFour()); tasks.push_back(new BonusTask()); // initialize all our new tasks for (TaskVector::iterator it = tasks.begin(); it != tasks.end(); it++) { ITask* task = (*it); task->InitializeProgram(); task->Initialize(); } currentTaskNumber = 0; ITask* currentTask = tasks[currentTaskNumber]; if (currentTask != NULL) { currentTask->InitializeProgram(); } glCullFace(GL_BACK); // only back faces will be culled, if enabled glClearColor(0.3f, 0.3f, 0.3f, 1.0f); // color for cleaning the screen }
void uninit() { for (TaskVector::iterator it = tasks.begin(); it != tasks.end(); it++) { delete *it; } tasks.clear(); }