Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(566)

Side by Side Diff: tools/lua/gradients.lua

Issue 2141733002: Add hard stop count (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Remove unnecessary code in SkLua.cpp Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 function sk_scrape_startcanvas(c, fileName) end 1 function sk_scrape_startcanvas(c, fileName) end
2 function sk_scrape_endcanvas(c, fileName) end 2 function sk_scrape_endcanvas(c, fileName) end
3 3
4 SkScalarNearlyZero = 1.0 / bit32.lshift(1.0, 12)
reed1 2016/07/12 15:44:46 since lua just has doubles, I don't think it helps
5
6 function SkScalarNearlyEqual(a, b)
7 return math.abs(a,b) <= SkScalarNearlyZero
8 end
9
4 gradients = {} 10 gradients = {}
5 11
6 i = 1 12 i = 1
7 13
8 function sk_scrape_accumulate(t) 14 function sk_scrape_accumulate(t)
9 local p = t.paint 15 local p = t.paint
10 if p then 16 if p then
11 local s = p:getShader() 17 local s = p:getShader()
12 if s then 18 if s then
13 local g = s:asAGradient() 19 local g = s:asAGradient()
14 if g then 20 if g then
15 gradients[i] = {} 21 gradients[i] = {}
16 gradients[i].colorCount = g.colorCount 22
17 gradients[i].type = g.type 23 gradients[i].colorCount = g.colorCount
18 gradients[i].tile = g.tile 24 gradients[i].type = g.type
19 gradients[i].isEvenlySpaced = g.isEvenlySpaced 25 gradients[i].tile = g.tile
20 gradients[i].containsHardStops = g.containsHardStops 26
27 numHardStops = 0
28 isEvenlySpaced = true
29 for j = 2, g.colorCount, 1 do
30 if not SkScalarNearlyEqual(g.positions[j], j/(g.colorCount-1 )) then
31 isEvenlySpaced = false
32 end
33
34 if SkScalarNearlyEqual(g.positions[j], g.positions[j-1]) the n
35 numHardStops = numHardStops + 1
36 end
37 end
38
39 gradients[i].isEvenlySpaced = isEvenlySpaced
40 gradients[i].numHardStops = numHardStops;
21 41
22 gradients[i].positions = {} 42 gradients[i].positions = {}
23 for j = 1, g.colorCount, 1 do 43 for j = 1, g.colorCount, 1 do
24 gradients[i].positions[j] = g.positions[j] 44 gradients[i].positions[j] = g.positions[j]
25 end 45 end
26 46
27 i = i + 1 47 i = i + 1
28 end 48 end
29 end 49 end
30 end 50 end
31 end 51 end
32 52
33 function sk_scrape_summarize() 53 function sk_scrape_summarize()
34 for k, v in pairs(gradients) do 54 for k, v in pairs(gradients) do
35 local pos = "" 55 local pos = ""
36 for j = 1, v.colorCount , 1 do 56 for j = 1, v.colorCount , 1 do
37 pos = pos .. v.positions[j] 57 pos = pos .. v.positions[j]
38 if j ~= v.colorCount then 58 if j ~= v.colorCount then
39 pos = pos .. "," 59 pos = pos .. ","
40 end 60 end
41 end 61 end
42 62
43 io.write(string.format("%d %s %s %d %d %s\n", 63 io.write(string.format("%d %s %s %d %d %s\n",
44 v.colorCount, 64 v.colorCount,
45 v.type, 65 v.type,
46 v.tile, 66 v.tile,
47 tonumber(v.isEvenlySpaced and 1 or 0), 67 tonumber(v.isEvenlySpaced and 1 or 0),
48 tonumber(v.containsHardStops and 1 or 0), 68 v.numHardStops,
49 pos)) 69 pos))
50 end 70 end
51 end 71 end
52 72
OLDNEW
« no previous file with comments | « src/utils/SkLua.cpp ('k') | tools/lua/gradients.py » ('j') | tools/lua/gradients.py » ('J')

Powered by Google App Engine
This is Rietveld 408576698