UNPKG

@pixi/core

Version:
50 lines (47 loc) 1.48 kB
import { ExtensionType, extensions } from '@pixi/extensions'; import { Transform, Matrix } from '@pixi/math'; import { RenderTexture } from './RenderTexture.mjs'; const tempTransform = new Transform(); class GenerateTextureSystem { constructor(renderer) { this.renderer = renderer; this._tempMatrix = new 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.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: [ ExtensionType.RendererSystem, ExtensionType.CanvasRendererSystem ], name: "textureGenerator" }; extensions.add(GenerateTextureSystem); export { GenerateTextureSystem }; //# sourceMappingURL=GenerateTextureSystem.mjs.map