#include #include #include #include #include #include #include #include "GnomeScreensaver.h" #include "modes.h" using namespace std; static Mode *current_mode = NULL; static bool expose (GnomeScreensaver & gs) { return current_mode != NULL ? current_mode->expose(gs) : true; } static bool configure (GnomeScreensaver & gs) { return current_mode != NULL ? current_mode->configure(gs) : true; } static bool update (GnomeScreensaver & gs) { return current_mode != NULL ? current_mode->update(gs) : true; } int main (int argc, char *argv[]) { GnomeScreensaver gs(&argc, &argv, configure, expose, update, 12); Mode *modes[] = { new Spin() }; glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); current_mode = modes[0]; current_mode->configure(gs); gs.mainloop(); for (int i = 0; i < sizeof(modes)/sizeof(modes[0]); i++) delete modes[i]; return 0; }