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

Unified Diff: resources/slides.lua

Issue 650263002: add pictures 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 | src/utils/SkLua.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 6123ba8e67f5da29512034a30dd49891afe5e2a9..29ca8d13add98cdf279ef13ad3c03ca38becbe31 100644
--- a/resources/slides.lua
+++ b/resources/slides.lua
@@ -47,21 +47,21 @@ function slide_transition(prev, next, is_forward)
drawSlideProc(canvas)
return nil
end
- canvas:drawImage(self.prevImage, self.curr_x, 0)
- canvas:drawImage(self.nextImage, self.curr_x + 640, 0)
+ self.prevDrawable:draw(canvas, self.curr_x, 0)
+ self.nextDrawable:draw(canvas, self.curr_x + 640, 0)
self.curr_x = self.curr_x + self.step_x
return self
end
}
if is_forward then
- rec.prevImage = prev
- rec.nextImage = next
+ rec.prevDrawable = prev
+ rec.nextDrawable = next
rec.curr_x = 0
rec.step_x = -15
rec.isDone = function (self) return self.curr_x <= -640 end
else
- rec.prevImage = next
- rec.nextImage = prev
+ rec.prevDrawable = next
+ rec.nextDrawable = prev
rec.curr_x = -640
rec.step_x = 15
rec.isDone = function (self) return self.curr_x >= 0 end
@@ -71,15 +71,15 @@ end
function fade_slide_transition(prev, next, is_forward)
local rec = {
- prevImage = prev,
- nextImage = next,
+ prevDrawable = prev,
+ nextDrawable = next,
proc = function(self, canvas, drawSlideProc)
if self:isDone() then
drawSlideProc(canvas)
return nil
end
- canvas:drawImage(self.prevImage, self.prev_x, 0, self.prev_a)
- canvas:drawImage(self.nextImage, self.next_x, 0, self.next_a)
+ self.prevDrawable:draw(canvas, self.prev_x, 0, self.prev_a)
+ self.nextDrawable:draw(canvas, self.next_x, 0, self.next_a)
self:step()
return self
end
@@ -205,7 +205,27 @@ function prev_slide()
spawn_transition(prev, gSlides[gSlideIndex], false)
end
-gSurfaceFactory = function (w, h) return Sk.newRasterSurface(w, h) end
+function new_drawable_picture(pic)
+ return {
+ picture = pic,
+ width = pic:width(),
+ height = pic:height(),
+ draw = function (self, canvas, x, y, paint)
+ canvas:drawPicture(self.picture, x, y, paint)
+ end
+ }
+end
+
+function new_drawable_image(img)
+ return {
+ image = img,
+ width = img:width(),
+ height = img:height(),
+ draw = function (self, canvas, x, y, paint)
+ canvas:drawImage(self.image, x, y, paint)
+ end
+ }
+end
function spawn_transition(prevSlide, nextSlide, is_forward)
local transition
@@ -219,18 +239,15 @@ function spawn_transition(prevSlide, nextSlide, is_forward)
return
end
- local surf = gSurfaceFactory(640, 480)
- local canvas = surf:getCanvas()
+ local rec = Sk.newPictureRecorder()
- canvas:clear()
- drawSlide(canvas, prevSlide, gTemplate, gPaints)
- local prevImage = surf:newImageSnapshot()
+ drawSlide(rec:beginRecording(640, 480), prevSlide, gTemplate, gPaints)
+ local prevDrawable = new_drawable_picture(rec:endRecording())
- canvas:clear()
- drawSlide(canvas, nextSlide, gTemplate, gPaints)
- local nextImage = surf:newImageSnapshot()
+ drawSlide(rec:beginRecording(640, 480), nextSlide, gTemplate, gPaints)
+ local nextDrawable = new_drawable_picture(rec:endRecording())
- gCurrAnimation = transition(prevImage, nextImage, is_forward)
+ gCurrAnimation = transition(prevDrawable, nextDrawable, is_forward)
end
--------------------------------------------------------------------------------------
« no previous file with comments | « no previous file | src/utils/SkLua.cpp » ('j') | src/utils/SkLua.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698