diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2010-12-10 15:18:48 -0500 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2011-01-18 12:42:26 -0500 |
commit | 0f1a5c4a27d34dcf4525dc38fcb48c14f653e828 (patch) | |
tree | 89326c6363c5b3f320cba098938a0ac87d385608 | |
parent | b66cabb88488413c4787845c7da67901dc988ee6 (diff) |
Get rid of the classify methods
They are not used anymore, and the linear gradient is now doing the
optimization in a different way.
-rw-r--r-- | pixman/pixman-image.c | 14 | ||||
-rw-r--r-- | pixman/pixman-linear-gradient.c | 27 | ||||
-rw-r--r-- | pixman/pixman-private.h | 19 | ||||
-rw-r--r-- | pixman/pixman-solid-fill.c | 12 |
4 files changed, 11 insertions, 61 deletions
diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c index 1aa9de15..a72299b3 100644 --- a/pixman/pixman-image.c +++ b/pixman/pixman-image.c @@ -72,7 +72,6 @@ _pixman_image_allocate (void) common->alpha_map = NULL; common->component_alpha = FALSE; common->ref_count = 1; - common->classify = NULL; common->property_changed = NULL; common->client_clip = FALSE; common->destroy_func = NULL; @@ -83,19 +82,6 @@ _pixman_image_allocate (void) return image; } -source_image_class_t -_pixman_image_classify (pixman_image_t *image, - int x, - int y, - int width, - int height) -{ - if (image->common.classify) - return image->common.classify (image, x, y, width, height); - else - return SOURCE_IMAGE_CLASS_UNKNOWN; -} - static void image_property_changed (pixman_image_t *image) { diff --git a/pixman/pixman-linear-gradient.c b/pixman/pixman-linear-gradient.c index 66d37ab9..07303fc0 100644 --- a/pixman/pixman-linear-gradient.c +++ b/pixman/pixman-linear-gradient.c @@ -31,21 +31,18 @@ #include <stdlib.h> #include "pixman-private.h" -static source_image_class_t -linear_gradient_classify (pixman_image_t *image, - int x, - int y, - int width, - int height) +static pixman_bool_t +linear_gradient_is_horizontal (pixman_image_t *image, + int x, + int y, + int width, + int height) { linear_gradient_t *linear = (linear_gradient_t *)image; pixman_vector_t v; pixman_fixed_32_32_t l; pixman_fixed_48_16_t dx, dy; double inc; - source_image_class_t class; - - class = SOURCE_IMAGE_CLASS_UNKNOWN; if (image->common.transform) { @@ -54,7 +51,7 @@ linear_gradient_classify (pixman_image_t *image, image->common.transform->matrix[2][1] != 0 || image->common.transform->matrix[2][2] == 0) { - return class; + return FALSE; } v.vector[0] = image->common.transform->matrix[0][1]; @@ -74,7 +71,7 @@ linear_gradient_classify (pixman_image_t *image, l = dx * dx + dy * dy; if (l == 0) - return class; + return FALSE; /* * compute how much the input of the gradient walked changes @@ -86,9 +83,9 @@ linear_gradient_classify (pixman_image_t *image, /* check that casting to integer would result in 0 */ if (-1 < inc && inc < 1) - class = SOURCE_IMAGE_CLASS_HORIZONTAL; + return TRUE; - return class; + return FALSE; } static uint32_t * @@ -245,8 +242,7 @@ _pixman_linear_gradient_iter_init (pixman_image_t *image, uint8_t *buffer, iter_flags_t flags) { - if (linear_gradient_classify (image, x, y, width, height) == - SOURCE_IMAGE_CLASS_HORIZONTAL) + if (linear_gradient_is_horizontal (image, x, y, width, height)) { if (flags & ITER_NARROW) linear_get_scanline_narrow (iter, NULL); @@ -290,7 +286,6 @@ pixman_image_create_linear_gradient (pixman_point_fixed_t * p1, linear->p2 = *p2; image->type = LINEAR; - image->common.classify = linear_gradient_classify; return image; } diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h index d7c7a62e..c3321e15 100644 --- a/pixman/pixman-private.h +++ b/pixman/pixman-private.h @@ -60,17 +60,6 @@ typedef enum SOLID } image_type_t; -typedef enum -{ - SOURCE_IMAGE_CLASS_UNKNOWN, - SOURCE_IMAGE_CLASS_HORIZONTAL, -} source_image_class_t; - -typedef source_image_class_t (*classify_func_t) (pixman_image_t *image, - int x, - int y, - int width, - int height); typedef void (*property_changed_func_t) (pixman_image_t *image); struct image_common @@ -95,7 +84,6 @@ struct image_common int alpha_origin_x; int alpha_origin_y; pixman_bool_t component_alpha; - classify_func_t classify; property_changed_func_t property_changed; pixman_image_destroy_func_t destroy_func; @@ -249,13 +237,6 @@ _pixman_conical_gradient_iter_init (pixman_image_t *image, int x, int y, int width, int height, uint8_t *buffer, iter_flags_t flags); -source_image_class_t -_pixman_image_classify (pixman_image_t *image, - int x, - int y, - int width, - int height); - pixman_image_t * _pixman_image_allocate (void); diff --git a/pixman/pixman-solid-fill.c b/pixman/pixman-solid-fill.c index a431d744..67681f2c 100644 --- a/pixman/pixman-solid-fill.c +++ b/pixman/pixman-solid-fill.c @@ -26,16 +26,6 @@ #endif #include "pixman-private.h" -static source_image_class_t -solid_fill_classify (pixman_image_t *image, - int x, - int y, - int width, - int height) -{ - return SOURCE_IMAGE_CLASS_HORIZONTAL; -} - void _pixman_solid_fill_iter_init (pixman_image_t *image, pixman_iter_t *iter, @@ -97,8 +87,6 @@ pixman_image_create_solid_fill (pixman_color_t *color) img->solid.color_32 = color_to_uint32 (color); img->solid.color_64 = color_to_uint64 (color); - img->common.classify = solid_fill_classify; - return img; } |