Rework the SVGPathConsumer interface

The per-command interface is replaced with a segment interface. The new
interface in practice only consists of the

  emitSegment(const PathSegment&)

method, but incrementPathSegmentCount() and continueConsuming() need to
be kept around for the sake of SVGPathTraversalStateBuilder.

The two users of the interface - SVGPathParser and SVGPathBlender - are
converted to use the new interface.
For SVGPathParser this is fairly
straightforward (no additional code-changes).
In SVGPathBlender, the "blend switch" is moved into a separate function
and each blend* method is converted to return the blended segment
instead of calling the consumer themselves. Some local variables are
removed in various blend* methods, but otherwise the conversion consist
of assigning blended values to a PathSegmentData, rather than feeding
them to a consumer.

BUG=467592

Review URL: https://codereview.chromium.org/1037463002

git-svn-id: svn://svn.chromium.org/blink/trunk@192589 bbb929c8-8fbe-4397-9dbb-9b2b20218538
14 files changed
tree: 0c90d3fe1c62e8f0f1dd97d6c181d38d94caef21
  1. third_party/