From: Soren Sandmann Pedersen Date: Tue, 8 May 2007 17:37:03 +0000 (-0400) Subject: Add setters for various properties X-Git-Tag: pixman-0.9.4~132 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=0c01cbedbaf068a9db4edefbb130c58f1f1c85ac;p=platform%2Fupstream%2Fpixman.git Add setters for various properties --- diff --git a/pixman/pixman-image.c b/pixman/pixman-image.c index 113ca51..40e19d9 100644 --- a/pixman/pixman-image.c +++ b/pixman/pixman-image.c @@ -41,7 +41,7 @@ init_common (image_common_t *common) common->repeat = PIXMAN_REPEAT_NONE; common->filter = PIXMAN_FILTER_NEAREST; common->filter_params = NULL; - common->filter_nparams = 0; + common->n_filter_params = 0; common->alpha_map = NULL; common->component_alpha = FALSE; } @@ -257,9 +257,80 @@ void pixman_image_set_clip_region (pixman_image_t *image, pixman_region16_t *region) { + image_t *priv = (image_t *)image; + + priv->common.clip_region = region; +} + +void +pixman_image_set_transform (pixman_image_t *image, + pixman_transform_t *transform) +{ + image_t *priv = (image_t *)image; + + priv->common.transform = transform; +} + +void +pixman_image_set_repeat (pixman_image_t *image, + pixman_repeat_t repeat) +{ + image_t *priv = (image_t *)image; + + priv->common.repeat = repeat; +} + +void +pixman_image_set_filter (pixman_image_t *image, + pixman_filter_t filter) +{ + image_t *priv = (image_t *)image; + + priv->common.filter = filter; +} + +void +pixman_image_set_filter_params (pixman_image_t *image, + pixman_fixed_t *params, + int n_params) +{ + image_t *priv = (image_t *)image; + + priv->common.filter_params = params; + priv->common.n_filter_params = n_params; +} + +void +pixman_image_set_alpha_map (pixman_image_t *image, + pixman_image_t *alpha_map, + int16_t x, + int16_t y) +{ + image_t *priv = (image_t *)image; + image_t *alpha_priv = (image_t *)alpha_map; + + if (alpha_priv && alpha_priv->type != BITS) + { + priv->common.alpha_map = NULL; + return; + } + priv->common.alpha_map = (bits_image_t *)alpha_map; + priv->common.alpha_origin.x = x; + priv->common.alpha_origin.y = y; +} + +void +pixman_image_set_component_alpha (pixman_image_t *image, + pixman_bool_t component_alpha) +{ + image_t *priv = (image_t *)image; + + priv->common.component_alpha = component_alpha; } + + #define SCANLINE_BUFFER_LENGTH 2048 void diff --git a/pixman/pixman-private.h b/pixman/pixman-private.h index 1bcd888..caea500 100644 --- a/pixman/pixman-private.h +++ b/pixman/pixman-private.h @@ -83,12 +83,12 @@ struct point struct image_common { image_type_t type; - pixman_transform_t *transform; pixman_region16_t *clip_region; + pixman_transform_t *transform; pixman_repeat_t repeat; pixman_filter_t filter; pixman_fixed_t *filter_params; - int filter_nparams; + int n_filter_params; bits_image_t *alpha_map; point_t alpha_origin; pixman_bool_t component_alpha; @@ -177,8 +177,12 @@ union image solid_fill_t solid; }; -int PictureTransformPoint3d (pixman_transform_t *trans, pixman_vector_t *vector); -void fbCompositeRect (const FbComposeData *data, uint32_t *scanline_buffer); +int PictureTransformPoint3d (pixman_transform_t *trans, + pixman_vector_t *vector); +void fbCompositeRect (const FbComposeData *data, + uint32_t *scanline_buffer); + + diff --git a/pixman/pixman.h b/pixman/pixman.h index fa70d47..d86ce73 100644 --- a/pixman/pixman.h +++ b/pixman/pixman.h @@ -374,6 +374,7 @@ typedef struct unsigned char reserved [128]; } pixman_image_t; +/* Initialize */ void pixman_image_init_solid_fill (pixman_image_t *image, pixman_color_t *color, int *error); @@ -405,9 +406,27 @@ void pixman_image_init_bits (pixman_image_t *image, int width, int height, uint32_t *bits, - int rowstride); /* in bytes */ + int rowstride_bytes); +/* Set properties */ void pixman_image_set_clip_region (pixman_image_t *image, pixman_region16_t *region); +void pixman_image_set_transform (pixman_image_t *image, + pixman_transform_t *transform); +void pixman_image_set_repeat (pixman_image_t *image, + pixman_repeat_t repeat); +void pixman_image_set_filter (pixman_image_t *image, + pixman_filter_t filter); +void pixman_image_set_filter_params (pixman_image_t *image, + pixman_fixed_t *params, + int n_params); +void pixman_image_set_alpha_map (pixman_image_t *image, + pixman_image_t *alpha_map, + int16_t x, + int16_t y); +void pixman_image_set_component_alpha (pixman_image_t *image, + pixman_bool_t component_alpha); + +/* Composite */ void pixman_image_composite (pixman_op_t op, pixman_image_t *src, pixman_image_t *mask,