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

Unified Diff: resources/slides.lua

Issue 651823004: create and modify matrices in 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') | src/utils/SkLua.cpp » ('J')
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 bae5206ac221e3e1406a5c8334df220cc4ec460a..a4de5b74d6a20b37f7bd06ab994f04afc01f1993 100644
--- a/resources/slides.lua
+++ b/resources/slides.lua
@@ -76,25 +76,35 @@ end
gSlides = parse_file(io.open("/skia/trunk/resources/slides_content.lua", "r"))
-function make_paint(size, color)
+function make_rect(l, t, r, b)
+ return { left = l, top = t, right = r, bottom = b }
+end
+
+function make_paint(typefacename, stylebits, size, color)
local paint = Sk.newPaint();
paint:setAntiAlias(true)
paint:setSubpixelText(true)
+ paint:setTypeface(Sk.newTypeface(typefacename, stylebits))
paint:setTextSize(size)
paint:setColor(color)
return paint
end
-function drawSlide(canvas, slide, template, paints)
+function drawSlide(canvas, slide, template)
+ template = template.slide -- need to sniff the slide to know if we're title or slide
+
+ local x = template.margin_x
+ local y = template.margin_y
+
local scale = 1.15
- local y = 0
for i = 1, #slide do
local node = slide[i]
- local temp = template[node.indent + 1]
- local paint = paints[node.indent + 1]
+ local paint = template[node.indent + 1]
local fm = paint:getFontMetrics()
+ local x_offset = -fm.ascent * node.indent
+
y = y - fm.ascent * scale
- canvas:drawText(node.text, temp.x, y, paint)
+ canvas:drawText(node.text, x + x_offset, y, paint)
y = y + fm.descent * scale
end
end
@@ -171,17 +181,31 @@ end
--------------------------------------------------------------------------------------
-gTemplate = {
- { x = 10, textSize = 40, bullet = "" },
- { x = 40, textSize = 30, bullet = "\xE2\x80\xA2" },
- { x = 70, textSize = 20, bullet = "\xE2\x97\xA6" },
-}
+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]:setTextAlign("center")
+ title[2] = make_paint("Arial", 1, 25, { a=1, r=.3, g=.3, b=.3 })
+ title[2]:setTextAlign("center")
+
+ local slide = {
+ margin_x = 20,
+ margin_y = 30,
+ }
+ 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 })
-gPaints = {
- make_paint(gTemplate[1].textSize, { a=1, r=0, g=0, b=0 } ),
- make_paint(gTemplate[2].textSize, { a=1, r=1, g=0, b=0 } ),
- make_paint(gTemplate[3].textSize, { a=1, r=0, g=1, b=0 } ),
-}
+ return {
+ title = title,
+ slide = slide,
+ }
+end
+
+gTemplate = SkiaPoint_make_template()
gRedPaint = Sk.newPaint()
gRedPaint:setAntiAlias(true)
@@ -253,10 +277,10 @@ function spawn_transition(prevSlide, nextSlide, is_forward)
local rec = Sk.newPictureRecorder()
- drawSlide(rec:beginRecording(640, 480), prevSlide, gTemplate, gPaints)
+ drawSlide(rec:beginRecording(640, 480), prevSlide, gTemplate)
local prevDrawable = new_drawable_picture(rec:endRecording())
- drawSlide(rec:beginRecording(640, 480), nextSlide, gTemplate, gPaints)
+ drawSlide(rec:beginRecording(640, 480), nextSlide, gTemplate)
local nextDrawable = new_drawable_picture(rec:endRecording())
gCurrAnimation = transition(prevDrawable, nextDrawable, is_forward)
@@ -313,9 +337,13 @@ function spawn_scale_animation()
}
end
-function onDrawContent(canvas)
+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)
+
local drawSlideProc = function(canvas)
- drawSlide(canvas, gSlides[gSlideIndex], gTemplate, gPaints)
+ drawSlide(canvas, gSlides[gSlideIndex], gTemplate)
end
if gCurrAnimation then
« no previous file with comments | « no previous file | samplecode/SampleLua.cpp » ('j') | src/utils/SkLua.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698