View difference between Paste ID: XRY0arei and 9jxNijxW
SHOW: | | - or go back to the newest paste.
1
/**
2
 * @author Mat Groves http://matgroves.com/
3
 */
4
var PIXI = PIXI || {};
5
6
7
PIXI.StressTest = function(callback)
8
{
9-
	if ( !this instanceof PIXI.StressTest ){
9+
10-
		console.log("sqdqsd");
10+
11-
		return new PIXI.StressTest(callback);
11+
12-
	}	
12+
13
	document.body.appendChild(this.renderer.view);
14
	this.renderer.view.style.position = "absolute";
15
	this.renderer.view.style.left = "-500px";
16
17
	this.duration = 3;
18-
	// this.renderer.view.style.left = "-500px";
18+
19
	var scope = this;
20
	var canvas = document.createElement("canvas");
21
	canvas.width = 52
22
	canvas.height = 74
23
	canvas.context = canvas.getContext("2d");
24
	canvas.context.fillStyle="#FF0000";
25
	canvas.context.fillRect(0,0,52,74);
26
	
27
	this.texture = PIXI.Texture.fromCanvas(canvas);
28
	scope.begin();
29
	// this.texture.baseTexture.addEventListener( 'loaded', function(){ scope.begin()} );
30
	
31
	this.frameRate = [];
32
}
33
34
// constructor
35
PIXI.StressTest.constructor = PIXI.StressTest;
36
37
PIXI.StressTest.prototype.begin = function()
38
{
39
	this.testSprites = [];
40
	for (var i=0; i < 300; i++) 
41
	{
42
		var bunny = new PIXI.Sprite(this.texture);
43
		bunny.anchor.x = 0.5;
44
		bunny.anchor.y = 0.5;
45
		bunny.alpha = .5;
46
		this.stage.addChild(bunny);
47
		bunny.position.x = 50 + Math.random() * 400; 
48
		bunny.position.y = 50 + Math.random() * 400; 
49
		
50
		this.testSprites.push(bunny);
51
	};
52
	
53
	this.renderer.render(this.stage);
54
	
55
	this.startTime = Date.now();
56
	this.lastTime = Date.now();
57
	
58
	var scope = this
59
	requestAnimFrame(function(){scope.update()});
60
}
61
62
PIXI.StressTest.prototype.update = function()
63
{
64
	var currentTime = Date.now();
65
	
66
	for (var i=0; i < this.testSprites.length; i++) {
67
	  this.testSprites[i].rotation += 0.3;
68
	};
69
	
70
	this.renderer.render(this.stage);
71
	
72
	var diff = currentTime - this.lastTime;
73
	diff *= 0.06;
74
	
75
	//diff *= 60;
76
	
77
	this.frameRate.push(diff);
78
	
79
	this.lastTime = currentTime;
80
	
81
	var elapsedTime = currentTime - this.startTime;
82
	
83
	if(elapsedTime < this.duration * 1000)
84
	{
85
		var scope = this
86
		requestAnimFrame(function(){scope.update()});
87
		
88
	}
89
	else
90
	{
91
	
92
		document.body.removeChild(this.renderer.view);
93
		
94
		this.renderer = null;
95
		
96
		this.result = this.frameRate.length/this.duration;
97
		
98
		
99
		if(this.callback)this.callback(this.result);
100
	}
101
	
102
}