"*fpsSolid: true \n" \
# define SMOOTH_COLORS
-# define reshape_triangle 0
-# define triangle_handle_event 0
+# define release_triangle 0
# include "xlockmore.h" /* in xscreensaver distribution */
#else /* STANDALONE */
# include "xlock.h" /* in xlockmore distribution */
short *tmp;
int i, dim, one;
- if (triangles == NULL) {
- if ((triangles = (trianglestruct *) calloc(MI_NUM_SCREENS(mi),
- sizeof (trianglestruct))) == NULL)
- return;
- }
+ MI_INIT (mi, triangles, 0);
tp = &triangles[MI_SCREEN(mi)];
tp->width = MI_WIN_WIDTH(mi);
XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi));
if (!mono_p)
{
- free_colors(mi->dpy, mi->xgwa.colormap, mi->colors,
+ free_colors(mi->xgwa.screen, mi->xgwa.colormap, mi->colors,
mi->npixels);
mi->npixels =
get_integer_resource (mi->dpy, "ncolors", "Integer");
- make_smooth_colormap (mi->dpy,
+ make_smooth_colormap (mi->xgwa.screen,
mi->xgwa.visual, mi->xgwa.colormap,
mi->colors, &mi->npixels,
True, &mi->writable_p, True);
}
ENTRYPOINT void
-release_triangle(ModeInfo * mi)
+reshape_triangle(ModeInfo * mi, int width, int height)
{
- if (triangles != NULL) {
- (void) free((void *) triangles);
- triangles = NULL;
- }
+ XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi));
+ init_triangle (mi);
}
ENTRYPOINT void
/* Do nothing, it will refresh by itself */
}
+ENTRYPOINT Bool
+triangle_handle_event (ModeInfo *mi, XEvent *event)
+{
+ if (screenhack_event_helper (MI_DISPLAY(mi), MI_WINDOW(mi), event))
+ {
+ reshape_triangle (mi, MI_WIDTH(mi), MI_HEIGHT(mi));
+ return True;
+ }
+ return False;
+}
+
+
XSCREENSAVER_MODULE ("Triangle", triangle)