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 5.38 kB
{"version":3,"file":"BatchableGraphics.mjs","sources":["../../../../src/scene/graphics/shared/BatchableGraphics.ts"],"sourcesContent":["import { Matrix } from '../../../maths/matrix/Matrix';\nimport { multiplyHexColors } from '../../container/utils/multiplyHexColors';\n\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 { Graphics } from './Graphics';\n\nconst identityMatrix = new Matrix();\n\n/**\n * A batchable graphics object.\n * @ignore\n */\nexport class BatchableGraphics implements DefaultBatchableMeshElement\n{\n public readonly packAsQuad = false;\n public batcherName = 'default';\n\n public texture: Texture;\n\n public topology: Topology = 'triangle-list';\n public renderable: Graphics;\n public indexOffset: number;\n public indexSize: number;\n public attributeOffset: number;\n public attributeSize: number;\n public baseColor: number;\n public alpha: number;\n public applyTransform = true;\n public roundPixels: 0 | 1 = 0;\n\n public _indexStart: number;\n public _textureId: number;\n public _attributeStart: number;\n public _batcher: Batcher = null;\n public _batch: Batch = null;\n\n public geometryData: { vertices: number[]; uvs: number[]; indices: number[]; };\n\n get uvs()\n {\n return this.geometryData.uvs;\n }\n\n get positions()\n {\n return this.geometryData.vertices;\n }\n\n get indices()\n {\n return this.geometryData.indices;\n }\n\n get blendMode()\n {\n if (this.renderable && this.applyTransform)\n {\n return this.renderable.groupBlendMode;\n }\n\n return 'normal';\n }\n\n get color()\n {\n const rgb = this.baseColor;\n const bgr = (rgb >> 16) | (rgb & 0xff00) | ((rgb & 0xff) << 16);\n const renderable = this.renderable;\n\n if (renderable)\n {\n return multiplyHexColors(bgr, renderable.groupColor)\n + ((this.alpha * renderable.groupAlpha * 255) << 24);\n }\n\n return bgr + ((this.alpha * 255) << 24);\n }\n\n get transform()\n {\n return this.renderable?.groupTransform || identityMatrix;\n }\n\n public copyTo(gpuBuffer: BatchableGraphics)\n {\n gpuBuffer.indexOffset = this.indexOffset;\n gpuBuffer.indexSize = this.indexSize;\n\n gpuBuffer.attributeOffset = this.attributeOffset;\n gpuBuffer.attributeSize = this.attributeSize;\n\n gpuBuffer.baseColor = this.baseColor;\n gpuBuffer.alpha = this.alpha;\n\n gpuBuffer.texture = this.texture;\n gpuBuffer.geometryData = this.geometryData;\n\n gpuBuffer.topology = this.topology;\n }\n\n public reset()\n {\n this.applyTransform = true;\n this.renderable = null;\n this.topology = 'triangle-list';\n }\n\n public destroy()\n {\n this.renderable = null;\n this.texture = null;\n this.geometryData = null;\n this._batcher = null;\n this._batch = null;\n }\n}\n"],"names":[],"mappings":";;;;AASA,MAAM,cAAA,GAAiB,IAAI,MAAA,EAAO;AAM3B,MAAM,iBAAA,CACb;AAAA,EADO,WAAA,GAAA;AAEH,IAAA,IAAA,CAAgB,UAAA,GAAa,KAAA;AAC7B,IAAA,IAAA,CAAO,WAAA,GAAc,SAAA;AAIrB,IAAA,IAAA,CAAO,QAAA,GAAqB,eAAA;AAQ5B,IAAA,IAAA,CAAO,cAAA,GAAiB,IAAA;AACxB,IAAA,IAAA,CAAO,WAAA,GAAqB,CAAA;AAK5B,IAAA,IAAA,CAAO,QAAA,GAAoB,IAAA;AAC3B,IAAA,IAAA,CAAO,MAAA,GAAgB,IAAA;AAAA,EAAA;AAAA,EAIvB,IAAI,GAAA,GACJ;AACI,IAAA,OAAO,KAAK,YAAA,CAAa,GAAA;AAAA,EAC7B;AAAA,EAEA,IAAI,SAAA,GACJ;AACI,IAAA,OAAO,KAAK,YAAA,CAAa,QAAA;AAAA,EAC7B;AAAA,EAEA,IAAI,OAAA,GACJ;AACI,IAAA,OAAO,KAAK,YAAA,CAAa,OAAA;AAAA,EAC7B;AAAA,EAEA,IAAI,SAAA,GACJ;AACI,IAAA,IAAI,IAAA,CAAK,UAAA,IAAc,IAAA,CAAK,cAAA,EAC5B;AACI,MAAA,OAAO,KAAK,UAAA,CAAW,cAAA;AAAA,IAC3B;AAEA,IAAA,OAAO,QAAA;AAAA,EACX;AAAA,EAEA,IAAI,KAAA,GACJ;AACI,IAAA,MAAM,MAAM,IAAA,CAAK,SAAA;AACjB,IAAA,MAAM,MAAO,GAAA,IAAO,EAAA,GAAO,GAAA,GAAM,KAAA,GAAA,CAAY,MAAM,GAAA,KAAS,EAAA;AAC5D,IAAA,MAAM,aAAa,IAAA,CAAK,UAAA;AAExB,IAAA,IAAI,UAAA,EACJ;AACI,MAAA,OAAO,iBAAA,CAAkB,KAAK,UAAA,CAAW,UAAU,KAC/C,IAAA,CAAK,KAAA,GAAQ,UAAA,CAAW,UAAA,GAAa,GAAA,IAAQ,EAAA,CAAA;AAAA,IACrD;AAEA,IAAA,OAAO,GAAA,IAAQ,IAAA,CAAK,KAAA,GAAQ,GAAA,IAAQ,EAAA,CAAA;AAAA,EACxC;AAAA,EAEA,IAAI,SAAA,GACJ;AACI,IAAA,OAAO,IAAA,CAAK,YAAY,cAAA,IAAkB,cAAA;AAAA,EAC9C;AAAA,EAEO,OAAO,SAAA,EACd;AACI,IAAA,SAAA,CAAU,cAAc,IAAA,CAAK,WAAA;AAC7B,IAAA,SAAA,CAAU,YAAY,IAAA,CAAK,SAAA;AAE3B,IAAA,SAAA,CAAU,kBAAkB,IAAA,CAAK,eAAA;AACjC,IAAA,SAAA,CAAU,gBAAgB,IAAA,CAAK,aAAA;AAE/B,IAAA,SAAA,CAAU,YAAY,IAAA,CAAK,SAAA;AAC3B,IAAA,SAAA,CAAU,QAAQ,IAAA,CAAK,KAAA;AAEvB,IAAA,SAAA,CAAU,UAAU,IAAA,CAAK,OAAA;AACzB,IAAA,SAAA,CAAU,eAAe,IAAA,CAAK,YAAA;AAE9B,IAAA,SAAA,CAAU,WAAW,IAAA,CAAK,QAAA;AAAA,EAC9B;AAAA,EAEO,KAAA,GACP;AACI,IAAA,IAAA,CAAK,cAAA,GAAiB,IAAA;AACtB,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,IAAA,IAAA,CAAK,QAAA,GAAW,eAAA;AAAA,EACpB;AAAA,EAEO,OAAA,GACP;AACI,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,IAAA,IAAA,CAAK,OAAA,GAAU,IAAA;AACf,IAAA,IAAA,CAAK,YAAA,GAAe,IAAA;AACpB,IAAA,IAAA,CAAK,QAAA,GAAW,IAAA;AAChB,IAAA,IAAA,CAAK,MAAA,GAAS,IAAA;AAAA,EAClB;AACJ;;;;"}