2018-10-18 13:59:27 +00:00
|
|
|
/**
|
|
|
|
* @author Richard Davey <rich@photonstorm.com>
|
2020-01-15 12:07:09 +00:00
|
|
|
* @copyright 2020 Photon Storm Ltd.
|
2019-05-10 15:15:04 +00:00
|
|
|
* @license {@link https://opensource.org/licenses/MIT|MIT License}
|
2018-10-18 13:59:27 +00:00
|
|
|
*/
|
|
|
|
|
2019-01-29 15:42:27 +00:00
|
|
|
var CONST = require('../scale/const');
|
2019-01-11 18:00:02 +00:00
|
|
|
|
2019-02-12 12:04:35 +00:00
|
|
|
/**
|
|
|
|
* Attempts to determine the screen orientation using the Orientation API.
|
|
|
|
*
|
|
|
|
* @function Phaser.DOM.GetScreenOrientation
|
|
|
|
* @since 3.16.0
|
|
|
|
*
|
|
|
|
* @param {number} width - The width of the viewport.
|
|
|
|
* @param {number} height - The height of the viewport.
|
|
|
|
*
|
|
|
|
* @return {string} The orientation.
|
|
|
|
*/
|
2019-01-11 12:12:43 +00:00
|
|
|
var GetScreenOrientation = function (width, height)
|
2018-10-18 13:59:27 +00:00
|
|
|
{
|
|
|
|
var screen = window.screen;
|
2019-01-11 12:12:43 +00:00
|
|
|
var orientation = (screen) ? screen.orientation || screen.mozOrientation || screen.msOrientation : false;
|
2018-10-18 13:59:27 +00:00
|
|
|
|
|
|
|
if (orientation && typeof orientation.type === 'string')
|
|
|
|
{
|
|
|
|
// Screen Orientation API specification
|
|
|
|
return orientation.type;
|
|
|
|
}
|
|
|
|
else if (typeof orientation === 'string')
|
|
|
|
{
|
|
|
|
// moz / ms-orientation are strings
|
|
|
|
return orientation;
|
|
|
|
}
|
2019-01-29 15:42:27 +00:00
|
|
|
|
2019-01-11 12:12:43 +00:00
|
|
|
if (screen)
|
2018-10-18 13:59:27 +00:00
|
|
|
{
|
2019-10-23 09:48:43 +00:00
|
|
|
return (screen.height > screen.width) ? CONST.ORIENTATION.PORTRAIT : CONST.ORIENTATION.LANDSCAPE;
|
2018-10-18 13:59:27 +00:00
|
|
|
}
|
2019-01-11 12:12:43 +00:00
|
|
|
else if (typeof window.orientation === 'number')
|
2018-10-18 13:59:27 +00:00
|
|
|
{
|
|
|
|
// This may change by device based on "natural" orientation.
|
2019-10-23 09:48:43 +00:00
|
|
|
return (window.orientation === 0 || window.orientation === 180) ? CONST.ORIENTATION.PORTRAIT : CONST.ORIENTATION.LANDSCAPE;
|
2018-10-18 13:59:27 +00:00
|
|
|
}
|
|
|
|
else if (window.matchMedia)
|
|
|
|
{
|
|
|
|
if (window.matchMedia('(orientation: portrait)').matches)
|
|
|
|
{
|
2019-10-23 09:48:43 +00:00
|
|
|
return CONST.ORIENTATION.PORTRAIT;
|
2018-10-18 13:59:27 +00:00
|
|
|
}
|
|
|
|
else if (window.matchMedia('(orientation: landscape)').matches)
|
|
|
|
{
|
2019-10-23 09:48:43 +00:00
|
|
|
return CONST.ORIENTATION.LANDSCAPE;
|
2018-10-18 13:59:27 +00:00
|
|
|
}
|
|
|
|
}
|
2019-01-11 12:12:43 +00:00
|
|
|
|
2019-10-23 09:48:43 +00:00
|
|
|
return (height > width) ? CONST.ORIENTATION.PORTRAIT : CONST.ORIENTATION.LANDSCAPE;
|
2018-10-18 13:59:27 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
module.exports = GetScreenOrientation;
|