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
/
testx11.c
diff --git
a/hacks/testx11.c
b/hacks/testx11.c
index 8284d16b41c75f050cdcd279498fdbaaac78e9ac..7932a3736fb483c7b98705c875cf19a761d502bf 100644
(file)
--- a/
hacks/testx11.c
+++ b/
hacks/testx11.c
@@
-1,4
+1,4
@@
-/* testx11.c, Copyright (c) 2015-201
6
Dave Odell <dmo2118@gmail.com>
+/* testx11.c, Copyright (c) 2015-201
7
Dave Odell <dmo2118@gmail.com>
*
* 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
@@
-16,6
+16,8
@@
#include "screenhack.h"
#include "glx/rotator.h"
#include "screenhack.h"
#include "glx/rotator.h"
+#include "colorbars.h"
+#include "erase.h"
#include <assert.h>
#include <errno.h>
#include <assert.h>
#include <errno.h>
@@
-50,6
+52,7
@@
enum
mode_images,
mode_copy,
mode_preserve,
mode_images,
mode_copy,
mode_preserve,
+ mode_erase,
mode_count
};
mode_count
};
@@
-95,6
+98,8
@@
struct testx11 {
Pixmap preserve[2];
Pixmap preserve[2];
+ eraser_state *erase;
+
rotator *rot;
};
rotator *rot;
};
@@
-211,6
+216,14
@@
make_clip_mask (struct testx11 *st)
}
}
+static void
+colorbars (struct testx11 *st)
+{
+ draw_colorbars (st->xgwa.screen, st->xgwa.visual, st->win,
+ st->xgwa.colormap, 0, 0, st->xgwa.width, st->xgwa.height);
+}
+
+
static void *
testx11_init (Display *dpy, Window win)
{
static void *
testx11_init (Display *dpy, Window win)
{
@@
-311,11
+324,11
@@
testx11_init (Display *dpy, Window win)
st->copy_pix64 = XCreatePixmap(dpy, win, 64, 64, st->xgwa.depth);
st->copy_pix64 = XCreatePixmap(dpy, win, 64, 64, st->xgwa.depth);
- st->primitives_mini_pix = XCreatePixmap (dpy, win, 16,
16
, st->xgwa.depth);
+ st->primitives_mini_pix = XCreatePixmap (dpy, win, 16,
24
, st->xgwa.depth);
{
static const char text[] = "Welcome from testx11_init().";
{
static const char text[] = "Welcome from testx11_init().";
-
XClearWindow (dpy, win
);
+
colorbars (st
);
XDrawString (dpy, win, st->copy_gc, 16, 16, text, countof (text) - 1);
}
XDrawString (dpy, win, st->copy_gc, 16, 16, text, countof (text) - 1);
}
@@
-690,6
+703,7
@@
testx11_draw (Display *dpy, Window win, void *st_raw)
/* Box 2 */
{
XImage *image = XGetImage(st->dpy, t, 55, 55, 15, 15, 0xffffff, ZPixmap);
/* Box 2 */
{
XImage *image = XGetImage(st->dpy, t, 55, 55, 15, 15, 0xffffff, ZPixmap);
+ XPutPixel(image, 2, 0, 0x00000000);
XPutImage (dpy, t, st->copy_gc, image, 0, 0, 88, 55, 15, 15);
XDestroyImage(image);
}
XPutImage (dpy, t, st->copy_gc, image, 0, 0, 88, 55, 15, 15);
XDestroyImage(image);
}
@@
-709,6
+723,7
@@
testx11_draw (Display *dpy, Window win, void *st_raw)
XDrawPoint (dpy, t, st->copy_gc, 104 + 8, 55 + 8);
XDrawPoint (dpy, st->primitives_mini_pix, st->copy_gc, 0, 0);
XDrawPoint (dpy, t, st->copy_gc, 104 + 8, 55 + 8);
XDrawPoint (dpy, st->primitives_mini_pix, st->copy_gc, 0, 0);
+ XDrawPoint (dpy, st->primitives_mini_pix, st->copy_gc, 1, 0);
XDrawPoint (dpy, st->primitives_mini_pix, st->copy_gc, 15, 15);
XDrawRectangle (dpy, st->primitives_mini_pix, st->copy_gc,
1, 1, 13, 13);
XDrawPoint (dpy, st->primitives_mini_pix, st->copy_gc, 15, 15);
XDrawRectangle (dpy, st->primitives_mini_pix, st->copy_gc,
1, 1, 13, 13);
@@
-838,6
+853,12
@@
testx11_draw (Display *dpy, Window win, void *st_raw)
preserve_size, preserve_size,
w - preserve_size / 2, preserve_size);
break;
preserve_size, preserve_size,
w - preserve_size / 2, preserve_size);
break;
+
+ case mode_erase:
+ if (!st->erase)
+ colorbars (st);
+ st->erase = erase_window(st->dpy, st->win, st->erase);
+ break;
}
/* Mode toggle buttons */
}
/* Mode toggle buttons */