123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 |
- 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
|