aboutsummaryrefslogtreecommitdiffhomepage
path: root/tools/lua
diff options
context:
space:
mode:
authorGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-21 16:05:53 +0000
committerGravatar reed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-05-21 16:05:53 +0000
commit2d51677b1916ee5d08f040855c8c2002ff47a38b (patch)
treefd3dd0ce048a760bcc343f128b79fe81466d9e9d /tools/lua
parent659c8c06cdc6c825004515240f81a8dafb2b4b0f (diff)
add startcanvas/endcanvas entry-points for the script. rename all "official" entry-points to use "sk_scrape_" prefix
BUG= Review URL: https://codereview.chromium.org/15511006 git-svn-id: http://skia.googlecode.com/svn/trunk@9216 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tools/lua')
-rw-r--r--tools/lua/lua_pictures.cpp26
-rw-r--r--tools/lua/scrape.lua40
2 files changed, 50 insertions, 16 deletions
diff --git a/tools/lua/lua_pictures.cpp b/tools/lua/lua_pictures.cpp
index 36e8c93bf1..1314c699d4 100644
--- a/tools/lua/lua_pictures.cpp
+++ b/tools/lua/lua_pictures.cpp
@@ -21,6 +21,11 @@ extern "C" {
#include "lauxlib.h"
}
+static const char gStartCanvasFunc[] = "sk_scrape_startcanvas";
+static const char gEndCanvasFunc[] = "sk_scrape_endcanvas";
+static const char gAccumulateFunc[] = "sk_scrape_accumulate";
+static const char gSummarizeFunc[] = "sk_scrape_summarize";
+
// PictureRenderingFlags.cpp
extern bool lazy_decode_bitmap(const void* buffer, size_t size, SkBitmap*);
@@ -99,15 +104,17 @@ private:
SkString fTermCode;
};
-static void call_setcanvas(lua_State* L, SkLuaCanvas* canvas) {
- lua_getglobal(L, "setcanvas");
+static void call_canvas(lua_State* L, SkLuaCanvas* canvas,
+ const char pictureFile[], const char funcName[]) {
+ lua_getglobal(L, funcName);
if (!lua_isfunction(L, -1)) {
int t = lua_type(L, -1);
- SkDebugf("--- expected setcanvas function %d\n", t);
+ SkDebugf("--- expected %s function %d, ignoring.\n", funcName, t);
lua_settop(L, -2);
} else {
canvas->pushThis();
- if (lua_pcall(L, 1, 0, 0) != LUA_OK) {
+ lua_pushstring(L, pictureFile);
+ if (lua_pcall(L, 2, 0, 0) != LUA_OK) {
SkDebugf("lua err: %s\n", lua_tostring(L, -1));
}
}
@@ -128,7 +135,7 @@ int tool_main(int argc, char** argv) {
}
SkAutoGraphics ag;
- SkAutoLua L("summarize");
+ SkAutoLua L(gSummarizeFunc);
for (int i = 0; i < FLAGS_luaFile.count(); ++i) {
SkAutoDataUnref data(read_into_data(FLAGS_luaFile[i]));
@@ -153,11 +160,14 @@ int tool_main(int argc, char** argv) {
SkAutoTUnref<SkPicture> pic(load_picture(path));
if (pic.get()) {
- SkAutoTUnref<SkLuaCanvas> canvas(new SkLuaCanvas(pic->width(), pic->height(), L.get(), "accumulate"));
-
- call_setcanvas(L.get(), canvas.get());
+ SkAutoTUnref<SkLuaCanvas> canvas(
+ new SkLuaCanvas(pic->width(), pic->height(),
+ L.get(), gAccumulateFunc));
+ call_canvas(L.get(), canvas.get(), inputFilename.c_str(), gStartCanvasFunc);
canvas->drawPicture(*pic);
+ call_canvas(L.get(), canvas.get(), inputFilename.c_str(), gEndCanvasFunc);
+
} else {
SkDebugf("failed to load\n");
}
diff --git a/tools/lua/scrape.lua b/tools/lua/scrape.lua
index cbdbc8d1c5..e4a38ae92d 100644
--- a/tools/lua/scrape.lua
+++ b/tools/lua/scrape.lua
@@ -19,14 +19,36 @@ function tostr(t)
return str
end
-total = {}
+local total = {} -- accumulate() stores its data in here
+local canvas -- holds the current canvas (from startcanvas())
-function setcanvas(c)
+--[[
+ 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 with the parameters to each canvas.draw call
-function accumulate(t)
+--[[
+ Called when the current canvas is done drawing.
+]]
+function sk_scrape_endcanvas(c, fileName)
+ canvas = nil
+end
+
+--[[
+ Called with the parameters to each canvas.draw call, where canvas is the
+ current canvas as set by startcanvas()
+]]
+function sk_scrape_accumulate(t)
local n = total[t.verb] or 0
total[t.verb] = n + 1
@@ -45,9 +67,11 @@ function accumulate(t)
end
end
--- lua_pictures will call this function after all of the files have been
--- "accumulated"
-function summarize()
- io.write("\n", tostr(total), "\n")
+--[[
+ lua_pictures will call this function after all of the pictures have been
+ "accumulated".
+]]
+function sk_scrape_summarize()
+ io.write("\n{ ", tostr(total), " }\n")
end