diff options
Diffstat (limited to 'xps')
-rw-r--r-- | xps/xps_gradient.c | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/xps/xps_gradient.c b/xps/xps_gradient.c index e5699719..2d98953e 100644 --- a/xps/xps_gradient.c +++ b/xps/xps_gradient.c @@ -219,20 +219,17 @@ xps_draw_one_radial_gradient(xps_document *doc, fz_matrix ctm, shade->use_background = 0; shade->use_function = 1; shade->type = FZ_RADIAL; - shade->extend[0] = extend; - shade->extend[1] = extend; + shade->u.a_or_r.extend[0] = extend; + shade->u.a_or_r.extend[1] = extend; xps_sample_gradient_stops(shade, stops, count); - shade->mesh_len = 6; - shade->mesh_cap = 6; - shade->mesh = fz_malloc_array(doc->ctx, shade->mesh_cap, sizeof(float)); - shade->mesh[0] = x0; - shade->mesh[1] = y0; - shade->mesh[2] = r0; - shade->mesh[3] = x1; - shade->mesh[4] = y1; - shade->mesh[5] = r1; + shade->u.a_or_r.coords[0][0] = x0; + shade->u.a_or_r.coords[0][1] = y0; + shade->u.a_or_r.coords[0][2] = r0; + shade->u.a_or_r.coords[1][0] = x1; + shade->u.a_or_r.coords[1][1] = y1; + shade->u.a_or_r.coords[1][2] = r1; fz_fill_shade(doc->dev, shade, ctm, 1); @@ -260,20 +257,17 @@ xps_draw_one_linear_gradient(xps_document *doc, fz_matrix ctm, shade->use_background = 0; shade->use_function = 1; shade->type = FZ_LINEAR; - shade->extend[0] = extend; - shade->extend[1] = extend; + shade->u.a_or_r.extend[0] = extend; + shade->u.a_or_r.extend[1] = extend; xps_sample_gradient_stops(shade, stops, count); - shade->mesh_len = 6; - shade->mesh_cap = 6; - shade->mesh = fz_malloc_array(doc->ctx, shade->mesh_cap, sizeof(float)); - shade->mesh[0] = x0; - shade->mesh[1] = y0; - shade->mesh[2] = 0; - shade->mesh[3] = x1; - shade->mesh[4] = y1; - shade->mesh[5] = 0; + shade->u.a_or_r.coords[0][0] = x0; + shade->u.a_or_r.coords[0][1] = y0; + shade->u.a_or_r.coords[0][2] = 0; + shade->u.a_or_r.coords[1][0] = x1; + shade->u.a_or_r.coords[1][1] = y1; + shade->u.a_or_r.coords[1][2] = 0; fz_fill_shade(doc->dev, shade, ctm, doc->opacity[doc->opacity_top]); |