X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fsierpinski3d.c;fp=hacks%2Fglx%2Fsierpinski3d.c;h=0317299ab25d24dcdbefeb4bfdd08369fadd6022;hp=3b80fc2b498d499a453498d55928832d19933584;hb=39809ded547bdbb08207d3e514950425215b4410;hpb=4361b69d3178d7fc98d0388f9a223af6c2651aba diff --git a/hacks/glx/sierpinski3d.c b/hacks/glx/sierpinski3d.c index 3b80fc2b..0317299a 100644 --- a/hacks/glx/sierpinski3d.c +++ b/hacks/glx/sierpinski3d.c @@ -32,7 +32,6 @@ static const char sccsid[] = "@(#)sierpinski3D.c 00.01 99/11/04 xlockmore"; "*wireframe: False \n" \ "*suppressRotationAnimation: True\n" \ -# define refresh_gasket 0 # define release_gasket 0 # include "xlockmore.h" /* from the xscreensaver distribution */ #else /* !STANDALONE */ @@ -79,7 +78,7 @@ ENTRYPOINT ModeSpecOpt gasket_opts = {countof(opts), opts, countof(vars), vars, #ifdef USE_MODULES ModStruct gasket_description = {"gasket", "init_gasket", "draw_gasket", NULL, - "draw_gasket", "init_gasket", NULL, &gasket_opts, + "draw_gasket", "init_gasket", "free_gasket", &gasket_opts, 1000, 1, 2, 1, 4, 1.0, "", "Shows GL's Sierpinski gasket", 0, NULL}; @@ -386,8 +385,15 @@ ENTRYPOINT void reshape_gasket(ModeInfo *mi, int width, int height) { GLfloat h = (GLfloat) height / (GLfloat) width; + int y = 0; - glViewport(0, 0, (GLint) width, (GLint) height); + if (width > height * 5) { /* tiny window: show middle */ + height = width * 9/16; + y = -height/2; + h = height / (GLfloat) width; + } + + glViewport(0, y, (GLint) width, (GLint) height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective (30.0, 1/h, 1.0, 100.0); @@ -467,16 +473,13 @@ gasket_handle_event (ModeInfo *mi, XEvent *event) } -static void free_gasket(ModeInfo * mi); - - ENTRYPOINT void init_gasket(ModeInfo *mi) { int screen = MI_SCREEN(mi); gasketstruct *gp; - MI_INIT (mi, gasket, free_gasket); + MI_INIT (mi, gasket); gp = &gasket[screen]; gp->window = MI_WINDOW(mi);