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.38.tar.gz
[xscreensaver]
/
hacks
/
drift.c
diff --git
a/hacks/drift.c
b/hacks/drift.c
index e2c722895b64cbef4e452eea4a9bb91974ed4c85..e88986b234fd6c2c8022130f630bb8214b5ca1de 100644
(file)
--- a/
hacks/drift.c
+++ b/
hacks/drift.c
@@
-34,12
+34,15
@@
static const char sccsid[] = "@(#)drift.c 5.00 2000/11/01 xlockmore";
# define MODE_drift
# define DEFAULTS "*delay: 10000 \n" \
"*count: 30 \n" \
# define MODE_drift
# define DEFAULTS "*delay: 10000 \n" \
"*count: 30 \n" \
- "*ncolors: 200 \n"
+ "*ncolors: 200 \n" \
+ "*fpsSolid: true \n" \
+ "*ignoreRotation: True \n" \
+
# define SMOOTH_COLORS
# define SMOOTH_COLORS
+# define release_drift 0
# define reshape_drift 0
# define drift_handle_event 0
# include "xlockmore.h" /* in xscreensaver distribution */
# define reshape_drift 0
# define drift_handle_event 0
# include "xlockmore.h" /* in xscreensaver distribution */
-# include "erase.h"
#else /* STANDALONE */
# define ENTRYPOINT /**/
# include "xlock.h" /* in xlockmore distribution */
#else /* STANDALONE */
# define ENTRYPOINT /**/
# include "xlock.h" /* in xlockmore distribution */
@@
-80,8
+83,8
@@
ENTRYPOINT ModeSpecOpt drift_opts =
#ifdef USE_MODULES
ModStruct drift_description =
#ifdef USE_MODULES
ModStruct drift_description =
-{"drift", "init_drift", "draw_drift",
"release_drift"
,
- "refresh_drift", "init_drift",
(char *) NULL
, &drift_opts,
+{"drift", "init_drift", "draw_drift",
(char *) NULL
,
+ "refresh_drift", "init_drift",
"free_drift"
, &drift_opts,
10000, 30, 1, 1, 64, 1.0, "",
"Shows cosmic drifting flame fractals", 0, NULL};
10000, 30, 1, 1, 64, 1.0, "",
"Shows cosmic drifting flame fractals", 0, NULL};
@@
-132,10
+135,7
@@
typedef struct {
long saved_random_bits;
int nbits;
long saved_random_bits;
int nbits;
-#ifdef STANDALONE
int erase_countdown;
int erase_countdown;
- eraser_state *eraser;
-#endif
} driftstruct;
static driftstruct *drifts = (driftstruct *) NULL;
} driftstruct;
static driftstruct *drifts = (driftstruct *) NULL;
@@
-240,9
+240,7
@@
initmode(ModeInfo * mi, int mode)
}
dp->fractal_len = (dp->fractal_len * MI_COUNT(mi)) / 20;
}
dp->fractal_len = (dp->fractal_len * MI_COUNT(mi)) / 20;
-#ifndef STANDALONE
MI_CLEARWINDOW(mi);
MI_CLEARWINDOW(mi);
-#endif
}
static void
}
static void
@@
-267,9
+265,10
@@
pick_df_coefs(ModeInfo * mi)
}
}
}
}
-
static
void
-free_drift(
driftstruct *dp
)
+
ENTRYPOINT
void
+free_drift(
ModeInfo * mi
)
{
{
+ driftstruct *dp = &drifts[MI_SCREEN(mi)];
if (dp->ncpoints != NULL) {
(void) free((void *) dp->ncpoints);
dp->ncpoints = (int *) NULL;
if (dp->ncpoints != NULL) {
(void) free((void *) dp->ncpoints);
dp->ncpoints = (int *) NULL;
@@
-294,14
+293,14
@@
initfractal(ModeInfo * mi)
if (!dp->ncpoints) {
if ((dp->ncpoints = (int *) malloc(sizeof (int) * MI_NCOLORS(mi))) ==
NULL) {
if (!dp->ncpoints) {
if ((dp->ncpoints = (int *) malloc(sizeof (int) * MI_NCOLORS(mi))) ==
NULL) {
- free_drift(
dp
);
+ free_drift(
mi
);
return;
}
}
if (!dp->cpts) {
if ((dp->cpts = (XPoint *) malloc(MAXBATCH2 * sizeof (XPoint) *
MI_NCOLORS(mi))) == NULL) {
return;
}
}
if (!dp->cpts) {
if ((dp->cpts = (XPoint *) malloc(MAXBATCH2 * sizeof (XPoint) *
MI_NCOLORS(mi))) == NULL) {
- free_drift(
dp
);
+ free_drift(
mi
);
return;
}
}
return;
}
}
@@
-347,11
+346,7
@@
init_drift(ModeInfo * mi)
{
driftstruct *dp;
{
driftstruct *dp;
- if (drifts == NULL) {
- if ((drifts = (driftstruct *) calloc(MI_NUM_SCREENS(mi),
- sizeof (driftstruct))) == NULL)
- return;
- }
+ MI_INIT (mi, drifts);
dp = &drifts[MI_SCREEN(mi)];
dp->width = MI_WIDTH(mi);
dp = &drifts[MI_SCREEN(mi)];
dp->width = MI_WIDTH(mi);
@@
-622,14
+617,11
@@
draw_drift(ModeInfo * mi)
if (dp->erase_countdown) {
if (!--dp->erase_countdown) {
if (dp->erase_countdown) {
if (!--dp->erase_countdown) {
- dp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), dp->eraser);
+ initmode(mi, frandom(dp, 2));
+ initfractal(mi);
}
return;
}
}
return;
}
- if (dp->eraser) {
- dp->eraser = erase_window (MI_DISPLAY(mi), MI_WINDOW(mi), dp->eraser);
- return;
- }
MI_IS_DRAWN(mi) = True;
dp->timer = 3000;
MI_IS_DRAWN(mi) = True;
dp->timer = 3000;
@@
-639,10
+631,8
@@
draw_drift(ModeInfo * mi)
if (dp->total_points++ > dp->fractal_len) {
draw_flush(mi, dp, window);
if (0 == --dp->nfractals) {
if (dp->total_points++ > dp->fractal_len) {
draw_flush(mi, dp, window);
if (0 == --dp->nfractals) {
-#ifdef STANDALONE
dp->erase_countdown = 4 * 1000000 / MI_PAUSE(mi);
dp->erase_countdown = 4 * 1000000 / MI_PAUSE(mi);
-#endif /* STANDALONE */
- initmode(mi, frandom(dp, 2));
+ return;
}
initfractal(mi);
}
}
initfractal(mi);
}
@@
-669,24
+659,13
@@
draw_drift(ModeInfo * mi)
}
}
}
}
-ENTRYPOINT void
-release_drift(ModeInfo * mi)
-{
- if (drifts != NULL) {
- int screen;
-
- for (screen = 0; screen < MI_NUM_SCREENS(mi); screen++)
- free_drift(&drifts[screen]);
- (void) free((void *) drifts);
- drifts = (driftstruct *) NULL;
- }
-}
-
+#ifndef STANDALONE
ENTRYPOINT void
refresh_drift(ModeInfo * mi)
{
MI_CLEARWINDOW(mi);
}
ENTRYPOINT void
refresh_drift(ModeInfo * mi)
{
MI_CLEARWINDOW(mi);
}
+#endif
XSCREENSAVER_MODULE ("Drift", drift)
XSCREENSAVER_MODULE ("Drift", drift)