kwo pushed a commit to branch master. http://git.enlightenment.org/legacy/imlib2.git/commit/?id=fb4fb24e44ba7a117bd10f9fcd5d955cc7b1eedd
commit fb4fb24e44ba7a117bd10f9fcd5d955cc7b1eedd Author: Kim Woelders <[email protected]> Date: Fri Feb 25 06:22:36 2022 +0100 Refactor image flags stuff For improved grepability. --- src/lib/api.c | 36 ++++++++++++++++++------------------ src/lib/blend.c | 10 +++++----- src/lib/ellipse.c | 12 ++++++------ src/lib/font_draw.c | 8 +++++--- src/lib/grad.c | 4 ++-- src/lib/image.c | 22 +++++++++++----------- src/lib/image.h | 16 +++++----------- src/lib/line.c | 12 +++++++----- src/lib/polygon.c | 12 ++++++------ src/lib/rectangle.c | 8 ++++---- src/lib/x11_draw.c | 2 +- src/lib/x11_pixmap.c | 3 ++- src/lib/x11_rend.c | 6 +++--- src/modules/loaders/loader_argb.c | 4 ++-- src/modules/loaders/loader_bmp.c | 6 +++--- src/modules/loaders/loader_ff.c | 2 +- src/modules/loaders/loader_gif.c | 2 +- src/modules/loaders/loader_heif.c | 5 +---- src/modules/loaders/loader_ico.c | 3 ++- src/modules/loaders/loader_jpeg.c | 4 ++-- src/modules/loaders/loader_lbm.c | 4 ++-- src/modules/loaders/loader_png.c | 4 ++-- src/modules/loaders/loader_pnm.c | 4 ++-- src/modules/loaders/loader_svg.c | 2 +- src/modules/loaders/loader_tga.c | 12 ++++++------ src/modules/loaders/loader_tiff.c | 6 +++--- src/modules/loaders/loader_webp.c | 2 +- src/modules/loaders/loader_xbm.c | 2 +- src/modules/loaders/loader_xpm.c | 2 +- 29 files changed, 106 insertions(+), 109 deletions(-) diff --git a/src/lib/api.c b/src/lib/api.c index 23b8143..4f78304 100644 --- a/src/lib/api.c +++ b/src/lib/api.c @@ -1393,7 +1393,7 @@ imlib_free_image_and_decache(void) CHECK_PARAM_POINTER("image", ctx->image); CAST_IMAGE(im, ctx->image); - SET_FLAG(im->flags, F_INVALID); + IM_FLAG_SET(im, F_INVALID); __imlib_FreeImage(im); ctx->image = NULL; } @@ -1530,7 +1530,7 @@ imlib_image_has_alpha(void) CHECK_PARAM_POINTER_RETURN("image", ctx->image, 0); CAST_IMAGE(im, ctx->image); - if (IMAGE_HAS_ALPHA(im)) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) return 1; return 0; } @@ -1551,7 +1551,7 @@ imlib_image_set_changes_on_disk(void) CHECK_PARAM_POINTER("image", ctx->image); CAST_IMAGE(im, ctx->image); - SET_FLAG(im->flags, F_ALWAYS_CHECK_DISK); + IM_FLAG_SET(im, F_ALWAYS_CHECK_DISK); } /** @@ -1623,7 +1623,7 @@ imlib_image_set_format(const char *format) CAST_IMAGE(im, ctx->image); free(im->format); im->format = (format) ? strdup(format) : NULL; - if (!(im->flags & F_FORMAT_IRRELEVANT)) + if (!IM_FLAG_ISSET(im, F_FORMAT_IRRELEVANT)) { __imlib_DirtyImage(im); } @@ -1643,7 +1643,7 @@ imlib_image_set_irrelevant_format(char irrelevant) CHECK_PARAM_POINTER("image", ctx->image); CAST_IMAGE(im, ctx->image); - UPDATE_FLAG(im->flags, F_FORMAT_IRRELEVANT, irrelevant); + IM_FLAG_UPDATE(im, F_FORMAT_IRRELEVANT, irrelevant); } /** @@ -1660,7 +1660,7 @@ imlib_image_set_irrelevant_border(char irrelevant) CHECK_PARAM_POINTER("image", ctx->image); CAST_IMAGE(im, ctx->image); - UPDATE_FLAG(im->flags, F_BORDER_IRRELEVANT, irrelevant); + IM_FLAG_UPDATE(im, F_BORDER_IRRELEVANT, irrelevant); } /** @@ -1678,7 +1678,7 @@ imlib_image_set_irrelevant_alpha(char irrelevant) CHECK_PARAM_POINTER("image", ctx->image); CAST_IMAGE(im, ctx->image); - UPDATE_FLAG(im->flags, F_ALPHA_IRRELEVANT, irrelevant); + IM_FLAG_UPDATE(im, F_ALPHA_IRRELEVANT, irrelevant); } /** @@ -1710,7 +1710,7 @@ imlib_image_set_has_alpha(char has_alpha) CHECK_PARAM_POINTER("image", ctx->image); CAST_IMAGE(im, ctx->image); - UPDATE_FLAG(im->flags, F_HAS_ALPHA, has_alpha); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, has_alpha); } #ifdef BUILD_X11 @@ -1989,7 +1989,7 @@ imlib_create_image_using_data(int width, int height, DATA32 * data) return NULL; im = __imlib_CreateImage(width, height, data); if (im) - SET_FLAG(im->flags, F_DONT_FREE_DATA); + IM_FLAG_SET(im, F_DONT_FREE_DATA); return (Imlib_Image) im; } @@ -2102,7 +2102,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)) { - UPDATE_FLAG(im->flags, F_HAS_ALPHA, domask); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, domask); } else { @@ -2196,7 +2196,7 @@ imlib_create_scaled_image_from_drawable(Pixmap mask, int source_x, source_width, source_height, &domask, need_to_grab_x); - UPDATE_FLAG(im->flags, F_HAS_ALPHA, domask); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, domask); return (Imlib_Image) im; } @@ -2322,7 +2322,7 @@ imlib_clone_image(void) } memcpy(im->data, im_old->data, im->w * im->h * sizeof(DATA32)); im->flags = im_old->flags; - SET_FLAG(im->flags, F_UNCACHEABLE); + IM_FLAG_SET(im, F_UNCACHEABLE); im->moddate = im_old->moddate; im->border = im_old->border; im->loader = im_old->loader; @@ -2363,9 +2363,9 @@ imlib_create_cropped_image(int x, int y, int width, int height) __imlib_FreeImage(im); return NULL; } - if (IMAGE_HAS_ALPHA(im_old)) + if (IM_FLAG_ISSET(im_old, F_HAS_ALPHA)) { - SET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_SET(im, F_HAS_ALPHA); __imlib_BlendImageToImage(im_old, im, 0, 0, 1, x, y, abs(width), abs(height), 0, 0, width, height, NULL, (ImlibOp) IMLIB_OP_COPY, @@ -2419,9 +2419,9 @@ imlib_create_cropped_scaled_image(int source_x, int source_y, __imlib_FreeImage(im); return NULL; } - if (IMAGE_HAS_ALPHA(im_old)) + if (IM_FLAG_ISSET(im_old, F_HAS_ALPHA)) { - SET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_SET(im, F_HAS_ALPHA); __imlib_BlendImageToImage(im_old, im, ctx->anti_alias, 0, 1, source_x, source_y, source_width, source_height, 0, 0, destination_width, destination_height, NULL, @@ -4427,7 +4427,7 @@ imlib_create_rotated_image(double angle) __imlib_RotateSample(im_old->data, im->data, im_old->w, im_old->w, im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, dx); } - SET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_SET(im, F_HAS_ALPHA); return (Imlib_Image) im; } @@ -4486,7 +4486,7 @@ imlib_rotate_image_from_buffer(double angle, Imlib_Image source_image) __imlib_RotateSample(im_old->data, im->data, im_old->w, im_old->w, im_old->h, im->w, sz, sz, x, y, dx, dy, -dy, dx); } - SET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_SET(im, F_HAS_ALPHA); return; } diff --git a/src/lib/blend.c b/src/lib/blend.c index 3442090..6e56a16 100644 --- a/src/lib/blend.c +++ b/src/lib/blend.c @@ -1807,9 +1807,9 @@ __imlib_BlendImageToImage(ImlibImage * im_src, ImlibImage * im_dst, if ((ssw == ddw) && (ssh == ddh)) { - if (!IMAGE_HAS_ALPHA(im_dst)) + if (!IM_FLAG_ISSET(im_dst, F_HAS_ALPHA)) merge_alpha = 0; - if (!IMAGE_HAS_ALPHA(im_src)) + if (!IM_FLAG_ISSET(im_src, F_HAS_ALPHA)) { rgb_src = 1; if (merge_alpha) @@ -1925,9 +1925,9 @@ __imlib_BlendImageToImage(ImlibImage * im_src, ImlibImage * im_dst, } /* setup h */ h = dh; - if (!IMAGE_HAS_ALPHA(im_dst)) + if (!IM_FLAG_ISSET(im_dst, F_HAS_ALPHA)) merge_alpha = 0; - if (!IMAGE_HAS_ALPHA(im_src)) + if (!IM_FLAG_ISSET(im_src, F_HAS_ALPHA)) { rgb_src = 1; if (merge_alpha) @@ -1942,7 +1942,7 @@ __imlib_BlendImageToImage(ImlibImage * im_src, ImlibImage * im_dst, /* scale the imagedata for this LINESIZE lines chunk of image */ if (aa) { - if (IMAGE_HAS_ALPHA(im_src)) + if (IM_FLAG_ISSET(im_src, F_HAS_ALPHA)) __imlib_ScaleAARGBA(scaleinfo, buf, dxx, dyy + y, 0, 0, dw, hh, dw, im_src->w); else diff --git a/src/lib/ellipse.c b/src/lib/ellipse.c index b7f21dd..5d70984 100644 --- a/src/lib/ellipse.c +++ b/src/lib/ellipse.c @@ -728,17 +728,17 @@ __imlib_Ellipse_DrawToImage(int xc, int yc, int a, int b, DATA32 color, if ((w < 1) || (h < 1)) return; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); if (anti_alias) __imlib_Ellipse_DrawToData_AA(xc, yc, a, b, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); else __imlib_Ellipse_DrawToData(xc, yc, a, b, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); } void @@ -796,15 +796,15 @@ __imlib_Ellipse_FillToImage(int xc, int yc, int a, int b, DATA32 color, if ((w < 1) || (h < 1)) return; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); if (anti_alias) __imlib_Ellipse_FillToData_AA(xc, yc, a, b, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); else __imlib_Ellipse_FillToData(xc, yc, a, b, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); } diff --git a/src/lib/font_draw.c b/src/lib/font_draw.c index b344447..53030c1 100644 --- a/src/lib/font_draw.c +++ b/src/lib/font_draw.c @@ -93,7 +93,7 @@ __imlib_render_str(ImlibImage * im, ImlibFont * fn, int drx, int dry, free(data); return; } - SET_FLAG(im2->flags, F_HAS_ALPHA); + IM_FLAG_SET(im2, F_HAS_ALPHA); ascent = __imlib_font_max_ascent_get(fn); @@ -128,7 +128,8 @@ __imlib_render_str(ImlibImage * im, ImlibFont * fn, int drx, int dry, } if (angle == 0.0) { - __imlib_BlendImageToImage(im2, im, 0, 1, IMAGE_HAS_ALPHA(im), 0, 0, + __imlib_BlendImageToImage(im2, im, 0, 1, + IM_FLAG_ISSET(im, F_HAS_ALPHA), 0, 0, im2->w, im2->h, drx, dry, im2->w, im2->h, NULL, op, clx, cly, clw, clh); } @@ -150,7 +151,8 @@ __imlib_render_str(ImlibImage * im, ImlibFont * fn, int drx, int dry, xx -= ca * im2->w; yy -= ca * im2->h; } - __imlib_BlendImageToImageSkewed(im2, im, 1, 1, IMAGE_HAS_ALPHA(im), 0, + __imlib_BlendImageToImageSkewed(im2, im, 1, 1, + IM_FLAG_ISSET(im, F_HAS_ALPHA), 0, 0, im2->w, im2->h, xx, yy, (w * ca), (w * sa), 0, 0, NULL, op, clx, cly, clw, clh); diff --git a/src/lib/grad.c b/src/lib/grad.c index b3df3a3..967bdd2 100644 --- a/src/lib/grad.c +++ b/src/lib/grad.c @@ -338,7 +338,7 @@ __imlib_DrawGradient(ImlibImage * im, int x, int y, int w, int h, switch (op) { case OP_COPY: - if (IMAGE_HAS_ALPHA(im)) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) { __imlib_build_pow_lut(); for (yy = 0; yy < h; yy++) @@ -540,7 +540,7 @@ __imlib_DrawHsvaGradient(ImlibImage * im, int x, int y, int w, int h, switch (op) { case OP_COPY: - if (IMAGE_HAS_ALPHA(im)) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) { __imlib_build_pow_lut(); for (yy = 0; yy < h; yy++) diff --git a/src/lib/image.c b/src/lib/image.c index b5e1b91..906fbfa 100644 --- a/src/lib/image.c +++ b/src/lib/image.c @@ -105,7 +105,7 @@ __imlib_ConsumeImage(ImlibImage * im) free(im->real_file); free(im->file); free(im->key); - if ((IMAGE_FREE_DATA(im)) && (im->data)) + if (im->data && !IM_FLAG_ISSET(im, F_DONT_FREE_DATA)) __imlib_FreeData(im); free(im->format); @@ -122,7 +122,7 @@ __imlib_FindCachedImage(const char *file, int frame) for (im = images, im_prev = NULL; im; im_prev = im, im = im->next) { /* if the filenames match and it's valid */ - if (!strcmp(file, im->file) && IMAGE_IS_VALID(im) && + if (!strcmp(file, im->file) && !IM_FLAG_ISSET(im, F_INVALID) && frame == im->frame_num) { /* move the image to the head of the image list */ @@ -186,7 +186,7 @@ __imlib_CurrentCacheSize(void) /* mayaswell clean out stuff thats invalid that we dont need anymore */ if (im->references == 0) { - if (!(IMAGE_IS_VALID(im))) + if (IM_FLAG_ISSET(im, F_INVALID)) { __imlib_RemoveImageFromCache(im); __imlib_ConsumeImage(im); @@ -217,7 +217,7 @@ __imlib_CleanupImageCache(void) for (im = images; im; im = im_next) { im_next = im->next; - if ((im->references <= 0) && (!(IMAGE_IS_VALID(im)))) + if (im->references <= 0 && IM_FLAG_ISSET(im, F_INVALID)) { __imlib_RemoveImageFromCache(im); __imlib_ConsumeImage(im); @@ -310,7 +310,7 @@ __imlib_CreateImage(int w, int h, DATA32 * data) im->h = h; im->data = data; im->references = 1; - SET_FLAG(im->flags, F_UNCACHEABLE); + IM_FLAG_SET(im, F_UNCACHEABLE); return im; } @@ -452,9 +452,9 @@ __imlib_LoadImage(const char *file, ImlibLoadArgs * ila) /* if we found a cached image and we should always check that it is */ /* accurate to the disk conents if they changed since we last loaded */ /* and that it is still a valid image */ - if ((im) && (IMAGE_IS_VALID(im))) + if (im && !IM_FLAG_ISSET(im, F_INVALID)) { - if (IMAGE_ALWAYS_CHECK_DISK(im)) + if (IM_FLAG_ISSET(im, F_ALWAYS_CHECK_DISK)) { time_t current_modified_time; @@ -465,7 +465,7 @@ __imlib_LoadImage(const char *file, ImlibLoadArgs * ila) if (current_modified_time != im->moddate) { /* invalidate image */ - SET_FLAG(im->flags, F_INVALID); + IM_FLAG_SET(im, F_INVALID); } else { @@ -649,7 +649,7 @@ __imlib_LoadImage(const char *file, ImlibLoadArgs * ila) if (!ila->nocache) __imlib_AddImageToCache(im); else - SET_FLAG(im->flags, F_UNCACHEABLE); + IM_FLAG_SET(im, F_UNCACHEABLE); return im; } @@ -728,7 +728,7 @@ __imlib_FreeImage(ImlibImage * im) /* reduce a reference from the count */ im->references--; /* if its uncachchable ... */ - if (IMAGE_IS_UNCACHEABLE(im)) + if (IM_FLAG_ISSET(im, F_UNCACHEABLE)) { /* and we're down to no references for the image then free it */ if (im->references == 0) @@ -744,7 +744,7 @@ __imlib_FreeImage(ImlibImage * im) void __imlib_DirtyImage(ImlibImage * im) { - SET_FLAG(im->flags, F_INVALID); + IM_FLAG_SET(im, F_INVALID); #ifdef BUILD_X11 /* and dirty all pixmaps generated from it */ __imlib_DirtyPixmapsForImage(im); diff --git a/src/lib/image.h b/src/lib/image.h index 393c37b..a36bbac 100644 --- a/src/lib/image.h +++ b/src/lib/image.h @@ -132,17 +132,11 @@ void __imlib_SetCacheSize(int size); int __imlib_GetCacheSize(void); int __imlib_CurrentCacheSize(void); -#define IMAGE_HAS_ALPHA(im) ((im)->flags & F_HAS_ALPHA) -#define IMAGE_IS_UNLOADED(im) ((im)->flags & F_UNLOADED) -#define IMAGE_IS_UNCACHEABLE(im) ((im)->flags & F_UNCACHEABLE) -#define IMAGE_ALWAYS_CHECK_DISK(im) ((im)->flags & F_ALWAYS_CHECK_DISK) -#define IMAGE_IS_VALID(im) (!((im)->flags & F_INVALID)) -#define IMAGE_FREE_DATA(im) (!((im)->flags & F_DONT_FREE_DATA)) - -#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 IM_FLAG_SET(im, f) ((im)->flags |= (f)) +#define IM_FLAG_CLR(im, f) ((im)->flags &= ~(f)) +#define IM_FLAG_UPDATE(im, f, set) \ + do { if (set) IM_FLAG_SET(im, f); else IM_FLAG_CLR(im, f); } while(0) +#define IM_FLAG_ISSET(im, f) (((im)->flags & (f)) != 0) #define LOAD_BREAK 2 /* Break signaled by progress callback */ #define LOAD_SUCCESS 1 /* Image loaded successfully */ diff --git a/src/lib/line.c b/src/lib/line.c index 930a230..1405f55 100644 --- a/src/lib/line.c +++ b/src/lib/line.c @@ -42,10 +42,11 @@ __imlib_Point_DrawToImage(int x, int y, DATA32 color, if (A_VAL(&color) == 0xff) blend = 0; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); - pfunc = __imlib_GetPointDrawFunction(op, IMAGE_HAS_ALPHA(im), blend); + pfunc = __imlib_GetPointDrawFunction(op, IM_FLAG_ISSET(im, F_HAS_ALPHA), + blend); if (pfunc) pfunc(color, im->data + (im->w * y) + x); if (make_updates) @@ -695,19 +696,20 @@ __imlib_Line_DrawToImage(int x0, int y0, int x1, int y1, DATA32 color, if ((y0 >= (cly + clh)) && (y1 >= (cly + clh))) return NULL; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); if (anti_alias) drew = __imlib_Line_DrawToData_AA(x0, y0, x1, y1, color, im->data, im->w, clx, cly, clw, clh, &cl_x0, &cl_y0, &cl_x1, &cl_y1, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), + blend); else drew = __imlib_Line_DrawToData(x0, y0, x1, y1, color, im->data, im->w, clx, cly, clw, clh, &cl_x0, &cl_y0, &cl_x1, &cl_y1, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); if (drew && make_updates) { diff --git a/src/lib/polygon.c b/src/lib/polygon.c index f508fba..918fcdf 100644 --- a/src/lib/polygon.c +++ b/src/lib/polygon.c @@ -1074,19 +1074,19 @@ __imlib_Polygon_DrawToImage(ImlibPoly * poly, char close, DATA32 color, if ((clw < 1) || (clh < 1)) return; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); if (anti_alias) __imlib_Polygon_DrawToData_AA(poly, close, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); else __imlib_Polygon_DrawToData(poly, close, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); } /** Polygon Filling **/ @@ -1829,17 +1829,17 @@ __imlib_Polygon_FillToImage(ImlibPoly * poly, DATA32 color, if ((clw < 1) || (clh < 1)) return; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); if (anti_alias) __imlib_Polygon_FillToData_AA(poly, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); else __imlib_Polygon_FillToData(poly, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); } diff --git a/src/lib/rectangle.c b/src/lib/rectangle.c index 3ffd083..9029389 100644 --- a/src/lib/rectangle.c +++ b/src/lib/rectangle.c @@ -145,12 +145,12 @@ __imlib_Rectangle_DrawToImage(int x, int y, int w, int h, DATA32 color, if ((clw < 1) || (clh < 1)) return; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); __imlib_Rectangle_DrawToData(x, y, w, h, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); } void @@ -185,10 +185,10 @@ __imlib_Rectangle_FillToImage(int x, int y, int w, int h, DATA32 color, if ((clw < 1) || (clh < 1)) return; - if (blend && IMAGE_HAS_ALPHA(im)) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_build_pow_lut(); __imlib_Rectangle_FillToData(x, y, w, h, color, im->data, im->w, clx, cly, clw, clh, - op, IMAGE_HAS_ALPHA(im), blend); + op, IM_FLAG_ISSET(im, F_HAS_ALPHA), blend); } diff --git a/src/lib/x11_draw.c b/src/lib/x11_draw.c index 340f4ff..bd49160 100644 --- a/src/lib/x11_draw.c +++ b/src/lib/x11_draw.c @@ -49,7 +49,7 @@ __imlib_CreatePixmapsForImage(Display * d, Drawable w, Visual * v, int depth, } if (m) { - if (IMAGE_HAS_ALPHA(im)) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) mask = XCreatePixmap(d, w, dw, dh, 1); *m = mask; } diff --git a/src/lib/x11_pixmap.c b/src/lib/x11_pixmap.c index e8147ed..162ce04 100644 --- a/src/lib/x11_pixmap.c +++ b/src/lib/x11_pixmap.c @@ -272,7 +272,8 @@ __imlib_PixmapCacheSize(void) if (ip->references == 0) { /* if the image is invalid */ - if ((ip->dirty) || ((ip->image) && (!(IMAGE_IS_VALID(ip->image))))) + if (ip->dirty || + (ip->image && IM_FLAG_ISSET(ip->image, F_INVALID))) { __imlib_RemoveImagePixmapFromCache(ip); __imlib_ConsumeImagePixmap(ip); diff --git a/src/lib/x11_rend.c b/src/lib/x11_rend.c index 22ea2c8..e29bc50 100644 --- a/src/lib/x11_rend.c +++ b/src/lib/x11_rend.c @@ -266,7 +266,7 @@ __imlib_RenderImage(Display * d, ImlibImage * im, ImlibBlendFunction blender = NULL; blender = __imlib_GetBlendFunction(op, 1, 0, - (!(im->flags & F_HAS_ALPHA)), NULL); + !IM_FLAG_ISSET(im, F_HAS_ALPHA), NULL); /* dont do anything if we have a 0 widht or height image to render */ if ((dw == 0) || (dh == 0)) @@ -314,7 +314,7 @@ __imlib_RenderImage(Display * d, ImlibImage * im, dh = abs(dh); ct = __imlib_GetContext(d, v, cm, depth); __imlib_RGBASetupContext(ct); - if ((blend) && (IMAGE_HAS_ALPHA(im))) + if (blend && IM_FLAG_ISSET(im, F_HAS_ALPHA)) { back = malloc(dw * dh * sizeof(DATA32)); if (!__imlib_GrabDrawableToRGBA @@ -379,7 +379,7 @@ __imlib_RenderImage(Display * d, ImlibImage * im, /* scale the imagedata for this LINESIZE lines chunk of image data */ if (antialias) { - if (IMAGE_HAS_ALPHA(im)) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) __imlib_ScaleAARGBA(scaleinfo, buf, ((sx * dw) / sw), ((sy * dh) / sh) + y, 0, 0, dw, hh, dw, im->w); diff --git a/src/modules/loaders/loader_argb.c b/src/modules/loaders/loader_argb.c index 234ac80..e8e0bf0 100644 --- a/src/modules/loaders/loader_argb.c +++ b/src/modules/loaders/loader_argb.c @@ -75,7 +75,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, alpha); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, alpha); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); @@ -129,7 +129,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) if (!f) return LOAD_FAIL; - if (im->flags & F_HAS_ALPHA) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) alpha = 1; fprintf(f, "ARGB %i %i %i\n", im->w, im->h, alpha); diff --git a/src/modules/loaders/loader_bmp.c b/src/modules/loaders/loader_bmp.c index 9afdec6..20c1d49 100644 --- a/src/modules/loaders/loader_bmp.c +++ b/src/modules/loaders/loader_bmp.c @@ -258,7 +258,7 @@ load2(ImlibImage * im, int load_data) goto quit; } - UPDATE_FLAG(im->flags, F_HAS_ALPHA, amask); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, amask); imgsize = size - bfh_offset; D("w=%3d h=%3d bitcount=%d comp=%d imgsize=%d\n", @@ -687,7 +687,7 @@ load2(ImlibImage * im, int load_data) { pixel = *(unsigned short *)buffer_ptr; - if (im->flags & F_HAS_ALPHA) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) a = SCALE(a, pixel); else a = 0xff; @@ -736,7 +736,7 @@ load2(ImlibImage * im, int load_data) { pixel = *(unsigned int *)buffer_ptr; - if (im->flags & F_HAS_ALPHA) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) a = SCALE(a, pixel); else a = 0xff; diff --git a/src/modules/loaders/loader_ff.c b/src/modules/loaders/loader_ff.c index d9a9e52..22693ae 100644 --- a/src/modules/loaders/loader_ff.c +++ b/src/modules/loaders/loader_ff.c @@ -43,7 +43,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - SET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_SET(im, F_HAS_ALPHA); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c index 6bd31ff..72d849d 100644 --- a/src/modules/loaders/loader_gif.c +++ b/src/modules/loaders/loader_gif.c @@ -215,7 +215,7 @@ load2(ImlibImage * im, int load_data) } } - UPDATE_FLAG(im->flags, F_HAS_ALPHA, transp >= 0); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, transp >= 0); im->frame_count = fcount; multiframe = im->frame_count > 1; if (multiframe) diff --git a/src/modules/loaders/loader_heif.c b/src/modules/loaders/loader_heif.c index 89b03ae..53434ab 100644 --- a/src/modules/loaders/loader_heif.c +++ b/src/modules/loaders/loader_heif.c @@ -84,10 +84,7 @@ load2(ImlibImage * im, int load_data) goto quit; img_has_alpha = heif_image_handle_has_alpha_channel(img_handle); - if (img_has_alpha) - SET_FLAG(im->flags, F_HAS_ALPHA); - else - UNSET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, img_has_alpha); if (!load_data) { diff --git a/src/modules/loaders/loader_ico.c b/src/modules/loaders/loader_ico.c index 66c3643..dfbb5ce 100644 --- a/src/modules/loaders/loader_ico.c +++ b/src/modules/loaders/loader_ico.c @@ -139,6 +139,7 @@ ico_read_icon(ico_t * ico, int ino) { ie_t *ie; unsigned int size; + #ifdef WORDS_BIGENDIAN unsigned int nr; #endif @@ -307,7 +308,7 @@ ico_load(ico_t * ico, ImlibImage * im, int load_data) im->w = w; im->h = h; - SET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_SET(im, F_HAS_ALPHA); if (!load_data) return 1; diff --git a/src/modules/loaders/loader_jpeg.c b/src/modules/loaders/loader_jpeg.c index fa5340a..3c513c2 100644 --- a/src/modules/loaders/loader_jpeg.c +++ b/src/modules/loaders/loader_jpeg.c @@ -115,7 +115,7 @@ load2(ImlibImage * im, int load_data) im->h = h; } - UNSET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_CLR(im, F_HAS_ALPHA); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); @@ -322,7 +322,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) /* progressive */ if ((tag = __imlib_GetTag(im, "interlacing")) && tag->val) - jpeg_simple_progression(&jcs); + jpeg_simple_progression(&jcs); jpeg_start_compress(&jcs, TRUE); /* get the start pointer */ diff --git a/src/modules/loaders/loader_lbm.c b/src/modules/loaders/loader_lbm.c index bdff90f..4446ad9 100644 --- a/src/modules/loaders/loader_lbm.c +++ b/src/modules/loaders/loader_lbm.c @@ -489,13 +489,13 @@ load2(ImlibImage * im, int load_data) ilbm.mask = ilbm.bmhd.data[9]; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, ilbm.mask || ilbm.depth == 32); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, ilbm.mask || ilbm.depth == 32); env = getenv("IMLIB2_LBM_NOMASK"); if (env && (!strcmp(env, "true") || !strcmp(env, "1") || !strcmp(env, "yes") || !strcmp(env, "on"))) - UNSET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_CLR(im, F_HAS_ALPHA); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); diff --git a/src/modules/loaders/loader_png.c b/src/modules/loaders/loader_png.c index a395972..73874d0 100644 --- a/src/modules/loaders/loader_png.c +++ b/src/modules/loaders/loader_png.c @@ -154,7 +154,7 @@ info_callback(png_struct * png_ptr, png_info * info_ptr) hasa = 1; if (color_type == PNG_COLOR_TYPE_GRAY_ALPHA) hasa = 1; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, hasa); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, hasa); if (!ctx->load_data) QUIT_WITH_RC(LOAD_SUCCESS); @@ -617,7 +617,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) } png_init_io(png_ptr, f); - has_alpha = IMAGE_HAS_ALPHA(im); + has_alpha = IM_FLAG_ISSET(im, F_HAS_ALPHA); if (has_alpha) { png_set_IHDR(png_ptr, info_ptr, im->w, im->h, 8, diff --git a/src/modules/loaders/loader_pnm.c b/src/modules/loaders/loader_pnm.c index e506aab..2d3312b 100644 --- a/src/modules/loaders/loader_pnm.c +++ b/src/modules/loaders/loader_pnm.c @@ -189,7 +189,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(w, h)) goto quit; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, p == '8'); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, p == '8'); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); @@ -493,7 +493,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) ptr = im->data; /* if the image has a useful alpha channel */ - if (im->flags & F_HAS_ALPHA) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) { fprintf(f, "P8\n" "# PNM File written by Imlib2\n" "%i %i\n" "255\n", im->w, im->h); diff --git a/src/modules/loaders/loader_svg.c b/src/modules/loaders/loader_svg.c index afae530..4abebf4 100644 --- a/src/modules/loaders/loader_svg.c +++ b/src/modules/loaders/loader_svg.c @@ -153,7 +153,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, 1); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, 1); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); diff --git a/src/modules/loaders/loader_tga.c b/src/modules/loaders/loader_tga.c index 29bb0f8..0912e38 100644 --- a/src/modules/loaders/loader_tga.c +++ b/src/modules/loaders/loader_tga.c @@ -189,7 +189,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, hasa); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, hasa); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); @@ -537,15 +537,15 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) header.heightHi = im->h >> 8; /* total number of bits per pixel */ - header.bpp = (im->flags & F_HAS_ALPHA) ? 32 : 24; + header.bpp = IM_FLAG_ISSET(im, F_HAS_ALPHA) ? 32 : 24; /* number of extra (alpha) bits per pixel */ - header.descriptor = (im->flags & F_HAS_ALPHA) ? 8 : 0; + header.descriptor = IM_FLAG_ISSET(im, F_HAS_ALPHA) ? 8 : 0; /* top-to-bottom storage */ header.descriptor |= TGA_DESC_VERTICAL; /* allocate a buffer to receive the BGRA-swapped pixel values */ - buf = malloc(im->w * im->h * ((im->flags & F_HAS_ALPHA) ? 4 : 3)); + buf = malloc(im->w * im->h * (IM_FLAG_ISSET(im, F_HAS_ALPHA) ? 4 : 3)); if (!buf) goto quit; @@ -566,7 +566,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) *bufptr++ = PIXEL_B(pixel); *bufptr++ = PIXEL_G(pixel); *bufptr++ = PIXEL_R(pixel); - if (im->flags & F_HAS_ALPHA) + if (IM_FLAG_ISSET(im, F_HAS_ALPHA)) *bufptr++ = PIXEL_A(pixel); } /* end for (each pixel in row) */ @@ -579,7 +579,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) fwrite(&header, sizeof(header), 1, f); /* write the image data */ - fwrite(buf, 1, im->w * im->h * ((im->flags & F_HAS_ALPHA) ? 4 : 3), f); + fwrite(buf, 1, im->w * im->h * (IM_FLAG_ISSET(im, F_HAS_ALPHA) ? 4 : 3), f); rc = LOAD_SUCCESS; diff --git a/src/modules/loaders/loader_tiff.c b/src/modules/loaders/loader_tiff.c index cd99f99..95ea702 100644 --- a/src/modules/loaders/loader_tiff.c +++ b/src/modules/loaders/loader_tiff.c @@ -313,8 +313,8 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, - rgba_image.rgba.alpha != EXTRASAMPLE_UNSPECIFIED); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, + rgba_image.rgba.alpha != EXTRASAMPLE_UNSPECIFIED); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); @@ -374,7 +374,7 @@ save(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity) double alpha_factor; int x, y; uint8_t r, g, b, a = 0; - int has_alpha = IMAGE_HAS_ALPHA(im); + int has_alpha = IM_FLAG_ISSET(im, F_HAS_ALPHA); int i; /* By default uses patent-free use COMPRESSION_DEFLATE, diff --git a/src/modules/loaders/loader_webp.c b/src/modules/loaders/loader_webp.c index f2286d1..f19c2e1 100644 --- a/src/modules/loaders/loader_webp.c +++ b/src/modules/loaders/loader_webp.c @@ -76,7 +76,7 @@ load2(ImlibImage * im, int load_data) if (!IMAGE_DIMENSIONS_OK(im->w, im->h)) goto quit; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, iter.has_alpha); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, iter.has_alpha); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); diff --git a/src/modules/loaders/loader_xbm.c b/src/modules/loaders/loader_xbm.c index 74d0a68..62a252c 100644 --- a/src/modules/loaders/loader_xbm.c +++ b/src/modules/loaders/loader_xbm.c @@ -153,7 +153,7 @@ load2(ImlibImage * im, int load_data) if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); - UNSET_FLAG(im->flags, F_HAS_ALPHA); + IM_FLAG_CLR(im, F_HAS_ALPHA); header = 0; diff --git a/src/modules/loaders/loader_xpm.c b/src/modules/loaders/loader_xpm.c index 94a23b3..7a59d0d 100644 --- a/src/modules/loaders/loader_xpm.c +++ b/src/modules/loaders/loader_xpm.c @@ -362,7 +362,7 @@ load2(ImlibImage * im, int load_data) qsort(cmap, ncolors, sizeof(cmap_t), xpm_cmap_sort); context++; - UPDATE_FLAG(im->flags, F_HAS_ALPHA, transp >= 0); + IM_FLAG_UPDATE(im, F_HAS_ALPHA, transp >= 0); if (!load_data) QUIT_WITH_RC(LOAD_SUCCESS); --
