X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fmaze.c;h=008ab33bb92c340dce5c93d77e28d3dd022ecc55;hb=c28aecf9fc41e3a03494bacf7279745425e2fa18;hp=cfd212c4f9505a6bd601767be7c1898b2d48eb29;hpb=ebc241816cc8e3eec7270a594bb1a607df32bcd6;p=xscreensaver diff --git a/hacks/maze.c b/hacks/maze.c index cfd212c4..008ab33b 100644 --- a/hacks/maze.c +++ b/hacks/maze.c @@ -91,11 +91,12 @@ static int solve_delay, pre_solve_delay, post_solve_delay; #include #include #include -#ifndef VMS -# include -#else /* VMS */ -# include "sys$common:[decw$include.bitmaps]gray1.xbm" -#endif /* VMS */ + +/* #include */ +#define gray1_width 2 +#define gray1_height 2 +static char gray1_bits[] = { 0x01, 0x02 }; + #define MAX_MAZE_SIZE_X 500 #define MAX_MAZE_SIZE_Y 500 @@ -134,8 +135,8 @@ static int solve_delay, pre_solve_delay, post_solve_delay; static int logo_x, logo_y; #ifdef XSCREENSAVER_LOGO -# define logo_width 128 -# define logo_height 128 +# define logo_width 50 +# define logo_height 50 #else # include # define logo_width xlogo64_width @@ -1128,17 +1129,23 @@ draw_maze_border (void) /* draw the maze outline */ Window r; int x, y; unsigned int w, h, bw, d; + + /* round up to grid size */ + int ww = ((logo_width / grid_width) + 1) * grid_width; + int hh = ((logo_height / grid_height) + 1) * grid_height; + XGetGeometry (dpy, logo_map, &r, &x, &y, &w, &h, &bw, &d); if (d == 1) XCopyPlane (dpy, logo_map, win, logo_gc, 0, 0, w, h, - border_x + 3 + grid_width * logo_x, - border_y + 3 + grid_height * logo_y, 1); + border_x + 3 + grid_width * logo_x + ((ww - w) / 2), + border_y + 3 + grid_height * logo_y + ((hh - h) / 2), + 1); else XCopyArea (dpy, logo_map, win, logo_gc, 0, 0, w, h, - border_x + 3 + grid_width * logo_x, - border_y + 3 + grid_height * logo_y); + border_x + 3 + grid_width * logo_x + ((ww - w) / 2), + border_y + 3 + grid_height * logo_y + ((hh - h) / 2)); } draw_solid_square (start_x, start_y, WALL_TOP >> start_dir, tgc); draw_solid_square (end_x, end_y, WALL_TOP >> end_dir, tgc); @@ -1605,10 +1612,6 @@ XrmOptionDescRec options[] = { { 0, 0, 0, 0 } }; -#ifdef XSCREENSAVER_LOGO -extern void xscreensaver_logo (Display *,Drawable,Colormap, Bool next_frame_p); -#endif - void screenhack(Display *display, Window window) { @@ -1690,12 +1693,11 @@ screenhack(Display *display, Window window) #ifdef XSCREENSAVER_LOGO { - int w, h; - /* round up to grid size */ - w = ((logo_width / grid_width) + 1) * grid_width; - h = ((logo_height / grid_height) + 1) * grid_height; - logo_map = XCreatePixmap (dpy, win, w, h, xgwa.depth); - xscreensaver_logo (dpy, logo_map, xgwa.colormap, False); + unsigned long *pixels; /* ignored - unfreed */ + int npixels; + logo_map = xscreensaver_logo (dpy, win, xgwa.colormap, bg, + &pixels, &npixels, 0, + logo_width > 150); } #else if (!(logo_map = XCreateBitmapFromData (dpy, win, logo_bits,