109445a4f7fe6c8cd8cfe172ce160af7007738490reed
209445a4f7fe6c8cd8cfe172ce160af7007738490reedlocal r = { left = 10, top = 10, right = 100, bottom = 80 }
309445a4f7fe6c8cd8cfe172ce160af7007738490reedlocal x = 0;
409445a4f7fe6c8cd8cfe172ce160af7007738490reed
509445a4f7fe6c8cd8cfe172ce160af7007738490reedlocal paint = Sk.newPaint();
609445a4f7fe6c8cd8cfe172ce160af7007738490reedpaint:setAntiAlias(true);
709445a4f7fe6c8cd8cfe172ce160af7007738490reed
809445a4f7fe6c8cd8cfe172ce160af7007738490reedlocal image     -- = Sk.loadImage('/skia/sailboat.jpg');
909445a4f7fe6c8cd8cfe172ce160af7007738490reedfunction setImageFilename(filename)
1009445a4f7fe6c8cd8cfe172ce160af7007738490reed    image = Sk.loadImage(filename)
1109445a4f7fe6c8cd8cfe172ce160af7007738490reedend
1209445a4f7fe6c8cd8cfe172ce160af7007738490reed
1309445a4f7fe6c8cd8cfe172ce160af7007738490reed
1409445a4f7fe6c8cd8cfe172ce160af7007738490reedlocal color = {a = 1, r = 1, g = 0, b = 0};
1509445a4f7fe6c8cd8cfe172ce160af7007738490reed
1609445a4f7fe6c8cd8cfe172ce160af7007738490reedfunction rnd(range) 
1709445a4f7fe6c8cd8cfe172ce160af7007738490reed   return math.random() * range;
1809445a4f7fe6c8cd8cfe172ce160af7007738490reedend 
1909445a4f7fe6c8cd8cfe172ce160af7007738490reed
2009445a4f7fe6c8cd8cfe172ce160af7007738490reedrndX = function () return rnd(640) end 
2109445a4f7fe6c8cd8cfe172ce160af7007738490reedrndY = function () return rnd(480) end 
2209445a4f7fe6c8cd8cfe172ce160af7007738490reed
2309445a4f7fe6c8cd8cfe172ce160af7007738490reedfunction draw_rand_path(canvas);
2409445a4f7fe6c8cd8cfe172ce160af7007738490reed   if not path_paint then 
2509445a4f7fe6c8cd8cfe172ce160af7007738490reed       path_paint = Sk.newPaint();
2609445a4f7fe6c8cd8cfe172ce160af7007738490reed       path_paint:setAntiAlias(true);
2709445a4f7fe6c8cd8cfe172ce160af7007738490reed   end 
2809445a4f7fe6c8cd8cfe172ce160af7007738490reed   path_paint:setColor({a = 1, r = math.random(), g = math.random(), b = math.random() });
2909445a4f7fe6c8cd8cfe172ce160af7007738490reed
3009445a4f7fe6c8cd8cfe172ce160af7007738490reed   local path = Sk.newPath();
3109445a4f7fe6c8cd8cfe172ce160af7007738490reed   path:moveTo(rndX(), rndY());
3209445a4f7fe6c8cd8cfe172ce160af7007738490reed   for i = 0, 50 do 
3309445a4f7fe6c8cd8cfe172ce160af7007738490reed       path:quadTo(rndX(), rndY(), rndX(), rndY());
3409445a4f7fe6c8cd8cfe172ce160af7007738490reed   end 
3509445a4f7fe6c8cd8cfe172ce160af7007738490reed   canvas:drawPath(path, path_paint);
3609445a4f7fe6c8cd8cfe172ce160af7007738490reed
3709445a4f7fe6c8cd8cfe172ce160af7007738490reed   paint:setColor{a=1,r=0,g=0,b=1};
3809445a4f7fe6c8cd8cfe172ce160af7007738490reed   local align = { 'left', 'center', 'right' };
3909445a4f7fe6c8cd8cfe172ce160af7007738490reed   paint:setTextSize(30);
4009445a4f7fe6c8cd8cfe172ce160af7007738490reed   for k, v in next, align do 
4109445a4f7fe6c8cd8cfe172ce160af7007738490reed       paint:setTextAlign(v);
4209445a4f7fe6c8cd8cfe172ce160af7007738490reed       canvas:drawText('Hamburgefons', 320, 200 + 30*k, paint);
4309445a4f7fe6c8cd8cfe172ce160af7007738490reed   end 
4409445a4f7fe6c8cd8cfe172ce160af7007738490reedend 
4509445a4f7fe6c8cd8cfe172ce160af7007738490reed
4609445a4f7fe6c8cd8cfe172ce160af7007738490reedfunction onStartup()
4709445a4f7fe6c8cd8cfe172ce160af7007738490reed    local paint = Sk.newPaint();
4809445a4f7fe6c8cd8cfe172ce160af7007738490reed    paint:setColor{a=1, r=1, g=0, b=0};
4909445a4f7fe6c8cd8cfe172ce160af7007738490reed    if false then
5009445a4f7fe6c8cd8cfe172ce160af7007738490reed        local doc = Sk.newDocumentPDF('/skia/trunk/test.pdf');
5109445a4f7fe6c8cd8cfe172ce160af7007738490reed        local canvas = doc:beginPage(72*8.5, 72*11);
5209445a4f7fe6c8cd8cfe172ce160af7007738490reed        canvas:drawText('Hello Lua', 300, 300, paint);
5309445a4f7fe6c8cd8cfe172ce160af7007738490reed        doc:close();
5409445a4f7fe6c8cd8cfe172ce160af7007738490reed        doc = nil;
5509445a4f7fe6c8cd8cfe172ce160af7007738490reed    end
5609445a4f7fe6c8cd8cfe172ce160af7007738490reedend 
5709445a4f7fe6c8cd8cfe172ce160af7007738490reed
5809445a4f7fe6c8cd8cfe172ce160af7007738490reedfunction onDrawContent(canvas)
5909445a4f7fe6c8cd8cfe172ce160af7007738490reed    draw_rand_path(canvas);
6009445a4f7fe6c8cd8cfe172ce160af7007738490reed    color.g = x / 100;
6109445a4f7fe6c8cd8cfe172ce160af7007738490reed    paint:setColor(color) 
6209445a4f7fe6c8cd8cfe172ce160af7007738490reed    canvas:translate(x, 0);
6309445a4f7fe6c8cd8cfe172ce160af7007738490reed    canvas:drawOval(r, paint) 
6409445a4f7fe6c8cd8cfe172ce160af7007738490reed    x = x + 1;
6509445a4f7fe6c8cd8cfe172ce160af7007738490reed    local r2 = {}
6609445a4f7fe6c8cd8cfe172ce160af7007738490reed    r2.left = x;
6709445a4f7fe6c8cd8cfe172ce160af7007738490reed    r2.top = r.bottom + 50;
6809445a4f7fe6c8cd8cfe172ce160af7007738490reed    r2.right = r2.left + image:width() * 1;
6909445a4f7fe6c8cd8cfe172ce160af7007738490reed    r2.bottom = r2.top + image:height() * 1;
7009445a4f7fe6c8cd8cfe172ce160af7007738490reed    canvas:drawImageRect(image, nil, r2, 0.75);
7109445a4f7fe6c8cd8cfe172ce160af7007738490reed    if x > 200 then x = 0 end;
7218ea777638f1494b068ba4ca1a5d6725a0e80cf1reed
7318ea777638f1494b068ba4ca1a5d6725a0e80cf1reed    return true -- so we can animate
7409445a4f7fe6c8cd8cfe172ce160af7007738490reedend
7509445a4f7fe6c8cd8cfe172ce160af7007738490reed
7609445a4f7fe6c8cd8cfe172ce160af7007738490reedonStartup()
77