[lasem] svg_view: don't store spread_method in pattern data stack.
- From: Emmanuel Pacaud <emmanuel src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [lasem] svg_view: don't store spread_method in pattern data stack.
- Date: Sat, 28 Aug 2010 08:57:49 +0000 (UTC)
commit e6360f9d01b6e47ef0f8e4c76e57a3fa7185bcb7
Author: Emmanuel Pacaud <emmanuel gnome org>
Date: Sat Aug 28 10:45:40 2010 +0200
svg_view: don't store spread_method in pattern data stack.
src/lsmsvgview.c | 29 +++++++++++++++--------------
1 files changed, 15 insertions(+), 14 deletions(-)
---
diff --git a/src/lsmsvgview.c b/src/lsmsvgview.c
index 94474e9..784da8f 100644
--- a/src/lsmsvgview.c
+++ b/src/lsmsvgview.c
@@ -63,7 +63,6 @@ struct _LsmSvgViewPatternData {
LsmBox extents;
LsmSvgPatternUnits units;
- LsmSvgSpreadMethod spread_method;
double opacity;
};
@@ -96,7 +95,6 @@ _start_pattern (LsmSvgView *view, const LsmBox *extents, double opacity)
view->pattern_data->old_cairo = view->dom_view.cairo;
view->pattern_data->pattern = NULL;
view->pattern_data->units = LSM_SVG_PATTERN_UNITS_USER_SPACE_ON_USE;
- view->pattern_data->spread_method = LSM_SVG_SPREAD_METHOD_REPEAT;
view->pattern_data->extents = *extents;
view->pattern_data->opacity = opacity;
@@ -206,9 +204,9 @@ lsm_svg_view_set_gradient_properties (LsmSvgView *view,
{
g_return_if_fail (LSM_IS_SVG_VIEW (view));
g_return_if_fail (view->pattern_data != NULL);
+ g_return_if_fail (view->pattern_data->pattern != NULL);
view->pattern_data->units = units;
- view->pattern_data->spread_method = method;
if (matrix != NULL) {
cairo_matrix_init (&view->pattern_data->matrix,
@@ -218,6 +216,18 @@ lsm_svg_view_set_gradient_properties (LsmSvgView *view,
cairo_matrix_invert (&view->pattern_data->matrix);
} else
cairo_matrix_init_identity (&view->pattern_data->matrix);
+
+ switch (method) {
+ case LSM_SVG_SPREAD_METHOD_REFLECT:
+ cairo_pattern_set_extend (view->pattern_data->pattern, CAIRO_EXTEND_REFLECT);
+ break;
+ case LSM_SVG_SPREAD_METHOD_REPEAT:
+ cairo_pattern_set_extend (view->pattern_data->pattern, CAIRO_EXTEND_REPEAT);
+ break;
+ default:
+ cairo_pattern_set_extend (view->pattern_data->pattern, CAIRO_EXTEND_PAD);
+ }
+
}
gboolean
@@ -307,6 +317,8 @@ lsm_svg_view_create_surface_pattern (LsmSvgView *view,
cairo_matrix_scale (&view->pattern_data->matrix, 1.0 / x_scale, 1.0 / y_scale);
}
+ cairo_pattern_set_extend (view->pattern_data->pattern, CAIRO_EXTEND_REPEAT);
+
return TRUE;
}
@@ -811,17 +823,6 @@ _paint_url (LsmSvgView *view,
} else
cairo_pattern_set_matrix (view->pattern_data->pattern, &view->pattern_data->matrix);
- switch (view->pattern_data->spread_method) {
- case LSM_SVG_SPREAD_METHOD_REFLECT:
- cairo_pattern_set_extend (view->pattern_data->pattern, CAIRO_EXTEND_REFLECT);
- break;
- case LSM_SVG_SPREAD_METHOD_REPEAT:
- cairo_pattern_set_extend (view->pattern_data->pattern, CAIRO_EXTEND_REPEAT);
- break;
- default:
- cairo_pattern_set_extend (view->pattern_data->pattern, CAIRO_EXTEND_PAD);
- }
-
cairo_set_source (cairo, view->pattern_data->pattern);
} else
cairo_set_source_rgb (cairo, 0.0, 0.0, 0.0);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]