summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/cairo-color.c11
-rwxr-xr-xsrc/cairoint.h3
2 files changed, 9 insertions, 5 deletions
diff --git a/src/cairo-color.c b/src/cairo-color.c
index a3488392..ad6316e1 100644
--- a/src/cairo-color.c
+++ b/src/cairo-color.c
@@ -95,7 +95,8 @@ _cairo_color_init_rgb (cairo_color_t *color,
* then special-casing the result of an input value of 1.0 so that it
* maps to 65535 instead of 65536.
*/
-static inline uint16_t _color_to_short (double d)
+uint16_t
+_cairo_color_double_to_short (double d)
{
uint32_t i;
i = (uint32_t) (d * 65536);
@@ -106,10 +107,10 @@ static inline uint16_t _color_to_short (double d)
static void
_cairo_color_compute_shorts (cairo_color_t *color)
{
- color->red_short = _color_to_short (color->red * color->alpha);
- color->green_short = _color_to_short (color->green * color->alpha);
- color->blue_short = _color_to_short (color->blue * color->alpha);
- color->alpha_short = _color_to_short (color->alpha);
+ color->red_short = _cairo_color_double_to_short (color->red * color->alpha);
+ color->green_short = _cairo_color_double_to_short (color->green * color->alpha);
+ color->blue_short = _cairo_color_double_to_short (color->blue * color->alpha);
+ color->alpha_short = _cairo_color_double_to_short (color->alpha);
}
void
diff --git a/src/cairoint.h b/src/cairoint.h
index 32519509..c31f1dc1 100755
--- a/src/cairoint.h
+++ b/src/cairoint.h
@@ -1589,6 +1589,9 @@ _cairo_stock_color (cairo_stock_t stock);
#define CAIRO_COLOR_BLACK _cairo_stock_color (CAIRO_STOCK_BLACK)
#define CAIRO_COLOR_TRANSPARENT _cairo_stock_color (CAIRO_STOCK_TRANSPARENT)
+cairo_private uint16_t
+_cairo_color_double_to_short (double d);
+
cairo_private void
_cairo_color_init (cairo_color_t *color);