1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
(function() {
BouncingCompositedImage = Utilities.createSubclass(BouncingParticle,
function(stage)
{
BouncingParticle.call(this, stage);
this.element = document.createElement("img");
this.element.style.width = this.size.x + "px";
this.element.style.height = this.size.y + "px";
this.element.setAttribute("src", stage.imageSrc);
if (stage.useFilters)
this.element.style.filter = "hue-rotate(" + Stage.randomAngle() + "rad)";
stage.element.appendChild(this.element);
this._move();
}, {
_move: function()
{
this.element.style.transform = "translate3d(" + this.position.x + "px," + this.position.y + "px, 0) " + this.rotater.rotateZ();
},
animate: function(timeDelta)
{
BouncingParticle.prototype.animate.call(this, timeDelta);
this._move();
}
});
CompositingTransformsStage = Utilities.createSubclass(BouncingParticlesStage,
function()
{
BouncingParticlesStage.call(this);
}, {
initialize: function(benchmark, options)
{
BouncingParticlesStage.prototype.initialize.call(this, benchmark, options);
this.imageSrc = options["imageSrc"] || "../resources/yin-yang.svg";
this.useFilters = options["filters"] == "yes";
},
createParticle: function()
{
return new BouncingCompositedImage(this);
},
particleWillBeRemoved: function(particle)
{
particle.element.remove();
}
});
CompositedTransformsBenchmark = Utilities.createSubclass(Benchmark,
function(options)
{
Benchmark.call(this, new CompositingTransformsStage(), options);
}
);
window.benchmarkClass = CompositedTransformsBenchmark;
})();
|