X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=driver%2Fxscreensaver-getimage.c;h=092540d478695bc297a1ffd5b209ef33ea7a87ec;hb=c85f503f5793839a6be4c818332aca4a96927bb2;hp=89cd6d5275c016c983448bbe087c90f21f20e2c6;hpb=39809ded547bdbb08207d3e514950425215b4410;p=xscreensaver diff --git a/driver/xscreensaver-getimage.c b/driver/xscreensaver-getimage.c index 89cd6d52..092540d4 100644 --- a/driver/xscreensaver-getimage.c +++ b/driver/xscreensaver-getimage.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 2001-2016 by Jamie Zawinski +/* xscreensaver, Copyright (c) 2001-2018 by Jamie Zawinski * * Permission to use, copy, modify, distribute, and sell this software and its * documentation for any purpose is hereby granted without fee, provided that @@ -312,6 +312,21 @@ compute_image_scaling (int src_w, int src_h, } +static void +colorbars (Screen *screen, Visual *visual, Drawable drawable, Colormap cmap) +{ + Pixmap mask = 0; + unsigned long *pixels; /* ignored - unfreed */ + int npixels; + Pixmap logo = xscreensaver_logo (screen, visual, drawable, cmap, + BlackPixelOfScreen (screen), + &pixels, &npixels, &mask, True); + draw_colorbars (screen, visual, drawable, cmap, 0, 0, 0, 0, logo, mask); + XFreePixmap (DisplayOfScreen (screen), logo); + XFreePixmap (DisplayOfScreen (screen), mask); +} + + /* Scales an XImage, modifying it in place. This doesn't do dithering or smoothing, so it might have artifacts. If out of memory, returns False, and the XImage will have been @@ -857,8 +872,7 @@ jpg_error_exit (j_common_ptr cinfo) { getimg_jpg_error_mgr *err = (getimg_jpg_error_mgr *) cinfo->err; cinfo->err->output_message (cinfo); - draw_colorbars (err->screen, err->visual, err->drawable, err->cmap, - 0, 0, 0, 0); + colorbars (err->screen, err->visual, err->drawable, err->cmap); XSync (DisplayOfScreen (err->screen), False); exit (1); } @@ -1682,8 +1696,7 @@ get_image (Screen *screen, if (verbose_p) fprintf (stderr, "%s: drawing colorbars.\n", progname); XGetWindowAttributes (dpy, window, &xgwa); - draw_colorbars (screen, xgwa.visual, drawable, xgwa.colormap, - 0, 0, 0, 0); + colorbars (screen, xgwa.visual, drawable, xgwa.colormap); XSync (dpy, False); if (! file_prop) file_prop = "";