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 | } |