- add sources.
[platform/framework/web/crosswalk.git] / src / chrome / test / data / third_party / spaceport / js / sprites / renderers / canvasDrawImageFullClear.js
1 define([ 'util/ensureCallback', 'sprites/canvas' ], function (ensureCallback, canvas) {
2     function RenderContext(sourceData, frameData) {
3         this.sourceData = sourceData;
4         this.frameData = frameData;
5
6         this.canvas = canvas();
7
8         this.context = this.canvas.getContext('2d');
9         this.context.globalCompositeOperation = 'source-over';
10     }
11
12     RenderContext.prototype.load = function load(callback) {
13         callback = ensureCallback(callback);
14
15         document.body.appendChild(this.canvas);
16
17         callback(null);
18     };
19
20     RenderContext.prototype.unload = function unload() {
21         if (this.canvas.parentNode) {
22             this.canvas.parentNode.removeChild(this.canvas);
23         }
24     };
25
26     RenderContext.prototype.clear = function clear() {
27         this.canvas.width = this.canvas.width;
28     };
29
30     RenderContext.prototype.renderFrame = function renderFrame(frameIndex) {
31         var context = this.context;
32         var sourceData = this.sourceData;
33
34         var transforms = this.frameData[frameIndex];
35         var count = transforms.length;
36         var i;
37
38         // Reset view and transforms
39         context.canvas.width = context.canvas.width;
40
41         for (i = 0; i < count; ++i) {
42             var m = transforms[i].matrix;
43             context.setTransform(m[0], m[1], m[3], m[4], m[2], m[5]);
44             sourceData.drawToCanvas(context, 0, 0, frameIndex);
45         }
46
47     };
48
49     return function (element, frameData) {
50         return new RenderContext(element, frameData);
51     };
52 });