diff options
author | 2013-06-13 01:28:56 +0000 | |
---|---|---|
committer | 2013-06-13 01:28:56 +0000 | |
commit | 1d32cc67f77d3fac29db574d79c7dff93e035259 (patch) | |
tree | 9a0047d384ebfb915be127151a30da1424568be2 /src/utils | |
parent | 45672099ea3006cde5b8a97b52fcd0b8ac69d4e1 (diff) |
add canvas scale and rotate
git-svn-id: http://skia.googlecode.com/svn/trunk@9564 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/SkLua.cpp | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp index 6754746033..aabb236f30 100644 --- a/src/utils/SkLua.cpp +++ b/src/utils/SkLua.cpp @@ -228,6 +228,14 @@ static SkScalar lua2scalar(lua_State* L, int index) { return SkLuaToScalar(lua_tonumber(L, index)); } +static SkScalar lua2scalar_def(lua_State* L, int index, SkScalar defaultValue) { + if (lua_isnumber(L, index)) { + return SkLuaToScalar(lua_tonumber(L, index)); + } else { + return defaultValue; + } +} + static SkScalar getfield_scalar(lua_State* L, int index, const char key[]) { SkASSERT(lua_istable(L, index)); lua_pushstring(L, key); @@ -365,8 +373,23 @@ static int lcanvas_restore(lua_State* L) { return 0; } +static int lcanvas_scale(lua_State* L) { + SkScalar sx = lua2scalar_def(L, 2, 1); + SkScalar sy = lua2scalar_def(L, 3, sx); + get_ref<SkCanvas>(L, 1)->scale(sx, sy); + return 0; +} + static int lcanvas_translate(lua_State* L) { - get_ref<SkCanvas>(L, 1)->translate(lua2scalar(L, 2), lua2scalar(L, 3)); + SkScalar tx = lua2scalar_def(L, 2, 0); + SkScalar ty = lua2scalar_def(L, 3, 0); + get_ref<SkCanvas>(L, 1)->translate(tx, ty); + return 0; +} + +static int lcanvas_rotate(lua_State* L) { + SkScalar degrees = lua2scalar_def(L, 2, 0); + get_ref<SkCanvas>(L, 1)->rotate(degrees); return 0; } @@ -387,7 +410,9 @@ static const struct luaL_Reg gSkCanvas_Methods[] = { { "getTotalMatrix", lcanvas_getTotalMatrix }, { "save", lcanvas_save }, { "restore", lcanvas_restore }, + { "scale", lcanvas_scale }, { "translate", lcanvas_translate }, + { "rotate", lcanvas_rotate }, { "__gc", lcanvas_gc }, { NULL, NULL } }; |