create a mode through getMode() interface

This commit is contained in:
Josh Holtrop 2011-03-24 14:53:19 -04:00
parent 937bd8cdf4
commit 5cf3b3f34c

18
dwss.cc
View File

@ -30,28 +30,26 @@ static bool update (GnomeScreensaver & gs)
return current_mode != NULL ? current_mode->update(gs) : true; return current_mode != NULL ? current_mode->update(gs) : true;
} }
static Mode *getMode(GnomeScreensaver & gs)
{
return new Starfield(gs);
}
int main (int argc, char *argv[]) int main (int argc, char *argv[])
{ {
GnomeScreensaver gs(&argc, &argv, configure, expose, update, 12); GnomeScreensaver gs(&argc, &argv, configure, expose, update, 12);
Mode *modes[] = {
new Starfield(gs),
new Spin(),
new Flip()
};
glShadeModel(GL_SMOOTH); glShadeModel(GL_SMOOTH);
glEnable(GL_LIGHTING); glEnable(GL_LIGHTING);
glEnable(GL_LIGHT0); glEnable(GL_LIGHT0);
glEnable(GL_DEPTH_TEST); glEnable(GL_DEPTH_TEST);
modes[0]->configure(gs); current_mode = getMode(gs);
current_mode = modes[0]; current_mode->configure(gs);
gs.mainloop(); gs.mainloop();
for (int i = 0; i < sizeof(modes)/sizeof(modes[0]); i++) delete current_mode;
delete modes[i];
return 0; return 0;
} }