X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fglx%2Fstairs.c;h=33e73ab03f9318af5d9bb557ce9b6ca1c8948e88;hb=6a1da724858673ac40aa13a9612340d8bed8c7b9;hp=97808a0c86d14509c7688b6b89c3c2b696351faf;hpb=ebc241816cc8e3eec7270a594bb1a607df32bcd6;p=xscreensaver diff --git a/hacks/glx/stairs.c b/hacks/glx/stairs.c index 97808a0c..33e73ab0 100644 --- a/hacks/glx/stairs.c +++ b/hacks/glx/stairs.c @@ -64,9 +64,10 @@ static const char sccsid[] = "@(#)stairs.c 4.07 97/11/24 xlockmore"; # define PROGCLASS "Stairs" # define HACK_INIT init_stairs # define HACK_DRAW draw_stairs +# define HACK_RESHAPE reshape_stairs # define stairs_opts xlockmore_opts -# define DEFAULTS "*cycles: 1 \n" \ - "*delay: 20000 \n" \ +# define DEFAULTS "*delay: 20000 \n" \ + "*showFPS: False \n" \ "*wireframe: False \n" # include "xlockmore.h" /* from the xscreensaver distribution */ #else /* !STANDALONE */ @@ -414,8 +415,8 @@ draw_stairs_internal(ModeInfo * mi) sp->sphere_position = 0; } -static void -reshape(ModeInfo * mi, int width, int height) +void +reshape_stairs(ModeInfo * mi, int width, int height) { stairsstruct *sp = &stairs[MI_SCREEN(mi)]; @@ -439,6 +440,7 @@ reshape(ModeInfo * mi, int width, int height) static void pinit(void) { + int status; glClearDepth(1.0); glClearColor(0.0, 0.0, 0.0, 1.0); @@ -464,8 +466,21 @@ pinit(void) glEnable(GL_CULL_FACE); glPixelStorei(GL_UNPACK_ALIGNMENT, 1); - gluBuild2DMipmaps(GL_TEXTURE_2D, 3, WoodTextureWidth, WoodTextureHeight, - GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData); + + clear_gl_error(); + status = gluBuild2DMipmaps(GL_TEXTURE_2D, 3, + WoodTextureWidth, WoodTextureHeight, + GL_RGB, GL_UNSIGNED_BYTE, WoodTextureData); + if (status) + { + const char *s = (char *) gluErrorString (status); + fprintf (stderr, "%s: error mipmapping %dx%d texture: %s\n", + progname, WoodTextureWidth, WoodTextureHeight, + (s ? s : "(unknown)")); + exit (1); + } + check_gl_error("mipmapping"); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_MODULATE); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); @@ -495,7 +510,7 @@ init_stairs(ModeInfo * mi) if ((sp->glx_context = init_GL(mi)) != NULL) { - reshape(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); + reshape_stairs(mi, MI_WIDTH(mi), MI_HEIGHT(mi)); glDrawBuffer(GL_BACK); if (!glIsList(objects)) objects = glGenLists(1); @@ -541,6 +556,7 @@ draw_stairs(ModeInfo * mi) glPopMatrix(); + if (mi->fps_p) do_fps (mi); glFlush(); glXSwapBuffers(display, window);