Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(243)

Unified Diff: tools/lua/scrape_dashing_full.lua

Issue 288883003: Add lua scripts to scrape dashing info (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tools/lua/agg_dash.lua ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tools/lua/scrape_dashing_full.lua
diff --git a/tools/lua/scrape_dashing_full.lua b/tools/lua/scrape_dashing_full.lua
new file mode 100755
index 0000000000000000000000000000000000000000..5719e261274b34a2f3521bf77819a7b45271ac54
--- /dev/null
+++ b/tools/lua/scrape_dashing_full.lua
@@ -0,0 +1,146 @@
+local canvas -- holds the current canvas (from startcanvas())
+
+--[[
+ startcanvas() is called at the start of each picture file, passing the
+ canvas that we will be drawing into, and the name of the file.
+
+ Following this call, there will be some number of calls to accumulate(t)
+ where t is a table of parameters that were passed to that draw-op.
+
+ t.verb is a string holding the name of the draw-op (e.g. "drawRect")
+
+ when a given picture is done, we call endcanvas(canvas, fileName)
+]]
+function sk_scrape_startcanvas(c, fileName)
+ canvas = c
+end
+
+--[[
+ Called when the current canvas is done drawing.
+]]
+function sk_scrape_endcanvas(c, fileName)
+ canvas = nil
+end
+
+--[[
+ Use to initialize all keys passed in keyTable to zero in table.
+ Useful so that keys that are never get incremented still output zero at end
+]]
+function resetTableKeys(table, keyTable)
+ for k, v in next, keyTable do
+ table[v] = 0
+ end
+end
+
+function increment(table, key)
+ table[key] = (table[key] or 0) + 1
+end
+
+local dashCount = 0
+
+local total_found = {}
+local drawPoints_count = {}
+local drawPoints_direction = {}
+resetTableKeys(drawPoints_direction, {"hori", "vert", "other"})
+local dashInterval_count = {}
+local dashInterval_pattern = {}
+resetTableKeys(dashInterval_pattern, {"one_one", "zero_on", "other"})
+local dash_phase = {}
+resetTableKeys(dash_phase, {"zero", "other"})
+local dash_cap = {}
+resetTableKeys(dash_cap, {"butt", "round", "square"})
+
+local dashTable = {}
+dashTable.total_found = total_found
+dashTable.drawPoints_count = drawPoints_count
+dashTable.drawPoints_direction = drawPoints_direction
+dashTable.dashInterval_count = dashInterval_count
+dashTable.dashInterval_pattern = dashInterval_pattern
+dashTable.dash_phase = dash_phase
+dashTable.dash_cap = dash_cap
+
+function sk_scrape_accumulate(t)
+ local p = t.paint
+ if p then
+ local pe = p:getPathEffect()
+ if pe then
+ local de = pe:asADash()
+ if de then
+ dashCount = dashCount + 1
+ increment(total_found, t.verb);
+ increment(dashInterval_count, #de.intervals)
+ if 2 == #de.intervals then
+ if 1 == de.intervals[1] and 1 == de.intervals[2] then
+ increment(dashInterval_pattern, "one_one")
+ elseif 0 == de.intervals[1] then
+ increment(dashInterval_pattern, "zero_on")
+ else
+ increment(dashInterval_pattern, "other")
+ end
+ end
+
+ if 0 == de.phase then
+ increment(dash_phase, "zero")
+ else
+ increment(dash_phase, "other")
+ end
+
+ local cap = p:getStrokeCap()
+ if 0 == cap then
+ increment(dash_cap, "butt")
+ elseif 1 == cap then
+ increment(dash_cap, "round")
+ else
+ increment(dash_cap, "square")
+ end
+
+ if "drawPoints" == t.verb then
+ local points = t.points
+ increment(drawPoints_count, #points)
+ if 2 == #points then
+ if points[1].y == points[2].y then
+ increment(drawPoints_direction, "hori")
+ elseif points[1].x == points[2].x then
+ increment(drawPoints_direction, "vert")
+ else
+ increment(drawPoints_direction, "other")
+ end
+ end
+ end
+
+ --[[
+ eventually would like to print out info on drawPath verbs with dashed effect
+ ]]
+ if "drawPath" == t.verb then
+ end
+
+ end
+ end
+ end
+end
+
+--[[
+ lua_pictures will call this function after all of the pictures have been
+ "accumulated".
+]]
+function sk_scrape_summarize()
+-- use for non telemetry
+--[[
+ io.write("Total dashed effects is: ", dashCount, "\n");
+ for k1, v1 in next, dashTable do
+ io.write("\nTable: ", k1, "\n")
+ for k, v in next, v1 do
+ io.write("\"", k, "\": ", v, "\n")
+ end
+ end
+]]
+
+-- use for telemetry
+ io.write("\ndashCount = dashCount + ", tostring(dashCount), "\n")
+ for k1, v1 in next, dashTable do
+ for k, v in next, v1 do
+ io.write("\nincrement(dashTable, \"", k1, "\", \"", k, "\", ", v, ")\n")
+ end
+ end
+end
+
« no previous file with comments | « tools/lua/agg_dash.lua ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698