UNPKG

pixi.js

Version:

<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">

64 lines (60 loc) 2.06 kB
'use strict'; var Extensions = require('../../../extensions/Extensions.js'); var updateTextBounds = require('../utils/updateTextBounds.js'); var BatchableText = require('./BatchableText.js'); "use strict"; class CanvasTextPipe { constructor(renderer) { this._renderer = renderer; } validateRenderable(text) { return text._didTextUpdate; } addRenderable(text, instructionSet) { const batchableText = this._getGpuText(text); if (text._didTextUpdate) { this._updateGpuText(text); text._didTextUpdate = false; } this._renderer.renderPipes.batch.addToBatch(batchableText, instructionSet); } updateRenderable(text) { const batchableText = this._getGpuText(text); batchableText._batcher.updateElement(batchableText); } _updateGpuText(text) { const batchableText = this._getGpuText(text); if (batchableText.texture) { this._renderer.canvasText.returnTexture(batchableText.texture); } text._resolution = text._autoResolution ? this._renderer.resolution : text.resolution; batchableText.texture = batchableText.texture = this._renderer.canvasText.getTexture(text); updateTextBounds.updateTextBounds(batchableText, text); } _getGpuText(text) { return text._gpuData[this._renderer.uid] || this.initGpuText(text); } initGpuText(text) { const batchableText = new BatchableText.BatchableText(this._renderer); batchableText.renderable = text; batchableText.transform = text.groupTransform; batchableText.bounds = { minX: 0, maxX: 1, minY: 0, maxY: 0 }; batchableText.roundPixels = this._renderer._roundPixels | text._roundPixels; text._gpuData[this._renderer.uid] = batchableText; return batchableText; } destroy() { this._renderer = null; } } /** @ignore */ CanvasTextPipe.extension = { type: [ Extensions.ExtensionType.WebGLPipes, Extensions.ExtensionType.WebGPUPipes, Extensions.ExtensionType.CanvasPipes ], name: "text" }; exports.CanvasTextPipe = CanvasTextPipe; //# sourceMappingURL=CanvasTextPipe.js.map