X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fprovidence.c;h=d628845e6d567f17f7fcb7ca1f8283a0758a6645;hb=39809ded547bdbb08207d3e514950425215b4410;hp=695ef7571ab170c77fb0453809da78466beb62c9;hpb=aa75c7476aeaa84cf3abc192b376a8b03c325213;p=xscreensaver diff --git a/hacks/glx/providence.c b/hacks/glx/providence.c index 695ef757..d628845e 100644 --- a/hacks/glx/providence.c +++ b/hacks/glx/providence.c @@ -19,7 +19,8 @@ "*showFPS: False \n" \ "*wireframe: False \n" -# define refresh_providence 0 +# define free_providence 0 +# define release_providence 0 #include "xlockmore.h" #else #include "xlock.h" @@ -53,7 +54,7 @@ ENTRYPOINT ModeSpecOpt providence_opts = { #ifdef USE_MODULES ModStruct providence_description = { "providence", "init_providence", "draw_providence", - "release_providence", "draw_providence", "change_providence", + (char *) NULL, "draw_providence", "change_providence", (char *) NULL, &providence_opts, 1000, 1, 1, 1, 4, 1.0, "", "draws pyramid with glory", 0, NULL }; @@ -595,10 +596,17 @@ static void draw_providence_strip(ModeInfo *mi) ENTRYPOINT void reshape_providence(ModeInfo * mi, int width, int height) { - double h = (GLfloat) height / (GLfloat) width; providencestruct *mp = &providence[MI_SCREEN(mi)]; + double h = (GLfloat) height / (GLfloat) width; + int y = 0; + + if (width > height * 5) { /* tiny window: show middle */ + height = width * 3; + y = -height/2; + h = height / (GLfloat) width; + } - glViewport(0, 0, mp->WindW = (GLint) width, mp->WindH = (GLint) height); + glViewport(0, y, mp->WindW = (GLint) width, mp->WindH = (GLint) height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); @@ -625,18 +633,6 @@ static void pinit(providencestruct *mp) glEndList(); } -/* cleanup routine */ -ENTRYPOINT void release_providence(ModeInfo * mi) -{ - - if(providence) { - free((void *) providence); - providence = (providencestruct *) NULL; - } - - FreeAllGL(mi); -} - /* event handling */ ENTRYPOINT Bool providence_handle_event(ModeInfo *mi, XEvent *event) { @@ -671,11 +667,7 @@ ENTRYPOINT void init_providence(ModeInfo *mi) { providencestruct *mp; - if(!providence) { - if((providence = (providencestruct *) - calloc(MI_NUM_SCREENS(mi), sizeof (providencestruct))) == NULL) - return; - } + MI_INIT(mi, providence); mp = &providence[MI_SCREEN(mi)]; mp->trackball = gltrackball_init (False);