create a mode through getMode() interface
This commit is contained in:
parent
937bd8cdf4
commit
5cf3b3f34c
18
dwss.cc
18
dwss.cc
@ -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;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user