1function 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 = {} -- accumulate() stores its data in here 22local canvas -- holds the current canvas (from startcanvas()) 23 24--[[ 25 startcanvas() is called at the start of each picture file, passing the 26 canvas that we will be drawing into, and the name of the file. 27 28 Following this call, there will be some number of calls to accumulate(t) 29 where t is a table of parameters that were passed to that draw-op. 30 31 t.verb is a string holding the name of the draw-op (e.g. "drawRect") 32 33 when a given picture is done, we call endcanvas(canvas, fileName) 34]] 35function sk_scrape_startcanvas(c, fileName) 36 canvas = c 37end 38 39--[[ 40 Called when the current canvas is done drawing. 41]] 42function sk_scrape_endcanvas(c, fileName) 43 canvas = nil 44end 45 46--[[ 47 Called with the parameters to each canvas.draw call, where canvas is the 48 current canvas as set by startcanvas() 49]] 50function sk_scrape_accumulate(t) 51 local n = total[t.verb] or 0 52 total[t.verb] = n + 1 53 54 if false and t.verb == "drawRect" and t.paint:isAntiAlias() then 55 local r = t.rect; 56 local p = t.paint; 57 local c = p:getColor(); 58 print("drawRect ", tostr(r), tostr(c), "\n") 59 end 60 61 if false and t.verb == "drawPath" then 62 local pred, r1, r2, d1, d2 = t.path:isNestedFillRects() 63 64 if pred then 65 print("drawRect_Nested", tostr(r1), tostr(r2), d1, d2) 66 else 67 print("drawPath", "isEmpty", tostring(t.path:isEmpty()), 68 "isRect", tostring(t.path:isRect()), tostr(t.path:getBounds())) 69 end 70 end 71end 72 73--[[ 74 lua_pictures will call this function after all of the pictures have been 75 "accumulated". 76]] 77function sk_scrape_summarize() 78 io.write("\n{ ", tostr(total), " }\n") 79end 80 81