From 94b6a6d426bf8bf9a7c886f18b20ab5a49d114ba Mon Sep 17 00:00:00 2001 From: Michael Jennings Date: Wed, 19 Apr 2000 06:46:03 +0000 Subject: [PATCH] Tue Apr 18 23:55:42 PDT 2000 Michael Jennings Added the pixmap beveling support back in so that the glass theme will work again. Once again, you poor 8 bpp saps are SOL. I also added the icon support back in, along with a new built-in icon courtesy of Brian McFee . SVN revision: 2501 --- ChangeLog | 9 ++ src/draw.c | 109 +++++++++++++++++++ src/draw.h | 2 + src/icon.h | 290 +++++++++++++++++++++++++++++++++++++++++++++++++++ src/pixmap.c | 74 ++++++------- 5 files changed, 443 insertions(+), 41 deletions(-) create mode 100644 src/icon.h diff --git a/ChangeLog b/ChangeLog index ce5a15e..0fd1dcd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -3499,3 +3499,12 @@ Mon Apr 17 22:25:27 PDT 2000 Michael Jennings XFree86 4.0. :-) ------------------------------------------------------------------------------- +Tue Apr 18 23:55:42 PDT 2000 Michael Jennings + + Added the pixmap beveling support back in so that the glass theme will + work again. Once again, you poor 8 bpp saps are SOL. + + I also added the icon support back in, along with a new built-in icon + courtesy of Brian McFee . + +------------------------------------------------------------------------------- diff --git a/src/draw.c b/src/draw.c index fb45f49..ea78c6a 100644 --- a/src/draw.c +++ b/src/draw.c @@ -130,3 +130,112 @@ draw_box(Drawable d, GC gc_top, GC gc_bottom, int x, int y, int w, int h) XDrawLine(Xdisplay, d, gc_bottom, x, y + h, x + w, y + h); XDrawLine(Xdisplay, d, gc_bottom, x + w, y + h, x + w, y); } + +#define SHADE_PIXEL(pixel, dir, tmp) do {(tmp) = ((((double)pixel)/depth_factor) + ((dir) ? 0.2 : -0.2)) * depth_factor; \ + if ((tmp) > (depth_factor-1)) (tmp) = depth_factor - 1; else if ((tmp) < 0) (tmp) = 0;} while (0) +#define MOD_PIXEL_HIGH(x, y, up) do {v = XGetPixel(ximg, (x), (y)); r = (int) ((v >> br) & mr); g = (int) ((v >> bg) & mg); b = (int) ((v << bb) & mb); \ + SHADE_PIXEL(r, (up), dv); r = (int) dv; SHADE_PIXEL(g, (up), dv); g = (int) dv; SHADE_PIXEL(b, (up), dv); b = (int) dv; \ + v = ((r & mr) << br) | ((g & mg) << bg) | ((b & mb) >> bb); XPutPixel(ximg, (x), (y), v);} while (0) + +void +bevel_pixmap(Pixmap p, int w, int h, Imlib_Border *bord, unsigned char up) +{ + XImage *ximg; + register unsigned long v; + double dv; + short x, y, xbound, ybound; + unsigned int r, g, b; + int real_depth = 0, depth_factor; + register int br, bg, bb; /* Bitshifts */ + register unsigned int mr, mg, mb; /* Bitmasks */ + GC gc; + + if (!bord) + return; + + depth_factor = 1 << Xdepth; + if (Xdepth <= 8) { + D_PIXMAP(("Depth of %d is not supported. Punt!\n", Xdepth)); + return; + } else if (Xdepth == 16) { + + XWindowAttributes xattr; + + XGetWindowAttributes(Xdisplay, Xroot, &xattr); + if ((xattr.visual->red_mask == 0x7c00) && (xattr.visual->green_mask == 0x3e0) && (xattr.visual->blue_mask == 0x1f)) { + real_depth = 15; + depth_factor = 1 << 15; + } + } + if (!real_depth) { + real_depth = Xdepth; + } + ximg = XGetImage(Xdisplay, p, 0, 0, w, h, -1, ZPixmap); + if (ximg == NULL) { + return; + } + /* Determine bitshift and bitmask values */ + switch (real_depth) { + case 15: + br = 7; + bg = 2; + bb = 3; + mr = mg = mb = 0xf8; + break; + case 16: + br = 8; + bg = bb = 3; + mr = mb = 0xf8; + mg = 0xfc; + break; + case 24: + case 32: + br = 16; + bg = 8; + bb = 0; + mr = mg = mb = 0xff; + break; + default: + return; + } + + /* Left edge */ + for (y = bord->top; y < h; y++) { + xbound = h - y; + if (xbound > bord->left) + xbound = bord->left; + for (x = 0; x < xbound; x++) { + MOD_PIXEL_HIGH(x, y, up); + } + } + + /* Right edge */ + ybound = h - bord->bottom; + for (y = 0; y < ybound; y++) { + xbound = bord->right - y; + if (xbound < 0) + xbound = 0; + for (x = xbound; x < bord->right; x++) { + MOD_PIXEL_HIGH(x + (w - bord->right), y, !up); + } + } + + /* Top edge */ + for (y = 0; y < bord->top; y++) { + xbound = w - y; + for (x = 0; x < xbound; x++) { + MOD_PIXEL_HIGH(x, y, up); + } + } + + /* Bottom edge */ + for (y = h - bord->bottom; y < h; y++) { + for (x = h - y - 1; x < w; x++) { + MOD_PIXEL_HIGH(x, y, !up); + } + } + gc = XCreateGC(Xdisplay, p, 0, NULL); + XPutImage(Xdisplay, p, gc, ximg, 0, 0, 0, 0, w, h); + XFreeGC(Xdisplay, gc); + XDestroyImage(ximg); +} diff --git a/src/draw.h b/src/draw.h index f5c345f..814493a 100644 --- a/src/draw.h +++ b/src/draw.h @@ -26,6 +26,7 @@ #include #include /* Xlib, Xutil, Xresource, Xfuncproto */ +#include "pixmap.h" /************ Macros and Definitions ************/ #define DRAW_ARROW_UP (1UL << 0) @@ -50,6 +51,7 @@ extern void draw_shadow_from_colors(Drawable d, Pixel top, Pixel bottom, int x, extern void draw_arrow(Drawable d, GC gc_top, GC gc_bottom, int x, int y, int w, int shadow, unsigned char type); extern void draw_arrow_from_colors(Drawable d, Pixel top, Pixel bottom, int x, int y, int w, int shadow, unsigned char type); extern void draw_box(Drawable d, GC gc_top, GC gc_bottom, int x, int y, int w, int h); +extern void bevel_pixmap(Pixmap p, int w, int h, Imlib_Border *bord, unsigned char up); _XFUNCPROTOEND diff --git a/src/icon.h b/src/icon.h new file mode 100644 index 0000000..d954a3e --- /dev/null +++ b/src/icon.h @@ -0,0 +1,290 @@ +static unsigned long icon_data[] = { +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x06000000, 0x1d020202, 0x47050505, 0x7a070706, 0xa4070707, 0xd0070707, +0xfd060606, 0xfb0c0c0c, 0x3e090908, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x28040404, 0x55090909, +0x810f0f0e, 0xb8141413, 0xec171716, 0xff171716, 0xff141413, 0xff111110, 0xff0e0e0e, 0xff0b0b0b, +0xff080808, 0xff0e0e0d, 0xb11b1b1b, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x09020202, 0x44090908, 0x6e121211, 0xa1181817, 0xcb1e1e1d, 0xf5242423, 0xff252524, 0xff242422, +0xff222220, 0xff1f1f1e, 0xff1d1d1c, 0xff191919, 0xff161616, 0xff131313, 0xff10100f, 0xff0d0d0d, +0xff0a0a0a, 0xff0d0d0d, 0xf62a2a29, 0x23050505, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x18040404, 0x480b0b0a, 0x72121212, 0x9c1b1b1b, 0xc6242422, 0xd8262625, +0xfd2c2c2a, 0xff2f2f2d, 0xff2e2e2d, 0xff2e2e2c, 0xff2c2c2b, 0xff2a2a29, 0xff282827, 0xff262625, +0xff242422, 0xff212120, 0xff1e1e1d, 0xff1b1b1a, 0xff181817, 0xff151515, 0xff121211, 0xff0f0f0f, +0xff0c0c0c, 0xff0d0d0c, 0xff2f2f2e, 0x9b1e1e1d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x21030303, 0x4b0b0b0a, 0x7d131312, +0xa71b1b1a, 0xeb272726, 0xfd2e2e2c, 0xff30302f, 0xff323230, 0xff333331, 0xff333331, 0xff343432, +0xff333332, 0xff333331, 0xff323230, 0xff31312f, 0xff2f2f2d, 0xff2d2d2b, 0xff2b2b29, 0xff292927, +0xff262625, 0xff232322, 0xff20201f, 0xff1d1d1c, 0xff1a1a19, 0xff171717, 0xff151514, 0xff121211, +0xff0e0e0e, 0xff0d0d0d, 0xff2f2f2e, 0xc42a2a28, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x08000000, +0x3d040404, 0x670a0a09, 0x99101010, 0xc3191918, 0xf6222221, 0xff292927, 0xff2c2c2b, 0xff2f2f2e, +0xff323230, 0xff7c747a, 0xff353534, 0xff373735, 0xff373735, 0xff383836, 0xff383836, 0xff373736, +0xff363635, 0xff353534, 0xff343433, 0xff333331, 0xff31312f, 0xff2f2f2d, 0xff2c2c2a, 0xff282827, +0xff242423, 0xff1f1f1e, 0xff1a1a1a, 0xff151514, 0xff191918, 0xff1a1a19, 0xff171716, 0xff141413, +0xff111110, 0xff0e0e0d, 0xff2e2e2c, 0xd02f2f2d, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x2b010101, 0x82040403, 0x9b070706, 0xce0c0c0c, 0xf0131312, +0xff1a1a18, 0xff1f1f1e, 0xff242422, 0xff282827, 0xff2c2c2b, 0xff30302f, 0xff333331, 0xff363634, +0xff383836, 0xfffbfbfa, 0xffe1e1e0, 0xffa5a3a2, 0xff686662, 0xff393937, 0xff3a3a38, 0xff393937, +0xff373735, 0xff353533, 0xff323230, 0xff2e2e2d, 0xff2a2a29, 0xff252524, 0xff20201f, 0xff1d1d1c, +0xff1b1b1b, 0xff1e1e1e, 0xff252425, 0xff2c2b2d, 0xff252524, 0xff1c1c1b, 0xff191918, 0xff161615, +0xff131312, 0xff0f0f0f, 0xff2a2a29, 0xf4393937, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x65030302, 0xff0a0a0a, 0xff10100f, 0xff151514, 0xff1b1b1a, +0xff21211f, 0xff262625, 0xff2b2b29, 0xff2f2f2e, 0xff333332, 0xff363634, 0xff393937, 0xff3b3b39, +0xff454543, 0xffebebea, 0xff818180, 0xff959592, 0xffbdbdbc, 0xff6d6967, 0xff565453, 0xff2f2f2e, +0xff2b2b2a, 0xff292928, 0xff282828, 0xff2a2a2c, 0xff303133, 0xff36373b, 0xff424347, 0xff4c4c50, +0xff4c4d50, 0xff4c4f52, 0xff535558, 0xff545155, 0xff333333, 0xff1f1f1e, 0xff1b1b1a, 0xff181817, +0xff141414, 0xff111110, 0xff262625, 0xf43c3c3b, 0x01000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x8d050505, 0xff0e0e0e, 0xff141414, 0xff1a1a1a, 0xff212120, +0xff272725, 0xff2c2c2b, 0xff31312f, 0xff343433, 0xff373735, 0xff393937, 0xff3a3a38, 0xff393937, +0xff706f6d, 0xffb7b7b6, 0xff30302e, 0xff2c2c2a, 0xff636362, 0xff9d9d9a, 0xff9d9c9c, 0xff333233, +0xff474649, 0xff494e51, 0xff4b5458, 0xff4f5a60, 0xff566269, 0xff616970, 0xff696d73, 0xff67686d, +0xff595e62, 0xff57585b, 0xff5c5a5e, 0xff59565b, 0xff383839, 0xff212120, 0xff1e1e1d, 0xff1a1a19, +0xff161615, 0xff131312, 0xff212120, 0xff40403e, 0x24060606, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x95080808, 0xff131312, 0xff191918, 0xff20201f, 0xff272725, +0xff2a2a29, 0xff2c2c2a, 0xff2c2c2b, 0xff2c2c2b, 0xff2a2a29, 0xff292725, 0xff282320, 0xff403b39, +0xffc4c4c4, 0xffacacac, 0xff30211d, 0xff2e2827, 0xff2b2b2b, 0xff888888, 0xff989896, 0xff515154, +0xff58595c, 0xff505b5f, 0xff516166, 0xff696b72, 0xff6a6b73, 0xff6a6b73, 0xff686a72, 0xff63646a, +0xff5a5a5f, 0xff575c5f, 0xff5c5c60, 0xff636065, 0xff414041, 0xff242423, 0xff20201f, 0xff1c1c1b, +0xff181817, 0xff141413, 0xff1c1c1c, 0xff41413e, 0x24090909, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0xc30c0c0b, 0xff171716, 0xff1e1e1d, 0xff252524, 0xff2c2c2a, +0xff2b2b2a, 0xff141516, 0xff121113, 0xff1a0f12, 0xff231012, 0xff2e1814, 0xff381f1d, 0xff999796, +0xffaeadac, 0xff524f4e, 0xff322220, 0xff35302f, 0xff636262, 0xff9c9c9a, 0xff88888a, 0xff3c3d3c, +0xff545458, 0xff5b5d61, 0xff5a6166, 0xff5d666d, 0xff646c76, 0xff68707b, 0xff6c6f77, 0xff6f6f76, +0xff6d6b72, 0xff6b6d74, 0xff6c7076, 0xff68676e, 0xff464547, 0xff272726, 0xff222221, 0xff1e1e1d, +0xff1a1a19, 0xff161615, 0xff191918, 0xff3f3f3d, 0x380d0d0d, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0xc410100f, 0xff1b1b1a, 0xff232322, 0xff2a2a29, 0xff31312f, +0xff31312f, 0xff0d0b15, 0xff0a0717, 0xff140b16, 0xff261010, 0xff3f191c, 0xff4a2d32, 0xffb3b3b4, +0xff8a8a8a, 0xff231b1b, 0xff271f1f, 0xff403e3e, 0xff9c9b9c, 0xff797978, 0xff626262, 0xff4e4e4e, +0xff55575a, 0xff545a5e, 0xff576067, 0xff5d686f, 0xff6b6d75, 0xff74757e, 0xff7a7980, 0xff76747d, +0xff6d6b72, 0xff6c6b72, 0xff6a696f, 0xff626167, 0xff464648, 0xff292928, 0xff242423, 0xff20201f, +0xff1c1c1b, 0xff171717, 0xff161616, 0xff3c3c3a, 0x53151515, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0xf1161615, 0xff20201f, 0xff282826, 0xff2f2f2e, 0xff363635, +0xff353533, 0xff0d0a10, 0xff0c070a, 0xff140b0c, 0xff271113, 0xff3f2227, 0xff9e9292, 0xff9e9e9e, +0xff8a8a8c, 0xff423f3e, 0xff696867, 0xff797978, 0xff666566, 0xff565657, 0xff525253, 0xff454549, +0xff494c50, 0xff5e5f64, 0xff616167, 0xff636369, 0xff737179, 0xff716f77, 0xff74737b, 0xff717078, +0xff67676e, 0xff67666d, 0xff67676e, 0xff5f5f66, 0xff47474a, 0xff2c2c2a, 0xff272725, 0xff222221, +0xff1e1e1d, 0xff191918, 0xff161615, 0xff373735, 0x54161616, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x03000000, 0xf51c1c1b, 0xff252523, 0xff2d2d2b, 0xff353533, 0xff3c3c3a, +0xff393937, 0xff0e0a10, 0xff0c070d, 0xff0e090b, 0xff2b2222, 0xff787778, 0xff757474, 0xff989898, +0xff949492, 0xff8e8e8e, 0xff6c6c6d, 0xff8e8e8e, 0xff9b9a9c, 0xff939294, 0xff4d4d4e, 0xff424345, +0xff45474a, 0xff545559, 0xff515357, 0xff484b4e, 0xff54565d, 0xff60616a, 0xff61646e, 0xff60636c, +0xff5c5e66, 0xff60616a, 0xff62646d, 0xff5b5d65, 0xff47484c, 0xff2e2e2d, 0xff292927, 0xff242423, +0xff1f1f1e, 0xff1a1a19, 0xff151514, 0xff323230, 0x831f1f1e, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x24030303, 0xff212120, 0xff2a2a28, 0xff313130, 0xff393937, 0xff41413f, +0xff3c3c3a, 0xff0d0a0d, 0xff0e0909, 0xff0f0909, 0xff2f2a2a, 0xff7d707b, 0xff908f8e, 0xff939394, +0xff6a6a68, 0xff6c6b6c, 0xff8c8b8d, 0xff858486, 0xff848385, 0xff868587, 0xff464546, 0xff434549, +0xff474a4f, 0xff515459, 0xff4f5358, 0xff4f535a, 0xff51555c, 0xff595d68, 0xff585d67, 0xff575d68, +0xff555b66, 0xff575c67, 0xff555a64, 0xff525761, 0xff45484c, 0xff313130, 0xff2b2b29, 0xff262625, +0xff212120, 0xff1c1c1b, 0xff161615, 0xff2e2e2c, 0x83232322, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x26050504, 0xff252524, 0xff2e2e2d, 0xff363635, 0xff3e3e3c, 0xff474745, +0xff3f3f3d, 0xff0f0808, 0xff100807, 0xff110909, 0xff32262b, 0xff949494, 0xff989898, 0xff808080, +0xff656565, 0xff838284, 0xff868486, 0xff828082, 0xff818082, 0xff848384, 0xff4a494a, 0xff41454d, +0xff484d57, 0xff4f545e, 0xff535761, 0xff50545e, 0xff525863, 0xff555b67, 0xff585f69, 0xff575d68, +0xff4f5663, 0xff4e5561, 0xff4c535e, 0xff4a505b, 0xff44474d, 0xff333331, 0xff2d2d2b, 0xff282827, +0xff232322, 0xff1d1d1c, 0xff171716, 0xff282827, 0xa0262624, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x530a0a0a, 0xff2a2a29, 0xff333331, 0xff3b3b39, 0xff434341, 0xff4e4e4b, +0xff42413f, 0xff0b0606, 0xff0d0707, 0xff0f0909, 0xff57504e, 0xff807f80, 0xff8c8c8c, 0xff7d7d7c, +0xff868686, 0xff828183, 0xff868587, 0xff807f81, 0xff818082, 0xff828082, 0xff404041, 0xff3e424c, +0xff414651, 0xff4f545e, 0xff4c515b, 0xff494f59, 0xff4f545e, 0xff535863, 0xff555a64, 0xff515660, +0xff505662, 0xff525763, 0xff4b515c, 0xff474d58, 0xff43464c, 0xff353533, 0xff2f2f2e, 0xff2a2a28, +0xff242423, 0xff1f1f1e, 0xff181817, 0xff232322, 0xb82d2d2b, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x5c0d0d0d, 0xff2e2e2d, 0xff383836, 0xff40403e, 0xff484845, 0xff565653, +0xff444341, 0xff0d0a0a, 0xff0f0c0c, 0xff110e0e, 0xff413f40, 0xff898989, 0xff888888, 0xff858584, +0xff8a8a88, 0xff767373, 0xff848284, 0xff858486, 0xff888789, 0xff8b8a8b, 0xff393939, 0xff40444d, +0xff474b55, 0xff4b5059, 0xff4d525b, 0xff4c505a, 0xff4d525b, 0xff4f545e, 0xff4c525b, 0xff494e57, +0xff474e5a, 0xff474e5a, 0xff464c58, 0xff444a55, 0xff40444b, 0xff373735, 0xff31312f, 0xff2b2b2a, +0xff262625, 0xff20201f, 0xff191918, 0xff1f1f1e, 0xe2333331, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x83141414, 0xff333331, 0xff3c3c3a, 0xff454542, 0xff4c4c4a, 0xff5f5f5c, +0xff444442, 0xff0b0b0b, 0xff0d0d0d, 0xff0e0e0e, 0xff4c4648, 0xff959594, 0xff868684, 0xff848484, +0xff4e4e4e, 0xff5d5d5c, 0xff8e8e8f, 0xffb7b7b7, 0xffc1c1c1, 0xffc3c3c3, 0xff383838, 0xff3e434b, +0xff454953, 0xff484d57, 0xff4a4d57, 0xff454a53, 0xff494d56, 0xff4a4f58, 0xff4a4f58, 0xff474b54, +0xff4a505a, 0xff494f59, 0xff434853, 0xff414650, 0xff3e4248, 0xff383837, 0xff333331, 0xff2d2d2b, +0xff272725, 0xff212120, 0xff1b1b1a, 0xff1b1b1a, 0xe22f2f2d, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x8a191918, 0xff373735, 0xff41413e, 0xff494947, 0xff51514e, 0xff696966, +0xff434341, 0xff0b0b0b, 0xff0d0d0d, 0xff0e0e0e, 0xff3d3d3c, 0xff6d6d6c, 0xff808080, 0xff7e7e7e, +0xff828282, 0xff999998, 0xff646462, 0xffc5c5c5, 0xffc9c9c9, 0xffc6c6c6, 0xff3c3c3c, 0xff3b3f47, +0xff484c55, 0xff414b55, 0xff3f4c55, 0xff434f57, 0xff465058, 0xff454f58, 0xff4b4f57, 0xff454953, +0xff444a53, 0xff414650, 0xff40444e, 0xff3e424b, 0xff3d3f46, 0xff3a3a38, 0xff343432, 0xff2e2e2c, +0xff282827, 0xff232321, 0xff1d1d1c, 0xff171716, 0xf730302f, 0x0d020202, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0xb4222221, 0xff3b3b39, 0xff454543, 0xff4e4e4b, 0xff555552, 0xff72726f, +0xff40403e, 0xff0b0b0b, 0xff0c0c0c, 0xff0e0e0e, 0xff5c5c5c, 0xff959595, 0xff353534, 0xff403f3e, +0xff7b7b7a, 0xff7f7f7e, 0xff828284, 0xff3a3938, 0xffc5c5c5, 0xffc4c4c4, 0xff484849, 0xff3d4149, +0xff3f434b, 0xff454850, 0xff43474f, 0xff484c54, 0xff494c54, 0xff40444c, 0xff42454d, 0xff3b3f48, +0xff3d414a, 0xff3d414a, 0xff3c4048, 0xff3b3e47, 0xff3b3d43, 0xff3c3c3a, 0xff353534, 0xff2f2f2e, +0xff292928, 0xff242422, 0xff1e1e1d, 0xff141413, 0xff2e2e2c, 0x12030303, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0xe22c2c2b, 0xff3f3f3d, 0xff4a4a47, 0xff52524f, 0xff5a5a57, 0xff787875, +0xff3a3a38, 0xff0b0b0b, 0xff0c0c0c, 0xff0e0e0e, 0xff6e6e6e, 0xffa6a6a6, 0xffaaaaaa, 0xff8e8e8e, +0xff989899, 0xff7d7d7c, 0xff7f7f7e, 0xff848484, 0xff868382, 0xff7b7b7b, 0xff393939, 0xff383b42, +0xff40434b, 0xff40444b, 0xff43464d, 0xff45484f, 0xff464950, 0xff41444c, 0xff383c44, 0xff383b43, +0xff393d45, 0xff3a3d45, 0xff393c43, 0xff383b42, 0xff393b40, 0xff3d3d3c, 0xff373735, 0xff31312f, +0xff2a2a29, 0xff252523, 0xff1f1f1e, 0xff121211, 0xff292927, 0x20050505, 0x00000000, 0x00000000, +0x00000000, 0x04010101, 0xe7313130, 0xff434341, 0xff4e4e4b, 0xff565653, 0xff5e5e5b, 0xff7c7c79, +0xff333433, 0xff0b0b0b, 0xff0d0d0d, 0xff131313, 0xff5c5a5c, 0xff737274, 0xff717172, 0xff717072, +0xff424243, 0xff49494a, 0xff7a7a7a, 0xff7f7f7e, 0xff818180, 0xff8f8f8e, 0xff727171, 0xff333439, +0xff3d4047, 0xff3b3f46, 0xff3f444b, 0xff40484e, 0xff424a51, 0xff394149, 0xff383f46, 0xff363941, +0xff383e47, 0xff39434b, 0xff3b4c52, 0xff3a4a50, 0xff36373f, 0xff3f3e3d, 0xff373736, 0xff323230, +0xff2b2b2a, 0xff252524, 0xff1f1f1e, 0xff101010, 0xff232322, 0x420a0a09, 0x00000000, 0x00000000, +0x00000000, 0x12030303, 0xff3a3a38, 0xff474744, 0xff52524f, 0xff5a5a57, 0xff636360, 0xff7e7e7a, +0xff2d2e2d, 0xff0b0b0b, 0xff0c0c0c, 0xff111111, 0xff414041, 0xff484749, 0xff424142, 0xff424142, +0xff414142, 0xff242425, 0xff2a2a2a, 0xff6e6e70, 0xff7e7e7e, 0xff7f7f7e, 0xff818180, 0xff6a6a70, +0xff273238, 0xff2b363d, 0xff303b42, 0xff333f45, 0xff363940, 0xff383a41, 0xff38393f, 0xff383a3f, +0xff3a3e42, 0xff3f4045, 0xff404144, 0xff404043, 0xff3e3e40, 0xff40403e, 0xff393937, 0xff333331, +0xff2c2c2a, 0xff262624, 0xff20201f, 0xff10100f, 0xff1d1d1d, 0x42090908, 0x00000000, 0x00000000, +0x00000000, 0x22060606, 0xff3e3e3c, 0xff4b4b49, 0xff565653, 0xff5d5d5a, 0xff686865, 0xff7c7c79, +0xff2b2d2c, 0xff1a1a1b, 0xff1c1c1d, 0xff222122, 0xff262526, 0xff343132, 0xff434343, 0xff403f40, +0xff413c3b, 0xff404040, 0xff272727, 0xff191918, 0xff272726, 0xff606060, 0xff7e7e7c, 0xff868686, +0xff555557, 0xff343435, 0xff323333, 0xff3b3b3b, 0xff3e3d3d, 0xff3d3d3e, 0xff3a3a3a, 0xff393939, +0xff393939, 0xff3d3d3d, 0xff383738, 0xff393939, 0xff373737, 0xff3f3f3d, 0xff3b3b39, 0xff343433, +0xff2d2d2c, 0xff262625, 0xff212120, 0xff10100f, 0xff181817, 0x6c0c0c0b, 0x00000000, 0x00000000, +0x00000000, 0x420d0d0d, 0xff424240, 0xff4f4f4d, 0xff595956, 0xff61615e, 0xff6c6c69, 0xff787875, +0xff222322, 0xff121212, 0xff1b1a1b, 0xff222223, 0xff272627, 0xff484748, 0xff5b5a5b, 0xff3c3b3c, +0xff57504b, 0xff555455, 0xff303031, 0xff313031, 0xff383738, 0xff3b3a3a, 0xff808080, 0xff7f7f7e, +0xff6c6c6c, 0xff303030, 0xff2c2c2c, 0xff323232, 0xff3f3e3f, 0xff474748, 0xff464546, 0xff3f3f3f, +0xff404041, 0xff424142, 0xff313131, 0xff303030, 0xff2e2e2e, 0xff3d3d3c, 0xff3c3c3b, 0xff363634, +0xff2f2f2e, 0xff282827, 0xff232321, 0xff111110, 0xff131313, 0x710c0c0b, 0x00000000, 0x00000000, +0x00000000, 0x50121211, 0xff464644, 0xff535350, 0xff5c5c59, 0xff636360, 0xff6f6f6c, 0xff747471, +0xff202020, 0xff101010, 0xff0e0e0e, 0xff121212, 0xff1c1c1c, 0xff404041, 0xff4c4c4c, 0xff373737, +0xff434243, 0xff4e4d4e, 0xff252526, 0xff2f2f2f, 0xff212121, 0xff292929, 0xff595958, 0xff7b7b7a, +0xff7e7e7c, 0xff7b7b7c, 0xff747272, 0xff434342, 0xff2c2c2c, 0xff2e2e2e, 0xff313131, 0xff333333, +0xff363636, 0xff3a3a3a, 0xff2f2f2f, 0xff2e2e2e, 0xff2c2c2c, 0xff3d3d3b, 0xff3e3e3c, 0xff373736, +0xff31312f, 0xff2a2a28, 0xff242422, 0xff121211, 0xff0e0e0e, 0x880b0b0b, 0x00000000, 0x00000000, +0x00000000, 0x711a1a19, 0xff494947, 0xff565653, 0xff5e5e5b, 0xff656562, 0xff71716e, 0xff6f6f6c, +0xff161615, 0xff0d0d0d, 0xff0e0e0e, 0xff0e0e0e, 0xff111111, 0xff353536, 0xff313031, 0xff1f1e1f, +0xff3a3939, 0xff3e3e3e, 0xff212122, 0xff313132, 0xff262626, 0xff232323, 0xff1c1c1b, 0xff2a2a29, +0xff464648, 0xff797978, 0xff7f7f7e, 0xff888888, 0xff696969, 0xff302e2e, 0xff2d2d2d, 0xff2e2e2e, +0xff2f2f2f, 0xff303030, 0xff2e2e2e, 0xff2c2c2c, 0xff2b2b2b, 0xff3c3c3a, 0xff3f3f3d, 0xff393937, +0xff323230, 0xff2b2b2a, 0xff252524, 0xff141413, 0xff0a0a09, 0xa00b0b0b, 0x00000000, 0x00000000, +0x00000000, 0x861f1f1e, 0xff4d4d4b, 0xff595956, 0xff60605d, 0xff676763, 0xff73736f, 0xff696966, +0xff0f0f0f, 0xff0b0b0b, 0xff0b0b0b, 0xff0d0d0d, 0xff0e0e0e, 0xff1c1b1b, 0xff1f1f1f, 0xff1d1d1d, +0xff323232, 0xff2f2f2f, 0xff262626, 0xff2b2b2b, 0xff262627, 0xff292929, 0xff292929, 0xff292929, +0xff2a2a2a, 0xff414141, 0xff898988, 0xff7e7e7c, 0xff828282, 0xff90908e, 0xff373636, 0xff2c2c2c, +0xff363637, 0xff464845, 0xff414440, 0xff3b3e3b, 0xff373936, 0xff3f403d, 0xff40403e, 0xff3a3a38, +0xff333331, 0xff2c2c2b, 0xff262625, 0xff161616, 0xff050505, 0xa4090909, 0x00000000, 0x00000000, +0x00000000, 0xa0282827, 0xff50504e, 0xff5a5a57, 0xff61615e, 0xff676764, 0xff72726e, 0xff646461, +0xff0d0d0d, 0xff0a0a0a, 0xff0b0b0b, 0xff0c0c0c, 0xff0e0e0e, 0xff0f0f0f, 0xff111111, 0xff131212, +0xff1b1b1b, 0xff2c2c2c, 0xff303030, 0xff2a292a, 0xff242425, 0xff262626, 0xff272727, 0xff272727, +0xff272727, 0xff262626, 0xff2e2e2f, 0xff2f2d2d, 0xff60605f, 0xff7e7e7c, 0xff696968, 0xff313132, +0xff383839, 0xff4a473e, 0xff3c3d3c, 0xff3f4237, 0xff3a3d35, 0xff414240, 0xff40403e, 0xff3a3a38, +0xff343432, 0xff2d2d2b, 0xff272726, 0xff191918, 0xff020202, 0xd0080808, 0x00000000, 0x00000000, +0x00000000, 0xb32f2f2d, 0xff525250, 0xff5c5c59, 0xff61615e, 0xff676764, 0xff71716d, 0xff5e5e5a, +0xff0b0b0b, 0xff0a0a0a, 0xff0b0b0b, 0xff0c0c0c, 0xff0d0d0d, 0xff0f0f0f, 0xff101010, 0xff131313, +0xff1c1b1c, 0xff292929, 0xff303030, 0xff282828, 0xff242424, 0xff232222, 0xff232323, 0xff232323, +0xff242424, 0xff242424, 0xff252525, 0xff262626, 0xff212121, 0xff4f4f4d, 0xff767676, 0xff949494, +0xff707071, 0xff565359, 0xff636365, 0xff5e5d5e, 0xff515053, 0xff494848, 0xff40403e, 0xff3b3b39, +0xff343432, 0xff2e2e2c, 0xff282826, 0xff1b1b1b, 0xff000000, 0xd0060605, 0x00000000, 0x00000000, +0x00000000, 0xd0393937, 0xff545452, 0xff5c5c59, 0xff62625f, 0xff676764, 0xff6f6f6c, 0xff575958, +0xff171919, 0xff242325, 0xff1a1a1a, 0xff1c1c1c, 0xff2b2b2b, 0xff393839, 0xff3e3d3e, 0xff434343, +0xff494849, 0xff525252, 0xff5b5a5a, 0xff595959, 0xff5c5b5c, 0xff5f5f5f, 0xff636363, 0xff636262, +0xff686867, 0xff6a6969, 0xff6b6a6a, 0xff6c6b6b, 0xff6d6c6b, 0xff6d6c6c, 0xff595958, 0xff525151, +0xff737374, 0xff7a7a7a, 0xff666665, 0xff626161, 0xff605f5e, 0xff51514f, 0xff41413f, 0xff3a3a39, +0xff343433, 0xff2f2f2d, 0xff292927, 0xff1e1e1d, 0xff000000, 0xe6040404, 0x00000000, 0x00000000, +0x00000000, 0xea3f3f3d, 0xff545452, 0xff5b5b59, 0xff61615e, 0xff666663, 0xff6c6c69, 0xff6b6b68, +0xff6b6a67, 0xff706f6d, 0xff6c6c69, 0xff6f6f6b, 0xff747471, 0xff797975, 0xff787875, 0xff797976, +0xff797976, 0xff7a7a75, 0xff797975, 0xff797974, 0xff777773, 0xff767672, 0xff767672, 0xff747471, +0xff73736f, 0xff71716d, 0xff6f6f6b, 0xff6c6c68, 0xff696966, 0xff666663, 0xff636360, 0xff51514e, +0xff595958, 0xff646464, 0xff4e4e4c, 0xff50504d, 0xff4b4b48, 0xff454543, 0xff40403e, 0xff3a3a39, +0xff353533, 0xff2f2f2d, 0xff292927, 0xff20201f, 0xff010101, 0xff030303, 0x00000000, 0x00000000, +0x00000000, 0xff4a4a47, 0xff555552, 0xff5b5b58, 0xff60605d, 0xff656562, 0xff696966, 0xff6d6d6a, +0xff70706c, 0xff73736f, 0xff747471, 0xff777773, 0xff777774, 0xff787874, 0xff797975, 0xff797975, +0xff787874, 0xff787874, 0xff787874, 0xff787874, 0xff777773, 0xff767672, 0xff757571, 0xff73736f, +0xff71716d, 0xff70706c, 0xff6d6d69, 0xff6b6b68, 0xff686865, 0xff666662, 0xff62625f, 0xff5e5e5b, +0xff5b5b58, 0xff645c4d, 0xff7f7f7e, 0xff504f4b, 0xff494947, 0xff454542, 0xff3d453b, 0xff247623, +0xff30422f, 0xff2f2f2d, 0xff292928, 0xff212120, 0xff020202, 0xff020202, 0x00000000, 0x00000000, +0x00000000, 0xff4a4a47, 0xff545451, 0xff5a5a57, 0xff5f5f5c, 0xff646461, 0xff676764, 0xff6b6b68, +0xff6e6e6b, 0xff70706d, 0xff73736f, 0xff747471, 0xff757571, 0xff767672, 0xff767672, 0xff767672, +0xff777773, 0xff767672, 0xff767672, 0xff767672, 0xff757571, 0xff747470, 0xff72726f, 0xff72726e, +0xff70706c, 0xff6e6e6a, 0xff6c6c68, 0xff6a6a66, 0xff676764, 0xff646461, 0xff61615e, 0xff5d5d5a, +0xff5a5a57, 0xff826637, 0xffc07b09, 0xff585145, 0xff484846, 0xff434341, 0xff375235, 0xff07bd07, +0xff246423, 0xff2e2e2d, 0xff292927, 0xff232321, 0xff040404, 0xff020202, 0x00000000, 0x00000000, +0x00000000, 0xff4b4b49, 0xff535350, 0xff585855, 0xff5d5d5a, 0xff61615e, 0xff656562, 0xff696965, +0xff6c6c68, 0xff6d6d6a, 0xff6f6f6c, 0xff71716d, 0xff72726e, 0xff73736f, 0xff73736f, 0xff737370, +0xff737370, 0xff73736f, 0xff72726e, 0xff71716d, 0xff70706c, 0xff6e6e6a, 0xff6d6d69, 0xff6c6c68, +0xff6a6a66, 0xff686864, 0xff666663, 0xff646460, 0xff62625e, 0xff5f5f5b, 0xff5c5c59, 0xff595957, +0xff575754, 0xff545450, 0xff53514a, 0xff4b4b48, 0xff464644, 0xff424240, 0xff3d3d3a, 0xff363b34, +0xff323331, 0xff2d2d2b, 0xff282827, 0xff232322, 0xff050505, 0xff020202, 0x00000000, 0x00000000, +0x00000000, 0x2a0d0d0d, 0x2a0e0e0e, 0x2a0f0f0f, 0x2a101010, 0x2a111110, 0x2a121211, 0x2a121211, +0x2a131312, 0x2b141413, 0x6c212120, 0x72222221, 0x7f232321, 0xa1232322, 0xa1242423, 0xa1262625, +0xa1282827, 0xa1272725, 0xa1262625, 0xa1262625, 0xdf252524, 0xff292927, 0xff2a2a28, 0xff282826, +0xff262625, 0xff262625, 0xff272726, 0xff292928, 0xff2b2b29, 0xff2a2a29, 0xff292928, 0xf3222220, +0xa1272726, 0xa1262624, 0xa1252524, 0xa1232322, 0xa1212120, 0xa120201f, 0xa11f1f1e, 0xa11c1c1b, +0x76151514, 0x2a080807, 0x2a070707, 0x2a060606, 0x2a010101, 0x2a000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x72151514, 0xff383836, 0xff3d3d3b, 0xff3f3f3d, 0xff3d3d3b, 0xff383837, 0xff343432, +0xff30302f, 0xff2e2e2d, 0xff2d2d2b, 0xff2d2d2c, 0xff2e2e2c, 0xff2f2f2d, 0xff333331, 0xff31312f, +0xff30302e, 0xff2f2f2d, 0xff2f2f2d, 0xff30302e, 0xff31312f, 0xff333331, 0xff343432, 0xff363634, +0xff383837, 0xff3a3a38, 0xff3d3d3b, 0xff41413f, 0xff454543, 0xff4a4a48, 0xff434341, 0xff333331, +0xf92f2f2e, 0x51111111, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x76131312, 0xff2a2a28, 0xff2f2f2d, 0xff343432, 0xff383836, 0xff3c3c3a, 0xff40403e, +0xff444441, 0xff474744, 0xff494947, 0xff4c4c49, 0xff4f4f4c, 0xff51514e, 0xff52524f, 0xff525250, +0xff545452, 0xff565654, 0xff595956, 0xff5c5c59, 0xff5e5e5c, 0xff5f5f5c, 0xff5d5d5a, 0xff5b5b58, +0xff585856, 0xff565653, 0xff545451, 0xff525250, 0xff52524f, 0xff4f4f4c, 0xff3e3e3c, 0xff30302e, +0xed212120, 0x570d0d0c, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x03010101, 0x4b070707, 0x50090909, 0x500a0a0a, 0x500a0a0a, 0x500a0a0a, 0x500b0b0b, +0x510d0d0c, 0x800e0e0e, 0x80101010, 0x80131312, 0x80141414, 0x80141413, 0x80141413, 0x80131312, +0x80131313, 0x80141414, 0x80131313, 0x80121212, 0x80121212, 0x80131312, 0x80131313, 0x80141413, +0x80141413, 0x80141413, 0x80131312, 0x80121212, 0x80111111, 0x80101010, 0x800b0b0b, 0x67070707, +0x10010101, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, +0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000 +}; diff --git a/src/pixmap.c b/src/pixmap.c index a7013c1..bc79a7f 100644 --- a/src/pixmap.c +++ b/src/pixmap.c @@ -41,7 +41,9 @@ static const char cvs_ident[] = "$Id$"; #include "../libmej/debug.h" #include "../libmej/mem.h" #include "../libmej/strings.h" +#include "draw.h" #include "e.h" +#include "icon.h" #include "startup.h" #include "menus.h" #include "options.h" @@ -496,7 +498,7 @@ create_trans_pixmap(simage_t *simg, unsigned char which, Drawable d, int x, int if (simg->iml->bevel != NULL) { D_PIXMAP(("Beveling pixmap 0x%08x with edges %d, %d, %d, %d\n", p, simg->iml->bevel->edges->left, simg->iml->bevel->edges->top, simg->iml->bevel->edges->right, simg->iml->bevel->edges->bottom)); - FIXME_NOP(Imlib_bevel_pixmap(imlib_id, p, width, height, simg->iml->bevel->edges, simg->iml->bevel->up);) /* Need to write this */ + bevel_pixmap(p, width, height, simg->iml->bevel->edges, simg->iml->bevel->up); } } XFreeGC(Xdisplay, gc); @@ -672,10 +674,8 @@ paste_simage(simage_t *simg, unsigned char which, Drawable d, unsigned short x, Pixmap p; gc = XCreateGC(Xdisplay, d, 0, NULL); - p = create_trans_pixmap(simg, which, d, x, y, w, h); - if (simg->iml->bevel != NULL) { - FIXME_NOP(Imlib_bevel_pixmap(imlib_id, p, w, h, simg->iml->bevel->edges, simg->iml->bevel->up);) - } + /* FIXME: The conditional on the next line works, but it's a hack. Worth fixing? :-) */ + p = create_trans_pixmap(simg, which, ((which == image_st) ? scrollbar.sa_win : d), x, y, w, h); XCopyArea(Xdisplay, p, d, gc, 0, 0, w, h, x, y); XFreePixmap(Xdisplay, p); XFreeGC(Xdisplay, gc); @@ -685,7 +685,7 @@ paste_simage(simage_t *simg, unsigned char which, Drawable d, unsigned short x, gc = XCreateGC(Xdisplay, d, 0, NULL); p = create_viewport_pixmap(simg, d, x, y, w, h); if (simg->iml->bevel != NULL) { - FIXME_NOP(Imlib_bevel_pixmap(imlib_id, p, w, h, simg->iml->bevel->edges, simg->iml->bevel->up);) + bevel_pixmap(p, w, h, simg->iml->bevel->edges, simg->iml->bevel->up); } XCopyArea(Xdisplay, p, d, gc, 0, 0, w, h, x, y); XFreePixmap(Xdisplay, p); @@ -1082,7 +1082,7 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short imlib_free_pixmap_and_mask(pixmap); } if (simg->iml->bevel != NULL) { - FIXME_NOP(Imlib_bevel_pixmap(imlib_id, simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up);) + bevel_pixmap(simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up); } D_PIXMAP(("Setting background of window 0x%08x to 0x%08x\n", win, simg->pmap->pixmap)); if ((which == image_bg) && (Options & Opt_double_buffer)) { @@ -1118,7 +1118,7 @@ render_simage(simage_t * simg, Window win, unsigned short width, unsigned short XSetForeground(Xdisplay, gc, ((which == image_bg) ? (PixColors[bgColor]) : (simg->bg))); XFillRectangle(Xdisplay, simg->pmap->pixmap, gc, 0, 0, width, height); if (simg->iml->bevel != NULL) { - FIXME_NOP(Imlib_bevel_pixmap(imlib_id, simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up);) + bevel_pixmap(simg->pmap->pixmap, width, height, simg->iml->bevel->edges, simg->iml->bevel->up); } /* FIXME: For efficiency, just fill the window with the pixmap and handle exposes by copying from simg->pmap->pixmap. */ @@ -1711,10 +1711,10 @@ shaped_window_apply_mask(Drawable d, Pixmap mask) void set_icon_pixmap(char *filename, XWMHints * pwm_hints) { -#ifdef FIXME_BLOCK const char *icon_path; - Imlib_Image temp_im; + Imlib_Image temp_im = (Imlib_Image) NULL; XWMHints *wm_hints; + int w = 8, h = 8; if (pwm_hints) { wm_hints = pwm_hints; @@ -1728,7 +1728,7 @@ set_icon_pixmap(char *filename, XWMHints * pwm_hints) if (icon_path != NULL) { XIconSize *icon_sizes; - int count, i, w = 8, h = 8; /* At least 8x8 */ + int count, i; temp_im = imlib_load_image(icon_path); /* If we're going to render the image anyway, might as well be nice and give it to the WM in a size it likes. */ @@ -1748,38 +1748,31 @@ set_icon_pixmap(char *filename, XWMHints * pwm_hints) } else { w = h = 48; } - MIN_IT(w, 64); - MIN_IT(h, 64); - imlib_context_set_image(temp_im); - imlib_context_set_drawable(TermWin.parent); - imlib_image_set_has_alpha(0); - imlib_context_set_anti_alias(1); - imlib_context_set_dither(1); - imlib_context_set_blend(0); - imlib_render_pixmaps_for_whole_image_at_size(&wm_hints->icon_pixmap, &wm_hints->icon_mask, 0, w, h); - if (check_for_enlightenment()) { - wm_hints->flags |= IconPixmapHint | IconMaskHint; - } else { - wm_hints->icon_window = XCreateSimpleWindow(Xdisplay, TermWin.parent, 0, 0, w, h, 0, 0L, 0L); - shaped_window_apply_mask(wm_hints->icon_window, wm_hints->icon_mask); - XSetWindowBackgroundPixmap(Xdisplay, wm_hints->icon_window, wm_hints->icon_pixmap); - wm_hints->flags |= IconWindowHint; - } - imlib_free_image_and_decache(); + BOUND(w, 8, 64); + BOUND(h, 8, 64); } + imlib_context_set_image(temp_im); } else { - /* Use the default. It's 48x48, so if the WM doesn't like it, tough cookies. Pixmap -> ImlibImage -> Render -> Pixmap would be - too expensive, IMHO. */ - Imlib_data_to_pixmap(imlib_id, Eterm_xpm, &wm_hints->icon_pixmap, &wm_hints->icon_mask); - if (check_for_enlightenment()) { - wm_hints->flags |= IconPixmapHint | IconMaskHint; - } else { - wm_hints->icon_window = XCreateSimpleWindow(Xdisplay, TermWin.parent, 0, 0, 48, 48, 0, 0L, 0L); - shaped_window_apply_mask(wm_hints->icon_window, wm_hints->icon_mask); - XSetWindowBackgroundPixmap(Xdisplay, wm_hints->icon_window, wm_hints->icon_pixmap); - wm_hints->flags |= IconWindowHint; - } + w = h = 48; + temp_im = imlib_create_image_using_data(48, 48, (DATA32 *) icon_data); + imlib_context_set_image(temp_im); + imlib_image_set_has_alpha(1); } + imlib_context_set_drawable(TermWin.parent); + imlib_context_set_anti_alias(1); + imlib_context_set_dither(1); + imlib_context_set_blend(0); + imlib_render_pixmaps_for_whole_image_at_size(&wm_hints->icon_pixmap, &wm_hints->icon_mask, 0, w, h); + if (check_for_enlightenment()) { + wm_hints->flags |= IconPixmapHint | IconMaskHint; + } else { + wm_hints->icon_window = XCreateSimpleWindow(Xdisplay, TermWin.parent, 0, 0, w, h, 0, 0L, 0L); + shaped_window_apply_mask(wm_hints->icon_window, wm_hints->icon_mask); + XSetWindowBackgroundPixmap(Xdisplay, wm_hints->icon_window, wm_hints->icon_pixmap); + wm_hints->flags |= IconWindowHint; + } + imlib_free_image_and_decache(); + wm_hints->icon_x = wm_hints->icon_y = 0; wm_hints->flags |= IconPositionHint; @@ -1788,6 +1781,5 @@ set_icon_pixmap(char *filename, XWMHints * pwm_hints) XSetWMHints(Xdisplay, TermWin.parent, wm_hints); XFree(wm_hints); } -#endif } #endif /* PIXMAP_SUPPORT */