@pixi/core
Version:
Core PixiJS
50 lines (47 loc) • 1.48 kB
JavaScript
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