aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils
diff options
context:
space:
mode:
authorGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-08-01 17:32:56 +0000
committerGravatar commit-bot@chromium.org <commit-bot@chromium.org@2bbb7eff-a529-9590-31e7-b0007b416f81>2013-08-01 17:32:56 +0000
commit74f96b9c4caeff8e805d8a37c63a5e5a103e59ab (patch)
treec507fbb785444cdd2c23f67675c1a72d8a9dea90 /src/utils
parentc048de0162da7ce03d0e1f32a340293b232c2ffb (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.cpp14
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;
}
}