local r = { left = 10, top = 10, right = 100, bottom = 80 } local x = 0; local paint = Sk.newPaint(); paint:setAntiAlias(true); local image -- = Sk.loadImage('/skia/sailboat.jpg'); function setImageFilename(filename) image = Sk.loadImage(filename) end local color = {a = 1, r = 1, g = 0, b = 0}; function rnd(range) return math.random() * range; end rndX = function () return rnd(640) end rndY = function () return rnd(480) end function draw_rand_path(canvas); if not path_paint then path_paint = Sk.newPaint(); path_paint:setAntiAlias(true); end path_paint:setColor({a = 1, r = math.random(), g = math.random(), b = math.random() }); local path = Sk.newPath(); path:moveTo(rndX(), rndY()); for i = 0, 50 do path:quadTo(rndX(), rndY(), rndX(), rndY()); end canvas:drawPath(path, path_paint); paint:setColor{a=1,r=0,g=0,b=1}; local align = { 'left', 'center', 'right' }; paint:setTextSize(30); for k, v in next, align do paint:setTextAlign(v); canvas:drawText('Hamburgefons', 320, 200 + 30*k, paint); end end function onStartup() local paint = Sk.newPaint(); paint:setColor{a=1, r=1, g=0, b=0}; if false then local doc = Sk.newDocumentPDF('out/test.pdf'); local canvas = doc:beginPage(72*8.5, 72*11); canvas:drawText('Hello Lua', 300, 300, paint); doc:close(); doc = nil; end end function onDrawContent(canvas) draw_rand_path(canvas); color.g = x / 100; paint:setColor(color) canvas:translate(x, 0); canvas:drawOval(r, paint) x = x + 1; local r2 = {} r2.left = x; r2.top = r.bottom + 50; r2.right = r2.left + image:width() * 1; r2.bottom = r2.top + image:height() * 1; canvas:drawImageRect(image, nil, r2, 0.75); if x > 200 then x = 0 end; return true -- so we can animate end onStartup()