X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?p=xscreensaver;a=blobdiff_plain;f=hacks%2Fglx%2Fstarwars.c;h=9ee8cc3f05ed11e00cdb993ae1beeac83c0842d7;hp=f4a5850380eddb9bc71341f746efa41578e5fd37;hb=4361b69d3178d7fc98d0388f9a223af6c2651aba;hpb=d1ae2829ff0fd2a96c16a0c8c5420efaa47d7b30 diff --git a/hacks/glx/starwars.c b/hacks/glx/starwars.c index f4a58503..9ee8cc3f 100644 --- a/hacks/glx/starwars.c +++ b/hacks/glx/starwars.c @@ -47,6 +47,7 @@ "*program: xscreensaver-text --cols 0" /* don't wrap */ # define refresh_sws 0 +# define release_sws 0 # define sws_handle_event 0 #undef countof #define countof(x) (sizeof((x))/sizeof((*x))) @@ -86,7 +87,7 @@ #define MAX_THICK_LINES 25 #define FONT_WEIGHT 14 -#ifndef USE_IPHONE +#ifndef HAVE_MOBILE # define KEEP_ASPECT /* Letterboxing looks dumb on iPhone. */ #endif @@ -283,7 +284,6 @@ get_more_lines (sws_configuration *sc) { /* wrap anyway, if it's absurdly long. */ int wrap_pix = (wrap_p ? sc->line_pixel_width : 10000); - int col_pix = 0; char *s = sc->buf; @@ -410,7 +410,6 @@ get_more_lines (sws_configuration *sc) sc->buf[sc->buf_tail] = 0; s = sc->buf; - col_pix = 0; break; } @@ -620,9 +619,11 @@ reshape_sws (ModeInfo *mi, int width, int height) } #endif - glMatrixMode (GL_PROJECTION); glViewport (0, yoff, w, h); + glMatrixMode (GL_PROJECTION); + glLoadIdentity(); + glMatrixMode (GL_MODELVIEW); glLoadIdentity (); gluPerspective (80.0, 1/desired_aspect, 1000, 55000); @@ -630,8 +631,6 @@ reshape_sws (ModeInfo *mi, int width, int height) 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); - glRotatef(rot, 0, 0, 1); - /* Horrible kludge to prevent the text from materializing already on screen on iPhone in landscape mode. */ @@ -718,6 +717,9 @@ gl_init (ModeInfo *mi) } +static void free_sws (ModeInfo *mi); + + ENTRYPOINT void init_sws (ModeInfo *mi) { @@ -725,14 +727,7 @@ init_sws (ModeInfo *mi) sws_configuration *sc = 0; - if (!scs) { - scs = (sws_configuration *) - calloc (MI_NUM_SCREENS(mi), sizeof (sws_configuration)); - if (!scs) { - fprintf(stderr, "%s: out of memory\n", progname); - exit(1); - } - } + MI_INIT (mi, scs, free_sws); sc = &scs[MI_SCREEN(mi)]; @@ -877,9 +872,6 @@ draw_stars (ModeInfo *mi) glRotatef (sc->star_theta, 0.0, 0.0, 1.0); if (textures_p) glDisable (GL_TEXTURE_2D); - /* Keep the stars pointing in the same direction after rotation */ - glRotatef(current_device_rotation(), 0, 0, 1); - glCallList (sc->star_list); if (textures_p) glEnable (GL_TEXTURE_2D); } @@ -911,7 +903,7 @@ draw_sws (ModeInfo *mi) glMatrixMode (GL_MODELVIEW); glPushMatrix (); -# ifdef USE_IPHONE +# ifdef HAVE_MOBILE /* Need to do this every time to get device rotation right */ reshape_sws (mi, MI_WIDTH(mi), MI_HEIGHT(mi)); # endif @@ -1059,22 +1051,14 @@ draw_sws (ModeInfo *mi) sc->star_theta += star_spin; } -ENTRYPOINT void -release_sws (ModeInfo *mi) +static void +free_sws (ModeInfo *mi) { - if (scs) { - int screen; - for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) { - sws_configuration *sc = &scs[screen]; - if (sc->tc) - textclient_close (sc->tc); - - /* #### there's more to free here */ - } - free (scs); - scs = 0; - } - FreeAllGL(mi); + sws_configuration *sc = &scs[MI_SCREEN(mi)]; + if (sc->tc) + textclient_close (sc->tc); + + /* #### there's more to free here */ }