diff options
author | fmenozzi <fmenozzi@google.com> | 2016-06-28 14:03:03 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-06-28 14:03:03 -0700 |
commit | b4f254e051b375c098c3f1c943b2b0886fec60e1 (patch) | |
tree | 35cad47ab3027782f4f3682ec62506ce5407cb31 /tools/lua | |
parent | d66110f5972169dbcda8932c3a9a001adff23df4 (diff) |
Changes to Lua gradient scraping
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2103973002
Review-Url: https://codereview.chromium.org/2103973002
Diffstat (limited to 'tools/lua')
-rw-r--r-- | tools/lua/gradients.lua | 50 | ||||
-rwxr-xr-x | tools/lua/gradients.py | 42 |
2 files changed, 76 insertions, 16 deletions
diff --git a/tools/lua/gradients.lua b/tools/lua/gradients.lua index b2d8cf7734..628632817f 100644 --- a/tools/lua/gradients.lua +++ b/tools/lua/gradients.lua @@ -1,10 +1,9 @@ - function sk_scrape_startcanvas(c, fileName) end - function sk_scrape_endcanvas(c, fileName) end -count3 = 0 -count3sym = 0 +gradients = {} + +i = 1 function sk_scrape_accumulate(t) local p = t.paint @@ -13,22 +12,41 @@ function sk_scrape_accumulate(t) if s then local g = s:asAGradient() if g then - --io.write(g.type, " gradient with ", g.colorCount, " colors\n") - - if g.colorCount == 3 then - count3 = count3 + 1 - - if (g.midPos >= 0.499 and g.midPos <= 0.501) then - count3sym = count3sym + 1 - end - end + gradients[i] = {} + gradients[i].colorCount = g.colorCount + gradients[i].type = g.type + gradients[i].tile = g.tile + gradients[i].isEvenlySpaced = g.isEvenlySpaced + gradients[i].containsHardStops = g.containsHardStops + + gradients[i].positions = {} + for j = 1, g.colorCount, 1 do + gradients[i].positions[j] = g.positions[j] + end + + i = i + 1 end end end end -function sk_scrape_summarize() - io.write("Number of 3 color gradients: ", count3, "\n"); - io.write("Number of 3 color symmetric gradients: ", count3sym, "\n"); +function sk_scrape_summarize() + for k, v in pairs(gradients) do + local pos = "" + for j = 1, v.colorCount , 1 do + pos = pos .. v.positions[j] + if j ~= v.colorCount then + pos = pos .. "," + end + end + + io.write(string.format("%d %s %s %d %d %s\n", + v.colorCount, + v.type, + v.tile, + tonumber(v.isEvenlySpaced and 1 or 0), + tonumber(v.containsHardStops and 1 or 0), + pos)) + end end diff --git a/tools/lua/gradients.py b/tools/lua/gradients.py new file mode 100755 index 0000000000..a2cf785cbb --- /dev/null +++ b/tools/lua/gradients.py @@ -0,0 +1,42 @@ +#!/usr/bin/env python +# +# Copyright 2015 Google Inc. +# +# Use of this source code is governed by a BSD-style license that can be +# found in the LICENSE file. + +import argparse +import sqlite3 + +def create_database(inpath, outpath): + with sqlite3.connect(outpath) as conn: + c = conn.cursor(); + c.execute('''CREATE TABLE IF NOT EXISTS gradients ( + ColorCount INTEGER, + GradientType TEXT, + TileMode TEXT, + EvenlySpaced INTEGER, + HardStops INTEGER, + Positions TEXT + )'''); + c.execute("DELETE FROM gradients"); + + with open(inpath, "r") as results: + gradients = [] + for line in [line.strip() for line in results]: + gradients.append(line.split()); + + c.executemany("INSERT INTO gradients VALUES (?, ?, ?, ?, ?, ?)", + gradients); + + conn.commit(); + + +if __name__ == "__main__": + parser = argparse.ArgumentParser( + description = "Transform Lua script output to a SQL DB"); + parser.add_argument("inpath", help="Path to Lua script output file"); + parser.add_argument("outpath", help="Path to SQL DB"); + args = parser.parse_args(); + + create_database(args.inpath, args.outpath); |