1 | "use strict";
|
2 | var extensions = require("@pixi/extensions"), math = require("@pixi/math"), RenderTexture = require("./RenderTexture.js");
|
3 | const tempTransform = new math.Transform(), tempRect = new math.Rectangle();
|
4 | class GenerateTextureSystem {
|
5 | constructor(renderer) {
|
6 | this.renderer = renderer, this._tempMatrix = new math.Matrix();
|
7 | }
|
8 | |
9 |
|
10 |
|
11 |
|
12 |
|
13 |
|
14 |
|
15 |
|
16 |
|
17 |
|
18 |
|
19 | generateTexture(displayObject, options) {
|
20 | const { region: manualRegion, ...textureOptions } = options || {}, region = manualRegion?.copyTo(tempRect) || displayObject.getLocalBounds(tempRect, !0), resolution = textureOptions.resolution || this.renderer.resolution;
|
21 | region.width = Math.max(region.width, 1 / resolution), region.height = Math.max(region.height, 1 / resolution), textureOptions.width = region.width, textureOptions.height = region.height, textureOptions.resolution = resolution, textureOptions.multisample ?? (textureOptions.multisample = this.renderer.multisample);
|
22 | const renderTexture = RenderTexture.RenderTexture.create(textureOptions);
|
23 | this._tempMatrix.tx = -region.x, this._tempMatrix.ty = -region.y;
|
24 | const transform = displayObject.transform;
|
25 | return displayObject.transform = tempTransform, this.renderer.render(displayObject, {
|
26 | renderTexture,
|
27 | transform: this._tempMatrix,
|
28 | skipUpdateTransform: !!displayObject.parent,
|
29 | blit: !0
|
30 | }), displayObject.transform = transform, renderTexture;
|
31 | }
|
32 | destroy() {
|
33 | }
|
34 | }
|
35 | GenerateTextureSystem.extension = {
|
36 | type: [
|
37 | extensions.ExtensionType.RendererSystem,
|
38 | extensions.ExtensionType.CanvasRendererSystem
|
39 | ],
|
40 | name: "textureGenerator"
|
41 | };
|
42 | extensions.extensions.add(GenerateTextureSystem);
|
43 | exports.GenerateTextureSystem = GenerateTextureSystem;
|
44 |
|