blob: 48f353854ecb499ee2da9baf24f8bdf58077b5c3 [file] [log] [blame]
commit-bot@chromium.org1301bf32014-03-17 23:09:47 +00001function tostr(t)
2 local str = ""
3 for k, v in next, t do
4 if #str > 0 then
5 str = str .. ", "
6 end
7 if type(k) == "number" then
8 str = str .. "[" .. k .. "] = "
9 else
10 str = str .. tostring(k) .. " = "
11 end
12 if type(v) == "table" then
13 str = str .. "{ " .. tostr(v) .. " }"
14 else
15 str = str .. tostring(v)
16 end
17 end
18 return str
19end
20
21local total_found = {} -- accumulate() stores its data in here
22local total_total = {}
23local canvas -- holds the current canvas (from startcanvas())
24
25--[[
26 startcanvas() is called at the start of each picture file, passing the
27 canvas that we will be drawing into, and the name of the file.
28
29 Following this call, there will be some number of calls to accumulate(t)
30 where t is a table of parameters that were passed to that draw-op.
31
32 t.verb is a string holding the name of the draw-op (e.g. "drawRect")
33
34 when a given picture is done, we call endcanvas(canvas, fileName)
35]]
36function sk_scrape_startcanvas(c, fileName)
37 canvas = c
38end
39
40--[[
41 Called when the current canvas is done drawing.
42]]
43function sk_scrape_endcanvas(c, fileName)
44 canvas = nil
45end
46
47function increment(table, key)
48 table[key] = (table[key] or 0) + 1
49end
50
51
52local drawPointsTable = {}
53local drawPointsTable_direction = {}
54
55function sk_scrape_accumulate(t)
56 increment(total_total, t.verb)
57
58 local p = t.paint
59 if p then
60 local pe = p:getPathEffect();
61 if pe then
62 increment(total_found, t.verb)
63 end
64 end
65
66 if "drawPoints" == t.verb then
67 local points = t.points
68 increment(drawPointsTable, #points)
69 if 2 == #points then
70 if points[1].y == points[2].y then
71 increment(drawPointsTable_direction, "hori")
72 elseif points[1].x == points[2].x then
73 increment(drawPointsTable_direction, "vert")
74 else
75 increment(drawPointsTable_direction, "other")
76 end
77 end
78 end
79end
80
81--[[
82 lua_pictures will call this function after all of the pictures have been
83 "accumulated".
84]]
85function sk_scrape_summarize()
86 for k, v in next, total_found do
87 io.write(k, " = ", v, "/", total_total[k], "\n")
88 end
89 print("histogram of point-counts for all drawPoints calls")
90 print(tostr(drawPointsTable))
91 print(tostr(drawPointsTable_direction))
92end
93