Merge pull request #245 from oysterCrusher/dev

Introduced a separate stage.fullScreenScaleMode property.
This commit is contained in:
Richard Davey 2013-12-05 01:10:02 -08:00
commit fe5fdb164c
3 changed files with 47 additions and 12 deletions

View file

@ -13,6 +13,13 @@ function create() {
game.stage.backgroundColor = '#e3ed49'; game.stage.backgroundColor = '#e3ed49';
// Stretch to fill
// game.stage.fullScreenScaleMode = Phaser.StageScaleMode.EXACT_FIT;
// Keep original size
// game.stage.fullScreenScaleMode = Phaser.StageScaleMode.NO_SCALE;
// Maintain aspect ratio
game.stage.fullScreenScaleMode = Phaser.StageScaleMode.SHOW_ALL;
game.input.onDown.add(gofull, this); game.input.onDown.add(gofull, this);
} }

View file

@ -52,6 +52,11 @@ Phaser.Stage = function (game, width, height) {
*/ */
this.scaleMode = Phaser.StageScaleMode.NO_SCALE; this.scaleMode = Phaser.StageScaleMode.NO_SCALE;
/*
* @property {number} fullScreenScaleMode - Scale mode to be used in fullScreen
*/
this.fullScreenScaleMode = Phaser.StageScaleMode.NO_SCALE;
/** /**
* @property {Phaser.StageScaleMode} scale - The scale of the current running game. * @property {Phaser.StageScaleMode} scale - The scale of the current running game.
*/ */

View file

@ -268,7 +268,7 @@ Phaser.StageScaleMode.prototype = {
} }
else if (element['mozRequestFullScreen']) else if (element['mozRequestFullScreen'])
{ {
element['mozRequestFullScreen'](); element.parentNode['mozRequestFullScreen']();
} }
else if (element['webkitRequestFullScreen']) else if (element['webkitRequestFullScreen'])
{ {
@ -309,6 +309,8 @@ Phaser.StageScaleMode.prototype = {
this.event = event; this.event = event;
if (this.isFullScreen) if (this.isFullScreen)
{
if (this.game.stage.fullScreenScaleMode === Phaser.StageScaleMode.EXACT_FIT)
{ {
this.game.stage.canvas.style['width'] = '100%'; this.game.stage.canvas.style['width'] = '100%';
this.game.stage.canvas.style['height'] = '100%'; this.game.stage.canvas.style['height'] = '100%';
@ -321,6 +323,13 @@ Phaser.StageScaleMode.prototype = {
this.scaleFactor.x = this.game.width / this.width; this.scaleFactor.x = this.game.width / this.width;
this.scaleFactor.y = this.game.height / this.height; this.scaleFactor.y = this.game.height / this.height;
} }
else if (this.game.stage.fullScreenScaleMode === Phaser.StageScaleMode.SHOW_ALL)
{
this.game.stage.scale.setShowAll();
this.game.stage.scale.refresh();
}
}
else else
{ {
this.game.stage.canvas.style['width'] = this.game.width + 'px'; this.game.stage.canvas.style['width'] = this.game.width + 'px';
@ -560,7 +569,9 @@ Phaser.StageScaleMode.prototype = {
{ {
this.setMaximum(); this.setMaximum();
} }
else if (this.game.stage.scaleMode == Phaser.StageScaleMode.EXACT_FIT) else if (!this.isFullScreen)
{
if (this.game.stage.scaleMode == Phaser.StageScaleMode.EXACT_FIT)
{ {
this.setExactFit(); this.setExactFit();
} }
@ -568,6 +579,18 @@ Phaser.StageScaleMode.prototype = {
{ {
this.setShowAll(); this.setShowAll();
} }
}
else
{
if (this.game.stage.fullScreenScaleMode == Phaser.StageScaleMode.EXACT_FIT)
{
this.setExactFit();
}
else if (this.game.stage.fullScreenScaleMode == Phaser.StageScaleMode.SHOW_ALL)
{
this.setShowAll();
}
}
this.setSize(); this.setSize();
clearInterval(this._check); clearInterval(this._check);