kwo pushed a commit to branch master. http://git.enlightenment.org/legacy/imlib2.git/commit/?id=543323230864ed8e00754b746f4f2ee2418ba0c4
commit 543323230864ed8e00754b746f4f2ee2418ba0c4 Author: Kim Woelders <[email protected]> Date: Thu Nov 4 16:25:00 2021 +0100 Introduce UPDATE_FLAG() Somewhat simpler. --- src/lib/api.c | 42 ++++++--------------------------------- src/lib/image.h | 2 ++ src/modules/loaders/loader_argb.c | 5 +---- src/modules/loaders/loader_bmp.c | 6 ++---- src/modules/loaders/loader_gif.c | 5 +---- src/modules/loaders/loader_lbm.c | 5 +---- src/modules/loaders/loader_png.c | 5 +---- src/modules/loaders/loader_pnm.c | 5 +---- src/modules/loaders/loader_tga.c | 5 +---- src/modules/loaders/loader_tiff.c | 6 ++---- src/modules/loaders/loader_webp.c | 5 +---- src/modules/loaders/loader_xpm.c | 5 +---- 12 files changed, 20 insertions(+), 76 deletions(-) diff --git a/src/lib/api.c b/src/lib/api.c index 3f65bba..13b42bb 100644 --- a/src/lib/api.c +++ b/src/lib/api.c @@ -1754,14 +1754,7 @@ imlib_image_set_irrelevant_format(char irrelevant) CHECK_PARAM_POINTER("imlib_image_set_irrelevant_format", "image", ctx->image); CAST_IMAGE(im, ctx->image); - if (irrelevant) - { - SET_FLAG(im->flags, F_FORMAT_IRRELEVANT); - } - else - { - UNSET_FLAG(im->flags, F_FORMAT_IRRELEVANT); - } + UPDATE_FLAG(im->flags, F_FORMAT_IRRELEVANT, irrelevant); } /** @@ -1780,14 +1773,7 @@ imlib_image_set_irrelevant_border(char irrelevant) CHECK_PARAM_POINTER("imlib_image_set_irrelevant_border", "image", ctx->image); CAST_IMAGE(im, ctx->image); - if (irrelevant) - { - SET_FLAG(im->flags, F_BORDER_IRRELEVANT); - } - else - { - UNSET_FLAG(im->flags, F_BORDER_IRRELEVANT); - } + UPDATE_FLAG(im->flags, F_BORDER_IRRELEVANT, irrelevant); } /** @@ -1806,14 +1792,7 @@ imlib_image_set_irrelevant_alpha(char irrelevant) CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER("imlib_image_set_irrelevant_alpha", "image", ctx->image); CAST_IMAGE(im, ctx->image); - if (irrelevant) - { - SET_FLAG(im->flags, F_ALPHA_IRRELEVANT); - } - else - { - UNSET_FLAG(im->flags, F_ALPHA_IRRELEVANT); - } + UPDATE_FLAG(im->flags, F_ALPHA_IRRELEVANT, irrelevant); } /** @@ -1847,10 +1826,7 @@ imlib_image_set_has_alpha(char has_alpha) CHECK_CONTEXT(ctx); CHECK_PARAM_POINTER("imlib_image_set_has_alpha", "image", ctx->image); CAST_IMAGE(im, ctx->image); - if (has_alpha) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, has_alpha); } #ifdef BUILD_X11 @@ -2265,10 +2241,7 @@ imlib_create_image_from_drawable(Pixmap mask, int x, int y, int width, ctx->colormap, ctx->depth, x, y, width, height, &domask, need_to_grab_x)) { - if (domask) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, domask); } else { @@ -2450,10 +2423,7 @@ imlib_create_scaled_image_from_drawable(Pixmap mask, int source_x, ctx->visual, ctx->colormap, ctx->depth, 0, 0, destination_width, destination_height, &domask, need_to_grab_x); - if (domask) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, domask); if (mgc) XFreeGC(ctx->display, mgc); diff --git a/src/lib/image.h b/src/lib/image.h index dd1ed8c..c473365 100644 --- a/src/lib/image.h +++ b/src/lib/image.h @@ -171,6 +171,8 @@ int __imlib_CurrentCacheSize(void); #define SET_FLAG(flags, f) ((flags) |= (f)) #define UNSET_FLAG(flags, f) ((flags) &= (~f)) +#define UPDATE_FLAG(flags, f, set) \ + do { if (set) SET_FLAG(flags, f); else UNSET_FLAG(flags, f); } while(0) #define LOAD_FAIL 0 #define LOAD_SUCCESS 1 diff --git a/src/modules/loaders/loader_argb.c b/src/modules/loaders/loader_argb.c index 913ce83..fb326d9 100644 --- a/src/modules/loaders/loader_argb.c +++ b/src/modules/loaders/loader_argb.c @@ -70,10 +70,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - if (alpha) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, alpha); if (!load_data) { diff --git a/src/modules/loaders/loader_bmp.c b/src/modules/loaders/loader_bmp.c index 14a3a7d..8f6f2ee 100644 --- a/src/modules/loaders/loader_bmp.c +++ b/src/modules/loaders/loader_bmp.c @@ -220,8 +220,6 @@ load2(ImlibImage * im, int load_data) ashift1 = rshift1 = gshift1 = bshift1 = 0; ashift2 = rshift2 = gshift2 = bshift2 = 1; - UNSET_FLAG(im->flags, F_HAS_ALPHA); - if (bih.header_size == 12) { w = SWAP_LE_16(bih.bch.width); @@ -251,8 +249,6 @@ load2(ImlibImage * im, int load_data) gmask = SWAP_LE_32(bih.bih.mask_g); bmask = SWAP_LE_32(bih.bih.mask_b); amask = SWAP_LE_32(bih.bih.mask_a); - if (amask) - SET_FLAG(im->flags, F_HAS_ALPHA); } } else @@ -260,6 +256,8 @@ load2(ImlibImage * im, int load_data) goto quit; } + UPDATE_FLAG(im->flags, F_HAS_ALPHA, amask); + imgsize = size - bfh_offset; D("w=%3d h=%3d bitcount=%d comp=%d imgsize=%d\n", w, h, bitcount, comp, imgsize); diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c index cc8baa7..7002417 100644 --- a/src/modules/loaders/loader_gif.c +++ b/src/modules/loaders/loader_gif.c @@ -104,10 +104,7 @@ load2(ImlibImage * im, int load_data) } while (rec != TERMINATE_RECORD_TYPE); - if (transp >= 0) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, transp >= 0); if (!rows) goto quit; diff --git a/src/modules/loaders/loader_lbm.c b/src/modules/loaders/loader_lbm.c index 752b344..ae96d38 100644 --- a/src/modules/loaders/loader_lbm.c +++ b/src/modules/loaders/loader_lbm.c @@ -486,10 +486,7 @@ load2(ImlibImage * im, int load_data) ilbm.mask = ilbm.bmhd.data[9]; - if (ilbm.mask || ilbm.depth == 32) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, ilbm.mask || ilbm.depth == 32); env = getenv("IMLIB2_LBM_NOMASK"); if (env diff --git a/src/modules/loaders/loader_png.c b/src/modules/loaders/loader_png.c index d8fd3a4..de9d103 100644 --- a/src/modules/loaders/loader_png.c +++ b/src/modules/loaders/loader_png.c @@ -82,10 +82,7 @@ load2(ImlibImage * im, int load_data) hasa = 1; if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) hasa = 1; - if (hasa) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, hasa); if (!load_data) { diff --git a/src/modules/loaders/loader_pnm.c b/src/modules/loaders/loader_pnm.c index b78228a..8dab889 100644 --- a/src/modules/loaders/loader_pnm.c +++ b/src/modules/loaders/loader_pnm.c @@ -168,10 +168,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(w, h)) goto quit; - if (p == '8') - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, p == '8'); if (!load_data) { diff --git a/src/modules/loaders/loader_tga.c b/src/modules/loaders/loader_tga.c index 6780598..c74d17f 100644 --- a/src/modules/loaders/loader_tga.c +++ b/src/modules/loaders/loader_tga.c @@ -284,10 +284,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - if (hasa) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, hasa); if (!load_data) { diff --git a/src/modules/loaders/loader_tiff.c b/src/modules/loaders/loader_tiff.c index fa0e745..0b25ca0 100644 --- a/src/modules/loaders/loader_tiff.c +++ b/src/modules/loaders/loader_tiff.c @@ -311,10 +311,8 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - if (rgba_image.rgba.alpha != EXTRASAMPLE_UNSPECIFIED) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, + rgba_image.rgba.alpha != EXTRASAMPLE_UNSPECIFIED); if (!load_data) { diff --git a/src/modules/loaders/loader_webp.c b/src/modules/loaders/loader_webp.c index 12986dc..d8a0b30 100644 --- a/src/modules/loaders/loader_webp.c +++ b/src/modules/loaders/loader_webp.c @@ -59,10 +59,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - if (features.has_alpha == 0) - UNSET_FLAG(im->flags, F_HAS_ALPHA); - else - SET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, features.has_alpha); if (!load_data) { diff --git a/src/modules/loaders/loader_xpm.c b/src/modules/loaders/loader_xpm.c index d58de83..ccadf7b 100644 --- a/src/modules/loaders/loader_xpm.c +++ b/src/modules/loaders/loader_xpm.c @@ -360,10 +360,7 @@ load2(ImlibImage * im, int load_data) qsort(cmap, ncolors, sizeof(cmap_t), xpm_cmap_sort); context++; - if (transp >= 0) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + UPDATE_FLAG(im->flags, F_HAS_ALPHA, transp >= 0); if (!load_data) { --
