UNPKG

@pixi/core

Version:
184 lines (179 loc) 5.76 kB
'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