diff options
author | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-08-01 17:32:56 +0000 |
---|---|---|
committer | commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81> | 2013-08-01 17:32:56 +0000 |
commit | 74f96b9c4caeff8e805d8a37c63a5e5a103e59ab (patch) | |
tree | c507fbb785444cdd2c23f67675c1a72d8a9dea90 /src/utils | |
parent | c048de0162da7ce03d0e1f32a340293b232c2ffb (diff) |
Added 3-color gradient scraper for detecting symmetrical gradients.
Made changes to lua to scrape info about 3 color gradients
BUG=
R=reed@google.com
Author: dierk@google.com
Review URL: https://chromiumcodereview.appspot.com/21571002
git-svn-id: http://skia.googlecode.com/svn/trunk@10490 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/SkLua.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/utils/SkLua.cpp b/src/utils/SkLua.cpp index 66a9c08597..8267132b2f 100644 --- a/src/utils/SkLua.cpp +++ b/src/utils/SkLua.cpp @@ -712,12 +712,26 @@ static int lshader_asAGradient(lua_State* L) { if (shader) { SkShader::GradientInfo info; sk_bzero(&info, sizeof(info)); + + SkColor colors[3]; // hacked in for extracting info on 3 color case. + SkScalar pos[3]; + + info.fColorCount = 3; + info.fColors = &colors[0]; + info.fColorOffsets = &pos[0]; + SkShader::GradientType t = shader->asAGradient(&info); + if (SkShader::kNone_GradientType != t) { lua_newtable(L); setfield_string(L, "type", gradtype2string(t)); setfield_number(L, "colorCount", info.fColorCount); setfield_string(L, "tile", mode2string(info.fTileMode)); + + if (info.fColorCount == 3){ + setfield_number(L, "midPos", pos[1]); + } + return 1; } } |