|
|
|
@ -18,7 +18,6 @@
|
|
|
|
|
|
|
|
|
|
#define _POSIX_C_SOURCE 200112L
|
|
|
|
|
#define _IMAGE_CONFIG
|
|
|
|
|
#define _RENDER_CONFIG
|
|
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
@ -80,8 +79,8 @@ void img_init(img_t *img, win_t *win)
|
|
|
|
|
img->zoom = MIN(img->zoom, zoom_max);
|
|
|
|
|
img->checkpan = false;
|
|
|
|
|
img->dirty = false;
|
|
|
|
|
img->aa = RENDER_ANTI_ALIAS;
|
|
|
|
|
img->alpha = !RENDER_WHITE_ALPHA;
|
|
|
|
|
img->aa = ANTI_ALIAS;
|
|
|
|
|
img->alpha = ALPHA_LAYER;
|
|
|
|
|
img->multi.cap = img->multi.cnt = 0;
|
|
|
|
|
img->multi.animate = false;
|
|
|
|
|
img->multi.length = img->multi.repeat = 0;
|
|
|
|
@ -497,13 +496,26 @@ void img_render(img_t *img)
|
|
|
|
|
imlib_context_set_image(bg);
|
|
|
|
|
imlib_image_set_has_alpha(0);
|
|
|
|
|
|
|
|
|
|
if (img->alpha)
|
|
|
|
|
if (img->alpha) {
|
|
|
|
|
int i, c, r;
|
|
|
|
|
DATA32 col[2] = { 0xFF666666, 0xFF999999 };
|
|
|
|
|
DATA32 * data = imlib_image_get_data();
|
|
|
|
|
|
|
|
|
|
for (r = 0; r < dh; r++) {
|
|
|
|
|
i = r * dw;
|
|
|
|
|
if (r == 0 || r == 8) {
|
|
|
|
|
for (c = 0; c < dw; c++)
|
|
|
|
|
data[i++] = col[!(c & 8) ^ !r];
|
|
|
|
|
} else {
|
|
|
|
|
memcpy(&data[i], &data[(r & 8) * dw], dw * sizeof(data[0]));
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
imlib_image_put_back_data(data);
|
|
|
|
|
} else {
|
|
|
|
|
c = win->fullscreen ? win->fscol : win->bgcol;
|
|
|
|
|
else
|
|
|
|
|
c = win->white;
|
|
|
|
|
imlib_context_set_color(c >> 16 & 0xFF, c >> 8 & 0xFF, c & 0xFF, 0xFF);
|
|
|
|
|
imlib_image_fill_rectangle(0, 0, dw, dh);
|
|
|
|
|
|
|
|
|
|
imlib_context_set_color(c >> 16 & 0xFF, c >> 8 & 0xFF, c & 0xFF, 0xFF);
|
|
|
|
|
imlib_image_fill_rectangle(0, 0, dw, dh);
|
|
|
|
|
}
|
|
|
|
|
imlib_blend_image_onto_image(img->im, 0, sx, sy, sw, sh, 0, 0, dw, dh);
|
|
|
|
|
imlib_context_set_color_modifier(NULL);
|
|
|
|
|
imlib_render_image_on_drawable(dx, dy);
|
|
|
|
|