mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-05-08 09:08:16 +02:00
Update gradient code in glitz backend
This commit is contained in:
parent
5ac6e85455
commit
4215048025
2 changed files with 18 additions and 15 deletions
|
|
@ -1,5 +1,8 @@
|
|||
2006-01-05 David Reveman <davidr@novell.com>
|
||||
|
||||
* src/cairo-glitz-surface.c (_cairo_glitz_pattern_acquire_surface):
|
||||
Track gradient changes.
|
||||
|
||||
* src/cairo-pdf-surface.c (emit_pattern_stops)
|
||||
(emit_linear_pattern, emit_radial_pattern): Track gradient changes.
|
||||
|
||||
|
|
|
|||
|
|
@ -624,12 +624,12 @@ _cairo_glitz_pattern_acquire_surface (cairo_pattern_t *pattern,
|
|||
for (i = 0; i < gradient->n_stops; i++)
|
||||
{
|
||||
pixels[i] =
|
||||
(((int) (gradient->stops[i].color.alpha * 0xff)) << 24) |
|
||||
(((int) (gradient->stops[i].color.red * 0xff)) << 16) |
|
||||
(((int) (gradient->stops[i].color.green * 0xff)) << 8) |
|
||||
(((int) (gradient->stops[i].color.blue * 0xff)));
|
||||
(((int) (gradient->stops[i].color.alpha >> 8)) << 24) |
|
||||
(((int) (gradient->stops[i].color.red >> 8)) << 16) |
|
||||
(((int) (gradient->stops[i].color.green >> 8)) << 8) |
|
||||
(((int) (gradient->stops[i].color.blue >> 8)));
|
||||
|
||||
params[n_base_params + 3 * i + 0] = gradient->stops[i].offset;
|
||||
params[n_base_params + 3 * i + 0] = gradient->stops[i].x;
|
||||
params[n_base_params + 3 * i + 1] = i << 16;
|
||||
params[n_base_params + 3 * i + 2] = 0;
|
||||
}
|
||||
|
|
@ -643,22 +643,22 @@ _cairo_glitz_pattern_acquire_surface (cairo_pattern_t *pattern,
|
|||
{
|
||||
cairo_linear_pattern_t *grad = (cairo_linear_pattern_t *) pattern;
|
||||
|
||||
params[0] = _cairo_fixed_from_double (grad->point0.x);
|
||||
params[1] = _cairo_fixed_from_double (grad->point0.y);
|
||||
params[2] = _cairo_fixed_from_double (grad->point1.x);
|
||||
params[3] = _cairo_fixed_from_double (grad->point1.y);
|
||||
params[0] = grad->gradient.p1.x;
|
||||
params[1] = grad->gradient.p1.y;
|
||||
params[2] = grad->gradient.p2.x;
|
||||
params[3] = grad->gradient.p2.y;
|
||||
attr->filter = GLITZ_FILTER_LINEAR_GRADIENT;
|
||||
}
|
||||
else
|
||||
{
|
||||
cairo_radial_pattern_t *grad = (cairo_radial_pattern_t *) pattern;
|
||||
|
||||
params[0] = _cairo_fixed_from_double (grad->center0.x);
|
||||
params[1] = _cairo_fixed_from_double (grad->center0.y);
|
||||
params[2] = _cairo_fixed_from_double (grad->radius0);
|
||||
params[3] = _cairo_fixed_from_double (grad->center1.x);
|
||||
params[4] = _cairo_fixed_from_double (grad->center1.y);
|
||||
params[5] = _cairo_fixed_from_double (grad->radius1);
|
||||
params[0] = grad->gradient.inner.x;
|
||||
params[1] = grad->gradient.inner.y;
|
||||
params[2] = grad->gradient.inner.radius;
|
||||
params[3] = grad->gradient.outer.x;
|
||||
params[4] = grad->gradient.outer.y;
|
||||
params[5] = grad->gradient.outer.radius;
|
||||
attr->filter = GLITZ_FILTER_RADIAL_GRADIENT;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue