sdfsdfs
This commit is contained in:
91
node_modules/pixi.js/lib/app/ResizePlugin.js
generated
vendored
Normal file
91
node_modules/pixi.js/lib/app/ResizePlugin.js
generated
vendored
Normal file
@@ -0,0 +1,91 @@
|
||||
'use strict';
|
||||
|
||||
var Extensions = require('../extensions/Extensions.js');
|
||||
|
||||
"use strict";
|
||||
class ResizePlugin {
|
||||
/**
|
||||
* Initialize the plugin with scope of application instance
|
||||
* @static
|
||||
* @private
|
||||
* @param {object} [options] - See application options
|
||||
*/
|
||||
static init(options) {
|
||||
Object.defineProperty(
|
||||
this,
|
||||
"resizeTo",
|
||||
/**
|
||||
* The HTML element or window to automatically resize the
|
||||
* renderer's view element to match width and height.
|
||||
* @member {Window|HTMLElement}
|
||||
* @name resizeTo
|
||||
* @memberof app.Application#
|
||||
*/
|
||||
{
|
||||
set(dom) {
|
||||
globalThis.removeEventListener("resize", this.queueResize);
|
||||
this._resizeTo = dom;
|
||||
if (dom) {
|
||||
globalThis.addEventListener("resize", this.queueResize);
|
||||
this.resize();
|
||||
}
|
||||
},
|
||||
get() {
|
||||
return this._resizeTo;
|
||||
}
|
||||
}
|
||||
);
|
||||
this.queueResize = () => {
|
||||
if (!this._resizeTo) {
|
||||
return;
|
||||
}
|
||||
this._cancelResize();
|
||||
this._resizeId = requestAnimationFrame(() => this.resize());
|
||||
};
|
||||
this._cancelResize = () => {
|
||||
if (this._resizeId) {
|
||||
cancelAnimationFrame(this._resizeId);
|
||||
this._resizeId = null;
|
||||
}
|
||||
};
|
||||
this.resize = () => {
|
||||
if (!this._resizeTo) {
|
||||
return;
|
||||
}
|
||||
this._cancelResize();
|
||||
let width;
|
||||
let height;
|
||||
if (this._resizeTo === globalThis.window) {
|
||||
width = globalThis.innerWidth;
|
||||
height = globalThis.innerHeight;
|
||||
} else {
|
||||
const { clientWidth, clientHeight } = this._resizeTo;
|
||||
width = clientWidth;
|
||||
height = clientHeight;
|
||||
}
|
||||
this.renderer.resize(width, height);
|
||||
this.render();
|
||||
};
|
||||
this._resizeId = null;
|
||||
this._resizeTo = null;
|
||||
this.resizeTo = options.resizeTo || null;
|
||||
}
|
||||
/**
|
||||
* Clean up the ticker, scoped to application
|
||||
* @static
|
||||
* @private
|
||||
*/
|
||||
static destroy() {
|
||||
globalThis.removeEventListener("resize", this.queueResize);
|
||||
this._cancelResize();
|
||||
this._cancelResize = null;
|
||||
this.queueResize = null;
|
||||
this.resizeTo = null;
|
||||
this.resize = null;
|
||||
}
|
||||
}
|
||||
/** @ignore */
|
||||
ResizePlugin.extension = Extensions.ExtensionType.Application;
|
||||
|
||||
exports.ResizePlugin = ResizePlugin;
|
||||
//# sourceMappingURL=ResizePlugin.js.map
|
Reference in New Issue
Block a user