#define DEFAULTS "*delay: 10000 \n" \
"*showFPS: False \n" \
-# define refresh_pulsar 0
-# define pulsar_handle_event 0
+# define release_pulsar 0
+# define pulsar_handle_event xlockmore_no_events
# include "xlockmore.h" /* from the xpulsar distribution */
#else /* !STANDALONE */
# include "xlock.h" /* from the xlockmore distribution */
#define HEIGHT 600
#define NUM_QUADS 5
-#define DEF_NUM_QUADS "5"
+#define DEF_QUADS "5"
#define DEF_LIGHT "False"
#define DEF_WIRE "False"
#define DEF_BLEND "True"
{"+antialias", ".pulsar.antialias", XrmoptionNoArg, "false" },
{"-texture", ".pulsar.texture", XrmoptionNoArg, "true" },
{"+texture", ".pulsar.texture", XrmoptionNoArg, "false" },
- {"-texture_quality", ".pulsar.texture_quality", XrmoptionNoArg, "true" },
- {"+texture_quality", ".pulsar.texture_quality", XrmoptionNoArg, "false" },
+ {"-texture_quality", ".pulsar.textureQuality", XrmoptionNoArg, "true" },
+ {"+texture_quality", ".pulsar.textureQuality", XrmoptionNoArg, "false" },
{"-mipmap", ".pulsar.mipmap", XrmoptionNoArg, "true" },
{"+mipmap", ".pulsar.mipmap", XrmoptionNoArg, "false" },
{"-do_depth", ".pulsar.doDepth", XrmoptionNoArg, "true" },
static argtype vars[] = {
- {&num_quads, "quads", "Quads", DEF_NUM_QUADS, t_Int},
+ {&num_quads, "quads", "Quads", DEF_QUADS, t_Int},
{&do_light, "light", "Light", DEF_LIGHT, t_Bool},
{&do_wire, "wire", "Wire", DEF_WIRE, t_Bool},
{&do_blend, "blend", "Blend", DEF_BLEND, t_Bool},
{&do_fog, "fog", "Fog", DEF_FOG, t_Bool},
{&do_antialias, "antialias", "Antialias", DEF_ANTIALIAS, t_Bool},
{&do_texture, "texture", "Texture", DEF_TEXTURE, t_Bool},
- {&do_texture_quality, "texture_quality", "Texture_quality", DEF_TEXTURE_QUALITY, t_Bool},
+ {&do_texture_quality, "textureQuality", "TextureQuality", DEF_TEXTURE_QUALITY, t_Bool},
{&do_mipmap, "mipmap", "Mipmap", DEF_MIPMAP, t_Bool},
{&do_depth, "doDepth", "DoDepth", DEF_DO_DEPTH, t_Bool},
{&which_image, "image", "Image", DEF_IMAGE, t_String},
#ifdef USE_MODULES
ModStruct pulsar_description =
-{"pulsar", "init_pulsar", "draw_pulsar", "release_pulsar",
- "draw_pulsar", "init_pulsar", NULL, &pulsar_opts,
+{"pulsar", "init_pulsar", "draw_pulsar", NULL,
+ "draw_pulsar", "init_pulsar", "free_pulsar", &pulsar_opts,
1000, 1, 2, 1, 4, 1.0, "",
"OpenGL pulsar", 0, NULL};
#endif
int format;
if ( !strncmp(filename, "BUILTIN", 7))
- image = Generate_Image(&width, &height, &format);
+ {
+ BUILTIN:
+ image = Generate_Image(&width, &height, &format);
+ }
else
{
XImage *ximage = xpm_file_to_ximage (MI_DISPLAY (mi), MI_VISUAL (mi),
MI_COLORMAP (mi), filename);
+ if (! ximage)
+ goto BUILTIN;
image = (GLubyte *) ximage->data;
width = ximage->width;
height = ximage->height;
glColorMaterial(GL_FRONT_AND_BACK, GL_AMBIENT_AND_DIFFUSE);
}
+# ifdef HAVE_JWZGLES /* #### glPolygonMode other than GL_FILL unimplemented */
+ do_wire = 0;
+# endif
+
if (do_wire)
glPolygonMode(GL_FRONT_AND_BACK, GL_LINE);
else
/* use XYZ scaling factors to change the size of the pulsar */
glScalef(gp->scale_x, gp->scale_y, gp->scale_z);
drawQuads(gp);
+ mi->polygon_count = num_quads;
/* update the scaling factors- cyclic */
gp->scale_x = cos(gp->frame/360.)*10.;
pulsarstruct *gp;
- if (Pulsar == NULL) {
- if ((Pulsar = (pulsarstruct *) calloc(MI_NUM_SCREENS(mi), sizeof (pulsarstruct))) == NULL)
- return;
- }
+ MI_INIT (mi, Pulsar);
gp = &Pulsar[screen];
gp->window = MI_WINDOW(mi);
/* all sorts of nice cleanup code should go here! */
-ENTRYPOINT void release_pulsar(ModeInfo * mi)
+ENTRYPOINT void free_pulsar(ModeInfo * mi)
{
- int screen;
- if (Pulsar != NULL) {
- for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++) {
- pulsarstruct *gp = &Pulsar[screen];
- free(gp->quads);
- }
- (void) free((void *) Pulsar);
- Pulsar = NULL;
- }
- FreeAllGL(mi);
+ pulsarstruct *gp = &Pulsar[MI_SCREEN(mi)];
+ free(gp->quads);
}
#endif