GskPathBuilder

gsk.path_builder.PathBuilder is an auxiliary object for constructing gsk.path.Path objects.

A path is constructed like this:

GskPath *
construct_path (void)
{
  GskPathBuilder *builder;

  builder = gsk_path_builder_new ();

  // add contours to the path here

  return gsk_path_builder_free_to_path (builder);

Adding contours to the path can be done in two ways. The easiest option is to use the gsk_path_builder_add_* group of functions that add predefined contours to the current path, either common shapes like gsk.path_builder.PathBuilder.addCircle or by adding from other paths like gsk.path_builder.PathBuilder.addPath.

The gsk_path_builder_add_* methods always add complete contours, and do not use or modify the current point.

The other option is to define each line and curve manually with the gsk_path_builder_*_to group of functions. You start with a call to gsk.path_builder.PathBuilder.moveTo to set the starting point and then use multiple calls to any of the drawing functions to move the pen along the plane. Once you are done, you can call gsk.path_builder.PathBuilder.close to close the path by connecting it back with a line to the starting point.

This is similar to how paths are drawn in Cairo.

Note that gsk.path_builder.PathBuilder will reduce the degree of added Bézier curves as much as possible, to simplify rendering.

struct GskPathBuilder