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.35.tar.gz
[xscreensaver]
/
hacks
/
goop.c
diff --git
a/hacks/goop.c
b/hacks/goop.c
index 119fec55f277ccda63c42010aa6ee06260522d89..0f5c139e34968bbf89536ffa4b3ed067332b4c65 100644
(file)
--- a/
hacks/goop.c
+++ b/
hacks/goop.c
@@
-274,9
+274,9
@@
make_layer (Display *dpy, Window window, int width, int height, int nblobs)
layer->pixmap = XCreatePixmap (dpy, window, width, height, 1);
layer->gc = XCreateGC (dpy, layer->pixmap, 0, &gcv);
layer->pixmap = XCreatePixmap (dpy, window, width, height, 1);
layer->gc = XCreateGC (dpy, layer->pixmap, 0, &gcv);
-# ifdef HAVE_
COCOA
+# ifdef HAVE_
JWXYZ
jwxyz_XSetAlphaAllowed (dpy, layer->gc, True);
jwxyz_XSetAlphaAllowed (dpy, layer->gc, True);
-# endif /* HAVE_
COCOA
*/
+# endif /* HAVE_
JWXYZ
*/
return layer;
}
return layer;
}
@@
-294,7
+294,7
@@
free_layer(struct layer *layer, Display *dpy)
}
}
-#ifndef HAVE_
COCOA
+#ifndef HAVE_
JWXYZ
static void
draw_layer_plane (Display *dpy, struct layer *layer, int width, int height)
{
static void
draw_layer_plane (Display *dpy, struct layer *layer, int width, int height)
{
@@
-306,7
+306,7
@@
draw_layer_plane (Display *dpy, struct layer *layer, int width, int height)
draw_blob (dpy, layer->pixmap, layer->gc, layer->blobs[i], True);
}
}
draw_blob (dpy, layer->pixmap, layer->gc, layer->blobs[i], True);
}
}
-#endif /* !HAVE_
COCOA
*/
+#endif /* !HAVE_
JWXYZ
*/
static void
static void
@@
-335,7
+335,7
@@
make_goop (Screen *screen, Visual *visual, Window window, Colormap cmap,
int nblobs = get_integer_resource (dpy, "count", "Count");
unsigned long *plane_masks = 0;
int nblobs = get_integer_resource (dpy, "count", "Count");
unsigned long *plane_masks = 0;
-# ifndef HAVE_
COCOA
+# ifndef HAVE_
JWXYZ
unsigned long base_pixel = 0;
# endif
char *s;
unsigned long base_pixel = 0;
# endif
char *s;
@@
-370,7
+370,7
@@
make_goop (Screen *screen, Visual *visual, Window window, Colormap cmap,
if (mono_p && goop->mode == transparent)
goop->mode = opaque;
if (mono_p && goop->mode == transparent)
goop->mode = opaque;
-# ifndef HAVE_
COCOA
+# ifndef HAVE_
JWXYZ
/* Try to allocate some color planes before committing to nlayers.
*/
if (goop->mode == transparent)
/* Try to allocate some color planes before committing to nlayers.
*/
if (goop->mode == transparent)
@@
-389,7
+389,7
@@
make_goop (Screen *screen, Visual *visual, Window window, Colormap cmap,
goop->mode = opaque;
}
}
goop->mode = opaque;
}
}
-# endif /* !HAVE_
COCOA
*/
+# endif /* !HAVE_
JWXYZ
*/
{
int lblobs[32];
{
int lblobs[32];
@@
-404,21
+404,21
@@
make_goop (Screen *screen, Visual *visual, Window window, Colormap cmap,
(nblobs > 0 ? nblobs : lblobs[i]));
}
(nblobs > 0 ? nblobs : lblobs[i]));
}
-# ifndef HAVE_
COCOA
+# ifndef HAVE_
JWXYZ
if (goop->mode == transparent && plane_masks)
{
for (i = 0; i < goop->nlayers; i++)
goop->layers[i]->pixel = base_pixel | plane_masks[i];
goop->background = base_pixel;
}
if (goop->mode == transparent && plane_masks)
{
for (i = 0; i < goop->nlayers; i++)
goop->layers[i]->pixel = base_pixel | plane_masks[i];
goop->background = base_pixel;
}
-# endif /* !HAVE_
COCOA
*/
+# endif /* !HAVE_
JWXYZ
*/
if (plane_masks)
free (plane_masks);
if (plane_masks)
free (plane_masks);
-# ifndef HAVE_
COCOA
+# ifndef HAVE_
JWXYZ
if (goop->mode != transparent)
if (goop->mode != transparent)
-# endif /* !HAVE_
COCOA
*/
+# endif /* !HAVE_
JWXYZ
*/
{
XColor color;
color.flags = DoRed|DoGreen|DoBlue;
{
XColor color;
color.flags = DoRed|DoGreen|DoBlue;
@@
-437,7
+437,7
@@
make_goop (Screen *screen, Visual *visual, Window window, Colormap cmap,
else
goop->layers[i]->pixel =
WhitePixelOfScreen(DefaultScreenOfDisplay(dpy));
else
goop->layers[i]->pixel =
WhitePixelOfScreen(DefaultScreenOfDisplay(dpy));
-# ifdef HAVE_
COCOA
+# ifdef HAVE_
JWXYZ
if (goop->mode == transparent)
{
/* give a non-opaque alpha to the color */
if (goop->mode == transparent)
{
/* give a non-opaque alpha to the color */
@@
-447,7
+447,7
@@
make_goop (Screen *screen, Visual *visual, Window window, Colormap cmap,
pixel = (pixel & (~amask)) | a;
goop->layers[i]->pixel = pixel;
}
pixel = (pixel & (~amask)) | a;
goop->layers[i]->pixel = pixel;
}
-# endif /* HAVE_
COCOA
*/
+# endif /* HAVE_
JWXYZ
*/
}
}
}
}
@@
-460,9
+460,9
@@
make_goop (Screen *screen, Visual *visual, Window window, Colormap cmap,
goop->pixmap_gc = XCreateGC (dpy, goop->pixmap, GCLineWidth, &gcv);
goop->window_gc = XCreateGC (dpy, window, GCForeground|GCBackground, &gcv);
goop->pixmap_gc = XCreateGC (dpy, goop->pixmap, GCLineWidth, &gcv);
goop->window_gc = XCreateGC (dpy, window, GCForeground|GCBackground, &gcv);
-# ifdef HAVE_
COCOA
+# ifdef HAVE_
JWXYZ
jwxyz_XSetAlphaAllowed (dpy, goop->pixmap_gc, True);
jwxyz_XSetAlphaAllowed (dpy, goop->pixmap_gc, True);
-# endif /* HAVE_
COCOA
*/
+# endif /* HAVE_
JWXYZ
*/
return goop;
}
return goop;
}
@@
-499,7
+499,7
@@
goop_draw (Display *dpy, Window window, void *closure)
switch (goop->mode)
{
switch (goop->mode)
{
-# ifndef HAVE_
COCOA
+# ifndef HAVE_
JWXYZ
case transparent:
for (i = 0; i < goop->nlayers; i++)
case transparent:
for (i = 0; i < goop->nlayers; i++)
@@
-533,7
+533,7
@@
goop_draw (Display *dpy, Window window, void *closure)
XCopyArea (dpy, goop->pixmap, window, goop->window_gc, 0, 0,
goop->width, goop->height, 0, 0);
break;
XCopyArea (dpy, goop->pixmap, window, goop->window_gc, 0, 0,
goop->width, goop->height, 0, 0);
break;
-#endif /* !HAVE_
COCOA
*/
+#endif /* !HAVE_
JWXYZ
*/
case xor:
XSetFunction (dpy, goop->pixmap_gc, GXcopy);
case xor:
XSetFunction (dpy, goop->pixmap_gc, GXcopy);
@@
-550,7
+550,7
@@
goop_draw (Display *dpy, Window window, void *closure)
goop->width, goop->height, 0, 0, 1L);
break;
goop->width, goop->height, 0, 0, 1L);
break;
-# ifdef HAVE_
COCOA
+# ifdef HAVE_
JWXYZ
case transparent:
# endif
case opaque:
case transparent:
# endif
case opaque:
@@
-582,10
+582,13
@@
goop_reshape (Display *dpy, Window window, void *closure,
{
struct goop *goop = (struct goop *) closure;
{
struct goop *goop = (struct goop *) closure;
- struct goop *goop2 = goop_init (dpy, window);
- free_goop(goop, dpy);
- memcpy (goop, goop2, sizeof(*goop));
- free(goop2);
+ if (w != goop->width || h != goop->height)
+ {
+ struct goop *goop2 = goop_init (dpy, window);
+ free_goop(goop, dpy);
+ memcpy (goop, goop2, sizeof(*goop));
+ free(goop2);
+ }
}
static Bool
}
static Bool
@@
-617,7
+620,7
@@
static const char *goop_defaults [] = {
"*torque: 0.0075",
"*elasticity: 0.9",
"*maxVelocity: 0.5",
"*torque: 0.0075",
"*elasticity: 0.9",
"*maxVelocity: 0.5",
-#ifdef
USE_IPHON
E
+#ifdef
HAVE_MOBIL
E
"*ignoreRotation: True",
#endif
0
"*ignoreRotation: True",
#endif
0