[PATCH v2 1/2] d2d1: Implement rounded rectangle drawing.
Giovanni Mascellani
gio at debian.org
Mon Jan 27 08:27:43 CST 2020
Il 27/01/20 15:20, Giovanni Mascellani ha scritto:
> + bv = geometry->fill.bezier_vertices;
> + d2d_bezier_vertex_set(&bv[0], &v[1], 0.0f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[1], &v1, 0.5f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[2], &v[2], 1.0f, 1.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[3], &v[3], 0.0f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[4], &v2, 0.5f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[5], &v[4], 1.0f, 1.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[6], &v[5], 0.0f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[7], &v3, 0.5f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[8], &v[6], 1.0f, 1.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[9], &v[7], 0.0f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[10], &v4, 0.5f, 0.0f, -1.0f);
> + d2d_bezier_vertex_set(&bv[11], &v[0], 1.0f, 1.0f, -1.0f);
> + geometry->fill.bezier_vertex_count = 12;
> +
> + if (!d2d_geometry_outline_add_line_segment(geometry, &v[0], &v[1]))
> + goto fail;
> + if (!d2d_geometry_outline_add_arc_quadrant(geometry, &v[1], &v1, &v[2]))
> + goto fail;
> + if (!d2d_geometry_outline_add_line_segment(geometry, &v[2], &v[3]))
> + goto fail;
> + if (!d2d_geometry_outline_add_arc_quadrant(geometry, &v[3], &v2, &v[4]))
> + goto fail;
> + if (!d2d_geometry_outline_add_line_segment(geometry, &v[4], &v[5]))
> + goto fail;
> + if (!d2d_geometry_outline_add_arc_quadrant(geometry, &v[5], &v3, &v[6]))
> + goto fail;
> + if (!d2d_geometry_outline_add_line_segment(geometry, &v[6], &v[7]))
> + goto fail;
> + if (!d2d_geometry_outline_add_arc_quadrant(geometry, &v[7], &v4, &v[0]))
> + goto fail;
I implemented an independent interface for arc quadrant stroking, but
filling still uses Bézier structures, since there is no real "interface"
for filling.
In line of principle another array arc_vertices might be added to
d2d_geometry (again, used to draw Béziers), but then the meaning of UV
coords would make no sense for actual arcs.
Giovanni.
--
Giovanni Mascellani <g.mascellani at gmail.com>
Postdoc researcher - Université Libre de Bruxelles
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20200127/c384fcf6/attachment.sig>
More information about the wine-devel
mailing list