From fdb5e2aa473a83cda9a3ecfab2fa47cdf40ffe65 Mon Sep 17 00:00:00 2001 From: Billy Biggs Date: Sun, 21 Aug 2005 21:04:52 +0000 Subject: [PATCH] Optimize away calls to cairo_paint_with_alpha() if the alpha value given is <= 0. Add a new macro CAIRO_ALPHA_IS_ZERO. --- ChangeLog | 7 +++++++ src/cairo.c | 4 ++++ src/cairoint.h | 1 + 3 files changed, 12 insertions(+) diff --git a/ChangeLog b/ChangeLog index 795c2f954..9bb579af3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2005-08-21 Billy Biggs + + * src/cairo.c: (cairo_paint_with_alpha): Optimize away calls to + cairo_paint_with_alpha() if the alpha value given is <= 0. + + * src/cairoint.h: Add a new macro CAIRO_ALPHA_IS_ZERO. + 2005-08-21 Billy Biggs Fix for bug #4172: diff --git a/src/cairo.c b/src/cairo.c index 6456ebad3..0aa2924fe 100644 --- a/src/cairo.c +++ b/src/cairo.c @@ -1302,6 +1302,10 @@ cairo_paint_with_alpha (cairo_t *cr, return; } + if (CAIRO_ALPHA_IS_ZERO (alpha)) { + return; + } + _cairo_color_init_rgba (&color, 1., 1., 1., alpha); _cairo_pattern_init_solid (&pattern.solid, &color); diff --git a/src/cairoint.h b/src/cairoint.h index c6196bbff..bf769c6bd 100644 --- a/src/cairoint.h +++ b/src/cairoint.h @@ -178,6 +178,7 @@ typedef cairo_fixed_16_16_t cairo_fixed_t; #define CAIRO_MINSHORT SHRT_MIN #define CAIRO_ALPHA_IS_OPAQUE(alpha) ((alpha) >= ((double)0xff00 / (double)0xffff)) +#define CAIRO_ALPHA_IS_ZERO(alpha) ((alpha) <= 0.0) #include "cairo-hash-private.h"