Refactor tune() to not return the complexity of the scene.
[WebKit-https.git] / PerformanceTests / Animometer / tests / template / resources / template-canvas.js
1 (function() {
2
3 function TemplateCanvasObject(stage)
4 {
5     // For the canvas stage, most likely you will need to create your
6     // animated object since it's only draw time thing.
7
8     // Fill in your object data.
9 }
10
11 TemplateCanvasObject.prototype = {
12     _draw: function()
13     {
14         // Draw your object.
15     },
16
17     animate: function(timeDelta)
18     {
19         // Redraw the animated object. The last time this animated
20         // item was drawn before 'timeDelta'.
21
22         // Move your object.
23
24         // Redraw your object.
25         this._draw();
26     }
27 };
28
29 TemplateCanvasStage = Utilities.createSubclass(Stage,
30     function()
31     {
32         Stage.call(this);
33     }, {
34
35     initialize: function(benchmark, options)
36     {
37         Stage.prototype.initialize.call(this, benchmark, options);
38         this.context = this.element.getContext("2d");
39
40         // Define a collection for your objects.
41     },
42
43     tune: function(count)
44     {
45         // If count is -ve, -count elements need to be removed form the
46         // stage. If count is +ve, +count elements need to be added to
47         // the stage.
48
49         // Change objects in the stage.
50     },
51
52     animate: function(timeDelta)
53     {
54         // Animate the elements such that all of them are redrawn. Most
55         // likely you will need to call TemplateCanvasObject.animate()
56         // for all your animated objects here.
57
58         // Most likely you will need to clear the canvas with every redraw.
59         this.context.clearRect(0, 0, this.size.x, this.size.y);
60
61         // Loop through all your objects and ask them to animate.
62     }
63 });
64
65 TemplateCanvasBenchmark = Utilities.createSubclass(Benchmark,
66     function(options)
67     {
68         Benchmark.call(this, new TemplateCanvasStage(), options);
69     }, {
70
71     // Override this function if the benchmark needs to wait for resources to be
72     // loaded.
73     //
74     // Default implementation returns a resolved promise, so that the benchmark
75     // benchmark starts right away. Here's an example where we're waiting 5
76     // seconds before starting the benchmark.
77     waitUntilReady: function()
78     {
79         var promise = new SimplePromise;
80         window.setTimeout(function() {
81             promise.resolve();
82         }, 5000);
83         return promise;
84     }
85 });
86
87 window.benchmarkClass = TemplateCanvasBenchmark;
88
89 })();