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">

1 lines 6.21 kB
{"version":3,"file":"BatchableMesh.mjs","sources":["../../../../src/scene/mesh/shared/BatchableMesh.ts"],"sourcesContent":["import type { Matrix } from '../../../maths/matrix/Matrix';\nimport type { Batch, Batcher } from '../../../rendering/batcher/shared/Batcher';\nimport type { DefaultBatchableMeshElement } from '../../../rendering/batcher/shared/DefaultBatcher';\nimport type { Topology } from '../../../rendering/renderers/shared/geometry/const';\nimport type { Texture } from '../../../rendering/renderers/shared/texture/Texture';\nimport type { ViewContainer } from '../../view/ViewContainer';\nimport type { MeshGeometry } from './MeshGeometry';\n\n/**\n * A batchable mesh object.\n * @ignore\n */\nexport class BatchableMesh implements DefaultBatchableMeshElement\n{\n public batcherName = 'default';\n\n public _topology: Topology;\n\n public readonly packAsQuad = false;\n public location: number;\n\n public renderable: ViewContainer;\n\n public indexOffset = 0;\n public attributeOffset = 0;\n\n public texture: Texture;\n public geometry: MeshGeometry;\n public transform: Matrix;\n public roundPixels: 0 | 1 = 0;\n\n public _attributeStart: number;\n public _batcher: Batcher = null;\n public _batch: Batch = null;\n public _indexStart: number;\n public _textureId: number;\n public _textureMatrixUpdateId: number = -1;\n\n private _transformedUvs: Float32Array;\n private _uvUpdateId: number = -1;\n\n get blendMode() { return this.renderable.groupBlendMode; }\n\n get topology() { return this._topology || this.geometry.topology; }\n set topology(value: Topology) { this._topology = value; }\n\n public reset()\n {\n this.renderable = null;\n this.texture = null;\n this._batcher = null;\n this._batch = null;\n this.geometry = null;\n this._uvUpdateId = -1;\n this._textureMatrixUpdateId = -1;\n }\n\n /**\n * Sets the texture for the batchable mesh.\n * As it does so, it resets the texture matrix update ID.\n * this is to ensure that the texture matrix is recalculated when the uvs are referenced\n * @param value - The texture to set.\n */\n public setTexture(value: Texture)\n {\n if (this.texture === value) return;\n\n this.texture = value;\n this._textureMatrixUpdateId = -1;\n }\n\n get uvs()\n {\n const geometry = this.geometry;\n\n const uvBuffer = geometry.getBuffer('aUV');\n\n const uvs = uvBuffer.data;\n\n let transformedUvs = uvs;\n const textureMatrix = this.texture.textureMatrix;\n\n if (!textureMatrix.isSimple)\n {\n transformedUvs = this._transformedUvs;\n\n if (this._textureMatrixUpdateId !== textureMatrix._updateID || this._uvUpdateId !== uvBuffer._updateID)\n {\n if (!transformedUvs || transformedUvs.length < uvs.length)\n {\n transformedUvs = this._transformedUvs = new Float32Array(uvs.length);\n }\n\n this._textureMatrixUpdateId = textureMatrix._updateID;\n this._uvUpdateId = uvBuffer._updateID;\n\n textureMatrix.multiplyUvs(uvs as Float32Array, transformedUvs);\n }\n }\n\n return transformedUvs as Float32Array;\n }\n\n get positions()\n {\n return this.geometry.positions;\n }\n\n get indices()\n {\n return this.geometry.indices;\n }\n\n get color()\n {\n return this.renderable.groupColorAlpha;\n }\n\n get groupTransform()\n {\n return this.renderable.groupTransform;\n }\n\n get attributeSize()\n {\n return this.geometry.positions.length / 2;\n }\n\n get indexSize()\n {\n return this.geometry.indices.length;\n }\n}\n"],"names":[],"mappings":"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"}