Renamed to Update Manager.

This commit is contained in:
photonstorm 2016-10-14 08:58:12 +01:00
parent f9ffe098c3
commit 15fbd0962d
5 changed files with 58 additions and 22 deletions

View file

@ -173,9 +173,10 @@ EOL;
<script src="$path/src/components/BaseTransform.js"></script> <script src="$path/src/components/BaseTransform.js"></script>
<script src="$path/src/components/Children.js"></script> <script src="$path/src/components/Children.js"></script>
<script src="$path/src/components/Color.js"></script>
<script src="$path/src/components/Data.js"></script> <script src="$path/src/components/Data.js"></script>
<script src="$path/src/components/Transform.js"></script> <script src="$path/src/components/Transform.js"></script>
<script src="$path/src/components/TransformManager.js"></script> <script src="$path/src/components/UpdateManager.js"></script>
<script src="$path/src/gameobjects/Factory.js"></script> <script src="$path/src/gameobjects/Factory.js"></script>
<script src="$path/src/gameobjects/GameObjectCreator.js"></script> <script src="$path/src/gameobjects/GameObjectCreator.js"></script>

View file

@ -9,28 +9,56 @@
* *
* @class * @class
*/ */
Phaser.TransformManager = function (game) Phaser.UpdateManager = function (game)
{ {
this.game = game; this.game = game;
this.list = []; this.list = [];
this.i = 1;
this.running = false;
this.processed = 0; this.processed = 0;
}; };
Phaser.TransformManager.prototype.constructor = Phaser.TransformManager; Phaser.UpdateManager.prototype.constructor = Phaser.UpdateManager;
Phaser.TransformManager.prototype = { Phaser.UpdateManager.prototype = {
preUpdate: function () stop: function ()
{ {
this.processed = 0; if (!this.running)
{
return;
}
// console.log(this.i, 'UpdateManager.stop', this.processed);
this.list.length = 0; this.list.length = 0;
this.i++;
}, },
update: function () start: function ()
{ {
for (var i = 0; i < this.list.length; i++) if (!this.running)
{
return;
}
var len = this.list.length;
if (len === 0)
{
return;
}
// console.log(this.i, 'UpdateManager.start', len);
this.processed = 0;
for (var i = 0; i < len; i++)
{ {
// Because it may have already been processed (as a child of another Transform that was updated) // Because it may have already been processed (as a child of another Transform that was updated)
if (this.list[i] && this.list[i]._dirty) if (this.list[i] && this.list[i]._dirty)
@ -39,7 +67,6 @@ Phaser.TransformManager.prototype = {
this.list[i].update(); this.list[i].update();
} }
} }
}, },
add: function (transform) add: function (transform)

View file

@ -220,9 +220,9 @@ Phaser.Game = function (width, height, renderer, parent, state, pixelArt)
this.textures = null; this.textures = null;
/** /**
* @property {Phaser.TransformManager} transforms - Reference to the Phaser Transform Manager. * @property {Phaser.UpdateManager} updates - Reference to the Phaser Update Manager.
*/ */
this.transforms = null; this.updates = null;
/** /**
* @property {Phaser.Cache} cache - Reference to the assets cache. * @property {Phaser.Cache} cache - Reference to the assets cache.
@ -605,7 +605,7 @@ Phaser.Game.prototype = {
} }
}; };
this.transforms = new Phaser.TransformManager(this); this.updates = new Phaser.UpdateManager(this);
this.scale = new Phaser.ScaleManager(this, this._width, this._height); this.scale = new Phaser.ScaleManager(this, this._width, this._height);
this.stage = new Phaser.Stage(this); this.stage = new Phaser.Stage(this);
@ -833,6 +833,9 @@ Phaser.Game.prototype = {
update: function (time) { update: function (time) {
this.time.update(time); this.time.update(time);
this.updateLogic(this.time.desiredFpsMult);
this.updateRender(this.time.slowMotion * this.time.desiredFps);
return;
if (this._kickstart) if (this._kickstart)
{ {
@ -939,7 +942,7 @@ Phaser.Game.prototype = {
this.pendingStep = true; this.pendingStep = true;
} }
this.transforms.preUpdate(); // this.updates.preUpdate();
this.scale.preUpdate(); this.scale.preUpdate();
this.debug.preUpdate(); this.debug.preUpdate();
@ -997,20 +1000,17 @@ Phaser.Game.prototype = {
this.state.preRender(elapsedTime); this.state.preRender(elapsedTime);
// If this is empty then we could always NOT re-render the Canvas this.updates.start();
this.transforms.update();
if (this.renderType !== Phaser.HEADLESS) this.renderer.render(this.stage);
{
this.renderer.render(this.stage);
this.plugins.render(elapsedTime); this.plugins.render(elapsedTime);
this.state.render(elapsedTime); this.state.render(elapsedTime);
}
this.plugins.postRender(elapsedTime); this.plugins.postRender(elapsedTime);
this.updates.stop();
}, },
/** /**

View file

@ -595,6 +595,7 @@ Phaser.StateManager.prototype = {
{ {
this._created = true; this._created = true;
this.onCreateCallback.call(this.callbackContext, this.game); this.onCreateCallback.call(this.callbackContext, this.game);
this.game.updates.running = true;
} }
else else
{ {

View file

@ -33,7 +33,7 @@ Phaser.Renderer.Canvas = function (game)
*/ */
this.clearBeforeRender = game.clearBeforeRender; this.clearBeforeRender = game.clearBeforeRender;
this.dirtyRender = true; this.dirtyRender = false;
/** /**
* Whether the render view is transparent * Whether the render view is transparent
@ -186,6 +186,11 @@ Phaser.Renderer.Canvas.prototype = {
*/ */
render: function (stage) render: function (stage)
{ {
if (this.dirtyRender && this.game.updates.processed === 0)
{
return;
}
this.context.setTransform(1, 0, 0, 1, 0, 0); this.context.setTransform(1, 0, 0, 1, 0, 0);
// If the alpha or blend mode didn't change since the last render, then don't set them again // If the alpha or blend mode didn't change since the last render, then don't set them again
@ -223,6 +228,8 @@ Phaser.Renderer.Canvas.prototype = {
stage.render(this, stage); stage.render(this, stage);
// console.log('render stage', this.game.updates.processed);
// Add Post-render hook // Add Post-render hook
}, },