/* -*- Mode: C; tab-width: 4 -*- */
/* atunnels --- OpenGL Advanced Tunnel Screensaver */
-#if !defined( lint ) && !defined( SABER )
-static const char sccsid[] = "@(#)atunnels.c 5.07 2003/02/12 xlockmore";
+#if 0
+static const char sccsid[] = "@(#)atunnels.c 5.13 2004/05/25 xlockmore";
#endif
-/* Copyright (c) E. Lassauge, 2003. */
+/* Copyright (c) E. Lassauge, 2003-2004. */
/*
* Permission to use, copy, modify, and distribute this software and its
* Email: romka@ut.ee
* WEB: http://romka.demonews.com
*
- * Eric Lassauge (March-16-2002) <lassauge@mail.dotcom.fr>
+ * Eric Lassauge (May-25-2004) <lassauge@users.sourceforge.net>
* http://lassauge.free.fr/linux.html
*
* REVISION HISTORY:
*
+ * E.Lassauge - 25-May-2004:
+ * - added more texture !
* E.Lassauge - 16-Mar-2002:
* - created based on the Roman demo.
* - deleted all external file stuff to use xpm textures and
# define HACK_RESHAPE reshape_atunnels
# define atunnels_opts xlockmore_opts
#define DEFAULTS "*delay: 10000 \n" \
- "*showFPS: False \n" \
- "*light: True \n" \
- "*wire: False \n" \
- "*texture: True \n"
+ "*showFPS: False \n" \
#define MODE_atunnels
# include "xlockmore.h" /* from the xscreensaver distribution */
#include "../images/tunnel0.xpm"
#include "../images/tunnel1.xpm"
#include "../images/tunnel2.xpm"
+#include "../images/tunnel3.xpm"
+#include "../images/tunnel4.xpm"
+#include "../images/tunnel5.xpm"
#else /* !STANDALONE */
#include "pixmaps/tunnel0.xpm"
#include "pixmaps/tunnel1.xpm"
#include "pixmaps/tunnel2.xpm"
+#include "pixmaps/tunnel3.xpm"
+#include "pixmaps/tunnel4.xpm"
+#include "pixmaps/tunnel5.xpm"
#endif /* !STANDALONE */
#endif /* HAVE_XPM */
+
#undef countof
#define countof(x) (sizeof((x))/sizeof((*x)))
static Bool do_texture;
static XrmOptionDescRec opts[] = {
- {(char *)"-light", (char *)".atunnels.light", XrmoptionNoArg, (caddr_t) "true" },
- {(char *)"+light", (char *)".atunnels.light", XrmoptionNoArg, (caddr_t) "false" },
- {(char *)"-wire", (char *)".atunnels.wire", XrmoptionNoArg, (caddr_t) "true" },
- {(char *)"+wire", (char *)".atunnels.wire", XrmoptionNoArg, (caddr_t) "false" },
- {(char *)"-texture", (char *)".atunnels.texture", XrmoptionNoArg, (caddr_t) "true" },
- {(char *)"+texture", (char *)".atunnels.texture", XrmoptionNoArg, (caddr_t) "false" },
+ {"-light", ".atunnels.light", XrmoptionNoArg, "true" },
+ {"+light", ".atunnels.light", XrmoptionNoArg, "false" },
+ {"-wire", ".atunnels.wire", XrmoptionNoArg, "true" },
+ {"+wire", ".atunnels.wire", XrmoptionNoArg, "false" },
+ {"-texture", ".atunnels.texture", XrmoptionNoArg, "true" },
+ {"+texture", ".atunnels.texture", XrmoptionNoArg, "false" },
};
static argtype vars[] = {
- {(caddr_t *) &do_light, (char *)"light", (char *)"Light", DEF_LIGHT, t_Bool},
- {(caddr_t *) &do_wire, (char *)"wire", (char *)"Wire", DEF_WIRE, t_Bool},
- {(caddr_t *) &do_texture, (char *)"texture",(char *)"Texture", DEF_TEXTURE, t_Bool},
+ {&do_light, "light", "Light", DEF_LIGHT, t_Bool},
+ {&do_wire, "wire", "Wire", DEF_WIRE, t_Bool},
+ {&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
};
static OptionStruct desc[] =
{
- {(char *)"-/+ light", (char *)"whether to do enable lighting (slower)"},
- {(char *)"-/+ wire", (char *)"whether to do use wireframe instead of filled (faster)"},
- {(char *)"-/+ texture", (char *)"whether to apply a texture (slower)"},
+ {"-/+ light", "whether to do enable lighting (slower)"},
+ {"-/+ wire", "whether to do use wireframe instead of filled (faster)"},
+ {"-/+ texture", "whether to apply a texture (slower)"},
};
ModeSpecOpt atunnels_opts = {countof(opts), opts, countof(vars), vars, desc};
} atunnelsstruct;
static atunnelsstruct *Atunnels = NULL;
-static GLuint texture[3]; /* texture id: GL world */
+
+static GLuint texture[MAX_TEXTURE]; /* texture id: GL world */
/*=================== Load Texture =========================================*/
static void LoadTexture(ModeInfo * mi, char **fn, int t_num)
glClearColor(0, 0, 0, 0);
if (do_texture)
{
- glGenTextures(3, texture);
+ glGenTextures(MAX_TEXTURE, texture);
LoadTexture(mi, texture0,0);
LoadTexture(mi, texture1,1);
LoadTexture(mi, texture2,2);
+ LoadTexture(mi, texture3,3);
+ LoadTexture(mi, texture4,4);
+ LoadTexture(mi, texture5,5);
glEnable(GL_TEXTURE_2D);
}
InitTunnel();