X-Git-Url: http://git.hungrycats.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=hacks%2Fxmatrix.c;h=decddaa7bd7c8aaaf64b376452775dbd762d6ada;hb=78add6e627ee5f10e1fa6f3852602ea5066eee5a;hp=adccb0c66dd091a696bcd9a2e903c5fca6fa81a5;hpb=aa75c7476aeaa84cf3abc192b376a8b03c325213;p=xscreensaver diff --git a/hacks/xmatrix.c b/hacks/xmatrix.c index adccb0c6..decddaa7 100644 --- a/hacks/xmatrix.c +++ b/hacks/xmatrix.c @@ -1,4 +1,4 @@ -/* xscreensaver, Copyright (c) 1999-2015 Jamie Zawinski +/* xscreensaver, Copyright (c) 1999-2018 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 @@ -55,33 +55,18 @@ #include "screenhack.h" #include "textclient.h" -#include "xpm-pixmap.h" +#include "ximage-loader.h" #include #include -#ifdef HAVE_JWXYZ -# define HAVE_XPM -#else -# define DO_XBM /* only do mono bitmaps under real X11 */ -#endif - #ifndef HAVE_JWXYZ # include #endif -#if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM) -# include "images/matrix1.xpm" -# include "images/matrix2.xpm" -# include "images/matrix1b.xpm" -# include "images/matrix2b.xpm" -#endif - -#ifdef DO_XBM -# include "images/matrix1.xbm" -# include "images/matrix2.xbm" -# include "images/matrix1b.xbm" -# include "images/matrix2b.xbm" -#endif /* DO_XBM */ +#include "images/gen/matrix1_png.h" +#include "images/gen/matrix2_png.h" +#include "images/gen/matrix1b_png.h" +#include "images/gen/matrix2b_png.h" #define CHAR_COLS 16 #define CHAR_ROWS 13 @@ -234,39 +219,25 @@ typedef struct { static void load_images_1 (Display *dpy, m_state *state, int which) { -#if defined(HAVE_GDK_PIXBUF) || defined(HAVE_XPM) - if (!get_boolean_resource (dpy, "mono", "Boolean") && - state->xgwa.depth > 1) + const unsigned char *png = 0; + unsigned long size = 0; + if (which == 1) { - char **bits = - (which == 1 ? (state->small_p ? matrix1b_xpm : matrix1_xpm) : - (state->small_p ? matrix2b_xpm : matrix2_xpm)); - - state->images[which] = - xpm_data_to_pixmap (state->dpy, state->window, bits, - &state->image_width, &state->image_height, 0); + if (state->small_p) + png = matrix1b_png, size = sizeof(matrix1b_png); + else + png = matrix1_png, size = sizeof(matrix1_png); } else -#endif /* !HAVE_XPM && !HAVE_GDK_PIXBUF */ { -#ifdef DO_XBM - unsigned long fg, bg; - state->image_width = (state->small_p ? matrix1b_width :matrix1_width); - state->image_height = (state->small_p ? matrix1b_height:matrix1_height); - fg = get_pixel_resource(state->dpy, state->xgwa.colormap, - "foreground", "Foreground"); - bg = get_pixel_resource(state->dpy, state->xgwa.colormap, - "background", "Background"); - state->images[which] = - XCreatePixmapFromBitmapData (state->dpy, state->window, (char *) - (which == 1 ? (state->small_p ? matrix1b_bits :matrix1_bits) : - (state->small_p ? matrix2b_bits :matrix2_bits)), - state->image_width, state->image_height, - bg, fg, state->xgwa.depth); -#else /* !DO_XBM */ - abort(); -#endif /* !DO_XBM */ + if (state->small_p) + png = matrix2b_png, size = sizeof(matrix2b_png); + else + png = matrix2_png, size = sizeof(matrix2_png); } + state->images[which] = + image_data_to_pixmap (state->dpy, state->window, png, size, + &state->image_width, &state->image_height, 0); } @@ -1331,6 +1302,33 @@ hack_text (m_state *state) state->typing_delay = state->typing_char_delay; if (state->typing_cursor_p) set_cursor (state, True); + +# ifdef USE_IPHONE + /* Stupid iPhone X bezel. + #### This is the worst of all possible ways to do this! But how else? + */ + if (state->xgwa.width == 2436 || state->xgwa.height == 2436) + switch (state->mode) + { + case TRACE_TEXT_A: + case TRACE_TEXT_B: + case KNOCK: + case NMAP: + { + int off = 5 * (state->small_p ? 2 : 1); + if (state->xgwa.width > state->xgwa.height) + { + state->typing_left_margin += off; + state->cursor_x += off; + } + else + { + state->cursor_y += off; + } + } + default: break; + } +# endif } else { @@ -1810,6 +1808,7 @@ xmatrix_free (Display *dpy, Window window, void *closure) static const char *xmatrix_defaults [] = { ".background: black", ".foreground: #00AA00", + ".lowrez: true", /* Small font is unreadable at 5120x2880 */ "*fpsSolid: true", "*matrixFont: large", "*delay: 10000",