#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; } static Mode *getMode(GnomeScreensaver & gs) { #if 0 return new Starfield(gs); #endif return new Spin(); } int main (int argc, char *argv[]) { GnomeScreensaver gs(&argc, &argv, configure, expose, update, 12); glShadeModel(GL_SMOOTH); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); current_mode = getMode(gs); current_mode->configure(gs); gs.mainloop(); delete current_mode; return 0; }