summaryrefslogtreecommitdiffstats
path: root/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/webkit/PerformanceTests/MotionMark/tests/template/resources')
-rw-r--r--third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-canvas.js89
-rw-r--r--third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-css.js46
-rw-r--r--third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-svg.js46
3 files changed, 181 insertions, 0 deletions
diff --git a/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-canvas.js b/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-canvas.js
new file mode 100644
index 0000000000..b74984c010
--- /dev/null
+++ b/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-canvas.js
@@ -0,0 +1,89 @@
+(function() {
+
+function TemplateCanvasObject(stage)
+{
+ // For the canvas stage, most likely you will need to create your
+ // animated object since it's only draw time thing.
+
+ // Fill in your object data.
+}
+
+TemplateCanvasObject.prototype = {
+ _draw: function()
+ {
+ // Draw your object.
+ },
+
+ animate: function(timeDelta)
+ {
+ // Redraw the animated object. The last time this animated
+ // item was drawn before 'timeDelta'.
+
+ // Move your object.
+
+ // Redraw your object.
+ this._draw();
+ }
+};
+
+TemplateCanvasStage = Utilities.createSubclass(Stage,
+ function()
+ {
+ Stage.call(this);
+ }, {
+
+ initialize: function(benchmark, options)
+ {
+ Stage.prototype.initialize.call(this, benchmark, options);
+ this.context = this.element.getContext("2d");
+
+ // Define a collection for your objects.
+ },
+
+ tune: function(count)
+ {
+ // If count is -ve, -count elements need to be removed form the
+ // stage. If count is +ve, +count elements need to be added to
+ // the stage.
+
+ // Change objects in the stage.
+ },
+
+ animate: function(timeDelta)
+ {
+ // Animate the elements such that all of them are redrawn. Most
+ // likely you will need to call TemplateCanvasObject.animate()
+ // for all your animated objects here.
+
+ // Most likely you will need to clear the canvas with every redraw.
+ this.context.clearRect(0, 0, this.size.x, this.size.y);
+
+ // Loop through all your objects and ask them to animate.
+ }
+});
+
+TemplateCanvasBenchmark = Utilities.createSubclass(Benchmark,
+ function(options)
+ {
+ Benchmark.call(this, new TemplateCanvasStage(), options);
+ }, {
+
+ // Override this function if the benchmark needs to wait for resources to be
+ // loaded.
+ //
+ // Default implementation returns a resolved promise, so that the benchmark
+ // benchmark starts right away. Here's an example where we're waiting 5
+ // seconds before starting the benchmark.
+ waitUntilReady: function()
+ {
+ var promise = new SimplePromise;
+ window.setTimeout(function() {
+ promise.resolve();
+ }, 5000);
+ return promise;
+ }
+});
+
+window.benchmarkClass = TemplateCanvasBenchmark;
+
+})(); \ No newline at end of file
diff --git a/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-css.js b/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-css.js
new file mode 100644
index 0000000000..cdaa814af0
--- /dev/null
+++ b/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-css.js
@@ -0,0 +1,46 @@
+(function() {
+
+TemplateCssStage = Utilities.createSubclass(Stage,
+ function()
+ {
+ Stage.call(this);
+ }, {
+
+ initialize: function(benchmark, options)
+ {
+ Stage.prototype.initialize.call(this, benchmark, options);
+
+ // Do initialization here.
+ },
+
+ tune: function(count)
+ {
+ // If count is -ve, -count elements need to be removed form the
+ // stage. If count is +ve, +count elements need to be added to
+ // the stage.
+
+ // Change objects in the stage.
+ },
+
+ animate: function(timeDelta)
+ {
+ // Animate the elements such that all of them are redrawn. You
+ // may need to define your object so it keeps its animation data.
+ // This object should encapsulate a corrosponding HTMLElement.
+ // You may also define a method called animate() in this object
+ // and just call this function here for all the elements.
+
+ // Loop through all your objects and ask them to animate.
+ }
+});
+
+TemplateCssBenchmark = Utilities.createSubclass(Benchmark,
+ function(options)
+ {
+ Benchmark.call(this, new TemplateCssStage(), options);
+ }
+);
+
+window.benchmarkClass = TemplateCssBenchmark;
+
+})();
diff --git a/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-svg.js b/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-svg.js
new file mode 100644
index 0000000000..8fee9c3478
--- /dev/null
+++ b/third_party/webkit/PerformanceTests/MotionMark/tests/template/resources/template-svg.js
@@ -0,0 +1,46 @@
+(function() {
+
+TemplateSvgStage = Utilities.createSubclass(Stage,
+ function()
+ {
+ Stage.call(this);
+ }, {
+
+ initialize: function(benchmark, options)
+ {
+ Stage.prototype.initialize.call(this, benchmark, options);
+
+ // Do initialization here.
+ },
+
+ tune: function(count)
+ {
+ // If count is -ve, -count elements need to be removed form the
+ // stage. If count is +ve, +count elements need to be added to
+ // the stage.
+
+ // TODO: Change objects in the stage.
+ },
+
+ animate: function(timeDelta)
+ {
+ // Animate the elements such that all of them are redrawn. You
+ // may need to define your object so it keeps its animation data.
+ // This object should encapsulate a corrosponding SVGElement.
+ // You may also define a method called animate() in this object
+ // and just call this function here for all the elements.
+
+ // TODO: Loop through all your objects and ask them to animate.
+ }
+});
+
+TemplateSvgBenchmark = Utilities.createSubclass(Benchmark,
+ function(options)
+ {
+ Benchmark.call(this, new TemplateSvgStage(), options);
+ }
+);
+
+window.benchmarkClass = TemplateSvgBenchmark;
+
+})();