1 line
4.6 KiB
Plaintext
1 line
4.6 KiB
Plaintext
{"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 { Texture } from '../../../rendering/renderers/shared/texture/Texture';\nimport type { Graphics } from './Graphics';\n\nconst identityMatrix = new Matrix();\n/**\n * A batchable graphics object.\n * @ignore\n */\n\nexport class BatchableGraphics implements DefaultBatchableMeshElement\n{\n public readonly packAsQuad = false;\n public batcherName = 'default';\n\n public texture: Texture;\n\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.applyTransform)\n {\n return this.renderable.groupBlendMode;\n }\n\n return 'normal';\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\n public reset()\n {\n this.applyTransform = true;\n this.renderable = null;\n }\n}\n"],"names":[],"mappings":";;;;AAQA,MAAM,cAAA,GAAiB,IAAI,MAAO,EAAA,CAAA;AAM3B,MAAM,iBACb,CAAA;AAAA,EADO,WAAA,GAAA;AAEH,IAAA,IAAA,CAAgB,UAAa,GAAA,KAAA,CAAA;AAC7B,IAAA,IAAA,CAAO,WAAc,GAAA,SAAA,CAAA;AAWrB,IAAA,IAAA,CAAO,cAAiB,GAAA,IAAA,CAAA;AACxB,IAAA,IAAA,CAAO,WAAqB,GAAA,CAAA,CAAA;AAK5B,IAAA,IAAA,CAAO,QAAoB,GAAA,IAAA,CAAA;AAC3B,IAAA,IAAA,CAAO,MAAgB,GAAA,IAAA,CAAA;AAAA,GAAA;AAAA,EAIvB,IAAI,GACJ,GAAA;AACI,IAAA,OAAO,KAAK,YAAa,CAAA,GAAA,CAAA;AAAA,GAC7B;AAAA,EAEA,IAAI,SACJ,GAAA;AACI,IAAA,OAAO,KAAK,YAAa,CAAA,QAAA,CAAA;AAAA,GAC7B;AAAA,EAEA,IAAI,OACJ,GAAA;AACI,IAAA,OAAO,KAAK,YAAa,CAAA,OAAA,CAAA;AAAA,GAC7B;AAAA,EAEA,IAAI,SACJ,GAAA;AACI,IAAA,IAAI,KAAK,cACT,EAAA;AACI,MAAA,OAAO,KAAK,UAAW,CAAA,cAAA,CAAA;AAAA,KAC3B;AAEA,IAAO,OAAA,QAAA,CAAA;AAAA,GACX;AAAA,EACA,IAAI,KACJ,GAAA;AACI,IAAA,MAAM,MAAM,IAAK,CAAA,SAAA,CAAA;AACjB,IAAA,MAAM,MAAO,GAAO,IAAA,EAAA,GAAO,GAAM,GAAA,KAAA,GAAA,CAAY,MAAM,GAAS,KAAA,EAAA,CAAA;AAC5D,IAAA,MAAM,aAAa,IAAK,CAAA,UAAA,CAAA;AAExB,IAAA,IAAI,UACJ,EAAA;AACI,MAAO,OAAA,iBAAA,CAAkB,KAAK,UAAW,CAAA,UAAU,KAC/C,IAAK,CAAA,KAAA,GAAQ,UAAW,CAAA,UAAA,GAAa,GAAQ,IAAA,EAAA,CAAA,CAAA;AAAA,KACrD;AAEA,IAAO,OAAA,GAAA,IAAQ,IAAK,CAAA,KAAA,GAAQ,GAAQ,IAAA,EAAA,CAAA,CAAA;AAAA,GACxC;AAAA,EAEA,IAAI,SACJ,GAAA;AACI,IAAO,OAAA,IAAA,CAAK,YAAY,cAAkB,IAAA,cAAA,CAAA;AAAA,GAC9C;AAAA,EAEO,OAAO,SACd,EAAA;AACI,IAAA,SAAA,CAAU,cAAc,IAAK,CAAA,WAAA,CAAA;AAC7B,IAAA,SAAA,CAAU,YAAY,IAAK,CAAA,SAAA,CAAA;AAE3B,IAAA,SAAA,CAAU,kBAAkB,IAAK,CAAA,eAAA,CAAA;AACjC,IAAA,SAAA,CAAU,gBAAgB,IAAK,CAAA,aAAA,CAAA;AAE/B,IAAA,SAAA,CAAU,YAAY,IAAK,CAAA,SAAA,CAAA;AAC3B,IAAA,SAAA,CAAU,QAAQ,IAAK,CAAA,KAAA,CAAA;AAEvB,IAAA,SAAA,CAAU,UAAU,IAAK,CAAA,OAAA,CAAA;AACzB,IAAA,SAAA,CAAU,eAAe,IAAK,CAAA,YAAA,CAAA;AAAA,GAClC;AAAA,EAEO,KACP,GAAA;AACI,IAAA,IAAA,CAAK,cAAiB,GAAA,IAAA,CAAA;AACtB,IAAA,IAAA,CAAK,UAAa,GAAA,IAAA,CAAA;AAAA,GACtB;AACJ;;;;"} |