@pixi/core
Version:
Core PixiJS
184 lines (179 loc) • 5.76 kB
JavaScript
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var constants = require('@pixi/constants');
var extensions = require('@pixi/extensions');
var math = require('@pixi/math');
var settings = require('@pixi/settings');
var utils = require('@pixi/utils');
var UniformGroup = require('./shader/UniformGroup.js');
var SystemManager = require('./system/SystemManager.js');
const _Renderer = class extends SystemManager.SystemManager {
constructor(options) {
super();
this.type = constants.RENDERER_TYPE.WEBGL;
options = Object.assign({}, settings.settings.RENDER_OPTIONS, options);
this.gl = null;
this.CONTEXT_UID = 0;
this.globalUniforms = new UniformGroup.UniformGroup({
projectionMatrix: new math.Matrix()
}, true);
const systemConfig = {
runners: [
"init",
"destroy",
"contextChange",
"resolutionChange",
"reset",
"update",
"postrender",
"prerender",
"resize"
],
systems: _Renderer.__systems,
priority: [
"_view",
"textureGenerator",
"background",
"_plugin",
"startup",
"context",
"state",
"texture",
"buffer",
"geometry",
"framebuffer",
"transformFeedback",
"mask",
"scissor",
"stencil",
"projection",
"textureGC",
"filter",
"renderTexture",
"batch",
"objectRenderer",
"_multisample"
]
};
this.setup(systemConfig);
if ("useContextAlpha" in options) {
utils.deprecation("7.0.0", "options.useContextAlpha is deprecated, use options.premultipliedAlpha and options.backgroundAlpha instead");
options.premultipliedAlpha = options.useContextAlpha && options.useContextAlpha !== "notMultiplied";
options.backgroundAlpha = options.useContextAlpha === false ? 1 : options.backgroundAlpha;
}
this._plugin.rendererPlugins = _Renderer.__plugins;
this.options = options;
this.startup.run(this.options);
}
static test(options) {
if (options?.forceCanvas) {
return false;
}
return utils.isWebGLSupported();
}
render(displayObject, options) {
this.objectRenderer.render(displayObject, options);
}
resize(desiredScreenWidth, desiredScreenHeight) {
this._view.resizeView(desiredScreenWidth, desiredScreenHeight);
}
reset() {
this.runners.reset.emit();
return this;
}
clear() {
this.renderTexture.bind();
this.renderTexture.clear();
}
destroy(removeView = false) {
this.runners.destroy.items.reverse();
this.emitWithCustomOptions(this.runners.destroy, {
_view: removeView
});
super.destroy();
}
get plugins() {
return this._plugin.plugins;
}
get multisample() {
return this._multisample.multisample;
}
get width() {
return this._view.element.width;
}
get height() {
return this._view.element.height;
}
get resolution() {
return this._view.resolution;
}
set resolution(value) {
this._view.resolution = value;
this.runners.resolutionChange.emit(value);
}
get autoDensity() {
return this._view.autoDensity;
}
get view() {
return this._view.element;
}
get screen() {
return this._view.screen;
}
get lastObjectRendered() {
return this.objectRenderer.lastObjectRendered;
}
get renderingToScreen() {
return this.objectRenderer.renderingToScreen;
}
get rendererLogId() {
return `WebGL ${this.context.webGLVersion}`;
}
get clearBeforeRender() {
utils.deprecation("7.0.0", "renderer.clearBeforeRender has been deprecated, please use renderer.background.clearBeforeRender instead.");
return this.background.clearBeforeRender;
}
get useContextAlpha() {
utils.deprecation("7.0.0", "renderer.useContextAlpha has been deprecated, please use renderer.context.premultipliedAlpha instead.");
return this.context.useContextAlpha;
}
get preserveDrawingBuffer() {
utils.deprecation("7.0.0", "renderer.preserveDrawingBuffer has been deprecated, we cannot truly know this unless pixi created the context");
return this.context.preserveDrawingBuffer;
}
get backgroundColor() {
utils.deprecation("7.0.0", "renderer.backgroundColor has been deprecated, use renderer.background.color instead.");
return this.background.color;
}
set backgroundColor(value) {
utils.deprecation("7.0.0", "renderer.backgroundColor has been deprecated, use renderer.background.color instead.");
this.background.color = value;
}
get backgroundAlpha() {
utils.deprecation("7.0.0", "renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead.");
return this.background.alpha;
}
set backgroundAlpha(value) {
utils.deprecation("7.0.0", "renderer.backgroundAlpha has been deprecated, use renderer.background.alpha instead.");
this.background.alpha = value;
}
get powerPreference() {
utils.deprecation("7.0.0", "renderer.powerPreference has been deprecated, we can only know this if pixi creates the context");
return this.context.powerPreference;
}
generateTexture(displayObject, options) {
return this.textureGenerator.generateTexture(displayObject, options);
}
};
let Renderer = _Renderer;
Renderer.extension = {
type: extensions.ExtensionType.Renderer,
priority: 1
};
Renderer.__plugins = {};
Renderer.__systems = {};
extensions.extensions.handleByMap(extensions.ExtensionType.RendererPlugin, Renderer.__plugins);
extensions.extensions.handleByMap(extensions.ExtensionType.RendererSystem, Renderer.__systems);
extensions.extensions.add(Renderer);
exports.Renderer = Renderer;
//# sourceMappingURL=Renderer.js.map