Clean referencing the options object in the graphics benchmark
[WebKit-https.git] / PerformanceTests / Animometer / tests / template / resources / template-canvas.js
1 function TemplateCanvasObject(stage)
2 {
3     // For the canvas stage, most likely you will need to create your
4     // animated object since it's only draw time thing.
5     
6     // Fill in your object data.
7 }
8
9 TemplateCanvasObject.prototype._draw = function()
10 {
11     // Draw your object.
12 }
13
14 TemplateCanvasObject.prototype.animate = function(timeDelta)
15 {
16     // Redraw the animated object. The last time this animated
17     // item was drawn before 'timeDelta'.
18     
19     // Move your object.
20     
21     // Redraw your object.
22     this._draw();
23 }
24
25 function TemplateCanvasStage(element, options)
26 {
27     Stage.call(this, element, options);
28     this.context = this.element.getContext("2d");
29
30     // Define a collection for your objects.
31 }
32
33 TemplateCanvasStage.prototype = Object.create(Stage.prototype);
34 TemplateCanvasStage.prototype.constructor = TemplateCanvasStage;
35
36 TemplateCanvasStage.prototype.tune = function(count)
37 {
38     // If count is -ve, -count elements need to be removed form the
39     // stage. If count is +ve, +count elements need to be added to
40     // the stage.
41     
42     // Change objects in the stage.
43     
44     // Return the number of all the elements in the stage.
45     // This number is recorded in the sampled data.
46     
47     // Return the count of the objects in the stage.
48     return 0;
49 }
50
51 TemplateCanvasStage.prototype.animate = function(timeDelta)
52 {
53     // Animate the elements such that all of them are redrawn. Most
54     // likely you will need to call TemplateCanvasObject.animate()
55     // for all your animated objects here.
56
57     // Loop through all your objects and ask them to animate.
58 }
59
60 function TemplateCanvasAnimator(benchmark, options)
61 {
62     Animator.call(this, benchmark, options);
63     this._context = benchmark._stage.context;
64 }
65
66 TemplateCanvasAnimator.prototype = Object.create(StageAnimator.prototype);
67 TemplateCanvasAnimator.prototype.constructor = TemplateCanvasAnimator;
68
69 TemplateCanvasAnimator.prototype.animate = function()
70 {
71     // Most likely you will need to clear the canvas with every redraw.
72     this._context.clearRect(0, 0, this._benchmark._stage.size.x, this._benchmark._stage.size.y);
73
74     // Draw scene stuff here if needed.
75
76     return StageAnimator.prototype.animate.call(this);
77 }
78
79 function TemplateCanvasBenchmark(suite, test, options, recordTable, progressBar)
80 {
81     StageBenchmark.call(this, suite, test, options, recordTable, progressBar);
82 }
83
84 TemplateCanvasBenchmark.prototype = Object.create(StageBenchmark.prototype);
85 TemplateCanvasBenchmark.prototype.constructor = TemplateCanvasBenchmark;
86
87 TemplateCanvasBenchmark.prototype.createStage = function(element)
88 {
89     // Attach the stage to the benchmark.
90     return new TemplateCanvasStage(element, this._options);
91 }
92
93 TemplateCanvasBenchmark.prototype.createAnimator = function()
94 {
95     // Attach the animator to the benchmark.
96     return new TemplateCanvasAnimator(this, this._options);
97 }
98
99 window.benchmarkClient.create = function(suite, test, options, recordTable, progressBar)
100 {
101     // This function is called from the test harness which starts the
102     // test by creating your benchmark object.
103     return new TemplateCanvasBenchmark(suite, test, options, recordTable, progressBar);
104 }