X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fqueens.c;h=bc9b2029d228f8894673e28db90930851b35841c;hb=39809ded547bdbb08207d3e514950425215b4410;hp=ecada1d98c13513ae190d71c59fd3a3eaa1faef9;hpb=aa75c7476aeaa84cf3abc192b376a8b03c325213;p=xscreensaver diff --git a/hacks/glx/queens.c b/hacks/glx/queens.c index ecada1d9..bc9b2029 100644 --- a/hacks/glx/queens.c +++ b/hacks/glx/queens.c @@ -22,7 +22,8 @@ "*showFPS: False \n" \ "*wireframe: False \n" \ -# define refresh_queens 0 +# define free_queens 0 +# define release_queens 0 # include "xlockmore.h" #else @@ -67,7 +68,7 @@ ENTRYPOINT ModeSpecOpt queens_opts = {countof(opts), opts, countof(vars), vars, #ifdef USE_MODULES ModStruct queens_description = -{"queens", "init_queens", "draw_queens", "release_queens", +{"queens", "init_queens", "draw_queens", NULL, "draw_queens", "init_queens", NULL, &queens_opts, 1000, 1, 2, 1, 4, 1.0, "", "Queens", 0, NULL}; @@ -519,7 +520,14 @@ static int draw_model(int chunks, const GLfloat model[][3], int r) ENTRYPOINT void reshape_queens(ModeInfo *mi, int width, int height) { GLfloat h = (GLfloat) height / (GLfloat) width; - glViewport(0,0, width, height); + int y = 0; + + if (width > height * 5) { /* tiny window: show middle */ + height = width; + y = -height/2; + h = height / (GLfloat) width; + } + glViewport(0,y, width, height); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45, 1/h, 2.0, 30.0); @@ -537,9 +545,7 @@ ENTRYPOINT void init_queens(ModeInfo *mi) wire = 0; # endif - if(!qss && - !(qss = (Queenscreen *) calloc(MI_NUM_SCREENS(mi), sizeof(Queenscreen)))) - return; + MI_INIT (mi, qss); qs = &qss[screen]; qs->window = MI_WINDOW(mi); @@ -599,15 +605,6 @@ ENTRYPOINT void draw_queens(ModeInfo *mi) glXSwapBuffers(disp, w); } -ENTRYPOINT void release_queens(ModeInfo *mi) -{ - if(qss) - free((void *) qss); - qss = 0; - - FreeAllGL(mi); -} - XSCREENSAVER_MODULE ("Queens", queens) #endif