projects
/
xscreensaver
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.00.tar.gz
[xscreensaver]
/
hacks
/
deluxe.c
diff --git
a/hacks/deluxe.c
b/hacks/deluxe.c
index 0bbc84862aa8f856180864f932389c71772aaada..bf34b316047741eca6aab952420b394e2d24efba 100644
(file)
--- a/
hacks/deluxe.c
+++ b/
hacks/deluxe.c
@@
-1,4
+1,4
@@
-/* xscreensaver, Copyright (c) 1999 Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 1999
, 2001
Jamie Zawinski <jwz@jwz.org>
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
*
* Permission to use, copy, modify, distribute, and sell this software and its
* documentation for any purpose is hereby granted without fee, provided that
@@
-222,6
+222,7
@@
char *defaults [] = {
"*doubleBuffer: True",
#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
"*useDBE: True",
"*doubleBuffer: True",
#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
"*useDBE: True",
+ "*useDBEClear: True",
#endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
0
};
#endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
0
};
@@
-246,6
+247,7
@@
screenhack (Display *dpy, Window window)
int delay = get_integer_resource ("delay", "Integer");
int ncolors = get_integer_resource ("ncolors", "Integer");
Bool dbuf = get_boolean_resource ("doubleBuffer", "Boolean");
int delay = get_integer_resource ("delay", "Integer");
int ncolors = get_integer_resource ("ncolors", "Integer");
Bool dbuf = get_boolean_resource ("doubleBuffer", "Boolean");
+ Bool dbeclear_p = get_boolean_resource ("useDBEClear", "Boolean");
XColor *colors = 0;
XGCValues gcv;
GC erase_gc = 0;
XColor *colors = 0;
XGCValues gcv;
GC erase_gc = 0;
@@
-300,7
+302,11
@@
screenhack (Display *dpy, Window window)
if (dbuf)
{
#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
if (dbuf)
{
#ifdef HAVE_DOUBLE_BUFFER_EXTENSION
- b = backb = xdbe_get_backbuffer (dpy, window, XdbeUndefined);
+ if (dbeclear_p)
+ b = xdbe_get_backbuffer (dpy, window, XdbeBackground);
+ else
+ b = xdbe_get_backbuffer (dpy, window, XdbeUndefined);
+ backb = b;
#endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
if (!b)
#endif /* HAVE_DOUBLE_BUFFER_EXTENSION */
if (!b)
@@
-329,7
+335,8
@@
screenhack (Display *dpy, Window window)
while (1)
{
while (1)
{
- XFillRectangle (dpy, b, erase_gc, 0, 0, xgwa.width, xgwa.height);
+ if (!backb || !dbeclear_p)
+ XFillRectangle (dpy, b, erase_gc, 0, 0, xgwa.width, xgwa.height);
for (i = 0; i < count; i++)
if (throb (dpy, b, throbbers[i]) < 0)
for (i = 0; i < count; i++)
if (throb (dpy, b, throbbers[i]) < 0)
@@
-341,7
+348,7
@@
screenhack (Display *dpy, Window window)
{
XdbeSwapInfo info[1];
info[0].swap_window = window;
{
XdbeSwapInfo info[1];
info[0].swap_window = window;
- info[0].swap_action =
XdbeUndefined
;
+ info[0].swap_action =
(dbeclear_p ? XdbeBackground : XdbeUndefined)
;
XdbeSwapBuffers (dpy, info, 1);
}
else
XdbeSwapBuffers (dpy, info, 1);
}
else