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

Unified Diff: resources/slides.lua

Issue 667803004: add gradients and drawPaint to lua (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 6 years, 2 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | samplecode/SampleLua.cpp » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: resources/slides.lua
diff --git a/resources/slides.lua b/resources/slides.lua
index b2c9b902c311b6ef3198980428bbbf452b417907..c74f47a049f3495047d143cfe7741df5bb56a64e 100644
--- a/resources/slides.lua
+++ b/resources/slides.lua
@@ -96,16 +96,25 @@ function drawSlide(canvas, slide, template)
local x = template.margin_x
local y = template.margin_y
- local scale = 1.15
+ local scale = 1.25
for i = 1, #slide do
local node = slide[i]
- local paint = template[node.indent + 1]
+ local paint = template[node.indent + 1].paint
+ local extra_dy = template[node.indent + 1].extra_dy
local fm = paint:getFontMetrics()
local x_offset = -fm.ascent * node.indent
y = y - fm.ascent * scale
canvas:drawText(node.text, x + x_offset, y, paint)
- y = y + fm.descent * scale
+ y = y + fm.descent * scale + extra_dy
+ end
+end
+
+function scale_text_delta(template, delta)
+ template = template.slide
+ for i = 1, #template do
+ local paint = template[i].paint
+ paint:setTextSize(paint:getTextSize() + delta)
end
end
@@ -140,10 +149,9 @@ end
function sqr(value) return value * value end
-function ease(value)
function set_blur(paint, alpha)
local sigma = sqr(1 - alpha) * 20
--- paint:setImageFilter(Sk.newBlurImageFilter(sigma, sigma))
+ paint:setImageFilter(Sk.newBlurImageFilter(sigma, sigma))
paint:setAlpha(alpha)
end
@@ -194,24 +202,27 @@ function fade_slide_transition(prev, next, is_forward)
end
--------------------------------------------------------------------------------------
+function make_tmpl(paint, extra_dy)
+ return { paint = paint, extra_dy = extra_dy }
+end
function SkiaPoint_make_template()
local title = {
margin_x = 30,
margin_y = 100,
}
- title[1] = make_paint("Arial", 1, 50, { a=1, r=0, g=0, b=0 })
+ title[1] = make_paint("Arial", 1, 50, { a=1, r=1, g=1, b=1 })
title[1]:setTextAlign("center")
- title[2] = make_paint("Arial", 1, 25, { a=1, r=.3, g=.3, b=.3 })
+ title[2] = make_paint("Arial", 1, 25, { a=1, r=.75, g=.75, b=.75 })
title[2]:setTextAlign("center")
local slide = {
margin_x = 20,
- margin_y = 30,
+ margin_y = 25,
}
- slide[1] = make_paint("Arial", 1, 36, { a=1, r=0, g=0, b=0 })
- slide[2] = make_paint("Arial", 0, 30, { a=1, r=0, g=0, b=0 })
- slide[3] = make_paint("Arial", 0, 24, { a=1, r=.2, g=.2, b=.2 })
+ slide[1] = make_tmpl(make_paint("Arial", 1, 36, { a=1, r=1, g=1, b=1 }), 18)
+ slide[2] = make_tmpl(make_paint("Arial", 0, 30, { a=1, r=1, g=1, b=1 }), 0)
+ slide[3] = make_tmpl(make_paint("Arial", 0, 24, { a=1, r=.8, g=.8, b=.8 }), 0)
return {
title = title,
@@ -359,11 +370,26 @@ function spawn_scale_animation()
}
end
+local bgPaint = nil
+
+function draw_bg(canvas)
+ if not bgPaint then
+ bgPaint = Sk.newPaint()
+ local grad = Sk.newLinearGradient( 0, 0, { a=1, r=0, g=0, b=.3 },
+ 640, 480, { a=1, r=0, g=0, b=.8 })
+ bgPaint:setShader(grad)
+ end
+
+ canvas:drawPaint(bgPaint)
+end
+
function onDrawContent(canvas, width, height)
local matrix = Sk.newMatrix()
matrix:setRectToRect(make_rect(0, 0, 640, 480), make_rect(0, 0, width, height), "center")
canvas:concat(matrix)
+ draw_bg(canvas)
+
local drawSlideProc = function(canvas)
drawSlide(canvas, gSlides[gSlideIndex], gTemplate)
end
@@ -386,6 +412,8 @@ local keyProcs = {
p = prev_slide,
r = spawn_rotate_animation,
s = spawn_scale_animation,
+ u = function () scale_text_delta(gTemplate, 1) end,
+ d = function () scale_text_delta(gTemplate, -1) end,
}
function onCharHandler(uni)
« no previous file with comments | « no previous file | samplecode/SampleLua.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698