| Index: tools/lua/count_dashes.lua
|
| diff --git a/tools/lua/count_dashes.lua b/tools/lua/count_dashes.lua
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..20502a9f01f5477f6b8a552b65ea23aff58c077f
|
| --- /dev/null
|
| +++ b/tools/lua/count_dashes.lua
|
| @@ -0,0 +1,60 @@
|
| +--
|
| +-- Copyright 2016 Google Inc.
|
| +--
|
| +-- Use of this source code is governed by a BSD-style license that can be
|
| +-- found in the LICENSE file.
|
| +--
|
| +
|
| +-- Dashed path scraping script.
|
| +-- This script is designed to count the total number of dashes in a dashed path
|
| +-- by computing the fill path and then counting how many individual segments are
|
| +-- inside the resulting fill path.
|
| +
|
| +dashes = 0
|
| +
|
| +pathPieces = {}
|
| +
|
| +function sk_scrape_startcanvas(c, fileName)
|
| +end
|
| +
|
| +function sk_scrape_endcanvas(c, fileName)
|
| +end
|
| +
|
| +function sk_scrape_accumulate(t)
|
| + local paint = t.paint
|
| + if paint then
|
| + local pe = paint:getPathEffect()
|
| + if pe then
|
| + if t.verb == "drawPath" and pe:asADash() then
|
| + dashes = dashes + 1
|
| + pathPieces[dashes] = 0
|
| +
|
| + local path = t.path
|
| + local fillpath = paint:getFillPath(path)
|
| + local verbs = fillpath:getVerbs()
|
| + for _, verb in ipairs(verbs) do
|
| + if verb == "move" then
|
| + pathPieces[dashes] = pathPieces[dashes] + 1
|
| + end
|
| + end
|
| + end
|
| + end
|
| + end
|
| +end
|
| +
|
| +-- We mulitply by two because for each segment of the dash, we do two measurements:
|
| +-- One for the beginning and one for the end of each dash.
|
| +function sk_scrape_summarize()
|
| + local pieces5 = 0;
|
| + local pieces10 = 0;
|
| + for _, p in ipairs(pathPieces) do
|
| + local pieces = 2*p
|
| + if pieces < 5 then
|
| + pieces5 = pieces5 + 1
|
| + end
|
| + if pieces > 5 and pieces < 10 then
|
| + pieces10 = pieces10 + 1
|
| + end
|
| + end
|
| + io.write(string.format("%d %d %d\n", 2*dashes, pieces5, pieces10))
|
| +end
|
|
|