projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
From http://www.jwz.org/xscreensaver/xscreensaver-5.31.tar.gz
[xscreensaver]
/
hacks
/
triangle.c
diff --git
a/hacks/triangle.c
b/hacks/triangle.c
index 9915b36e14335b0b7d00cc7c50981f20785443f6..e8400d42c2be356ceb59c70cfb9ffee84b9fd441 100644
(file)
--- a/
hacks/triangle.c
+++ b/
hacks/triangle.c
@@
-51,8
+51,6
@@
static const char sccsid[] = "@(#)triangle.c 4.04 97/07/28 xlockmore";
"*fpsSolid: true \n" \
# define SMOOTH_COLORS
"*fpsSolid: true \n" \
# define SMOOTH_COLORS
-# define reshape_triangle 0
-# define triangle_handle_event 0
# include "xlockmore.h" /* in xscreensaver distribution */
#else /* STANDALONE */
# include "xlock.h" /* in xlockmore distribution */
# include "xlockmore.h" /* in xscreensaver distribution */
#else /* STANDALONE */
# include "xlock.h" /* in xlockmore distribution */
@@
-107,7
+105,7
@@
draw_atriangle(ModeInfo * mi, XPoint * p, int y_0, int y_1, int y_2, double dinv
Window window = MI_WINDOW(mi);
GC gc = MI_GC(mi);
Window window = MI_WINDOW(mi);
GC gc = MI_GC(mi);
- if (MI_N
PIXEL
S(mi) > 2) { /* color */
+ if (MI_N
COLOR
S(mi) > 2) { /* color */
int dmax, dmin;
long color;
int dmax, dmin;
long color;
@@
-119,11
+117,11
@@
draw_atriangle(ModeInfo * mi, XPoint * p, int y_0, int y_1, int y_2, double dinv
if (dmax == 0) {
color = BLUE;
} else {
if (dmax == 0) {
color = BLUE;
} else {
- color = MI_N
PIXEL
S(mi) -
- (int) ((double) MI_N
PIXEL
S(mi) / M_PI_2 * atan(dinv * (dmax - dmin)));
+ color = MI_N
COLOR
S(mi) -
+ (int) ((double) MI_N
COLOR
S(mi) / M_PI_2 * atan(dinv * (dmax - dmin)));
}
}
- XSetForeground(display, gc,
MI_PIXEL(mi, color % MI_NPIXELS(mi))
);
+ XSetForeground(display, gc,
mi->colors[color % MI_NCOLORS(mi)].pixel
);
XFillPolygon(display, window, gc, p, 3, Convex, CoordModeOrigin);
} else {
/* mono */
XFillPolygon(display, window, gc, p, 3, Convex, CoordModeOrigin);
} else {
/* mono */
@@
-299,9
+297,11
@@
draw_triangle (ModeInfo * mi)
XClearWindow(MI_DISPLAY(mi), MI_WINDOW(mi));
if (!mono_p)
{
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);
- make_smooth_colormap (mi->dpy,
+ mi->npixels =
+ get_integer_resource (mi->dpy, "ncolors", "Integer");
+ make_smooth_colormap (mi->xgwa.screen,
mi->xgwa.visual, mi->xgwa.colormap,
mi->colors, &mi->npixels,
True, &mi->writable_p, True);
mi->xgwa.visual, mi->xgwa.colormap,
mi->colors, &mi->npixels,
True, &mi->writable_p, True);
@@
-343,6
+343,13
@@
draw_triangle (ModeInfo * mi)
}
}
}
}
+ENTRYPOINT void
+reshape_triangle(ModeInfo * mi, int width, int height)
+{
+ XClearWindow (MI_DISPLAY (mi), MI_WINDOW(mi));
+ init_triangle (mi);
+}
+
ENTRYPOINT void
release_triangle(ModeInfo * mi)
{
ENTRYPOINT void
release_triangle(ModeInfo * mi)
{
@@
-358,4
+365,16
@@
refresh_triangle (ModeInfo * mi)
/* Do nothing, it will refresh by itself */
}
/* 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)
XSCREENSAVER_MODULE ("Triangle", triangle)