UNPKG

@pixi/core

Version:
54 lines (49 loc) 1.6 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var extensions = require('@pixi/extensions'); var math = require('@pixi/math'); var RenderTexture = require('./RenderTexture.js'); const tempTransform = new math.Transform(); class GenerateTextureSystem { constructor(renderer) { this.renderer = renderer; this._tempMatrix = new math.Matrix(); } generateTexture(displayObject, options) { const { region: manualRegion, ...textureOptions } = options || {}; const region = manualRegion || displayObject.getLocalBounds(null, true); if (region.width === 0) region.width = 1; if (region.height === 0) region.height = 1; const renderTexture = RenderTexture.RenderTexture.create({ width: region.width, height: region.height, ...textureOptions }); this._tempMatrix.tx = -region.x; this._tempMatrix.ty = -region.y; const transform = displayObject.transform; displayObject.transform = tempTransform; this.renderer.render(displayObject, { renderTexture, transform: this._tempMatrix, skipUpdateTransform: !!displayObject.parent, blit: true }); displayObject.transform = transform; return renderTexture; } destroy() { } } GenerateTextureSystem.extension = { type: [ extensions.ExtensionType.RendererSystem, extensions.ExtensionType.CanvasRendererSystem ], name: "textureGenerator" }; extensions.extensions.add(GenerateTextureSystem); exports.GenerateTextureSystem = GenerateTextureSystem; //# sourceMappingURL=GenerateTextureSystem.js.map