X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fqix.c;h=44c85ec3051d24aac5aaf43a3c9d5ee25b2d3d4e;hb=e4fa2ac140f7bc56571373a7b7eb585fa4500e38;hp=924b5422595c810d907477673f5c7fb58e1c3dca;hpb=f65151994eba80ecabcdac6eef6fa0dde7e2d45b;p=xscreensaver diff --git a/hacks/qix.c b/hacks/qix.c index 924b5422..44c85ec3 100644 --- a/hacks/qix.c +++ b/hacks/qix.c @@ -45,6 +45,9 @@ static int delay; static int count; static Colormap cmap; static int npoly; +static Bool additive_p; +static Bool cmap_p; + static GC *gcs[2]; @@ -192,15 +195,18 @@ init_qix (Display *dpy, Window window) gcv.foreground = default_fg_pixel = get_pixel_resource ("foreground", "Foreground", dpy, cmap); + additive_p = get_boolean_resource ("additive", "Boolean"); + cmap_p = has_writable_cells (xgwa.screen, xgwa.visual); + if (transparent_p) { - Bool additive_p = get_boolean_resource ("additive", "Boolean"); unsigned long *plane_masks = 0; unsigned long base_pixel; int nplanes = count; int i; - allocate_alpha_colors (dpy, cmap, &nplanes, additive_p, &plane_masks, + allocate_alpha_colors (xgwa.screen, xgwa.visual, cmap, + &nplanes, additive_p, &plane_masks, &base_pixel); if (nplanes <= 1) @@ -230,6 +236,12 @@ init_qix (Display *dpy, Window window) { gcv.plane_mask = plane_masks [i]; gcv.foreground = ~0; + +/* argh, I'm not sure how to make "-subtractive" work in truecolor... + if (!cmap_p && !additive_p) + gcv.function = GXclear; + */ + if (xor_p) { gcv.function = GXxor;