Home | History | Annotate | Download | only in lua
      1 function 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
     19 end
     20 
     21 local total = {}    -- accumulate() stores its data in here
     22 local 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 ]]
     35 function sk_scrape_startcanvas(c, fileName)
     36     canvas = c
     37 end
     38 
     39 --[[
     40     Called when the current canvas is done drawing.
     41 ]]
     42 function sk_scrape_endcanvas(c, fileName)
     43     canvas = nil
     44 end
     45 
     46 --[[
     47     Called with the parameters to each canvas.draw call, where canvas is the
     48     current canvas as set by startcanvas()
     49 ]]
     50 function 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
     71 end
     72 
     73 --[[
     74     lua_pictures will call this function after all of the pictures have been
     75     "accumulated".
     76 ]]
     77 function sk_scrape_summarize()
     78     io.write("\n{ ", tostr(total), " }\n")
     79 end
     80 
     81