Add setters for various properties
authorSoren Sandmann Pedersen <ssp@dhcp83-218.boston.redhat.com>
Tue, 8 May 2007 17:37:03 +0000 (13:37 -0400)
committerSoren Sandmann Pedersen <ssp@dhcp83-218.boston.redhat.com>
Tue, 8 May 2007 17:37:03 +0000 (13:37 -0400)
pixman/pixman-image.c
pixman/pixman-private.h
pixman/pixman.h

index 113ca51..40e19d9 100644 (file)
@@ -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
index 1bcd888..caea500 100644 (file)
@@ -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);
+
+
 
 
 
index fa70d47..d86ce73 100644 (file)
@@ -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,