'use strict'; exports.__esModule = true; var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _autoDetectRenderer = require('./autoDetectRenderer'); var _Container = require('./display/Container'); var _Container2 = _interopRequireDefault(_Container); var _Ticker = require('./ticker/Ticker'); var _Ticker2 = _interopRequireDefault(_Ticker); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } /** * Convenience class to create a new PIXI application. * This class automatically creates the renderer, ticker * and root container. * * @example * // Create the application * const app = new PIXI.Application(); * * // Add the view to the DOM * document.body.appendChild(app.view); * * // ex, add display objects * app.stage.addChild(PIXI.Sprite.fromImage('something.png')); * * @class * @memberof PIXI */ var Application = function () { /** * @param {number} [width=800] - the width of the renderers view * @param {number} [height=600] - the height of the renderers view * @param {object} [options] - The optional renderer parameters * @param {HTMLCanvasElement} [options.view] - the canvas to use as a view, optional * @param {boolean} [options.transparent=false] - If the render view is transparent, default false * @param {boolean} [options.antialias=false] - sets antialias (only applicable in chrome at the moment) * @param {boolean} [options.preserveDrawingBuffer=false] - enables drawing buffer preservation, enable this if you * need to call toDataUrl on the webgl context * @param {number} [options.resolution=1] - The resolution / device pixel ratio of the renderer, retina would be 2 * @param {boolean} [noWebGL=false] - prevents selection of WebGL renderer, even if such is present */ function Application(width, height, options, noWebGL) { _classCallCheck(this, Application); /** * WebGL renderer if available, otherwise CanvasRenderer * @member {PIXI.WebGLRenderer|PIXI.CanvasRenderer} */ this.renderer = (0, _autoDetectRenderer.autoDetectRenderer)(width, height, options, noWebGL); /** * The root display container that's renderered. * @member {PIXI.Container} */ this.stage = new _Container2.default(); /** * Ticker for doing render updates. * @member {PIXI.ticker.Ticker} */ this.ticker = new _Ticker2.default(); this.ticker.add(this.render, this); // Start the rendering this.start(); } /** * Render the current stage. */ Application.prototype.render = function render() { this.renderer.render(this.stage); }; /** * Convenience method for stopping the render. */ Application.prototype.stop = function stop() { this.ticker.stop(); }; /** * Convenience method for starting the render. */ Application.prototype.start = function start() { this.ticker.start(); }; /** * Reference to the renderer's canvas element. * @member {HTMLCanvasElement} * @readonly */ /** * Destroy and don't use after this. * @param {Boolean} [removeView=false] Automatically remove canvas from DOM. */ Application.prototype.destroy = function destroy(removeView) { this.stop(); this.ticker.remove(this.render, this); this.ticker = null; this.stage.destroy(); this.stage = null; this.renderer.destroy(removeView); this.renderer = null; }; _createClass(Application, [{ key: 'view', get: function get() { return this.renderer.view; } }]); return Application; }(); exports.default = Application; //# sourceMappingURL=Application.js.map