UNPKG

pixi.js

Version:

PixiJS — The HTML5 Creation Engine =============

1 lines 7.05 kB
{"version":3,"file":"BatchableMesh.mjs","sources":["../../../../src/scene/mesh/shared/BatchableMesh.ts"],"sourcesContent":["import type { Batch, BatchableObject, Batcher } from '../../../rendering/batcher/shared/Batcher';\nimport type { IndexBufferArray } from '../../../rendering/renderers/shared/geometry/Geometry';\nimport type { Texture } from '../../../rendering/renderers/shared/texture/Texture';\nimport type { Container } from '../../container/Container';\nimport type { MeshGeometry } from './MeshGeometry';\n\n/**\n * A batchable mesh object.\n * @ignore\n */\nexport class BatchableMesh implements BatchableObject\n{\n public indexStart: number;\n public textureId: number;\n public texture: Texture;\n public location: number;\n public batcher: Batcher = null;\n public batch: Batch = null;\n public mesh: Container;\n public geometry: MeshGeometry;\n\n public roundPixels: 0 | 1 = 0;\n\n private _transformedUvs: Float32Array;\n private _uvUpdateId: number = -1;\n private _textureMatrixUpdateId: number = -1;\n\n get blendMode() { return this.mesh.groupBlendMode; }\n\n public reset()\n {\n this.mesh = 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 public packIndex(indexBuffer: IndexBufferArray, index: number, indicesOffset: number)\n {\n const indices = this.geometry.indices;\n\n for (let i = 0; i < indices.length; i++)\n {\n indexBuffer[index++] = indices[i] + indicesOffset;\n }\n }\n\n public packAttributes(\n float32View: Float32Array,\n uint32View: Uint32Array,\n index: number,\n textureId: number\n )\n {\n const mesh = this.mesh;\n\n const geometry = this.geometry;\n const wt = mesh.groupTransform;\n\n const textureIdAndRound = (textureId << 16) | (this.roundPixels & 0xFFFF);\n\n const a = wt.a;\n const b = wt.b;\n const c = wt.c;\n const d = wt.d;\n const tx = wt.tx;\n const ty = wt.ty;\n\n // const trim = texture.trim;\n const positions = geometry.positions;\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 const abgr = mesh.groupColorAlpha;\n\n for (let i = 0; i < positions.length; i += 2)\n {\n const x = positions[i];\n const y = positions[i + 1];\n\n float32View[index] = (a * x) + (c * y) + tx;\n float32View[index + 1] = (b * x) + (d * y) + ty;\n\n // TODO implement texture matrix?\n float32View[index + 2] = transformedUvs[i];\n float32View[index + 3] = transformedUvs[i + 1];\n\n uint32View[index + 4] = abgr;\n uint32View[index + 5] = textureIdAndRound;\n\n index += 6;\n }\n }\n\n get vertexSize()\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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"}