@midscene/web 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/es/playwright-report.js +155 -179
- package/dist/lib/playwright-report.js +155 -179
- package/dist/visualizer-report/index.html +1 -0
- package/dist/visualizer-report/modern.config.json +196 -0
- package/dist/visualizer-report/route.json +36 -0
- package/dist/visualizer-report/static/css/index.c7751597.css +1 -0
- package/dist/visualizer-report/static/css/index.c7751597.css.map +1 -0
- package/dist/visualizer-report/static/js/915.d3f73af1.js +6 -0
- package/dist/visualizer-report/static/js/915.d3f73af1.js.LICENSE.txt +105 -0
- package/dist/visualizer-report/static/js/915.d3f73af1.js.map +1 -0
- package/dist/visualizer-report/static/js/async/16.8b96d0ce.js +151 -0
- package/dist/visualizer-report/static/js/async/16.8b96d0ce.js.map +1 -0
- package/dist/visualizer-report/static/js/async/212.b25a2c30.js +157 -0
- package/dist/visualizer-report/static/js/async/212.b25a2c30.js.map +1 -0
- package/dist/visualizer-report/static/js/async/353.78fcb703.js +147 -0
- package/dist/visualizer-report/static/js/async/353.78fcb703.js.map +1 -0
- package/dist/visualizer-report/static/js/async/399.84fa60a7.js +248 -0
- package/dist/visualizer-report/static/js/async/399.84fa60a7.js.map +1 -0
- package/dist/visualizer-report/static/js/async/453.782b249a.js +41 -0
- package/dist/visualizer-report/static/js/async/453.782b249a.js.map +1 -0
- package/dist/visualizer-report/static/js/async/544.ee973964.js +1 -0
- package/dist/visualizer-report/static/js/async/544.ee973964.js.map +1 -0
- package/dist/visualizer-report/static/js/async/983.ef821e39.js +1 -0
- package/dist/visualizer-report/static/js/index.ae9a86c5.js +1 -0
- package/dist/visualizer-report/static/js/index.ae9a86c5.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js +189 -0
- package/dist/visualizer-report/static/js/lib-antd.55d65804.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-polyfill.3da3e38e.js +1 -0
- package/dist/visualizer-report/static/js/lib-polyfill.3da3e38e.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-react.c011fc71.js +2 -0
- package/dist/visualizer-report/static/js/lib-react.c011fc71.js.LICENSE.txt +39 -0
- package/dist/visualizer-report/static/js/lib-react.c011fc71.js.map +1 -0
- package/dist/visualizer-report/static/js/lib-router.226970ff.js +2 -0
- package/dist/visualizer-report/static/js/lib-router.226970ff.js.LICENSE.txt +32 -0
- package/dist/visualizer-report/static/js/lib-router.226970ff.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/js/async/16.8b96d0ce.js","sources":["webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/graphics/gl/GlGraphicsAdaptor.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/scene/mesh/gl/GlMeshAdaptor.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/batcher/gl/GlBatchAdaptor.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/const.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/const.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/GlBuffer.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/buffer/GlBufferSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/context/GlContextSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/geometry/utils/getGlTypeFromFormat.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/geometry/GlGeometrySystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlBackBufferSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlColorMaskSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlEncoderSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlStencilSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/createUboElementsSTD40.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/generateArraySyncSTD40.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/createUboSyncSTD40.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlUboSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/GlRenderTarget.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/renderTarget/GlRenderTargetAdaptor.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/renderTarget/GlRenderTargetSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlProgramData.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/compileShader.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/defaultValue.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/mapType.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/logProgramError.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlShaderSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/generateProgram.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/extractAttributesFromGlProgram.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getUniformData.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/program/getUboData.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GenerateShaderSyncCode.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/generateUniformsSyncTypes.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/GlUniformGroupSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/utils/generateUniformsSync.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/state/GlStateSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/state/mapWebGLBlendModesToPixi.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/GlTexture.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadBufferImageResource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadCompressedTextureResource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadImageResource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/uploaders/glUploadVideoResource.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/pixiToGlMaps.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/applyStyleParams.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/GlTextureSystem.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlInternalFormat.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlType.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/texture/utils/mapFormatToGlFormat.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/WebGLRenderer.mjs","webpack://@midscene/visualizer-report/../../node_modules/.pnpm/pixi.js@8.1.1/node_modules/pixi.js/lib/rendering/renderers/gl/shader/batchSamplersUniformGroup.mjs"],"sourcesContent":["import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { Matrix } from '../../../maths/matrix/Matrix.mjs';\nimport { MAX_TEXTURES } from '../../../rendering/batcher/shared/const.mjs';\nimport { compileHighShaderGlProgram } from '../../../rendering/high-shader/compileHighShaderToProgram.mjs';\nimport { colorBitGl } from '../../../rendering/high-shader/shader-bits/colorBit.mjs';\nimport { generateTextureBatchBitGl } from '../../../rendering/high-shader/shader-bits/generateTextureBatchBit.mjs';\nimport { localUniformBitGl } from '../../../rendering/high-shader/shader-bits/localUniformBit.mjs';\nimport { roundPixelsBitGl } from '../../../rendering/high-shader/shader-bits/roundPixelsBit.mjs';\nimport { batchSamplersUniformGroup } from '../../../rendering/renderers/gl/shader/batchSamplersUniformGroup.mjs';\nimport { Shader } from '../../../rendering/renderers/shared/shader/Shader.mjs';\nimport { UniformGroup } from '../../../rendering/renderers/shared/shader/UniformGroup.mjs';\n\n\"use strict\";\nclass GlGraphicsAdaptor {\n init() {\n const uniforms = new UniformGroup({\n uColor: { value: new Float32Array([1, 1, 1, 1]), type: \"vec4<f32>\" },\n uTransformMatrix: { value: new Matrix(), type: \"mat3x3<f32>\" },\n uRound: { value: 0, type: \"f32\" }\n });\n const glProgram = compileHighShaderGlProgram({\n name: \"graphics\",\n bits: [\n colorBitGl,\n generateTextureBatchBitGl(MAX_TEXTURES),\n localUniformBitGl,\n roundPixelsBitGl\n ]\n });\n this.shader = new Shader({\n glProgram,\n resources: {\n localUniforms: uniforms,\n batchSamplers: batchSamplersUniformGroup\n }\n });\n }\n execute(graphicsPipe, renderable) {\n const context = renderable.context;\n const shader = context.customShader || this.shader;\n const renderer = graphicsPipe.renderer;\n const contextSystem = renderer.graphicsContext;\n const {\n geometry,\n instructions\n } = contextSystem.getContextRenderData(context);\n shader.groups[0] = renderer.globalUniforms.bindGroup;\n renderer.state.set(graphicsPipe.state);\n renderer.shader.bind(shader);\n renderer.geometry.bind(geometry, shader.glProgram);\n const batches = instructions.instructions;\n for (let i = 0; i < instructions.instructionSize; i++) {\n const batch = batches[i];\n if (batch.size) {\n for (let j = 0; j < batch.textures.textures.length; j++) {\n renderer.texture.bind(batch.textures.textures[j], j);\n }\n renderer.geometry.draw(\"triangle-list\", batch.size, batch.start);\n }\n }\n }\n destroy() {\n this.shader.destroy(true);\n this.shader = null;\n }\n}\n/** @ignore */\nGlGraphicsAdaptor.extension = {\n type: [\n ExtensionType.WebGLPipesAdaptor\n ],\n name: \"graphics\"\n};\n\nexport { GlGraphicsAdaptor };\n//# sourceMappingURL=GlGraphicsAdaptor.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { Matrix } from '../../../maths/matrix/Matrix.mjs';\nimport { compileHighShaderGlProgram } from '../../../rendering/high-shader/compileHighShaderToProgram.mjs';\nimport { localUniformBitGl } from '../../../rendering/high-shader/shader-bits/localUniformBit.mjs';\nimport { roundPixelsBitGl } from '../../../rendering/high-shader/shader-bits/roundPixelsBit.mjs';\nimport { textureBitGl } from '../../../rendering/high-shader/shader-bits/textureBit.mjs';\nimport { Shader } from '../../../rendering/renderers/shared/shader/Shader.mjs';\nimport { Texture } from '../../../rendering/renderers/shared/texture/Texture.mjs';\nimport { warn } from '../../../utils/logging/warn.mjs';\n\n\"use strict\";\nclass GlMeshAdaptor {\n init() {\n const glProgram = compileHighShaderGlProgram({\n name: \"mesh\",\n bits: [\n localUniformBitGl,\n textureBitGl,\n roundPixelsBitGl\n ]\n });\n this._shader = new Shader({\n glProgram,\n resources: {\n uTexture: Texture.EMPTY.source,\n textureUniforms: {\n uTextureMatrix: { type: \"mat3x3<f32>\", value: new Matrix() }\n }\n }\n });\n }\n execute(meshPipe, mesh) {\n const renderer = meshPipe.renderer;\n let shader = mesh._shader;\n if (!shader) {\n shader = this._shader;\n const texture = mesh.texture;\n const source = texture.source;\n shader.resources.uTexture = source;\n shader.resources.uSampler = source.style;\n shader.resources.textureUniforms.uniforms.uTextureMatrix = texture.textureMatrix.mapCoord;\n } else if (!shader.glProgram) {\n warn(\"Mesh shader has no glProgram\", mesh.shader);\n return;\n }\n shader.groups[100] = renderer.globalUniforms.bindGroup;\n shader.groups[101] = meshPipe.localUniformsBindGroup;\n renderer.encoder.draw({\n geometry: mesh._geometry,\n shader,\n state: mesh.state\n });\n }\n destroy() {\n this._shader.destroy(true);\n this._shader = null;\n }\n}\nGlMeshAdaptor.extension = {\n type: [\n ExtensionType.WebGLPipesAdaptor\n ],\n name: \"mesh\"\n};\n\nexport { GlMeshAdaptor };\n//# sourceMappingURL=GlMeshAdaptor.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { compileHighShaderGlProgram } from '../../high-shader/compileHighShaderToProgram.mjs';\nimport { colorBitGl } from '../../high-shader/shader-bits/colorBit.mjs';\nimport { generateTextureBatchBitGl } from '../../high-shader/shader-bits/generateTextureBatchBit.mjs';\nimport { roundPixelsBitGl } from '../../high-shader/shader-bits/roundPixelsBit.mjs';\nimport { batchSamplersUniformGroup } from '../../renderers/gl/shader/batchSamplersUniformGroup.mjs';\nimport { Shader } from '../../renderers/shared/shader/Shader.mjs';\nimport { State } from '../../renderers/shared/state/State.mjs';\nimport { MAX_TEXTURES } from '../shared/const.mjs';\n\n\"use strict\";\nclass GlBatchAdaptor {\n constructor() {\n this._didUpload = false;\n this._tempState = State.for2d();\n }\n init(batcherPipe) {\n const glProgram = compileHighShaderGlProgram({\n name: \"batch\",\n bits: [\n colorBitGl,\n generateTextureBatchBitGl(MAX_TEXTURES),\n roundPixelsBitGl\n ]\n });\n this._shader = new Shader({\n glProgram,\n resources: {\n batchSamplers: batchSamplersUniformGroup\n }\n });\n batcherPipe.renderer.runners.contextChange.add(this);\n }\n contextChange() {\n this._didUpload = false;\n }\n start(batchPipe, geometry) {\n const renderer = batchPipe.renderer;\n renderer.shader.bind(this._shader, this._didUpload);\n renderer.shader.updateUniformGroup(renderer.globalUniforms.uniformGroup);\n renderer.geometry.bind(geometry, this._shader.glProgram);\n }\n execute(batchPipe, batch) {\n const renderer = batchPipe.renderer;\n this._didUpload = true;\n this._tempState.blendMode = batch.blendMode;\n renderer.state.set(this._tempState);\n const textures = batch.textures.textures;\n for (let i = 0; i < textures.length; i++) {\n renderer.texture.bind(textures[i], i);\n }\n renderer.geometry.draw(\"triangle-list\", batch.size, batch.start);\n }\n destroy() {\n this._shader.destroy(true);\n this._shader = null;\n }\n}\n/** @ignore */\nGlBatchAdaptor.extension = {\n type: [\n ExtensionType.WebGLPipesAdaptor\n ],\n name: \"batch\"\n};\n\nexport { GlBatchAdaptor };\n//# sourceMappingURL=GlBatchAdaptor.mjs.map\n","\"use strict\";\nvar BUFFER_TYPE = /* @__PURE__ */ ((BUFFER_TYPE2) => {\n BUFFER_TYPE2[BUFFER_TYPE2[\"ELEMENT_ARRAY_BUFFER\"] = 34963] = \"ELEMENT_ARRAY_BUFFER\";\n BUFFER_TYPE2[BUFFER_TYPE2[\"ARRAY_BUFFER\"] = 34962] = \"ARRAY_BUFFER\";\n BUFFER_TYPE2[BUFFER_TYPE2[\"UNIFORM_BUFFER\"] = 35345] = \"UNIFORM_BUFFER\";\n return BUFFER_TYPE2;\n})(BUFFER_TYPE || {});\n\nexport { BUFFER_TYPE };\n//# sourceMappingURL=const.mjs.map\n","\"use strict\";\nvar GL_FORMATS = /* @__PURE__ */ ((GL_FORMATS2) => {\n GL_FORMATS2[GL_FORMATS2[\"RGBA\"] = 6408] = \"RGBA\";\n GL_FORMATS2[GL_FORMATS2[\"RGB\"] = 6407] = \"RGB\";\n GL_FORMATS2[GL_FORMATS2[\"RG\"] = 33319] = \"RG\";\n GL_FORMATS2[GL_FORMATS2[\"RED\"] = 6403] = \"RED\";\n GL_FORMATS2[GL_FORMATS2[\"RGBA_INTEGER\"] = 36249] = \"RGBA_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"RGB_INTEGER\"] = 36248] = \"RGB_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"RG_INTEGER\"] = 33320] = \"RG_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"RED_INTEGER\"] = 36244] = \"RED_INTEGER\";\n GL_FORMATS2[GL_FORMATS2[\"ALPHA\"] = 6406] = \"ALPHA\";\n GL_FORMATS2[GL_FORMATS2[\"LUMINANCE\"] = 6409] = \"LUMINANCE\";\n GL_FORMATS2[GL_FORMATS2[\"LUMINANCE_ALPHA\"] = 6410] = \"LUMINANCE_ALPHA\";\n GL_FORMATS2[GL_FORMATS2[\"DEPTH_COMPONENT\"] = 6402] = \"DEPTH_COMPONENT\";\n GL_FORMATS2[GL_FORMATS2[\"DEPTH_STENCIL\"] = 34041] = \"DEPTH_STENCIL\";\n return GL_FORMATS2;\n})(GL_FORMATS || {});\nvar GL_TARGETS = /* @__PURE__ */ ((GL_TARGETS2) => {\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_2D\"] = 3553] = \"TEXTURE_2D\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP\"] = 34067] = \"TEXTURE_CUBE_MAP\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_2D_ARRAY\"] = 35866] = \"TEXTURE_2D_ARRAY\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_X\"] = 34069] = \"TEXTURE_CUBE_MAP_POSITIVE_X\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_X\"] = 34070] = \"TEXTURE_CUBE_MAP_NEGATIVE_X\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_Y\"] = 34071] = \"TEXTURE_CUBE_MAP_POSITIVE_Y\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_Y\"] = 34072] = \"TEXTURE_CUBE_MAP_NEGATIVE_Y\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_POSITIVE_Z\"] = 34073] = \"TEXTURE_CUBE_MAP_POSITIVE_Z\";\n GL_TARGETS2[GL_TARGETS2[\"TEXTURE_CUBE_MAP_NEGATIVE_Z\"] = 34074] = \"TEXTURE_CUBE_MAP_NEGATIVE_Z\";\n return GL_TARGETS2;\n})(GL_TARGETS || {});\nvar GL_WRAP_MODES = /* @__PURE__ */ ((GL_WRAP_MODES2) => {\n GL_WRAP_MODES2[GL_WRAP_MODES2[\"CLAMP\"] = 33071] = \"CLAMP\";\n GL_WRAP_MODES2[GL_WRAP_MODES2[\"REPEAT\"] = 10497] = \"REPEAT\";\n GL_WRAP_MODES2[GL_WRAP_MODES2[\"MIRRORED_REPEAT\"] = 33648] = \"MIRRORED_REPEAT\";\n return GL_WRAP_MODES2;\n})(GL_WRAP_MODES || {});\nvar GL_TYPES = /* @__PURE__ */ ((GL_TYPES2) => {\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_BYTE\"] = 5121] = \"UNSIGNED_BYTE\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT\"] = 5123] = \"UNSIGNED_SHORT\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT_5_6_5\"] = 33635] = \"UNSIGNED_SHORT_5_6_5\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT_4_4_4_4\"] = 32819] = \"UNSIGNED_SHORT_4_4_4_4\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_SHORT_5_5_5_1\"] = 32820] = \"UNSIGNED_SHORT_5_5_5_1\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT\"] = 5125] = \"UNSIGNED_INT\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_10F_11F_11F_REV\"] = 35899] = \"UNSIGNED_INT_10F_11F_11F_REV\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_2_10_10_10_REV\"] = 33640] = \"UNSIGNED_INT_2_10_10_10_REV\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_24_8\"] = 34042] = \"UNSIGNED_INT_24_8\";\n GL_TYPES2[GL_TYPES2[\"UNSIGNED_INT_5_9_9_9_REV\"] = 35902] = \"UNSIGNED_INT_5_9_9_9_REV\";\n GL_TYPES2[GL_TYPES2[\"BYTE\"] = 5120] = \"BYTE\";\n GL_TYPES2[GL_TYPES2[\"SHORT\"] = 5122] = \"SHORT\";\n GL_TYPES2[GL_TYPES2[\"INT\"] = 5124] = \"INT\";\n GL_TYPES2[GL_TYPES2[\"FLOAT\"] = 5126] = \"FLOAT\";\n GL_TYPES2[GL_TYPES2[\"FLOAT_32_UNSIGNED_INT_24_8_REV\"] = 36269] = \"FLOAT_32_UNSIGNED_INT_24_8_REV\";\n GL_TYPES2[GL_TYPES2[\"HALF_FLOAT\"] = 36193] = \"HALF_FLOAT\";\n return GL_TYPES2;\n})(GL_TYPES || {});\n\nexport { GL_FORMATS, GL_TARGETS, GL_TYPES, GL_WRAP_MODES };\n//# sourceMappingURL=const.mjs.map\n","\"use strict\";\nclass GlBuffer {\n constructor(buffer, type) {\n this.buffer = buffer || null;\n this.updateID = -1;\n this.byteLength = -1;\n this.type = type;\n }\n}\n\nexport { GlBuffer };\n//# sourceMappingURL=GlBuffer.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { BufferUsage } from '../../shared/buffer/const.mjs';\nimport { BUFFER_TYPE } from './const.mjs';\nimport { GlBuffer } from './GlBuffer.mjs';\n\n\"use strict\";\nclass GlBufferSystem {\n /**\n * @param {Renderer} renderer - The renderer this System works for.\n */\n constructor(renderer) {\n this._gpuBuffers = /* @__PURE__ */ Object.create(null);\n /** Cache keeping track of the base bound buffer bases */\n this._boundBufferBases = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n }\n /**\n * @ignore\n */\n destroy() {\n this._renderer = null;\n this._gl = null;\n this._gpuBuffers = null;\n this._boundBufferBases = null;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n this._gpuBuffers = /* @__PURE__ */ Object.create(null);\n this._gl = this._renderer.gl;\n }\n getGlBuffer(buffer) {\n return this._gpuBuffers[buffer.uid] || this.createGLBuffer(buffer);\n }\n /**\n * This binds specified buffer. On first run, it will create the webGL buffers for the context too\n * @param buffer - the buffer to bind to the renderer\n */\n bind(buffer) {\n const { _gl: gl } = this;\n const glBuffer = this.getGlBuffer(buffer);\n gl.bindBuffer(glBuffer.type, glBuffer.buffer);\n }\n /**\n * Binds an uniform buffer to at the given index.\n *\n * A cache is used so a buffer will not be bound again if already bound.\n * @param buffer - the buffer to bind\n * @param index - the base index to bind it to.\n */\n bindBufferBase(buffer, index) {\n const { _gl: gl } = this;\n if (this._boundBufferBases[index] !== buffer) {\n const glBuffer = this.getGlBuffer(buffer);\n this._boundBufferBases[index] = buffer;\n gl.bindBufferBase(gl.UNIFORM_BUFFER, index, glBuffer.buffer);\n }\n }\n /**\n * Binds a buffer whilst also binding its range.\n * This will make the buffer start from the offset supplied rather than 0 when it is read.\n * @param buffer - the buffer to bind\n * @param index - the base index to bind at, defaults to 0\n * @param offset - the offset to bind at (this is blocks of 256). 0 = 0, 1 = 256, 2 = 512 etc\n */\n bindBufferRange(buffer, index, offset) {\n const { _gl: gl } = this;\n offset = offset || 0;\n const glBuffer = this.getGlBuffer(buffer);\n gl.bindBufferRange(gl.UNIFORM_BUFFER, index || 0, glBuffer.buffer, offset * 256, 256);\n }\n /**\n * Will ensure the data in the buffer is uploaded to the GPU.\n * @param {Buffer} buffer - the buffer to update\n */\n updateBuffer(buffer) {\n const { _gl: gl } = this;\n const glBuffer = this.getGlBuffer(buffer);\n if (buffer._updateID === glBuffer.updateID) {\n return glBuffer;\n }\n glBuffer.updateID = buffer._updateID;\n gl.bindBuffer(glBuffer.type, glBuffer.buffer);\n const data = buffer.data;\n if (glBuffer.byteLength >= buffer.data.byteLength) {\n gl.bufferSubData(glBuffer.type, 0, data, 0, buffer._updateSize / data.BYTES_PER_ELEMENT);\n } else {\n const drawType = buffer.descriptor.usage & BufferUsage.STATIC ? gl.STATIC_DRAW : gl.DYNAMIC_DRAW;\n glBuffer.byteLength = data.byteLength;\n gl.bufferData(glBuffer.type, data, drawType);\n }\n return glBuffer;\n }\n /** dispose all WebGL resources of all managed buffers */\n destroyAll() {\n const gl = this._gl;\n for (const id in this._gpuBuffers) {\n gl.deleteBuffer(this._gpuBuffers[id].buffer);\n }\n this._gpuBuffers = /* @__PURE__ */ Object.create(null);\n }\n /**\n * Disposes buffer\n * @param {Buffer} buffer - buffer with data\n * @param {boolean} [contextLost=false] - If context was lost, we suppress deleteVertexArray\n */\n onBufferDestroy(buffer, contextLost) {\n const glBuffer = this._gpuBuffers[buffer.uid];\n const gl = this._gl;\n if (!contextLost) {\n gl.deleteBuffer(glBuffer.buffer);\n }\n this._gpuBuffers[buffer.uid] = null;\n }\n /**\n * creates and attaches a GLBuffer object tied to the current context.\n * @param buffer\n * @protected\n */\n createGLBuffer(buffer) {\n const { _gl: gl } = this;\n let type = BUFFER_TYPE.ARRAY_BUFFER;\n if (buffer.descriptor.usage & BufferUsage.INDEX) {\n type = BUFFER_TYPE.ELEMENT_ARRAY_BUFFER;\n } else if (buffer.descriptor.usage & BufferUsage.UNIFORM) {\n type = BUFFER_TYPE.UNIFORM_BUFFER;\n }\n const glBuffer = new GlBuffer(gl.createBuffer(), type);\n this._gpuBuffers[buffer.uid] = glBuffer;\n buffer.on(\"destroy\", this.onBufferDestroy, this);\n return glBuffer;\n }\n}\n/** @ignore */\nGlBufferSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"buffer\"\n};\n\nexport { GlBufferSystem };\n//# sourceMappingURL=GlBufferSystem.mjs.map\n","import { DOMAdapter } from '../../../../environment/adapter.mjs';\nimport { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { warn } from '../../../../utils/logging/warn.mjs';\n\n\"use strict\";\nconst _GlContextSystem = class _GlContextSystem {\n /** @param renderer - The renderer this System works for. */\n constructor(renderer) {\n /**\n * Features supported by current renderer.\n * @type {object}\n * @readonly\n */\n this.supports = {\n /** Support for 32-bit indices buffer. */\n uint32Indices: true,\n /** Support for UniformBufferObjects */\n uniformBufferObject: true,\n /** Support for VertexArrayObjects */\n vertexArrayObject: true,\n /** Support for SRGB texture format */\n srgbTextures: true,\n /** Support for wrapping modes if a texture is non-power of two */\n nonPowOf2wrapping: true,\n /** Support for MSAA (antialiasing of dynamic textures) */\n msaa: true,\n /** Support for mipmaps if a texture is non-power of two */\n nonPowOf2mipmaps: true\n };\n this._renderer = renderer;\n this.extensions = /* @__PURE__ */ Object.create(null);\n this.handleContextLost = this.handleContextLost.bind(this);\n this.handleContextRestored = this.handleContextRestored.bind(this);\n }\n /**\n * `true` if the context is lost\n * @readonly\n */\n get isLost() {\n return !this.gl || this.gl.isContextLost();\n }\n /**\n * Handles the context change event.\n * @param {WebGLRenderingContext} gl - New WebGL context.\n */\n contextChange(gl) {\n this.gl = gl;\n this._renderer.gl = gl;\n }\n init(options) {\n options = { ..._GlContextSystem.defaultOptions, ...options };\n if (options.context) {\n this.initFromContext(options.context);\n } else {\n const alpha = this._renderer.background.alpha < 1;\n const premultipliedAlpha = options.premultipliedAlpha ?? true;\n const antialias = options.antialias && !this._renderer.backBuffer.useBackBuffer;\n this.createContext(options.preferWebGLVersion, {\n alpha,\n premultipliedAlpha,\n antialias,\n stencil: true,\n preserveDrawingBuffer: options.preserveDrawingBuffer,\n powerPreference: options.powerPreference ?? \"default\"\n });\n }\n }\n /**\n * Initializes the context.\n * @protected\n * @param {WebGLRenderingContext} gl - WebGL context\n */\n initFromContext(gl) {\n this.gl = gl;\n this.webGLVersion = gl instanceof DOMAdapter.get().getWebGLRenderingContext() ? 1 : 2;\n this.getExtensions();\n this.validateContext(gl);\n this._renderer.runners.contextChange.emit(gl);\n const element = this._renderer.view.canvas;\n element.addEventListener(\"webglcontextlost\", this.handleContextLost, false);\n element.addEventListener(\"webglcontextrestored\", this.handleContextRestored, false);\n }\n /**\n * Initialize from context options\n * @protected\n * @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/getContext\n * @param preferWebGLVersion\n * @param {object} options - context attributes\n */\n createContext(preferWebGLVersion, options) {\n let gl;\n const canvas = this._renderer.view.canvas;\n if (preferWebGLVersion === 2) {\n gl = canvas.getContext(\"webgl2\", options);\n }\n if (!gl) {\n gl = canvas.getContext(\"webgl\", options);\n if (!gl) {\n throw new Error(\"This browser does not support WebGL. Try using the canvas renderer\");\n }\n }\n this.gl = gl;\n this.initFromContext(this.gl);\n }\n /** Auto-populate the {@link GlContextSystem.extensions extensions}. */\n getExtensions() {\n const { gl } = this;\n const common = {\n anisotropicFiltering: gl.getExtension(\"EXT_texture_filter_anisotropic\"),\n floatTextureLinear: gl.getExtension(\"OES_texture_float_linear\"),\n s3tc: gl.getExtension(\"WEBGL_compressed_texture_s3tc\"),\n s3tc_sRGB: gl.getExtension(\"WEBGL_compressed_texture_s3tc_srgb\"),\n // eslint-disable-line camelcase\n etc: gl.getExtension(\"WEBGL_compressed_texture_etc\"),\n etc1: gl.getExtension(\"WEBGL_compressed_texture_etc1\"),\n pvrtc: gl.getExtension(\"WEBGL_compressed_texture_pvrtc\") || gl.getExtension(\"WEBKIT_WEBGL_compressed_texture_pvrtc\"),\n atc: gl.getExtension(\"WEBGL_compressed_texture_atc\"),\n astc: gl.getExtension(\"WEBGL_compressed_texture_astc\"),\n bptc: gl.getExtension(\"EXT_texture_compression_bptc\"),\n rgtc: gl.getExtension(\"EXT_texture_compression_rgtc\"),\n loseContext: gl.getExtension(\"WEBGL_lose_context\")\n };\n if (this.webGLVersion === 1) {\n this.extensions = {\n ...common,\n drawBuffers: gl.getExtension(\"WEBGL_draw_buffers\"),\n depthTexture: gl.getExtension(\"WEBGL_depth_texture\"),\n vertexArrayObject: gl.getExtension(\"OES_vertex_array_object\") || gl.getExtension(\"MOZ_OES_vertex_array_object\") || gl.getExtension(\"WEBKIT_OES_vertex_array_object\"),\n uint32ElementIndex: gl.getExtension(\"OES_element_index_uint\"),\n // Floats and half-floats\n floatTexture: gl.getExtension(\"OES_texture_float\"),\n floatTextureLinear: gl.getExtension(\"OES_texture_float_linear\"),\n textureHalfFloat: gl.getExtension(\"OES_texture_half_float\"),\n textureHalfFloatLinear: gl.getExtension(\"OES_texture_half_float_linear\"),\n vertexAttribDivisorANGLE: gl.getExtension(\"ANGLE_instanced_arrays\"),\n srgb: gl.getExtension(\"EXT_sRGB\")\n };\n } else {\n this.extensions = {\n ...common,\n colorBufferFloat: gl.getExtension(\"EXT_color_buffer_float\")\n };\n const provokeExt = gl.getExtension(\"WEBGL_provoking_vertex\");\n if (provokeExt) {\n provokeExt.provokingVertexWEBGL(provokeExt.FIRST_VERTEX_CONVENTION_WEBGL);\n }\n }\n }\n /**\n * Handles a lost webgl context\n * @param {WebGLContextEvent} event - The context lost event.\n */\n handleContextLost(event) {\n event.preventDefault();\n if (this._contextLossForced) {\n this._contextLossForced = false;\n setTimeout(() => {\n if (this.gl.isContextLost()) {\n this.extensions.loseContext?.restoreContext();\n }\n }, 0);\n }\n }\n /** Handles a restored webgl context. */\n handleContextRestored() {\n this._renderer.runners.contextChange.emit(this.gl);\n }\n destroy() {\n const element = this._renderer.view.canvas;\n this._renderer = null;\n element.removeEventListener(\"webglcontextlost\", this.handleContextLost);\n element.removeEventListener(\"webglcontextrestored\", this.handleContextRestored);\n this.gl.useProgram(null);\n this.extensions.loseContext?.loseContext();\n }\n /**\n * this function can be called to force a webGL context loss\n * this will release all resources on the GPU.\n * Useful if you need to put Pixi to sleep, and save some GPU memory\n *\n * As soon as render is called - all resources will be created again.\n */\n forceContextLoss() {\n this.extensions.loseContext?.loseContext();\n this._contextLossForced = true;\n }\n /**\n * Validate context.\n * @param {WebGLRenderingContext} gl - Render context.\n */\n validateContext(gl) {\n const attributes = gl.getContextAttributes();\n if (attributes && !attributes.stencil) {\n warn(\"Provided WebGL context does not have a stencil buffer, masks may not render correctly\");\n }\n const supports = this.supports;\n const isWebGl2 = this.webGLVersion === 2;\n const extensions = this.extensions;\n supports.uint32Indices = isWebGl2 || !!extensions.uint32ElementIndex;\n supports.uniformBufferObject = isWebGl2;\n supports.vertexArrayObject = isWebGl2 || !!extensions.vertexArrayObject;\n supports.srgbTextures = isWebGl2 || !!extensions.srgb;\n supports.nonPowOf2wrapping = isWebGl2;\n supports.nonPowOf2mipmaps = isWebGl2;\n supports.msaa = isWebGl2;\n if (!supports.uint32Indices) {\n warn(\"Provided WebGL context does not support 32 index buffer, large scenes may not render correctly\");\n }\n }\n};\n/** @ignore */\n_GlContextSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"context\"\n};\n/** The default options for the system. */\n_GlContextSystem.defaultOptions = {\n /**\n * {@link WebGLOptions.context}\n * @default null\n */\n context: null,\n /**\n * {@link WebGLOptions.premultipliedAlpha}\n * @default true\n */\n premultipliedAlpha: true,\n /**\n * {@link WebGLOptions.preserveDrawingBuffer}\n * @default false\n */\n preserveDrawingBuffer: false,\n /**\n * {@link WebGLOptions.powerPreference}\n * @default default\n */\n powerPreference: void 0,\n /**\n * {@link WebGLOptions.webGLVersion}\n * @default 2\n */\n preferWebGLVersion: 2\n};\nlet GlContextSystem = _GlContextSystem;\n\nexport { GlContextSystem };\n//# sourceMappingURL=GlContextSystem.mjs.map\n","import { GL_TYPES } from '../../texture/const.mjs';\n\n\"use strict\";\nconst infoMap = {\n uint8x2: GL_TYPES.UNSIGNED_BYTE,\n uint8x4: GL_TYPES.UNSIGNED_BYTE,\n sint8x2: GL_TYPES.BYTE,\n sint8x4: GL_TYPES.BYTE,\n unorm8x2: GL_TYPES.UNSIGNED_BYTE,\n unorm8x4: GL_TYPES.UNSIGNED_BYTE,\n snorm8x2: GL_TYPES.BYTE,\n snorm8x4: GL_TYPES.BYTE,\n uint16x2: GL_TYPES.UNSIGNED_SHORT,\n uint16x4: GL_TYPES.UNSIGNED_SHORT,\n sint16x2: GL_TYPES.SHORT,\n sint16x4: GL_TYPES.SHORT,\n unorm16x2: GL_TYPES.UNSIGNED_SHORT,\n unorm16x4: GL_TYPES.UNSIGNED_SHORT,\n snorm16x2: GL_TYPES.SHORT,\n snorm16x4: GL_TYPES.SHORT,\n float16x2: GL_TYPES.HALF_FLOAT,\n float16x4: GL_TYPES.HALF_FLOAT,\n float32: GL_TYPES.FLOAT,\n float32x2: GL_TYPES.FLOAT,\n float32x3: GL_TYPES.FLOAT,\n float32x4: GL_TYPES.FLOAT,\n uint32: GL_TYPES.UNSIGNED_INT,\n uint32x2: GL_TYPES.UNSIGNED_INT,\n uint32x3: GL_TYPES.UNSIGNED_INT,\n uint32x4: GL_TYPES.UNSIGNED_INT,\n sint32: GL_TYPES.INT,\n sint32x2: GL_TYPES.INT,\n sint32x3: GL_TYPES.INT,\n sint32x4: GL_TYPES.INT\n};\nfunction getGlTypeFromFormat(format) {\n return infoMap[format] ?? infoMap.float32;\n}\n\nexport { getGlTypeFromFormat };\n//# sourceMappingURL=getGlTypeFromFormat.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { getAttributeInfoFromFormat } from '../../shared/geometry/utils/getAttributeInfoFromFormat.mjs';\nimport { ensureAttributes } from '../shader/program/ensureAttributes.mjs';\nimport { getGlTypeFromFormat } from './utils/getGlTypeFromFormat.mjs';\n\n\"use strict\";\nconst topologyToGlMap = {\n \"point-list\": 0,\n \"line-list\": 1,\n \"line-strip\": 3,\n \"triangle-list\": 4,\n \"triangle-strip\": 5\n};\nclass GlGeometrySystem {\n /** @param renderer - The renderer this System works for. */\n constructor(renderer) {\n this._geometryVaoHash = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n this._activeGeometry = null;\n this._activeVao = null;\n this.hasVao = true;\n this.hasInstance = true;\n }\n /** Sets up the renderer context and necessary buffers. */\n contextChange() {\n const gl = this.gl = this._renderer.gl;\n if (!this._renderer.context.supports.vertexArrayObject) {\n throw new Error(\"[PixiJS] Vertex Array Objects are not supported on this device\");\n }\n const nativeVaoExtension = this._renderer.context.extensions.vertexArrayObject;\n if (nativeVaoExtension) {\n gl.createVertexArray = () => nativeVaoExtension.createVertexArrayOES();\n gl.bindVertexArray = (vao) => nativeVaoExtension.bindVertexArrayOES(vao);\n gl.deleteVertexArray = (vao) => nativeVaoExtension.deleteVertexArrayOES(vao);\n }\n const nativeInstancedExtension = this._renderer.context.extensions.vertexAttribDivisorANGLE;\n if (nativeInstancedExtension) {\n gl.drawArraysInstanced = (a, b, c, d) => {\n nativeInstancedExtension.drawArraysInstancedANGLE(a, b, c, d);\n };\n gl.drawElementsInstanced = (a, b, c, d, e) => {\n nativeInstancedExtension.drawElementsInstancedANGLE(a, b, c, d, e);\n };\n gl.vertexAttribDivisor = (a, b) => nativeInstancedExtension.vertexAttribDivisorANGLE(a, b);\n }\n this._activeGeometry = null;\n this._activeVao = null;\n this._geometryVaoHash = /* @__PURE__ */ Object.create(null);\n }\n /**\n * Binds geometry so that is can be drawn. Creating a Vao if required\n * @param geometry - Instance of geometry to bind.\n * @param program - Instance of program to use vao for.\n */\n bind(geometry, program) {\n const gl = this.gl;\n this._activeGeometry = geometry;\n const vao = this.getVao(geometry, program);\n if (this._activeVao !== vao) {\n this._activeVao = vao;\n gl.bindVertexArray(vao);\n }\n this.updateBuffers();\n }\n /** Reset and unbind any active VAO and geometry. */\n reset() {\n this.unbind();\n }\n /** Update buffers of the currently bound geometry. */\n updateBuffers() {\n const geometry = this._activeGeometry;\n const bufferSystem = this._renderer.buffer;\n for (let i = 0; i < geometry.buffers.length; i++) {\n const buffer = geometry.buffers[i];\n bufferSystem.updateBuffer(buffer);\n }\n }\n /**\n * Check compatibility between a geometry and a program\n * @param geometry - Geometry instance.\n * @param program - Program instance.\n */\n checkCompatibility(geometry, program) {\n const geometryAttributes = geometry.attributes;\n const shaderAttributes = program._attributeData;\n for (const j in shaderAttributes) {\n if (!geometryAttributes[j]) {\n throw new Error(`shader and geometry incompatible, geometry missing the \"${j}\" attribute`);\n }\n }\n }\n /**\n * Takes a geometry and program and generates a unique signature for them.\n * @param geometry - To get signature from.\n * @param program - To test geometry against.\n * @returns - Unique signature of the geometry and program\n */\n getSignature(geometry, program) {\n const attribs = geometry.attributes;\n const shaderAttributes = program._attributeData;\n const strings = [\"g\", geometry.uid];\n for (const i in attribs) {\n if (shaderAttributes[i]) {\n strings.push(i, shaderAttributes[i].location);\n }\n }\n return strings.join(\"-\");\n }\n getVao(geometry, program) {\n return this._geometryVaoHash[geometry.uid]?.[program._key] || this.initGeometryVao(geometry, program);\n }\n /**\n * Creates or gets Vao with the same structure as the geometry and stores it on the geometry.\n * If vao is created, it is bound automatically. We use a shader to infer what and how to set up the\n * attribute locations.\n * @param geometry - Instance of geometry to to generate Vao for.\n * @param program\n * @param _incRefCount - Increment refCount of all geometry buffers.\n */\n initGeometryVao(geometry, program, _incRefCount = true) {\n const gl = this._renderer.gl;\n const bufferSystem = this._renderer.buffer;\n this._renderer.shader._getProgramData(program);\n this.checkCompatibility(geometry, program);\n const signature = this.getSignature(geometry, program);\n if (!this._geometryVaoHash[geometry.uid]) {\n this._geometryVaoHash[geometry.uid] = /* @__PURE__ */ Object.create(null);\n geometry.on(\"destroy\", this.onGeometryDestroy, this);\n }\n const vaoObjectHash = this._geometryVaoHash[geometry.uid];\n let vao = vaoObjectHash[signature];\n if (vao) {\n vaoObjectHash[program._key] = vao;\n return vao;\n }\n ensureAttributes(geometry, program._attributeData);\n const buffers = geometry.buffers;\n vao = gl.createVertexArray();\n gl.bindVertexArray(vao);\n for (let i = 0; i < buffers.length; i++) {\n const buffer = buffers[i];\n bufferSystem.bind(buffer);\n }\n this.activateVao(geometry, program);\n vaoObjectHash[program._key] = vao;\n vaoObjectHash[signature] = vao;\n gl.bindVertexArray(null);\n return vao;\n }\n /**\n * Disposes geometry.\n * @param geometry - Geometry with buffers. Only VAO will be disposed\n * @param [contextLost=false] - If context was lost, we suppress deleteVertexArray\n */\n onGeometryDestroy(geometry, contextLost) {\n const vaoObjectHash = this._geometryVaoHash[geometry.uid];\n const gl = this.gl;\n if (vaoObjectHash) {\n if (contextLost) {\n for (const i in vaoObjectHash) {\n if (this._activeVao !== vaoObjectHash[i]) {\n this.unbind();\n }\n gl.deleteVertexArray(vaoObjectHash[i]);\n }\n }\n this._geometryVaoHash[geometry.uid] = null;\n }\n }\n /**\n * Dispose all WebGL resources of all managed geometries.\n * @param [contextLost=false] - If context was lost, we suppress `gl.delete` calls\n */\n destroyAll(contextLost = false) {\n const gl = this.gl;\n for (const i in this._geometryVaoHash) {\n if (contextLost) {\n for (const j in this._geometryVaoHash[i]) {\n const vaoObjectHash = this._geometryVaoHash[i];\n if (this._activeVao !== vaoObjectHash) {\n this.unbind();\n }\n gl.deleteVertexArray(vaoObjectHash[j]);\n }\n }\n this._geometryVaoHash[i] = null;\n }\n }\n /**\n * Activate vertex array object.\n * @param geometry - Geometry instance.\n * @param program - Shader program instance.\n */\n activateVao(geometry, program) {\n const gl = this._renderer.gl;\n const bufferSystem = this._renderer.buffer;\n const attributes = geometry.attributes;\n if (geometry.indexBuffer) {\n bufferSystem.bind(geometry.indexBuffer);\n }\n let lastBuffer = null;\n for (const j in attributes) {\n const attribute = attributes[j];\n const buffer = attribute.buffer;\n const glBuffer = bufferSystem.getGlBuffer(buffer);\n const programAttrib = program._attributeData[j];\n if (programAttrib) {\n if (lastBuffer !== glBuffer) {\n bufferSystem.bind(buffer);\n lastBuffer = glBuffer;\n }\n const location = attribute.location;\n gl.enableVertexAttribArray(location);\n const attributeInfo = getAttributeInfoFromFormat(attribute.format);\n const type = getGlTypeFromFormat(attribute.format);\n if (programAttrib.format?.substring(1, 4) === \"int\") {\n gl.vertexAttribIPointer(\n location,\n attributeInfo.size,\n type,\n attribute.stride,\n attribute.offset\n );\n } else {\n gl.vertexAttribPointer(\n location,\n attributeInfo.size,\n type,\n attributeInfo.normalised,\n attribute.stride,\n attribute.offset\n );\n }\n if (attribute.instance) {\n if (this.hasInstance) {\n gl.vertexAttribDivisor(location, 1);\n } else {\n throw new Error(\"geometry error, GPU Instancing is not supported on this device\");\n }\n }\n }\n }\n }\n /**\n * Draws the currently bound geometry.\n * @param topology - The type primitive to render.\n * @param size - The number of elements to be rendered. If not specified, all vertices after the\n * starting vertex will be drawn.\n * @param start - The starting vertex in the geometry to start drawing from. If not specified,\n * drawing will start from the first vertex.\n * @param instanceCount - The number of instances of the set of elements to execute. If not specified,\n * all instances will be drawn.\n */\n draw(topology, size, start, instanceCount) {\n const { gl } = this._renderer;\n const geometry = this._activeGeometry;\n const glTopology = topologyToGlMap[geometry.topology || topology];\n instanceCount || (instanceCount = geometry.instanceCount);\n if (geometry.indexBuffer) {\n const byteSize = geometry.indexBuffer.data.BYTES_PER_ELEMENT;\n const glType = byteSize === 2 ? gl.UNSIGNED_SHORT : gl.UNSIGNED_INT;\n if (instanceCount > 1) {\n gl.drawElementsInstanced(glTopology, size || geometry.indexBuffer.data.length, glType, (start || 0) * byteSize, instanceCount);\n } else {\n gl.drawElements(glTopology, size || geometry.indexBuffer.data.length, glType, (start || 0) * byteSize);\n }\n } else if (instanceCount > 1) {\n gl.drawArraysInstanced(glTopology, start || 0, size || geometry.getSize(), instanceCount);\n } else {\n gl.drawArrays(glTopology, start || 0, size || geometry.getSize());\n }\n return this;\n }\n /** Unbind/reset everything. */\n unbind() {\n this.gl.bindVertexArray(null);\n this._activeVao = null;\n this._activeGeometry = null;\n }\n destroy() {\n this._renderer = null;\n this.gl = null;\n this._activeVao = null;\n this._activeGeometry = null;\n }\n}\n/** @ignore */\nGlGeometrySystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"geometry\"\n};\n\nexport { GlGeometrySystem };\n//# sourceMappingURL=GlGeometrySystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { warn } from '../../../utils/logging/warn.mjs';\nimport { Geometry } from '../shared/geometry/Geometry.mjs';\nimport { Shader } from '../shared/shader/Shader.mjs';\nimport { State } from '../shared/state/State.mjs';\nimport { TextureSource } from '../shared/texture/sources/TextureSource.mjs';\nimport { Texture } from '../shared/texture/Texture.mjs';\nimport { GlProgram } from './shader/GlProgram.mjs';\n\n\"use strict\";\nconst bigTriangleGeometry = new Geometry({\n attributes: {\n aPosition: [\n -1,\n -1,\n // Bottom left corner\n 3,\n -1,\n // Bottom right corner, extending beyond right edge\n -1,\n 3\n // Top left corner, extending beyond top edge\n ]\n }\n});\nconst _GlBackBufferSystem = class _GlBackBufferSystem {\n constructor(renderer) {\n /** if true, the back buffer is used */\n this.useBackBuffer = false;\n this._useBackBufferThisRender = false;\n this._renderer = renderer;\n }\n init(options = {}) {\n const { useBackBuffer, antialias } = { ..._GlBackBufferSystem.defaultOptions, ...options };\n this.useBackBuffer = useBackBuffer;\n this._antialias = antialias;\n if (!this._renderer.context.supports.msaa) {\n warn(\"antialiasing, is not supported on when using the back buffer\");\n this._antialias = false;\n }\n this._state = State.for2d();\n const bigTriangleProgram = new GlProgram({\n vertex: `\n attribute vec2 aPosition;\n out vec2 vUv;\n\n void main() {\n gl_Position = vec4(aPosition, 0.0, 1.0);\n\n vUv = (aPosition + 1.0) / 2.0;\n\n // flip dem UVs\n vUv.y = 1.0 - vUv.y;\n }`,\n fragment: `\n in vec2 vUv;\n out vec4 finalColor;\n\n uniform sampler2D uTexture;\n\n void main() {\n finalColor = texture(uTexture, vUv);\n }`,\n name: \"big-triangle\"\n });\n this._bigTriangleShader = new Shader({\n glProgram: bigTriangleProgram,\n resources: {\n uTexture: Texture.WHITE.source\n }\n });\n }\n /**\n * This is called before the RenderTargetSystem is started. This is where\n * we replace the target with the back buffer if required.\n * @param options - The options for this render.\n */\n renderStart(options) {\n const renderTarget = this._renderer.renderTarget.getRenderTarget(options.target);\n this._useBackBufferThisRender = this.useBackBuffer && !!renderTarget.isRoot;\n if (this._useBackBufferThisRender) {\n const renderTarget2 = this._renderer.renderTarget.getRenderTarget(options.target);\n this._targetTexture = renderTarget2.colorTexture;\n options.target = this._getBackBufferTexture(renderTarget2.colorTexture);\n }\n }\n renderEnd() {\n this._presentBackBuffer();\n }\n _presentBackBuffer() {\n const renderer = this._renderer;\n renderer.renderTarget.finishRenderPass();\n if (!this._useBackBufferThisRender)\n return;\n renderer.renderTarget.bind(this._targetTexture, false);\n this._bigTriangleShader.resources.uTexture = this._backBufferTexture.source;\n renderer.encoder.draw({\n geometry: bigTriangleGeometry,\n shader: this._bigTriangleShader,\n state: this._state\n });\n }\n _getBackBufferTexture(targetSourceTexture) {\n this._backBufferTexture = this._backBufferTexture || new Texture({\n source: new TextureSource({\n width: targetSourceTexture.width,\n height: targetSourceTexture.height,\n resolution: targetSourceTexture._resolution,\n antialias: this._antialias\n })\n });\n this._backBufferTexture.source.resize(\n targetSourceTexture.width,\n targetSourceTexture.height,\n targetSourceTexture._resolution\n );\n return this._backBufferTexture;\n }\n /** destroys the back buffer */\n destroy() {\n if (this._backBufferTexture) {\n this._backBufferTexture.destroy();\n this._backBufferTexture = null;\n }\n }\n};\n/** @ignore */\n_GlBackBufferSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"backBuffer\",\n priority: 1\n};\n/** default options for the back buffer system */\n_GlBackBufferSystem.defaultOptions = {\n /** if true will use the back buffer where required */\n useBackBuffer: false\n};\nlet GlBackBufferSystem = _GlBackBufferSystem;\n\nexport { GlBackBufferSystem };\n//# sourceMappingURL=GlBackBufferSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GlColorMaskSystem {\n constructor(renderer) {\n this._colorMaskCache = 15;\n this._renderer = renderer;\n }\n setMask(colorMask) {\n if (this._colorMaskCache === colorMask)\n return;\n this._colorMaskCache = colorMask;\n this._renderer.gl.colorMask(\n !!(colorMask & 8),\n !!(colorMask & 4),\n !!(colorMask & 2),\n !!(colorMask & 1)\n );\n }\n}\n/** @ignore */\nGlColorMaskSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"colorMask\"\n};\n\nexport { GlColorMaskSystem };\n//# sourceMappingURL=GlColorMaskSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\n\n\"use strict\";\nclass GlEncoderSystem {\n constructor(renderer) {\n this.commandFinished = Promise.resolve();\n this._renderer = renderer;\n }\n setGeometry(geometry, shader) {\n this._renderer.geometry.bind(geometry, shader.glProgram);\n }\n finishRenderPass() {\n }\n draw(options) {\n const renderer = this._renderer;\n const { geometry, shader, state, skipSync, topology: type, size, start, instanceCount } = options;\n renderer.shader.bind(shader, skipSync);\n renderer.geometry.bind(geometry, renderer.shader._activeProgram);\n if (state) {\n renderer.state.set(state);\n }\n renderer.geometry.draw(type, size, start, instanceCount ?? geometry.instanceCount);\n }\n destroy() {\n this._renderer = null;\n }\n}\n/** @ignore */\nGlEncoderSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"encoder\"\n};\n\nexport { GlEncoderSystem };\n//# sourceMappingURL=GlEncoderSystem.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { GpuStencilModesToPixi } from '../gpu/state/GpuStencilModesToPixi.mjs';\nimport { STENCIL_MODES } from '../shared/state/const.mjs';\n\n\"use strict\";\nclass GlStencilSystem {\n constructor(renderer) {\n this._stencilCache = {\n enabled: false,\n stencilReference: 0,\n stencilMode: STENCIL_MODES.NONE\n };\n this._renderTargetStencilState = /* @__PURE__ */ Object.create(null);\n renderer.renderTarget.onRenderTargetChange.add(this);\n }\n contextChange(gl) {\n this._gl = gl;\n this._comparisonFuncMapping = {\n always: gl.ALWAYS,\n never: gl.NEVER,\n equal: gl.EQUAL,\n \"not-equal\": gl.NOTEQUAL,\n less: gl.LESS,\n \"less-equal\": gl.LEQUAL,\n greater: gl.GREATER,\n \"greater-equal\": gl.GEQUAL\n };\n this._stencilOpsMapping = {\n keep: gl.KEEP,\n zero: gl.ZERO,\n replace: gl.REPLACE,\n invert: gl.INVERT,\n \"increment-clamp\": gl.INCR,\n \"decrement-clamp\": gl.DECR,\n \"increment-wrap\": gl.INCR_WRAP,\n \"decrement-wrap\": gl.DECR_WRAP\n };\n this._stencilCache.enabled = false;\n this._stencilCache.stencilMode = STENCIL_MODES.NONE;\n this._stencilCache.stencilReference = 0;\n }\n onRenderTargetChange(renderTarget) {\n if (this._activeRenderTarget === renderTarget)\n return;\n this._activeRenderTarget = renderTarget;\n let stencilState = this._renderTargetStencilState[renderTarget.uid];\n if (!stencilState) {\n stencilState = this._renderTargetStencilState[renderTarget.uid] = {\n stencilMode: STENCIL_MODES.DISABLED,\n stencilReference: 0\n };\n }\n this.setStencilMode(stencilState.stencilMode, stencilState.stencilReference);\n }\n setStencilMode(stencilMode, stencilReference) {\n const stencilState = this._renderTargetStencilState[this._activeRenderTarget.uid];\n const gl = this._gl;\n const mode = GpuStencilModesToPixi[stencilMode];\n const _stencilCache = this._stencilCache;\n stencilState.stencilMode = stencilMode;\n stencilState.stencilReference = stencilReference;\n if (stencilMode === STENCIL_MODES.DISABLED) {\n if (this._stencilCache.enabled) {\n this._stencilCache.enabled = false;\n gl.disable(gl.STENCIL_TEST);\n }\n return;\n }\n if (!this._stencilCache.enabled) {\n this._stencilCache.enabled = true;\n gl.enable(gl.STENCIL_TEST);\n }\n if (stencilMode !== _stencilCache.stencilMode || _stencilCache.stencilReference !== stencilReference) {\n _stencilCache.stencilMode = stencilMode;\n _stencilCache.stencilReference = stencilReference;\n gl.stencilFunc(this._comparisonFuncMapping[mode.stencilBack.compare], stencilReference, 255);\n gl.stencilOp(gl.KEEP, gl.KEEP, this._stencilOpsMapping[mode.stencilBack.passOp]);\n }\n }\n}\n/** @ignore */\nGlStencilSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"stencil\"\n};\n\nexport { GlStencilSystem };\n//# sourceMappingURL=GlStencilSystem.mjs.map\n","\"use strict\";\nconst WGSL_TO_STD40_SIZE = {\n f32: 4,\n \"vec2<f32>\": 8,\n \"vec3<f32>\": 12,\n \"vec4<f32>\": 16,\n \"mat2x2<f32>\": 16 * 2,\n \"mat3x3<f32>\": 16 * 3,\n \"mat4x4<f32>\": 16 * 4\n // TODO - not essential for now but support these in the future\n // int: 4,\n // ivec2: 8,\n // ivec3: 12,\n // ivec4: 16,\n // uint: 4,\n // uvec2: 8,\n // uvec3: 12,\n // uvec4: 16,\n // bool: 4,\n // bvec2: 8,\n // bvec3: 12,\n // bvec4: 16,\n // mat2: 16 * 2,\n // mat3: 16 * 3,\n // mat4: 16 * 4,\n};\nfunction createUboElementsSTD40(uniformData) {\n const uboElements = uniformData.map((data) => ({\n data,\n offset: 0,\n size: 0\n }));\n let size = 0;\n let chunkSize = 0;\n let offset = 0;\n for (let i = 0; i < uboElements.length; i++) {\n const uboElement = uboElements[i];\n size = WGSL_TO_STD40_SIZE[uboElement.data.type];\n if (!size) {\n throw new Error(`Unknown type ${uboElement.data.type}`);\n }\n if (uboElement.data.size > 1) {\n size = Math.max(size, 16) * uboElement.data.size;\n }\n uboElement.size = size;\n if (chunkSize % size !== 0 && chunkSize < 16) {\n const lineUpValue = chunkSize % size % 16;\n chunkSize += lineUpValue;\n offset += lineUpValue;\n }\n if (chunkSize + size > 16) {\n offset = Math.ceil(offset / 16) * 16;\n uboElement.offset = offset;\n offset += size;\n chunkSize = size;\n } else {\n uboElement.offset = offset;\n chunkSize += size;\n offset += size;\n }\n }\n offset = Math.ceil(offset / 16) * 16;\n return { uboElements, size: offset };\n}\n\nexport { WGSL_TO_STD40_SIZE, createUboElementsSTD40 };\n//# sourceMappingURL=createUboElementsSTD40.mjs.map\n","import { WGSL_TO_STD40_SIZE } from './createUboElementsSTD40.mjs';\n\n\"use strict\";\nfunction generateArraySyncSTD40(uboElement, offsetToAdd) {\n const rowSize = Math.max(WGSL_TO_STD40_SIZE[uboElement.data.type] / 16, 1);\n const elementSize = uboElement.data.value.length / uboElement.data.size;\n const remainder = (4 - elementSize % 4) % 4;\n return `\n v = uv.${uboElement.data.name};\n offset += ${offsetToAdd};\n\n arrayOffset = offset;\n\n t = 0;\n\n for(var i=0; i < ${uboElement.data.size * rowSize}; i++)\n {\n for(var j = 0; j < ${elementSize}; j++)\n {\n data[arrayOffset++] = v[t++];\n }\n ${remainder !== 0 ? `arrayOffset += ${remainder};` : \"\"}\n }\n `;\n}\n\nexport { generateArraySyncSTD40 };\n//# sourceMappingURL=generateArraySyncSTD40.mjs.map\n","import { createUboSyncFunction } from '../../../shared/shader/utils/createUboSyncFunction.mjs';\nimport { uboSyncFunctionsSTD40 } from '../../../shared/shader/utils/uboSyncFunctions.mjs';\nimport { generateArraySyncSTD40 } from './generateArraySyncSTD40.mjs';\n\n\"use strict\";\nfunction createUboSyncFunctionSTD40(uboElements) {\n return createUboSyncFunction(\n uboElements,\n \"uboStd40\",\n generateArraySyncSTD40,\n uboSyncFunctionsSTD40\n );\n}\n\nexport { createUboSyncFunctionSTD40 };\n//# sourceMappingURL=createUboSyncSTD40.mjs.map\n","import { ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { UboSystem } from '../shared/shader/UboSystem.mjs';\nimport { createUboElementsSTD40 } from './shader/utils/createUboElementsSTD40.mjs';\nimport { createUboSyncFunctionSTD40 } from './shader/utils/createUboSyncSTD40.mjs';\n\n\"use strict\";\nclass GlUboSystem extends UboSystem {\n constructor() {\n super({\n createUboElements: createUboElementsSTD40,\n generateUboSync: createUboSyncFunctionSTD40\n });\n }\n}\n/** @ignore */\nGlUboSystem.extension = {\n type: [ExtensionType.WebGLSystem],\n name: \"ubo\"\n};\n\nexport { GlUboSystem };\n//# sourceMappingURL=GlUboSystem.mjs.map\n","\"use strict\";\nclass GlRenderTarget {\n constructor() {\n this.width = -1;\n this.height = -1;\n this.msaa = false;\n this.msaaRenderBuffer = [];\n }\n}\n\nexport { GlRenderTarget };\n//# sourceMappingURL=GlRenderTarget.mjs.map\n","import { Rectangle } from '../../../../maths/shapes/Rectangle.mjs';\nimport { warn } from '../../../../utils/logging/warn.mjs';\nimport { CLEAR } from '../const.mjs';\nimport { GlRenderTarget } from '../GlRenderTarget.mjs';\n\n\"use strict\";\nclass GlRenderTargetAdaptor {\n constructor() {\n this._clearColorCache = [0, 0, 0, 0];\n this._viewPortCache = new Rectangle();\n }\n init(renderer, renderTargetSystem) {\n this._renderer = renderer;\n this._renderTargetSystem = renderTargetSystem;\n renderer.runners.contextChange.add(this);\n }\n contextChange() {\n this._clearColorCache = [0, 0, 0, 0];\n this._viewPortCache = new Rectangle();\n }\n copyToTexture(sourceRenderSurfaceTexture, destinationTexture, originSrc, size, originDest) {\n const renderTargetSystem = this._renderTargetSystem;\n const renderer = this._renderer;\n const glRenderTarget = renderTargetSystem.getGpuRenderTarget(sourceRenderSurfaceTexture);\n const gl = renderer.gl;\n this.finishRenderPass(sourceRenderSurfaceTexture);\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenderTarget.resolveTargetFramebuffer);\n renderer.texture.bind(destinationTexture, 0);\n gl.copyTexSubImage2D(\n gl.TEXTURE_2D,\n 0,\n originDest.x,\n originDest.y,\n originSrc.x,\n originSrc.y,\n size.width,\n size.height\n );\n return destinationTexture;\n }\n startRenderPass(renderTarget, clear = true, clearColor, viewport) {\n const renderTargetSystem = this._renderTargetSystem;\n const source = renderTarget.colorTexture;\n const gpuRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n let viewPortY = viewport.y;\n if (renderTarget.isRoot) {\n viewPortY = source.pixelHeight - viewport.height;\n }\n renderTarget.colorTextures.forEach((texture) => {\n this._renderer.texture.unbind(texture);\n });\n const gl = this._renderer.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, gpuRenderTarget.framebuffer);\n const viewPortCache = this._viewPortCache;\n if (viewPortCache.x !== viewport.x || viewPortCache.y !== viewPortY || viewPortCache.width !== viewport.width || viewPortCache.height !== viewport.height) {\n viewPortCache.x = viewport.x;\n viewPortCache.y = viewPortY;\n viewPortCache.width = viewport.width;\n viewPortCache.height = viewport.height;\n gl.viewport(\n viewport.x,\n viewPortY,\n viewport.width,\n viewport.height\n );\n }\n if (!gpuRenderTarget.depthStencilRenderBuffer && (renderTarget.stencil || renderTarget.depth)) {\n this._initStencil(gpuRenderTarget);\n }\n this.clear(renderTarget, clear, clearColor);\n }\n finishRenderPass(renderTarget) {\n const renderTargetSystem = this._renderTargetSystem;\n const glRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n if (!glRenderTarget.msaa)\n return;\n const gl = this._renderer.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenderTarget.resolveTargetFramebuffer);\n gl.bindFramebuffer(gl.READ_FRAMEBUFFER, glRenderTarget.framebuffer);\n gl.blitFramebuffer(\n 0,\n 0,\n glRenderTarget.width,\n glRenderTarget.height,\n 0,\n 0,\n glRenderTarget.width,\n glRenderTarget.height,\n gl.COLOR_BUFFER_BIT,\n gl.NEAREST\n );\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenderTarget.framebuffer);\n }\n initGpuRenderTarget(renderTarget) {\n const renderer = this._renderer;\n const gl = renderer.gl;\n const glRenderTarget = new GlRenderTarget();\n if (renderTarget.colorTexture.resource === renderer.gl.canvas) {\n glRenderTarget.framebuffer = null;\n return glRenderTarget;\n }\n this._initColor(renderTarget, glRenderTarget);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n return glRenderTarget;\n }\n destroyGpuRenderTarget(gpuRenderTarget) {\n const gl = this._renderer.gl;\n if (gpuRenderTarget.framebuffer) {\n gl.deleteFramebuffer(gpuRenderTarget.framebuffer);\n gpuRenderTarget.framebuffer = null;\n }\n if (gpuRenderTarget.resolveTargetFramebuffer) {\n gl.deleteFramebuffer(gpuRenderTarget.resolveTargetFramebuffer);\n gpuRenderTarget.resolveTargetFramebuffer = null;\n }\n if (gpuRenderTarget.depthStencilRenderBuffer) {\n gl.deleteRenderbuffer(gpuRenderTarget.depthStencilRenderBuffer);\n gpuRenderTarget.depthStencilRenderBuffer = null;\n }\n gpuRenderTarget.msaaRenderBuffer.forEach((renderBuffer) => {\n gl.deleteRenderbuffer(renderBuffer);\n });\n gpuRenderTarget.msaaRenderBuffer = null;\n }\n clear(_renderTarget, clear, clearColor) {\n if (!clear)\n return;\n const renderTargetSystem = this._renderTargetSystem;\n if (typeof clear === \"boolean\") {\n clear = clear ? CLEAR.ALL : CLEAR.NONE;\n }\n const gl = this._renderer.gl;\n if (clear & CLEAR.COLOR) {\n clearColor ?? (clearColor = renderTargetSystem.defaultClearColor);\n const clearColorCache = this._clearColorCache;\n const clearColorArray = clearColor;\n if (clearColorCache[0] !== clearColorArray[0] || clearColorCache[1] !== clearColorArray[1] || clearColorCache[2] !== clearColorArray[2] || clearColorCache[3] !== clearColorArray[3]) {\n clearColorCache[0] = clearColorArray[0];\n clearColorCache[1] = clearColorArray[1];\n clearColorCache[2] = clearColorArray[2];\n clearColorCache[3] = clearColorArray[3];\n gl.clearColor(clearColorArray[0], clearColorArray[1], clearColorArray[2], clearColorArray[3]);\n }\n }\n gl.clear(clear);\n }\n resizeGpuRenderTarget(renderTarget) {\n if (renderTarget.isRoot)\n return;\n const renderTargetSystem = this._renderTargetSystem;\n const glRenderTarget = renderTargetSystem.getGpuRenderTarget(renderTarget);\n this._resizeColor(renderTarget, glRenderTarget);\n if (renderTarget.stencil) {\n this._resizeStencil(glRenderTarget);\n }\n }\n _initColor(renderTarget, glRenderTarget) {\n const renderer = this._renderer;\n const gl = renderer.gl;\n const resolveTargetFramebuffer = gl.createFramebuffer();\n glRenderTarget.resolveTargetFramebuffer = resolveTargetFramebuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, resolveTargetFramebuffer);\n glRenderTarget.width = renderTarget.colorTexture.source.pixelWidth;\n glRenderTarget.height = renderTarget.colorTexture.source.pixelHeight;\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n const source = colorTexture.source;\n if (source.antialias) {\n if (renderer.context.supports.msaa) {\n glRenderTarget.msaa = true;\n } else {\n warn(\"[RenderTexture] Antialiasing on textures is not supported in WebGL1\");\n }\n }\n renderer.texture.bindSource(source, 0);\n const glSource = renderer.texture.getGlSource(source);\n const glTexture = glSource.texture;\n gl.framebufferTexture2D(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0 + i,\n 3553,\n // texture.target,\n glTexture,\n 0\n );\n });\n if (glRenderTarget.msaa) {\n const viewFramebuffer = gl.createFramebuffer();\n glRenderTarget.framebuffer = viewFramebuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, viewFramebuffer);\n renderTarget.colorTextures.forEach((_, i) => {\n const msaaRenderBuffer = gl.createRenderbuffer();\n glRenderTarget.msaaRenderBuffer[i] = msaaRenderBuffer;\n });\n } else {\n glRenderTarget.framebuffer = resolveTargetFramebuffer;\n }\n this._resizeColor(renderTarget, glRenderTarget);\n }\n _resizeColor(renderTarget, glRenderTarget) {\n const source = renderTarget.colorTexture.source;\n glRenderTarget.width = source.pixelWidth;\n glRenderTarget.height = source.pixelHeight;\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n if (i === 0)\n return;\n colorTexture.source.resize(source.width, source.height, source._resolution);\n });\n if (glRenderTarget.msaa) {\n const renderer = this._renderer;\n const gl = renderer.gl;\n const viewFramebuffer = glRenderTarget.framebuffer;\n gl.bindFramebuffer(gl.FRAMEBUFFER, viewFramebuffer);\n renderTarget.colorTextures.forEach((colorTexture, i) => {\n const source2 = colorTexture.source;\n renderer.texture.bindSource(source2, 0);\n const glSource = renderer.texture.getGlSource(source2);\n const glInternalFormat = glSource.internalFormat;\n const msaaRenderBuffer = glRenderTarget.msaaRenderBuffer[i];\n gl.bindRenderbuffer(\n gl.RENDERBUFFER,\n msaaRenderBuffer\n );\n gl.renderbufferStorageMultisample(\n gl.RENDERBUFFER,\n 4,\n glInternalFormat,\n source2.pixelWidth,\n source2.pixelHeight\n );\n gl.framebufferRenderbuffer(\n gl.FRAMEBUFFER,\n gl.COLOR_ATTACHMENT0 + i,\n gl.RENDERBUFFER,\n msaaRenderBuffer\n );\n });\n }\n }\n _initStencil(glRenderTarget) {\n if (glRenderTarget.framebuffer === null)\n return;\n const gl = this._renderer.gl;\n const depthStencilRenderBuffer = gl.createRenderbuffer();\n glRenderTarget.depthStencilRenderBuffer = depthStencilRenderBuffer;\n gl.bindRenderbuffer(\n gl.RENDERBUFFER,\n depthStencilRenderBuffer\n );\n gl.framebufferRenderbuffer(\n gl.FRAMEBUFFER,\n gl.DEPTH_STENCIL_ATTACHMENT,\n gl.RENDERBUFFER,\n depthStencilRenderBuffer\n );\n this._resizeStencil(glRenderTarget);\n }\n _resizeStencil(glRenderTarget) {\n const gl = this._renderer.gl;\n gl.bindRenderbuffer(\n gl.RENDERBUFFER,\n glRenderTarget.depthStencilRenderBuffer\n );\n if (glRenderTarget.msaa) {\n gl.renderbufferStorageMultisample(\n gl.RENDERBUFFER,\n 4,\n gl.DEPTH24_STENCIL8,\n glRenderTarget.width,\n glRenderTarget.height\n );\n } else {\n gl.renderbufferStorage(\n gl.RENDERBUFFER,\n this._renderer.context.webGLVersion === 2 ? gl.DEPTH24_STENCIL8 : gl.DEPTH_STENCIL,\n glRenderTarget.width,\n glRenderTarget.height\n );\n }\n }\n}\n\nexport { GlRenderTargetAdaptor };\n//# sourceMappingURL=GlRenderTargetAdaptor.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { RenderTargetSystem } from '../../shared/renderTarget/RenderTargetSystem.mjs';\nimport { GlRenderTargetAdaptor } from './GlRenderTargetAdaptor.mjs';\n\n\"use strict\";\nclass GlRenderTargetSystem extends RenderTargetSystem {\n constructor(renderer) {\n super(renderer);\n this.adaptor = new GlRenderTargetAdaptor();\n this.adaptor.init(renderer, this);\n }\n}\n/** @ignore */\nGlRenderTargetSystem.extension = {\n type: [ExtensionType.WebGLSystem],\n name: \"renderTarget\"\n};\n\nexport { GlRenderTargetSystem };\n//# sourceMappingURL=GlRenderTargetSystem.mjs.map\n","\"use strict\";\nclass IGLUniformData {\n}\nclass GlProgramData {\n /**\n * Makes a new Pixi program.\n * @param program - webgl program\n * @param uniformData - uniforms\n */\n constructor(program, uniformData) {\n this.program = program;\n this.uniformData = uniformData;\n this.uniformGroups = {};\n this.uniformDirtyGroups = {};\n this.uniformBlockBindings = {};\n }\n /** Destroys this program. */\n destroy() {\n this.uniformData = null;\n this.uniformGroups = null;\n this.uniformDirtyGroups = null;\n this.uniformBlockBindings = null;\n this.program = null;\n }\n}\n\nexport { GlProgramData, IGLUniformData };\n//# sourceMappingURL=GlProgramData.mjs.map\n","\"use strict\";\nfunction compileShader(gl, type, src) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n return shader;\n}\n\nexport { compileShader };\n//# sourceMappingURL=compileShader.mjs.map\n","\"use strict\";\nfunction booleanArray(size) {\n const array = new Array(size);\n for (let i = 0; i < array.length; i++) {\n array[i] = false;\n }\n return array;\n}\nfunction defaultValue(type, size) {\n switch (type) {\n case \"float\":\n return 0;\n case \"vec2\":\n return new Float32Array(2 * size);\n case \"vec3\":\n return new Float32Array(3 * size);\n case \"vec4\":\n return new Float32Array(4 * size);\n case \"int\":\n case \"uint\":\n case \"sampler2D\":\n case \"sampler2DArray\":\n return 0;\n case \"ivec2\":\n return new Int32Array(2 * size);\n case \"ivec3\":\n return new Int32Array(3 * size);\n case \"ivec4\":\n return new Int32Array(4 * size);\n case \"uvec2\":\n return new Uint32Array(2 * size);\n case \"uvec3\":\n return new Uint32Array(3 * size);\n case \"uvec4\":\n return new Uint32Array(4 * size);\n case \"bool\":\n return false;\n case \"bvec2\":\n return booleanArray(2 * size);\n case \"bvec3\":\n return booleanArray(3 * size);\n case \"bvec4\":\n return booleanArray(4 * size);\n case \"mat2\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 1\n ]);\n case \"mat3\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 1\n ]);\n case \"mat4\":\n return new Float32Array([\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1,\n 0,\n 0,\n 0,\n 0,\n 1\n ]);\n }\n return null;\n}\n\nexport { defaultValue };\n//# sourceMappingURL=defaultValue.mjs.map\n","\"use strict\";\nlet GL_TABLE = null;\nconst GL_TO_GLSL_TYPES = {\n FLOAT: \"float\",\n FLOAT_VEC2: \"vec2\",\n FLOAT_VEC3: \"vec3\",\n FLOAT_VEC4: \"vec4\",\n INT: \"int\",\n INT_VEC2: \"ivec2\",\n INT_VEC3: \"ivec3\",\n INT_VEC4: \"ivec4\",\n UNSIGNED_INT: \"uint\",\n UNSIGNED_INT_VEC2: \"uvec2\",\n UNSIGNED_INT_VEC3: \"uvec3\",\n UNSIGNED_INT_VEC4: \"uvec4\",\n BOOL: \"bool\",\n BOOL_VEC2: \"bvec2\",\n BOOL_VEC3: \"bvec3\",\n BOOL_VEC4: \"bvec4\",\n FLOAT_MAT2: \"mat2\",\n FLOAT_MAT3: \"mat3\",\n FLOAT_MAT4: \"mat4\",\n SAMPLER_2D: \"sampler2D\",\n INT_SAMPLER_2D: \"sampler2D\",\n UNSIGNED_INT_SAMPLER_2D: \"sampler2D\",\n SAMPLER_CUBE: \"samplerCube\",\n INT_SAMPLER_CUBE: \"samplerCube\",\n UNSIGNED_INT_SAMPLER_CUBE: \"samplerCube\",\n SAMPLER_2D_ARRAY: \"sampler2DArray\",\n INT_SAMPLER_2D_ARRAY: \"sampler2DArray\",\n UNSIGNED_INT_SAMPLER_2D_ARRAY: \"sampler2DArray\"\n};\nconst GLSL_TO_VERTEX_TYPES = {\n float: \"float32\",\n vec2: \"float32x2\",\n vec3: \"float32x3\",\n vec4: \"float32x4\",\n int: \"sint32\",\n ivec2: \"sint32x2\",\n ivec3: \"sint32x3\",\n ivec4: \"sint32x4\",\n uint: \"uint32\",\n uvec2: \"uint32x2\",\n uvec3: \"uint32x3\",\n uvec4: \"uint32x4\",\n bool: \"uint32\",\n bvec2: \"uint32x2\",\n bvec3: \"uint32x3\",\n bvec4: \"uint32x4\"\n};\nfunction mapType(gl, type) {\n if (!GL_TABLE) {\n const typeNames = Object.keys(GL_TO_GLSL_TYPES);\n GL_TABLE = {};\n for (let i = 0; i < typeNames.length; ++i) {\n const tn = typeNames[i];\n GL_TABLE[gl[tn]] = GL_TO_GLSL_TYPES[tn];\n }\n }\n return GL_TABLE[type];\n}\nfunction mapGlToVertexFormat(gl, type) {\n const typeValue = mapType(gl, type);\n return GLSL_TO_VERTEX_TYPES[typeValue] || \"float32\";\n}\n\nexport { mapGlToVertexFormat, mapType };\n//# sourceMappingURL=mapType.mjs.map\n","\"use strict\";\nfunction logPrettyShaderError(gl, shader) {\n const shaderSrc = gl.getShaderSource(shader).split(\"\\n\").map((line, index) => `${index}: ${line}`);\n const shaderLog = gl.getShaderInfoLog(shader);\n const splitShader = shaderLog.split(\"\\n\");\n const dedupe = {};\n const lineNumbers = splitShader.map((line) => parseFloat(line.replace(/^ERROR\\: 0\\:([\\d]+)\\:.*$/, \"$1\"))).filter((n) => {\n if (n && !dedupe[n]) {\n dedupe[n] = true;\n return true;\n }\n return false;\n });\n const logArgs = [\"\"];\n lineNumbers.forEach((number) => {\n shaderSrc[number - 1] = `%c${shaderSrc[number - 1]}%c`;\n logArgs.push(\"background: #FF0000; color:#FFFFFF; font-size: 10px\", \"font-size: 10px\");\n });\n const fragmentSourceToLog = shaderSrc.join(\"\\n\");\n logArgs[0] = fragmentSourceToLog;\n console.error(shaderLog);\n console.groupCollapsed(\"click to view full shader code\");\n console.warn(...logArgs);\n console.groupEnd();\n}\nfunction logProgramError(gl, program, vertexShader, fragmentShader) {\n if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {\n if (!gl.getShaderParameter(vertexShader, gl.COMPILE_STATUS)) {\n logPrettyShaderError(gl, vertexShader);\n }\n if (!gl.getShaderParameter(fragmentShader, gl.COMPILE_STATUS)) {\n logPrettyShaderError(gl, fragmentShader);\n }\n console.error(\"PixiJS Error: Could not initialize shader.\");\n if (gl.getProgramInfoLog(program) !== \"\") {\n console.warn(\"PixiJS Warning: gl.getProgramInfoLog()\", gl.getProgramInfoLog(program));\n }\n }\n}\n\nexport { logProgramError };\n//# sourceMappingURL=logProgramError.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { generateShaderSyncCode } from './GenerateShaderSyncCode.mjs';\nimport { generateProgram } from './program/generateProgram.mjs';\n\n\"use strict\";\nconst defaultSyncData = {\n textureCount: 0,\n blockIndex: 0\n};\nclass GlShaderSystem {\n constructor(renderer) {\n /**\n * @internal\n * @private\n */\n this._activeProgram = null;\n this._programDataHash = /* @__PURE__ */ Object.create(null);\n this._nextIndex = 0;\n this._boundUniformsIdsToIndexHash = /* @__PURE__ */ Object.create(null);\n this._boundIndexToUniformsHash = /* @__PURE__ */ Object.create(null);\n this._shaderSyncFunctions = /* @__PURE__ */ Object.create(null);\n this._renderer = renderer;\n }\n contextChange(gl) {\n this._gl = gl;\n this._maxBindings = gl.MAX_UNIFORM_BUFFER_BINDINGS ? gl.getParameter(gl.MAX_UNIFORM_BUFFER_BINDINGS) : 0;\n this._programDataHash = /* @__PURE__ */ Object.create(null);\n this._boundUniformsIdsToIndexHash = /* @__PURE__ */ Object.create(null);\n this._boundIndexToUniformsHash = /* @__PURE__ */ Object.create(null);\n this._activeProgram = null;\n }\n /**\n * Changes the current shader to the one given in parameter.\n * @param shader - the new shader\n * @param skipSync - false if the shader should automatically sync its uniforms.\n * @returns the glProgram that belongs to the shader.\n */\n bind(shader, skipSync) {\n this._setProgram(shader.glProgram);\n if (skipSync)\n return;\n defaultSyncData.textureCount = 0;\n defaultSyncData.blockIndex = 0;\n let syncFunction = this._shaderSyncFunctions[shader.glProgram._key];\n if (!syncFunction) {\n syncFunction = this._shaderSyncFunctions[shader.glProgram._key] = this._generateShaderSync(shader, this);\n }\n syncFunction(this._renderer, shader, defaultSyncData);\n }\n /**\n * Updates the uniform group.\n * @param uniformGroup - the uniform group to update\n */\n updateUniformGroup(uniformGroup) {\n this._renderer.uniformGroup.updateUniformGroup(uniformGroup, this._activeProgram, defaultSyncData);\n }\n /**\n * Binds a uniform block to the shader.\n * @param uniformGroup - the uniform group to bind\n * @param name - the name of the uniform block\n * @param index - the index of the uniform block\n */\n bindUniformBlock(uniformGroup, name, index = 0) {\n const bufferSystem = this._renderer.buffer;\n const programData = this._getProgramData(this._activeProgram);\n const isBufferResource = uniformGroup._bufferResource;\n if (isBufferResource) {\n this._renderer.ubo.updateUniformGroup(uniformGroup);\n }\n bufferSystem.updateBuffer(uniformGroup.buffer);\n let boundIndex = this._boundUniformsIdsToIndexHash[uniformGroup.uid];\n if (boundIndex === void 0) {\n const nextIndex = this._nextIndex++ % this._maxBindings;\n const currentBoundUniformGroup = this._boundIndexToUniformsHash[nextIndex];\n if (currentBoundUniformGroup) {\n this._boundUniformsIdsToIndexHash[currentBoundUniformGroup.uid] = void 0;\n }\n boundIndex = this._boundUniformsIdsToIndexHash[uniformGroup.uid] = nextIndex;\n this._boundIndexToUniformsHash[nextIndex] = uniformGroup;\n if (isBufferResource) {\n bufferSystem.bindBufferRange(uniformGroup.buffer, nextIndex, uniformGroup.offset);\n } else {\n bufferSystem.bindBufferBase(uniformGroup.buffer, nextIndex);\n }\n }\n const gl = this._gl;\n const uniformBlockIndex = this._activeProgram._uniformBlockData[name].index;\n if (programData.uniformBlockBindings[index] === boundIndex)\n return;\n programData.uniformBlockBindings[index] = boundIndex;\n gl.uniformBlockBinding(programData.program, uniformBlockIndex, boundIndex);\n }\n _setProgram(program) {\n if (this._activeProgram === program)\n return;\n this._activeProgram = program;\n const programData = this._getProgramData(program);\n this._gl.useProgram(programData.program);\n }\n /**\n * @param program - the program to get the data for\n * @internal\n * @private\n */\n _getProgramData(program) {\n return this._programDataHash[program._key] || this._createProgramData(program);\n }\n _createProgramData(program) {\n const key = program._key;\n this._programDataHash[key] = generateProgram(this._gl, program);\n return this._programDataHash[key];\n }\n destroy() {\n for (const key of Object.keys(this._programDataHash)) {\n const programData = this._programDataHash[key];\n programData.destroy();\n this._programDataHash[key] = null;\n }\n this._programDataHash = null;\n this._boundUniformsIdsToIndexHash = null;\n }\n /**\n * Creates a function that can be executed that will sync the shader as efficiently as possible.\n * Overridden by the unsafe eval package if you don't want eval used in your project.\n * @param shader - the shader to generate the sync function for\n * @param shaderSystem - the shader system to use\n * @returns - the generated sync function\n * @ignore\n */\n _generateShaderSync(shader, shaderSystem) {\n return generateShaderSyncCode(shader, shaderSystem);\n }\n}\n/** @ignore */\nGlShaderSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"shader\"\n};\n\nexport { GlShaderSystem };\n//# sourceMappingURL=GlShaderSystem.mjs.map\n","import { warn } from '../../../../../utils/logging/warn.mjs';\nimport { GlProgramData } from '../GlProgramData.mjs';\nimport { compileShader } from './compileShader.mjs';\nimport { defaultValue } from './defaultValue.mjs';\nimport { extractAttributesFromGlProgram } from './extractAttributesFromGlProgram.mjs';\nimport { getUboData } from './getUboData.mjs';\nimport { getUniformData } from './getUniformData.mjs';\nimport { logProgramError } from './logProgramError.mjs';\n\n\"use strict\";\nfunction generateProgram(gl, program) {\n const glVertShader = compileShader(gl, gl.VERTEX_SHADER, program.vertex);\n const glFragShader = compileShader(gl, gl.FRAGMENT_SHADER, program.fragment);\n const webGLProgram = gl.createProgram();\n gl.attachShader(webGLProgram, glVertShader);\n gl.attachShader(webGLProgram, glFragShader);\n const transformFeedbackVaryings = program.transformFeedbackVaryings;\n if (transformFeedbackVaryings) {\n if (typeof gl.transformFeedbackVaryings !== \"function\") {\n warn(`TransformFeedback is not supported but TransformFeedbackVaryings are given.`);\n } else {\n gl.transformFeedbackVaryings(\n webGLProgram,\n transformFeedbackVaryings.names,\n transformFeedbackVaryings.bufferMode === \"separate\" ? gl.SEPARATE_ATTRIBS : gl.INTERLEAVED_ATTRIBS\n );\n }\n }\n gl.linkProgram(webGLProgram);\n if (!gl.getProgramParameter(webGLProgram, gl.LINK_STATUS)) {\n logProgramError(gl, webGLProgram, glVertShader, glFragShader);\n }\n program._attributeData = extractAttributesFromGlProgram(\n webGLProgram,\n gl,\n !/^[ \\t]*#[ \\t]*version[ \\t]+300[ \\t]+es[ \\t]*$/m.test(program.vertex)\n );\n program._uniformData = getUniformData(webGLProgram, gl);\n program._uniformBlockData = getUboData(webGLProgram, gl);\n gl.deleteShader(glVertShader);\n gl.deleteShader(glFragShader);\n const uniformData = {};\n for (const i in program._uniformData) {\n const data = program._uniformData[i];\n uniformData[i] = {\n location: gl.getUniformLocation(webGLProgram, i),\n value: defaultValue(data.type, data.size)\n };\n }\n const glProgram = new GlProgramData(webGLProgram, uniformData);\n return glProgram;\n}\n\nexport { generateProgram };\n//# sourceMappingURL=generateProgram.mjs.map\n","import { getAttributeInfoFromFormat } from '../../../shared/geometry/utils/getAttributeInfoFromFormat.mjs';\nimport { mapGlToVertexFormat } from './mapType.mjs';\n\n\"use strict\";\nfunction extractAttributesFromGlProgram(program, gl, sortAttributes = false) {\n const attributes = {};\n const totalAttributes = gl.getProgramParameter(program, gl.ACTIVE_ATTRIBUTES);\n for (let i = 0; i < totalAttributes; i++) {\n const attribData = gl.getActiveAttrib(program, i);\n if (attribData.name.startsWith(\"gl_\")) {\n continue;\n }\n const format = mapGlToVertexFormat(gl, attribData.type);\n attributes[attribData.name] = {\n location: 0,\n // set further down..\n format,\n stride: getAttributeInfoFromFormat(format).stride,\n offset: 0,\n instance: false,\n start: 0\n };\n }\n const keys = Object.keys(attributes);\n if (sortAttributes) {\n keys.sort((a, b) => a > b ? 1 : -1);\n for (let i = 0; i < keys.length; i++) {\n attributes[keys[i]].location = i;\n gl.bindAttribLocation(program, i, keys[i]);\n }\n gl.linkProgram(program);\n } else {\n for (let i = 0; i < keys.length; i++) {\n attributes[keys[i]].location = gl.getAttribLocation(program, keys[i]);\n }\n }\n return attributes;\n}\n\nexport { extractAttributesFromGlProgram };\n//# sourceMappingURL=extractAttributesFromGlProgram.mjs.map\n","import { defaultValue } from './defaultValue.mjs';\nimport { mapType } from './mapType.mjs';\n\n\"use strict\";\nfunction getUniformData(program, gl) {\n const uniforms = {};\n const totalUniforms = gl.getProgramParameter(program, gl.ACTIVE_UNIFORMS);\n for (let i = 0; i < totalUniforms; i++) {\n const uniformData = gl.getActiveUniform(program, i);\n const name = uniformData.name.replace(/\\[.*?\\]$/, \"\");\n const isArray = !!uniformData.name.match(/\\[.*?\\]$/);\n const type = mapType(gl, uniformData.type);\n uniforms[name] = {\n name,\n index: i,\n type,\n size: uniformData.size,\n isArray,\n value: defaultValue(type, uniformData.size)\n };\n }\n return uniforms;\n}\n\nexport { getUniformData };\n//# sourceMappingURL=getUniformData.mjs.map\n","\"use strict\";\nfunction getUboData(program, gl) {\n if (!gl.ACTIVE_UNIFORM_BLOCKS)\n return {};\n const uniformBlocks = {};\n const totalUniformsBlocks = gl.getProgramParameter(program, gl.ACTIVE_UNIFORM_BLOCKS);\n for (let i = 0; i < totalUniformsBlocks; i++) {\n const name = gl.getActiveUniformBlockName(program, i);\n const uniformBlockIndex = gl.getUniformBlockIndex(program, name);\n const size = gl.getActiveUniformBlockParameter(program, i, gl.UNIFORM_BLOCK_DATA_SIZE);\n uniformBlocks[name] = {\n name,\n index: uniformBlockIndex,\n size\n };\n }\n return uniformBlocks;\n}\n\nexport { getUboData };\n//# sourceMappingURL=getUboData.mjs.map\n","import { BufferResource } from '../../shared/buffer/BufferResource.mjs';\nimport { UniformGroup } from '../../shared/shader/UniformGroup.mjs';\nimport { TextureSource } from '../../shared/texture/sources/TextureSource.mjs';\n\n\"use strict\";\nfunction generateShaderSyncCode(shader, shaderSystem) {\n const funcFragments = [];\n const headerFragments = [`\n var g = s.groups;\n var sS = r.shader;\n var p = s.glProgram;\n var ugS = r.uniformGroup;\n var resources;\n `];\n let addedTextreSystem = false;\n let blockIndex = 0;\n let textureCount = 0;\n const programData = shaderSystem._getProgramData(shader.glProgram);\n for (const i in shader.groups) {\n const group = shader.groups[i];\n funcFragments.push(`\n resources = g[${i}].resources;\n `);\n for (const j in group.resources) {\n const resource = group.resources[j];\n if (resource instanceof UniformGroup) {\n if (resource.ubo) {\n funcFragments.push(`\n sS.bindUniformBlock(\n resources[${j}],\n sS._uniformBindMap[${i}[${j}],\n ${blockIndex++}\n );\n `);\n } else {\n funcFragments.push(`\n ugS.updateUniformGroup(resources[${j}], p, sD);\n `);\n }\n } else if (resource instanceof BufferResource) {\n funcFragments.push(`\n sS.bindUniformBlock(\n resources[${j}],\n sS._uniformBindMap[${i}[${j}],\n ${blockIndex++}\n );\n `);\n } else if (resource instanceof TextureSource) {\n const uniformName = shader._uniformBindMap[i][j];\n const uniformData = programData.uniformData[uniformName];\n if (uniformData) {\n if (!addedTextreSystem) {\n addedTextreSystem = true;\n headerFragments.push(`\n var tS = r.texture;\n `);\n }\n shaderSystem._gl.uniform1i(uniformData.location, textureCount);\n funcFragments.push(`\n tS.bind(resources[${j}], ${textureCount});\n `);\n textureCount++;\n }\n }\n }\n }\n const functionSource = [...headerFragments, ...funcFragments].join(\"\\n\");\n return new Function(\"r\", \"s\", \"sD\", functionSource);\n}\n\nexport { generateShaderSyncCode };\n//# sourceMappingURL=GenerateShaderSyncCode.mjs.map\n","\"use strict\";\nconst UNIFORM_TO_SINGLE_SETTERS = {\n f32: `if (cv !== v) {\n cu.value = v;\n gl.uniform1f(location, v);\n }`,\n \"vec2<f32>\": `if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2f(location, v[0], v[1]);\n }`,\n \"vec3<f32>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3f(location, v[0], v[1], v[2]);\n }`,\n \"vec4<f32>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4f(location, v[0], v[1], v[2], v[3]);\n }`,\n i32: `if (cv !== v) {\n cu.value = v;\n gl.uniform1i(location, v);\n }`,\n \"vec2<i32>\": `if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2i(location, v[0], v[1]);\n }`,\n \"vec3<i32>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3i(location, v[0], v[1], v[2]);\n }`,\n \"vec4<i32>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }`,\n u32: `if (cv !== v) {\n cu.value = v;\n gl.uniform1ui(location, v);\n }`,\n \"vec2<u32>\": `if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2ui(location, v[0], v[1]);\n }`,\n \"vec3<u32>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3ui(location, v[0], v[1], v[2]);\n }`,\n \"vec4<u32>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4ui(location, v[0], v[1], v[2], v[3]);\n }`,\n bool: `if (cv !== v) {\n cu.value = v;\n gl.uniform1i(location, v);\n }`,\n \"vec2<bool>\": `if (cv[0] !== v[0] || cv[1] !== v[1]) {\n cv[0] = v[0];\n cv[1] = v[1];\n gl.uniform2i(location, v[0], v[1]);\n }`,\n \"vec3<bool>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n gl.uniform3i(location, v[0], v[1], v[2]);\n }`,\n \"vec4<bool>\": `if (cv[0] !== v[0] || cv[1] !== v[1] || cv[2] !== v[2] || cv[3] !== v[3]) {\n cv[0] = v[0];\n cv[1] = v[1];\n cv[2] = v[2];\n cv[3] = v[3];\n gl.uniform4i(location, v[0], v[1], v[2], v[3]);\n }`,\n \"mat2x2<f32>\": `gl.uniformMatrix2fv(location, false, v);`,\n \"mat3x3<f32>\": `gl.uniformMatrix3fv(location, false, v);`,\n \"mat4x4<f32>\": `gl.uniformMatrix4fv(location, false, v);`\n};\nconst UNIFORM_TO_ARRAY_SETTERS = {\n f32: `gl.uniform1fv(location, v);`,\n \"vec2<f32>\": `gl.uniform2fv(location, v);`,\n \"vec3<f32>\": `gl.uniform3fv(location, v);`,\n \"vec4<f32>\": `gl.uniform4fv(location, v);`,\n \"mat2x2<f32>\": `gl.uniformMatrix2fv(location, false, v);`,\n \"mat3x3<f32>\": `gl.uniformMatrix3fv(location, false, v);`,\n \"mat4x4<f32>\": `gl.uniformMatrix4fv(location, false, v);`,\n i32: `gl.uniform1iv(location, v);`,\n \"vec2<i32>\": `gl.uniform2iv(location, v);`,\n \"vec3<i32>\": `gl.uniform3iv(location, v);`,\n \"vec4<i32>\": `gl.uniform4iv(location, v);`,\n u32: `gl.uniform1iv(location, v);`,\n \"vec2<u32>\": `gl.uniform2iv(location, v);`,\n \"vec3<u32>\": `gl.uniform3iv(location, v);`,\n \"vec4<u32>\": `gl.uniform4iv(location, v);`,\n bool: `gl.uniform1iv(location, v);`,\n \"vec2<bool>\": `gl.uniform2iv(location, v);`,\n \"vec3<bool>\": `gl.uniform3iv(location, v);`,\n \"vec4<bool>\": `gl.uniform4iv(location, v);`\n};\n\nexport { UNIFORM_TO_ARRAY_SETTERS, UNIFORM_TO_SINGLE_SETTERS };\n//# sourceMappingURL=generateUniformsSyncTypes.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { generateUniformsSync } from './utils/generateUniformsSync.mjs';\n\n\"use strict\";\nclass GlUniformGroupSystem {\n /** @param renderer - The renderer this System works for. */\n constructor(renderer) {\n /** Cache to holds the generated functions. Stored against UniformObjects unique signature. */\n this._cache = {};\n this._uniformGroupSyncHash = {};\n this._renderer = renderer;\n this.gl = null;\n this._cache = {};\n }\n contextChange(gl) {\n this.gl = gl;\n }\n /**\n * Uploads the uniforms values to the currently bound shader.\n * @param group - the uniforms values that be applied to the current shader\n * @param program\n * @param syncData\n * @param syncData.textureCount\n */\n updateUniformGroup(group, program, syncData) {\n const programData = this._renderer.shader._getProgramData(program);\n if (!group.isStatic || group._dirtyId !== programData.uniformDirtyGroups[group.uid]) {\n programData.uniformDirtyGroups[group.uid] = group._dirtyId;\n const syncFunc = this._getUniformSyncFunction(group, program);\n syncFunc(programData.uniformData, group.uniforms, this._renderer, syncData);\n }\n }\n /**\n * Overrideable by the pixi.js/unsafe-eval package to use static syncUniforms instead.\n * @param group\n * @param program\n */\n _getUniformSyncFunction(group, program) {\n return this._uniformGroupSyncHash[group._signature]?.[program._key] || this._createUniformSyncFunction(group, program);\n }\n _createUniformSyncFunction(group, program) {\n const uniformGroupSyncHash = this._uniformGroupSyncHash[group._signature] || (this._uniformGroupSyncHash[group._signature] = {});\n const id = this._getSignature(group, program._uniformData, \"u\");\n if (!this._cache[id]) {\n this._cache[id] = this._generateUniformsSync(group, program._uniformData);\n }\n uniformGroupSyncHash[program._key] = this._cache[id];\n return uniformGroupSyncHash[program._key];\n }\n _generateUniformsSync(group, uniformData) {\n return generateUniformsSync(group, uniformData);\n }\n /**\n * Takes a uniform group and data and generates a unique signature for them.\n * @param group - The uniform group to get signature of\n * @param group.uniforms\n * @param uniformData - Uniform information generated by the shader\n * @param preFix\n * @returns Unique signature of the uniform group\n */\n _getSignature(group, uniformData, preFix) {\n const uniforms = group.uniforms;\n const strings = [`${preFix}-`];\n for (const i in uniforms) {\n strings.push(i);\n if (uniformData[i]) {\n strings.push(uniformData[i].type);\n }\n }\n return strings.join(\"-\");\n }\n /** Destroys this System and removes all its textures. */\n destroy() {\n this._renderer = null;\n this._cache = null;\n }\n}\n/** @ignore */\nGlUniformGroupSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"uniformGroup\"\n};\n\nexport { GlUniformGroupSystem };\n//# sourceMappingURL=GlUniformGroupSystem.mjs.map\n","import { BufferResource } from '../../../shared/buffer/BufferResource.mjs';\nimport { UniformGroup } from '../../../shared/shader/UniformGroup.mjs';\nimport { uniformParsers } from '../../../shared/shader/utils/uniformParsers.mjs';\nimport { UNIFORM_TO_SINGLE_SETTERS, UNIFORM_TO_ARRAY_SETTERS } from './generateUniformsSyncTypes.mjs';\n\n\"use strict\";\nfunction generateUniformsSync(group, uniformData) {\n const funcFragments = [`\n var v = null;\n var cv = null;\n var cu = null;\n var t = 0;\n var gl = renderer.gl;\n var name = null;\n `];\n for (const i in group.uniforms) {\n if (!uniformData[i]) {\n if (group.uniforms[i] instanceof UniformGroup) {\n if (group.uniforms[i].ubo) {\n funcFragments.push(`\n renderer.shader.bindUniformBlock(uv.${i}, \"${i}\");\n `);\n } else {\n funcFragments.push(`\n renderer.shader.updateUniformGroup(uv.${i});\n `);\n }\n } else if (group.uniforms[i] instanceof BufferResource) {\n funcFragments.push(`\n renderer.shader.bindBufferResource(uv.${i}, \"${i}\");\n `);\n }\n continue;\n }\n const uniform = group.uniformStructures[i];\n let parsed = false;\n for (let j = 0; j < uniformParsers.length; j++) {\n const parser = uniformParsers[j];\n if (uniform.type === parser.type && parser.test(uniform)) {\n funcFragments.push(`name = \"${i}\";`, uniformParsers[j].uniform);\n parsed = true;\n break;\n }\n }\n if (!parsed) {\n const templateType = uniform.size === 1 ? UNIFORM_TO_SINGLE_SETTERS : UNIFORM_TO_ARRAY_SETTERS;\n const template = templateType[uniform.type].replace(\"location\", `ud[\"${i}\"].location`);\n funcFragments.push(`\n cu = ud[\"${i}\"];\n cv = cu.value;\n v = uv[\"${i}\"];\n ${template};`);\n }\n }\n return new Function(\"ud\", \"uv\", \"renderer\", \"syncData\", funcFragments.join(\"\\n\"));\n}\n\nexport { generateUniformsSync };\n//# sourceMappingURL=generateUniformsSync.mjs.map\n","import { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { State } from '../../shared/state/State.mjs';\nimport { mapWebGLBlendModesToPixi } from './mapWebGLBlendModesToPixi.mjs';\n\n\"use strict\";\nconst BLEND = 0;\nconst OFFSET = 1;\nconst CULLING = 2;\nconst DEPTH_TEST = 3;\nconst WINDING = 4;\nconst DEPTH_MASK = 5;\nconst _GlStateSystem = class _GlStateSystem {\n constructor() {\n this.gl = null;\n this.stateId = 0;\n this.polygonOffset = 0;\n this.blendMode = \"none\";\n this._blendEq = false;\n this.map = [];\n this.map[BLEND] = this.setBlend;\n this.map[OFFSET] = this.setOffset;\n this.map[CULLING] = this.setCullFace;\n this.map[DEPTH_TEST] = this.setDepthTest;\n this.map[WINDING] = this.setFrontFace;\n this.map[DEPTH_MASK] = this.setDepthMask;\n this.checks = [];\n this.defaultState = State.for2d();\n }\n contextChange(gl) {\n this.gl = gl;\n this.blendModesMap = mapWebGLBlendModesToPixi(gl);\n this.reset();\n }\n /**\n * Sets the current state\n * @param {*} state - The state to set.\n */\n set(state) {\n state = state || this.defaultState;\n if (this.stateId !== state.data) {\n let diff = this.stateId ^ state.data;\n let i = 0;\n while (diff) {\n if (diff & 1) {\n this.map[i].call(this, !!(state.data & 1 << i));\n }\n diff = diff >> 1;\n i++;\n }\n this.stateId = state.data;\n }\n for (let i = 0; i < this.checks.length; i++) {\n this.checks[i](this, state);\n }\n }\n /**\n * Sets the state, when previous state is unknown.\n * @param {*} state - The state to set\n */\n forceState(state) {\n state = state || this.defaultState;\n for (let i = 0; i < this.map.length; i++) {\n this.map[i].call(this, !!(state.data & 1 << i));\n }\n for (let i = 0; i < this.checks.length; i++) {\n this.checks[i](this, state);\n }\n this.stateId = state.data;\n }\n /**\n * Sets whether to enable or disable blending.\n * @param value - Turn on or off WebGl blending.\n */\n setBlend(value) {\n this._updateCheck(_GlStateSystem._checkBlendMode, value);\n this.gl[value ? \"enable\" : \"disable\"](this.gl.BLEND);\n }\n /**\n * Sets whether to enable or disable polygon offset fill.\n * @param value - Turn on or off webgl polygon offset testing.\n */\n setOffset(value) {\n this._updateCheck(_GlStateSystem._checkPolygonOffset, value);\n this.gl[value ? \"enable\" : \"disable\"](this.gl.POLYGON_OFFSET_FILL);\n }\n /**\n * Sets whether to enable or disable depth test.\n * @param value - Turn on or off webgl depth testing.\n */\n setDepthTest(value) {\n this.gl[value ? \"enable\" : \"disable\"](this.gl.DEPTH_TEST);\n }\n /**\n * Sets whether to enable or disable depth mask.\n * @param value - Turn on or off webgl depth mask.\n */\n setDepthMask(value) {\n this.gl.depthMask(value);\n }\n /**\n * Sets whether to enable or disable cull face.\n * @param {boolean} value - Turn on or off webgl cull face.\n */\n setCullFace(value) {\n this.gl[value ? \"enable\" : \"disable\"](this.gl.CULL_FACE);\n }\n /**\n * Sets the gl front face.\n * @param {boolean} value - true is clockwise and false is counter-clockwise\n */\n setFrontFace(value) {\n this.gl.frontFace(this.gl[value ? \"CW\" : \"CCW\"]);\n }\n /**\n * Sets the blend mode.\n * @param {number} value - The blend mode to set to.\n */\n setBlendMode(value) {\n if (!this.blendModesMap[value]) {\n value = \"normal\";\n }\n if (value === this.blendMode) {\n return;\n }\n this.blendMode = value;\n const mode = this.blendModesMap[value];\n const gl = this.gl;\n if (mode.length === 2) {\n gl.blendFunc(mode[0], mode[1]);\n } else {\n gl.blendFuncSeparate(mode[0], mode[1], mode[2], mode[3]);\n }\n if (mode.length === 6) {\n this._blendEq = true;\n gl.blendEquationSeparate(mode[4], mode[5]);\n } else if (this._blendEq) {\n this._blendEq = false;\n gl.blendEquationSeparate(gl.FUNC_ADD, gl.FUNC_ADD);\n }\n }\n /**\n * Sets the polygon offset.\n * @param {number} value - the polygon offset\n * @param {number} scale - the polygon offset scale\n */\n setPolygonOffset(value, scale) {\n this.gl.polygonOffset(value, scale);\n }\n // used\n /** Resets all the logic and disables the VAOs. */\n reset() {\n this.gl.pixelStorei(this.gl.UNPACK_FLIP_Y_WEBGL, false);\n this.forceState(this.defaultState);\n this._blendEq = true;\n this.blendMode = \"\";\n this.setBlendMode(\"normal\");\n }\n /**\n * Checks to see which updates should be checked based on which settings have been activated.\n *\n * For example, if blend is enabled then we should check the blend modes each time the state is changed\n * or if polygon fill is activated then we need to check if the polygon offset changes.\n * The idea is that we only check what we have too.\n * @param func - the checking function to add or remove\n * @param value - should the check function be added or removed.\n */\n _updateCheck(func, value) {\n const index = this.checks.indexOf(func);\n if (value && index === -1) {\n this.checks.push(func);\n } else if (!value && index !== -1) {\n this.checks.splice(index, 1);\n }\n }\n /**\n * A private little wrapper function that we call to check the blend mode.\n * @param system - the System to perform the state check on\n * @param state - the state that the blendMode will pulled from\n */\n static _checkBlendMode(system, state) {\n system.setBlendMode(state.blendMode);\n }\n /**\n * A private little wrapper function that we call to check the polygon offset.\n * @param system - the System to perform the state check on\n * @param state - the state that the blendMode will pulled from\n */\n static _checkPolygonOffset(system, state) {\n system.setPolygonOffset(1, state.polygonOffset);\n }\n /**\n * @ignore\n */\n destroy() {\n this.gl = null;\n this.checks.length = 0;\n }\n};\n/** @ignore */\n_GlStateSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"state\"\n};\nlet GlStateSystem = _GlStateSystem;\n\nexport { GlStateSystem };\n//# sourceMappingURL=GlStateSystem.mjs.map\n","\"use strict\";\nfunction mapWebGLBlendModesToPixi(gl) {\n const blendMap = {};\n blendMap.normal = [gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.add = [gl.ONE, gl.ONE];\n blendMap.multiply = [gl.DST_COLOR, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.screen = [gl.ONE, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.none = [0, 0];\n blendMap[\"normal-npm\"] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_ALPHA, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap[\"add-npm\"] = [gl.SRC_ALPHA, gl.ONE, gl.ONE, gl.ONE];\n blendMap[\"screen-npm\"] = [gl.SRC_ALPHA, gl.ONE_MINUS_SRC_COLOR, gl.ONE, gl.ONE_MINUS_SRC_ALPHA];\n blendMap.erase = [gl.ZERO, gl.ONE_MINUS_SRC_ALPHA];\n return blendMap;\n}\n\nexport { mapWebGLBlendModesToPixi };\n//# sourceMappingURL=mapWebGLBlendModesToPixi.mjs.map\n","import { GL_TARGETS, GL_TYPES, GL_FORMATS } from './const.mjs';\n\n\"use strict\";\nclass GlTexture {\n constructor(texture) {\n this.target = GL_TARGETS.TEXTURE_2D;\n this.texture = texture;\n this.width = -1;\n this.height = -1;\n this.type = GL_TYPES.UNSIGNED_BYTE;\n this.internalFormat = GL_FORMATS.RGBA;\n this.format = GL_FORMATS.RGBA;\n this.samplerType = 0;\n }\n}\n\nexport { GlTexture };\n//# sourceMappingURL=GlTexture.mjs.map\n","\"use strict\";\nconst glUploadBufferImageResource = {\n id: \"image\",\n upload(source, glTexture, gl) {\n if (glTexture.width === source.width || glTexture.height === source.height) {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n source.width,\n source.height,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n }\n glTexture.width = source.width;\n glTexture.height = source.height;\n }\n};\n\nexport { glUploadBufferImageResource };\n//# sourceMappingURL=glUploadBufferImageResource.mjs.map\n","\"use strict\";\nconst compressedFormatMap = {\n \"bc1-rgba-unorm\": true,\n \"bc1-rgba-unorm-srgb\": true,\n \"bc2-rgba-unorm\": true,\n \"bc2-rgba-unorm-srgb\": true,\n \"bc3-rgba-unorm\": true,\n \"bc3-rgba-unorm-srgb\": true,\n \"bc4-r-unorm\": true,\n \"bc4-r-snorm\": true,\n \"bc5-rg-unorm\": true,\n \"bc5-rg-snorm\": true,\n \"bc6h-rgb-ufloat\": true,\n \"bc6h-rgb-float\": true,\n \"bc7-rgba-unorm\": true,\n \"bc7-rgba-unorm-srgb\": true,\n // ETC2 compressed formats usable if \"texture-compression-etc2\" is both\n // supported by the device/user agent and enabled in requestDevice.\n \"etc2-rgb8unorm\": true,\n \"etc2-rgb8unorm-srgb\": true,\n \"etc2-rgb8a1unorm\": true,\n \"etc2-rgb8a1unorm-srgb\": true,\n \"etc2-rgba8unorm\": true,\n \"etc2-rgba8unorm-srgb\": true,\n \"eac-r11unorm\": true,\n \"eac-r11snorm\": true,\n \"eac-rg11unorm\": true,\n \"eac-rg11snorm\": true,\n // ASTC compressed formats usable if \"texture-compression-astc\" is both\n // supported by the device/user agent and enabled in requestDevice.\n \"astc-4x4-unorm\": true,\n \"astc-4x4-unorm-srgb\": true,\n \"astc-5x4-unorm\": true,\n \"astc-5x4-unorm-srgb\": true,\n \"astc-5x5-unorm\": true,\n \"astc-5x5-unorm-srgb\": true,\n \"astc-6x5-unorm\": true,\n \"astc-6x5-unorm-srgb\": true,\n \"astc-6x6-unorm\": true,\n \"astc-6x6-unorm-srgb\": true,\n \"astc-8x5-unorm\": true,\n \"astc-8x5-unorm-srgb\": true,\n \"astc-8x6-unorm\": true,\n \"astc-8x6-unorm-srgb\": true,\n \"astc-8x8-unorm\": true,\n \"astc-8x8-unorm-srgb\": true,\n \"astc-10x5-unorm\": true,\n \"astc-10x5-unorm-srgb\": true,\n \"astc-10x6-unorm\": true,\n \"astc-10x6-unorm-srgb\": true,\n \"astc-10x8-unorm\": true,\n \"astc-10x8-unorm-srgb\": true,\n \"astc-10x10-unorm\": true,\n \"astc-10x10-unorm-srgb\": true,\n \"astc-12x10-unorm\": true,\n \"astc-12x10-unorm-srgb\": true,\n \"astc-12x12-unorm\": true,\n \"astc-12x12-unorm-srgb\": true\n};\nconst glUploadCompressedTextureResource = {\n id: \"compressed\",\n upload(source, glTexture, gl) {\n gl.pixelStorei(gl.UNPACK_ALIGNMENT, 4);\n let mipWidth = source.pixelWidth;\n let mipHeight = source.pixelHeight;\n const compressed = !!compressedFormatMap[source.format];\n for (let i = 0; i < source.resource.length; i++) {\n const levelBuffer = source.resource[i];\n if (compressed) {\n gl.compressedTexImage2D(\n gl.TEXTURE_2D,\n i,\n glTexture.internalFormat,\n mipWidth,\n mipHeight,\n 0,\n levelBuffer\n );\n } else {\n gl.texImage2D(\n gl.TEXTURE_2D,\n i,\n glTexture.internalFormat,\n mipWidth,\n mipHeight,\n 0,\n glTexture.format,\n glTexture.type,\n levelBuffer\n );\n }\n mipWidth = Math.max(mipWidth >> 1, 1);\n mipHeight = Math.max(mipHeight >> 1, 1);\n }\n }\n};\n\nexport { glUploadCompressedTextureResource };\n//# sourceMappingURL=glUploadCompressedTextureResource.mjs.map\n","\"use strict\";\nconst glUploadImageResource = {\n id: \"image\",\n upload(source, glTexture, gl, webGLVersion) {\n const premultipliedAlpha = source.alphaMode === \"premultiply-alpha-on-upload\";\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, premultipliedAlpha);\n const glWidth = glTexture.width;\n const glHeight = glTexture.height;\n const textureWidth = source.pixelWidth;\n const textureHeight = source.pixelHeight;\n const resourceWidth = source.resourceWidth;\n const resourceHeight = source.resourceHeight;\n if (resourceWidth < textureWidth || resourceHeight < textureHeight) {\n if (glWidth !== textureWidth || glHeight !== textureHeight) {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n textureWidth,\n textureHeight,\n 0,\n glTexture.format,\n glTexture.type,\n null\n );\n }\n if (webGLVersion === 2) {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n resourceWidth,\n resourceHeight,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n }\n } else if (glWidth === textureWidth || glHeight === textureHeight) {\n gl.texSubImage2D(\n gl.TEXTURE_2D,\n 0,\n 0,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else if (webGLVersion === 2) {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n textureWidth,\n textureHeight,\n 0,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n } else {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n glTexture.format,\n glTexture.type,\n source.resource\n );\n }\n glTexture.width = textureWidth;\n glTexture.height = textureHeight;\n }\n};\n\nexport { glUploadImageResource };\n//# sourceMappingURL=glUploadImageResource.mjs.map\n","import { glUploadImageResource } from './glUploadImageResource.mjs';\n\n\"use strict\";\nconst glUploadVideoResource = {\n id: \"video\",\n upload(source, glTexture, gl, webGLVersion) {\n if (!source.isValid) {\n gl.texImage2D(\n glTexture.target,\n 0,\n glTexture.internalFormat,\n 1,\n 1,\n 0,\n glTexture.format,\n glTexture.type,\n null\n );\n return;\n }\n glUploadImageResource.upload(source, glTexture, gl, webGLVersion);\n }\n};\n\nexport { glUploadVideoResource };\n//# sourceMappingURL=glUploadVideoResource.mjs.map\n","\"use strict\";\nconst scaleModeToGlFilter = {\n linear: 9729,\n nearest: 9728\n};\nconst mipmapScaleModeToGlFilter = {\n linear: {\n linear: 9987,\n nearest: 9985\n },\n nearest: {\n linear: 9986,\n nearest: 9984\n }\n};\nconst wrapModeToGlAddress = {\n \"clamp-to-edge\": 33071,\n repeat: 10497,\n \"mirror-repeat\": 33648\n};\nconst compareModeToGlCompare = {\n never: 512,\n less: 513,\n equal: 514,\n \"less-equal\": 515,\n greater: 516,\n \"not-equal\": 517,\n \"greater-equal\": 518,\n always: 519\n};\n\nexport { compareModeToGlCompare, mipmapScaleModeToGlFilter, scaleModeToGlFilter, wrapModeToGlAddress };\n//# sourceMappingURL=pixiToGlMaps.mjs.map\n","import { wrapModeToGlAddress, scaleModeToGlFilter, mipmapScaleModeToGlFilter, compareModeToGlCompare } from './pixiToGlMaps.mjs';\n\n\"use strict\";\nfunction applyStyleParams(style, gl, mipmaps, anisotropicExt, glFunctionName, firstParam, forceClamp, firstCreation) {\n const castParam = firstParam;\n if (!firstCreation || style.addressModeU !== \"repeat\" || style.addressModeV !== \"repeat\" || style.addressModeW !== \"repeat\") {\n const wrapModeS = wrapModeToGlAddress[forceClamp ? \"clamp-to-edge\" : style.addressModeU];\n const wrapModeT = wrapModeToGlAddress[forceClamp ? \"clamp-to-edge\" : style.addressModeV];\n const wrapModeR = wrapModeToGlAddress[forceClamp ? \"clamp-to-edge\" : style.addressModeW];\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_S, wrapModeS);\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_T, wrapModeT);\n if (gl.TEXTURE_WRAP_R)\n gl[glFunctionName](castParam, gl.TEXTURE_WRAP_R, wrapModeR);\n }\n if (!firstCreation || style.magFilter !== \"linear\") {\n gl[glFunctionName](castParam, gl.TEXTURE_MAG_FILTER, scaleModeToGlFilter[style.magFilter]);\n }\n if (mipmaps) {\n if (!firstCreation || style.mipmapFilter !== \"linear\") {\n const glFilterMode = mipmapScaleModeToGlFilter[style.minFilter][style.mipmapFilter];\n gl[glFunctionName](castParam, gl.TEXTURE_MIN_FILTER, glFilterMode);\n }\n } else {\n gl[glFunctionName](castParam, gl.TEXTURE_MIN_FILTER, scaleModeToGlFilter[style.minFilter]);\n }\n if (anisotropicExt && style.maxAnisotropy > 1) {\n const level = Math.min(style.maxAnisotropy, gl.getParameter(anisotropicExt.MAX_TEXTURE_MAX_ANISOTROPY_EXT));\n gl[glFunctionName](castParam, anisotropicExt.TEXTURE_MAX_ANISOTROPY_EXT, level);\n }\n if (style.compare) {\n gl[glFunctionName](castParam, gl.TEXTURE_COMPARE_FUNC, compareModeToGlCompare[style.compare]);\n }\n}\n\nexport { applyStyleParams };\n//# sourceMappingURL=applyStyleParams.mjs.map\n","import { DOMAdapter } from '../../../../environment/adapter.mjs';\nimport { ExtensionType } from '../../../../extensions/Extensions.mjs';\nimport { Texture } from '../../shared/texture/Texture.mjs';\nimport { GlTexture } from './GlTexture.mjs';\nimport { glUploadBufferImageResource } from './uploaders/glUploadBufferImageResource.mjs';\nimport { glUploadCompressedTextureResource } from './uploaders/glUploadCompressedTextureResource.mjs';\nimport { glUploadImageResource } from './uploaders/glUploadImageResource.mjs';\nimport { glUploadVideoResource } from './uploaders/glUploadVideoResource.mjs';\nimport { applyStyleParams } from './utils/applyStyleParams.mjs';\nimport { mapFormatToGlFormat } from './utils/mapFormatToGlFormat.mjs';\nimport { mapFormatToGlInternalFormat } from './utils/mapFormatToGlInternalFormat.mjs';\nimport { mapFormatToGlType } from './utils/mapFormatToGlType.mjs';\nimport './utils/unpremultiplyAlpha.mjs';\n\n\"use strict\";\nconst BYTES_PER_PIXEL = 4;\nclass GlTextureSystem {\n constructor(renderer) {\n this.managedTextures = [];\n this._glTextures = /* @__PURE__ */ Object.create(null);\n this._glSamplers = /* @__PURE__ */ Object.create(null);\n this._boundTextures = [];\n this._activeTextureLocation = -1;\n this._boundSamplers = /* @__PURE__ */ Object.create(null);\n this._uploads = {\n image: glUploadImageResource,\n buffer: glUploadBufferImageResource,\n video: glUploadVideoResource,\n compressed: glUploadCompressedTextureResource\n };\n // TODO - separate samplers will be a cool thing to add, but not right now!\n this._useSeparateSamplers = false;\n this._renderer = renderer;\n }\n contextChange(gl) {\n this._gl = gl;\n if (!this._mapFormatToInternalFormat) {\n this._mapFormatToInternalFormat = mapFormatToGlInternalFormat(gl, this._renderer.context.extensions);\n this._mapFormatToType = mapFormatToGlType(gl);\n this._mapFormatToFormat = mapFormatToGlFormat(gl);\n }\n this._glTextures = /* @__PURE__ */ Object.create(null);\n this._glSamplers = /* @__PURE__ */ Object.create(null);\n this._boundSamplers = /* @__PURE__ */ Object.create(null);\n for (let i = 0; i < 16; i++) {\n this.bind(Texture.EMPTY, i);\n }\n }\n initSource(source) {\n this.bind(source);\n }\n bind(texture, location = 0) {\n const source = texture.source;\n if (texture) {\n this.bindSource(source, location);\n if (this._useSeparateSamplers) {\n this._bindSampler(source.style, location);\n }\n } else {\n this.bindSource(null, location);\n if (this._useSeparateSamplers) {\n this._bindSampler(null, location);\n }\n }\n }\n bindSource(source, location = 0) {\n const gl = this._gl;\n source._touched = this._renderer.textureGC.count;\n if (this._boundTextures[location] !== source) {\n this._boundTextures[location] = source;\n this._activateLocation(location);\n source = source || Texture.EMPTY.source;\n const glTexture = this.getGlSource(source);\n gl.bindTexture(glTexture.target, glTexture.texture);\n }\n }\n _bindSampler(style, location = 0) {\n const gl = this._gl;\n if (!style) {\n this._boundSamplers[location] = null;\n gl.bindSampler(location, null);\n return;\n }\n const sampler = this._getGlSampler(style);\n if (this._boundSamplers[location] !== sampler) {\n this._boundSamplers[location] = sampler;\n gl.bindSampler(location, sampler);\n }\n }\n unbind(texture) {\n const source = texture.source;\n const boundTextures = this._boundTextures;\n const gl = this._gl;\n for (let i = 0; i < boundTextures.length; i++) {\n if (boundTextures[i] === source) {\n this._activateLocation(i);\n const glTexture = this.getGlSource(source);\n gl.bindTexture(glTexture.target, null);\n boundTextures[i] = null;\n }\n }\n }\n _activateLocation(location) {\n if (this._activeTextureLocation !== location) {\n this._activeTextureLocation = location;\n this._gl.activeTexture(this._gl.TEXTURE0 + location);\n }\n }\n _initSource(source) {\n const gl = this._gl;\n const glTexture = new GlTexture(gl.createTexture());\n glTexture.type = this._mapFormatToType[source.format];\n glTexture.internalFormat = this._mapFormatToInternalFormat[source.format];\n glTexture.format = this._mapFormatToFormat[source.format];\n if (source.autoGenerateMipmaps && (this._renderer.context.supports.nonPowOf2mipmaps || source.isPowerOfTwo)) {\n const biggestDimension = Math.max(source.width, source.height);\n source.mipLevelCount = Math.floor(Math.log2(biggestDimension)) + 1;\n }\n this._glTextures[source.uid] = glTexture;\n if (!this.managedTextures.includes(source)) {\n source.on(\"update\", this.onSourceUpdate, this);\n source.on(\"resize\", this.onSourceUpdate, this);\n source.on(\"styleChange\", this.onStyleChange, this);\n source.on(\"destroy\", this.onSourceDestroy, this);\n source.on(\"unload\", this.onSourceUnload, this);\n source.on(\"updateMipmaps\", this.onUpdateMipmaps, this);\n this.managedTextures.push(source);\n }\n this.onSourceUpdate(source);\n this.updateStyle(source, false);\n return glTexture;\n }\n onStyleChange(source) {\n this.updateStyle(source, false);\n }\n updateStyle(source, firstCreation) {\n const gl = this._gl;\n const glTexture = this.getGlSource(source);\n gl.bindTexture(gl.TEXTURE_2D, glTexture.texture);\n this._boundTextures[this._activeTextureLocation] = source;\n applyStyleParams(\n source.style,\n gl,\n source.mipLevelCount > 1,\n this._renderer.context.extensions.anisotropicFiltering,\n \"texParameteri\",\n gl.TEXTURE_2D,\n // will force a clamp to edge if the texture is not a power of two\n !this._renderer.context.supports.nonPowOf2wrapping && !source.isPowerOfTwo,\n firstCreation\n );\n }\n onSourceUnload(source) {\n const glTexture = this._glTextures[source.uid];\n if (!glTexture)\n return;\n this.unbind(source);\n this._glTextures[source.uid] = null;\n this._gl.deleteTexture(glTexture.texture);\n }\n onSourceUpdate(source) {\n const gl = this._gl;\n const glTexture = this.getGlSource(source);\n gl.bindTexture(gl.TEXTURE_2D, glTexture.texture);\n this._boundTextures[this._activeTextureLocation] = source;\n if (this._uploads[source.uploadMethodId]) {\n this._uploads[source.uploadMethodId].upload(source, glTexture, gl, this._renderer.context.webGLVersion);\n } else {\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, source.pixelWidth, source.pixelHeight, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n }\n if (source.autoGenerateMipmaps && source.mipLevelCount > 1) {\n this.onUpdateMipmaps(source, false);\n }\n }\n onUpdateMipmaps(source, bind = true) {\n if (bind)\n this.bindSource(source, 0);\n const glTexture = this.getGlSource(source);\n this._gl.generateMipmap(glTexture.target);\n }\n onSourceDestroy(source) {\n source.off(\"destroy\", this.onSourceDestroy, this);\n source.off(\"update\", this.onSourceUpdate, this);\n source.off(\"resize\", this.onSourceUpdate, this);\n source.off(\"unload\", this.onSourceUnload, this);\n source.off(\"styleChange\", this.onStyleChange, this);\n source.off(\"updateMipmaps\", this.onUpdateMipmaps, this);\n this.managedTextures.splice(this.managedTextures.indexOf(source), 1);\n this.onSourceUnload(source);\n }\n _initSampler(style) {\n const gl = this._gl;\n const glSampler = this._gl.createSampler();\n this._glSamplers[style._resourceId] = glSampler;\n applyStyleParams(\n style,\n gl,\n this._boundTextures[this._activeTextureLocation].mipLevelCount > 1,\n this._renderer.context.extensions.anisotropicFiltering,\n \"samplerParameteri\",\n glSampler,\n false,\n true\n );\n return this._glSamplers[style._resourceId];\n }\n _getGlSampler(sampler) {\n return this._glSamplers[sampler._resourceId] || this._initSampler(sampler);\n }\n getGlSource(source) {\n return this._glTextures[source.uid] || this._initSource(source);\n }\n generateCanvas(texture) {\n const { pixels, width, height } = this.getPixels(texture);\n const canvas = DOMAdapter.get().createCanvas();\n canvas.width = width;\n canvas.height = height;\n const ctx = canvas.getContext(\"2d\");\n if (ctx) {\n const imageData = ctx.createImageData(width, height);\n imageData.data.set(pixels);\n ctx.putImageData(imageData, 0, 0);\n }\n return canvas;\n }\n getPixels(texture) {\n const resolution = texture.source.resolution;\n const frame = texture.frame;\n const width = Math.max(Math.round(frame.width * resolution), 1);\n const height = Math.max(Math.round(frame.height * resolution), 1);\n const pixels = new Uint8Array(BYTES_PER_PIXEL * width * height);\n const renderer = this._renderer;\n const renderTarget = renderer.renderTarget.getRenderTarget(texture);\n const glRenterTarget = renderer.renderTarget.getGpuRenderTarget(renderTarget);\n const gl = renderer.gl;\n gl.bindFramebuffer(gl.FRAMEBUFFER, glRenterTarget.resolveTargetFramebuffer);\n gl.readPixels(\n Math.round(frame.x * resolution),\n Math.round(frame.y * resolution),\n width,\n height,\n gl.RGBA,\n gl.UNSIGNED_BYTE,\n pixels\n );\n if (false) {\n unpremultiplyAlpha(pixels);\n }\n return { pixels: new Uint8ClampedArray(pixels.buffer), width, height };\n }\n destroy() {\n this.managedTextures.slice().forEach((source) => this.onSourceDestroy(source));\n this.managedTextures = null;\n this._renderer = null;\n }\n}\n/** @ignore */\nGlTextureSystem.extension = {\n type: [\n ExtensionType.WebGLSystem\n ],\n name: \"texture\"\n};\n\nexport { GlTextureSystem };\n//# sourceMappingURL=GlTextureSystem.mjs.map\n","import { DOMAdapter } from '../../../../../environment/adapter.mjs';\n\n\"use strict\";\nfunction mapFormatToGlInternalFormat(gl, extensions) {\n let srgb = {};\n let bgra8unorm = gl.RGBA;\n if (!(gl instanceof DOMAdapter.get().getWebGLRenderingContext())) {\n srgb = {\n \"rgba8unorm-srgb\": gl.SRGB8_ALPHA8,\n \"bgra8unorm-srgb\": gl.SRGB8_ALPHA8\n };\n bgra8unorm = gl.RGBA8;\n } else if (extensions.srgb) {\n srgb = {\n \"rgba8unorm-srgb\": extensions.srgb.SRGB8_ALPHA8_EXT,\n \"bgra8unorm-srgb\": extensions.srgb.SRGB8_ALPHA8_EXT\n };\n }\n return {\n // 8-bit formats\n r8unorm: gl.R8,\n r8snorm: gl.R8_SNORM,\n r8uint: gl.R8UI,\n r8sint: gl.R8I,\n // 16-bit formats\n r16uint: gl.R16UI,\n r16sint: gl.R16I,\n r16float: gl.R16F,\n rg8unorm: gl.RG8,\n rg8snorm: gl.RG8_SNORM,\n rg8uint: gl.RG8UI,\n rg8sint: gl.RG8I,\n // 32-bit formats\n r32uint: gl.R32UI,\n r32sint: gl.R32I,\n r32float: gl.R32F,\n rg16uint: gl.RG16UI,\n rg16sint: gl.RG16I,\n rg16float: gl.RG16F,\n rgba8unorm: gl.RGBA,\n ...srgb,\n // Packed 32-bit formats\n rgba8snorm: gl.RGBA8_SNORM,\n rgba8uint: gl.RGBA8UI,\n rgba8sint: gl.RGBA8I,\n bgra8unorm,\n rgb9e5ufloat: gl.RGB9_E5,\n rgb10a2unorm: gl.RGB10_A2,\n rg11b10ufloat: gl.R11F_G11F_B10F,\n // 64-bit formats\n rg32uint: gl.RG32UI,\n rg32sint: gl.RG32I,\n rg32float: gl.RG32F,\n rgba16uint: gl.RGBA16UI,\n rgba16sint: gl.RGBA16I,\n rgba16float: gl.RGBA16F,\n // 128-bit formats\n rgba32uint: gl.RGBA32UI,\n rgba32sint: gl.RGBA32I,\n rgba32float: gl.RGBA32F,\n // Depth/stencil formats\n stencil8: gl.STENCIL_INDEX8,\n depth16unorm: gl.DEPTH_COMPONENT16,\n depth24plus: gl.DEPTH_COMPONENT24,\n \"depth24plus-stencil8\": gl.DEPTH24_STENCIL8,\n depth32float: gl.DEPTH_COMPONENT32F,\n \"depth32float-stencil8\": gl.DEPTH32F_STENCIL8,\n // Compressed formats\n ...extensions.s3tc ? {\n \"bc1-rgba-unorm\": extensions.s3tc.COMPRESSED_RGBA_S3TC_DXT1_EXT,\n \"bc2-rgba-unorm\": extensions.s3tc.COMPRESSED_RGBA_S3TC_DXT3_EXT,\n \"bc3-rgba-unorm\": extensions.s3tc.COMPRESSED_RGBA_S3TC_DXT5_EXT\n } : {},\n ...extensions.s3tc_sRGB ? {\n \"bc1-rgba-unorm-srgb\": extensions.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,\n \"bc2-rgba-unorm-srgb\": extensions.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,\n \"bc3-rgba-unorm-srgb\": extensions.s3tc_sRGB.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT\n } : {},\n ...extensions.rgtc ? {\n \"bc4-r-unorm\": extensions.rgtc.COMPRESSED_RED_RGTC1_EXT,\n \"bc4-r-snorm\": extensions.rgtc.COMPRESSED_SIGNED_RED_RGTC1_EXT,\n \"bc5-rg-unorm\": extensions.rgtc.COMPRESSED_RED_GREEN_RGTC2_EXT,\n \"bc5-rg-snorm\": extensions.rgtc.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT\n } : {},\n ...extensions.bptc ? {\n \"bc6h-rgb-float\": extensions.bptc.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,\n \"bc6h-rgb-ufloat\": extensions.bptc.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,\n \"bc7-rgba-unorm\": extensions.bptc.COMPRESSED_RGBA_BPTC_UNORM_EXT,\n \"bc7-rgba-unorm-srgb\": extensions.bptc.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT\n } : {},\n ...extensions.etc ? {\n \"etc2-rgb8unorm\": extensions.etc.COMPRESSED_RGB8_ETC2,\n \"etc2-rgb8unorm-srgb\": extensions.etc.COMPRESSED_SRGB8_ETC2,\n \"etc2-rgb8a1unorm\": extensions.etc.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n \"etc2-rgb8a1unorm-srgb\": extensions.etc.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,\n \"etc2-rgba8unorm\": extensions.etc.COMPRESSED_RGBA8_ETC2_EAC,\n \"etc2-rgba8unorm-srgb\": extensions.etc.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,\n \"eac-r11unorm\": extensions.etc.COMPRESSED_R11_EAC,\n // 'eac-r11snorm'\n \"eac-rg11unorm\": extensions.etc.COMPRESSED_SIGNED_RG11_EAC\n // 'eac-rg11snorm'\n } : {},\n ...extensions.astc ? {\n \"astc-4x4-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_4x4_KHR,\n \"astc-4x4-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,\n \"astc-5x4-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_5x4_KHR,\n \"astc-5x4-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,\n \"astc-5x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_5x5_KHR,\n \"astc-5x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,\n \"astc-6x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_6x5_KHR,\n \"astc-6x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,\n \"astc-6x6-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_6x6_KHR,\n \"astc-6x6-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,\n \"astc-8x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_8x5_KHR,\n \"astc-8x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,\n \"astc-8x6-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_8x6_KHR,\n \"astc-8x6-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,\n \"astc-8x8-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_8x8_KHR,\n \"astc-8x8-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,\n \"astc-10x5-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x5_KHR,\n \"astc-10x5-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,\n \"astc-10x6-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x6_KHR,\n \"astc-10x6-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,\n \"astc-10x8-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x8_KHR,\n \"astc-10x8-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,\n \"astc-10x10-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_10x10_KHR,\n \"astc-10x10-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,\n \"astc-12x10-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_12x10_KHR,\n \"astc-12x10-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,\n \"astc-12x12-unorm\": extensions.astc.COMPRESSED_RGBA_ASTC_12x12_KHR,\n \"astc-12x12-unorm-srgb\": extensions.astc.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR\n } : {}\n };\n}\n\nexport { mapFormatToGlInternalFormat };\n//# sourceMappingURL=mapFormatToGlInternalFormat.mjs.map\n","\"use strict\";\nfunction mapFormatToGlType(gl) {\n return {\n // 8-bit formats\n r8unorm: gl.UNSIGNED_BYTE,\n r8snorm: gl.BYTE,\n r8uint: gl.UNSIGNED_BYTE,\n r8sint: gl.BYTE,\n // 16-bit formats\n r16uint: gl.UNSIGNED_SHORT,\n r16sint: gl.SHORT,\n r16float: gl.HALF_FLOAT,\n rg8unorm: gl.UNSIGNED_BYTE,\n rg8snorm: gl.BYTE,\n rg8uint: gl.UNSIGNED_BYTE,\n rg8sint: gl.BYTE,\n // 32-bit formats\n r32uint: gl.UNSIGNED_INT,\n r32sint: gl.INT,\n r32float: gl.FLOAT,\n rg16uint: gl.UNSIGNED_SHORT,\n rg16sint: gl.SHORT,\n rg16float: gl.HALF_FLOAT,\n rgba8unorm: gl.UNSIGNED_BYTE,\n \"rgba8unorm-srgb\": gl.UNSIGNED_BYTE,\n // Packed 32-bit formats\n rgba8snorm: gl.BYTE,\n rgba8uint: gl.UNSIGNED_BYTE,\n rgba8sint: gl.BYTE,\n bgra8unorm: gl.UNSIGNED_BYTE,\n \"bgra8unorm-srgb\": gl.UNSIGNED_BYTE,\n rgb9e5ufloat: gl.UNSIGNED_INT_5_9_9_9_REV,\n rgb10a2unorm: gl.UNSIGNED_INT_2_10_10_10_REV,\n rg11b10ufloat: gl.UNSIGNED_INT_10F_11F_11F_REV,\n // 64-bit formats\n rg32uint: gl.UNSIGNED_INT,\n rg32sint: gl.INT,\n rg32float: gl.FLOAT,\n rgba16uint: gl.UNSIGNED_SHORT,\n rgba16sint: gl.SHORT,\n rgba16float: gl.HALF_FLOAT,\n // 128-bit formats\n rgba32uint: gl.UNSIGNED_INT,\n rgba32sint: gl.INT,\n rgba32float: gl.FLOAT,\n // Depth/stencil formats\n stencil8: gl.UNSIGNED_BYTE,\n depth16unorm: gl.UNSIGNED_SHORT,\n depth24plus: gl.UNSIGNED_INT,\n \"depth24plus-stencil8\": gl.UNSIGNED_INT_24_8,\n depth32float: gl.FLOAT,\n \"depth32float-stencil8\": gl.FLOAT_32_UNSIGNED_INT_24_8_REV\n };\n}\n\nexport { mapFormatToGlType };\n//# sourceMappingURL=mapFormatToGlType.mjs.map\n","\"use strict\";\nfunction mapFormatToGlFormat(gl) {\n return {\n // 8-bit formats\n r8unorm: gl.RED,\n r8snorm: gl.RED,\n r8uint: gl.RED,\n r8sint: gl.RED,\n // 16-bit formats\n r16uint: gl.RED,\n r16sint: gl.RED,\n r16float: gl.RED,\n rg8unorm: gl.RG,\n rg8snorm: gl.RG,\n rg8uint: gl.RG,\n rg8sint: gl.RG,\n // 32-bit formats\n r32uint: gl.RED,\n r32sint: gl.RED,\n r32float: gl.RED,\n rg16uint: gl.RG,\n rg16sint: gl.RG,\n rg16float: gl.RG,\n rgba8unorm: gl.RGBA,\n \"rgba8unorm-srgb\": gl.RGBA,\n // Packed 32-bit formats\n rgba8snorm: gl.RGBA,\n rgba8uint: gl.RGBA,\n rgba8sint: gl.RGBA,\n bgra8unorm: gl.RGBA,\n \"bgra8unorm-srgb\": gl.RGBA,\n rgb9e5ufloat: gl.RGB,\n rgb10a2unorm: gl.RGBA,\n rg11b10ufloat: gl.RGB,\n // 64-bit formats\n rg32uint: gl.RG,\n rg32sint: gl.RG,\n rg32float: gl.RG,\n rgba16uint: gl.RGBA,\n rgba16sint: gl.RGBA,\n rgba16float: gl.RGBA,\n // 128-bit formats\n rgba32uint: gl.RGBA,\n rgba32sint: gl.RGBA,\n rgba32float: gl.RGBA,\n // Depth/stencil formats\n stencil8: gl.STENCIL_INDEX8,\n depth16unorm: gl.DEPTH_COMPONENT,\n depth24plus: gl.DEPTH_COMPONENT,\n \"depth24plus-stencil8\": gl.DEPTH_STENCIL,\n depth32float: gl.DEPTH_COMPONENT,\n \"depth32float-stencil8\": gl.DEPTH_STENCIL\n };\n}\n\nexport { mapFormatToGlFormat };\n//# sourceMappingURL=mapFormatToGlFormat.mjs.map\n","import { extensions, ExtensionType } from '../../../extensions/Extensions.mjs';\nimport { GlGraphicsAdaptor } from '../../../scene/graphics/gl/GlGraphicsAdaptor.mjs';\nimport { GlMeshAdaptor } from '../../../scene/mesh/gl/GlMeshAdaptor.mjs';\nimport { GlBatchAdaptor } from '../../batcher/gl/GlBatchAdaptor.mjs';\nimport { AbstractRenderer } from '../shared/system/AbstractRenderer.mjs';\nimport { SharedSystems, SharedRenderPipes } from '../shared/system/SharedSystems.mjs';\nimport { RendererType } from '../types.mjs';\nimport { GlBufferSystem } from './buffer/GlBufferSystem.mjs';\nimport { GlContextSystem } from './context/GlContextSystem.mjs';\nimport { GlGeometrySystem } from './geometry/GlGeometrySystem.mjs';\nimport { GlBackBufferSystem } from './GlBackBufferSystem.mjs';\nimport { GlColorMaskSystem } from './GlColorMaskSystem.mjs';\nimport { GlEncoderSystem } from './GlEncoderSystem.mjs';\nimport { GlStencilSystem } from './GlStencilSystem.mjs';\nimport { GlUboSystem } from './GlUboSystem.mjs';\nimport { GlRenderTargetSystem } from './renderTarget/GlRenderTargetSystem.mjs';\nimport { GlShaderSystem } from './shader/GlShaderSystem.mjs';\nimport { GlUniformGroupSystem } from './shader/GlUniformGroupSystem.mjs';\nimport { GlStateSystem } from './state/GlStateSystem.mjs';\nimport { GlTextureSystem } from './texture/GlTextureSystem.mjs';\n\n\"use strict\";\nconst DefaultWebGLSystems = [\n ...SharedSystems,\n GlUboSystem,\n GlBackBufferSystem,\n GlContextSystem,\n GlBufferSystem,\n GlTextureSystem,\n GlRenderTargetSystem,\n GlGeometrySystem,\n GlUniformGroupSystem,\n GlShaderSystem,\n GlEncoderSystem,\n GlStateSystem,\n GlStencilSystem,\n GlColorMaskSystem\n];\nconst DefaultWebGLPipes = [...SharedRenderPipes];\nconst DefaultWebGLAdapters = [GlBatchAdaptor, GlMeshAdaptor, GlGraphicsAdaptor];\nconst systems = [];\nconst renderPipes = [];\nconst renderPipeAdaptors = [];\nextensions.handleByNamedList(ExtensionType.WebGLSystem, systems);\nextensions.handleByNamedList(ExtensionType.WebGLPipes, renderPipes);\nextensions.handleByNamedList(ExtensionType.WebGLPipesAdaptor, renderPipeAdaptors);\nextensions.add(...DefaultWebGLSystems, ...DefaultWebGLPipes, ...DefaultWebGLAdapters);\nclass WebGLRenderer extends AbstractRenderer {\n constructor() {\n const systemConfig = {\n name: \"webgl\",\n type: RendererType.WEBGL,\n systems,\n renderPipes,\n renderPipeAdaptors\n };\n super(systemConfig);\n }\n}\n\nexport { WebGLRenderer };\n//# sourceMappingURL=WebGLRenderer.mjs.map\n","import { MAX_TEXTURES } from '../../../batcher/shared/const.mjs';\nimport { UniformGroup } from '../../shared/shader/UniformGroup.mjs';\n\n\"use strict\";\nconst sampleValues = new Int32Array(MAX_TEXTURES);\nfor (let i = 0; i < MAX_TEXTURES; i++) {\n sampleValues[i] = i;\n}\nconst batchSamplersUniformGroup = new UniformGroup({\n uTextures: { value: sampleValues, type: `i32`, size: MAX_TEXTURES }\n}, { isStatic: true });\n\nexport { batchSamplersUniformGroup };\n//# sourceMappingURL=batchSamplersUniformGroup.mjs.map\n"],"names":["GlGraphicsAdaptor","init","uniforms","uColor","value","Float32Array","type","uTransformMatrix","uRound","glProgram","name","bits","shader","resources","localUniforms","batchSamplers","execute","graphicsPipe","renderable","context","customShader","renderer","geometry","instructions","contextSystem","graphicsContext","getContextRenderData","groups","globalUniforms","bindGroup","state","set","bind","batches","i","instructionSize","batch","size","j","textures","length","texture","draw","start","destroy","extension","GlMeshAdaptor","_shader","uTexture","textureUniforms","uTextureMatrix","meshPipe","mesh","source","uSampler","style","textureMatrix","mapCoord","localUniformsBindGroup","encoder","_geometry","GlBatchAdaptor","constructor","_didUpload","_tempState","batcherPipe","runners","contextChange","add","batchPipe","updateUniformGroup","uniformGroup","blendMode","BUFFER_TYPE2","GL_FORMATS2","GL_TARGETS2","GL_TYPES2","BUFFER_TYPE","GlBuffer","buffer","updateID","byteLength","GlBufferSystem","_gpuBuffers","Object","create","_boundBufferBases","_renderer","_gl","gl","getGlBuffer","uid","createGLBuffer","glBuffer","bindBuffer","bindBufferBase","index","UNIFORM_BUFFER","bindBufferRange","offset","updateBuffer","_updateID","data","bufferSubData","_updateSize","BYTES_PER_ELEMENT","drawType","descriptor","usage","STATIC_DRAW","DYNAMIC_DRAW","bufferData","destroyAll","id","deleteBuffer","onBufferDestroy","contextLost","ARRAY_BUFFER","ELEMENT_ARRAY_BUFFER","createBuffer","on","_GlContextSystem","supports","uint32Indices","uniformBufferObject","vertexArrayObject","srgbTextures","nonPowOf2wrapping","msaa","nonPowOf2mipmaps","extensions","handleContextLost","handleContextRestored","isLost","isContextLost","options","defaultOptions","initFromContext","alpha","background","premultipliedAlpha","antialias","backBuffer","useBackBuffer","createContext","preferWebGLVersion","stencil","preserveDrawingBuffer","powerPreference","webGLVersion","getWebGLRenderingContext","getExtensions","validateContext","emit","element","view","canvas","addEventListener","getContext","Error","common","anisotropicFiltering","getExtension","floatTextureLinear","s3tc","s3tc_sRGB","etc","etc1","pvrtc","atc","astc","bptc","rgtc","loseContext","drawBuffers","depthTexture","uint32ElementIndex","floatTexture","textureHalfFloat","textureHalfFloatLinear","vertexAttribDivisorANGLE","srgb","colorBufferFloat","provokeExt","provokingVertexWEBGL","FIRST_VERTEX_CONVENTION_WEBGL","event","preventDefault","_contextLossForced","setTimeout","restoreContext","removeEventListener","useProgram","forceContextLoss","attributes","getContextAttributes","isWebGl2","GL_FORMATS","GL_TARGETS","GL_TYPES","infoMap","uint8x2","UNSIGNED_BYTE","uint8x4","sint8x2","BYTE","sint8x4","unorm8x2","unorm8x4","snorm8x2","snorm8x4","uint16x2","UNSIGNED_SHORT","uint16x4","sint16x2","SHORT","sint16x4","unorm16x2","unorm16x4","snorm16x2","snorm16x4","float16x2","HALF_FLOAT","float16x4","float32","FLOAT","float32x2","float32x3","float32x4","uint32","UNSIGNED_INT","uint32x2","uint32x3","uint32x4","sint32","INT","sint32x2","sint32x3","sint32x4","topologyToGlMap","GlGeometrySystem","_geometryVaoHash","_activeGeometry","_activeVao","hasVao","hasInstance","nativeVaoExtension","createVertexArray","createVertexArrayOES","bindVertexArray","vao","bindVertexArrayOES","deleteVertexArray","deleteVertexArrayOES","nativeInstancedExtension","drawArraysInstanced","a","b","c","d","drawArraysInstancedANGLE","drawElementsInstanced","e","drawElementsInstancedANGLE","vertexAttribDivisor","program","getVao","updateBuffers","reset","unbind","bufferSystem","buffers","checkCompatibility","geometryAttributes","shaderAttributes","_attributeData","getSignature","attribs","strings","push","location","join","_key","initGeometryVao","_incRefCount","_getProgramData","signature","onGeometryDestroy","vaoObjectHash","activateVao","indexBuffer","lastBuffer","attribute","programAttrib","enableVertexAttribArray","attributeInfo","format","substring","vertexAttribIPointer","stride","vertexAttribPointer","normalised","instance","topology","instanceCount","glTopology","byteSize","glType","drawElements","getSize","drawArrays","bigTriangleGeometry","aPosition","_GlBackBufferSystem","_useBackBufferThisRender","_antialias","_state","bigTriangleProgram","vertex","fragment","_bigTriangleShader","renderStart","renderTarget","getRenderTarget","target","isRoot","renderTarget2","_targetTexture","colorTexture","_getBackBufferTexture","renderEnd","_presentBackBuffer","finishRenderPass","_backBufferTexture","targetSourceTexture","width","height","resolution","_resolution","resize","priority","GlColorMaskSystem","_colorMaskCache","setMask","colorMask","GlEncoderSystem","commandFinished","Promise","resolve","setGeometry","skipSync","_activeProgram","GlStencilSystem","_stencilCache","enabled","stencilReference","stencilMode","_renderTargetStencilState","onRenderTargetChange","_comparisonFuncMapping","always","ALWAYS","never","NEVER","equal","EQUAL","NOTEQUAL","less","LESS","LEQUAL","greater","GREATER","GEQUAL","_stencilOpsMapping","keep","KEEP","zero","ZERO","replace","REPLACE","invert","INVERT","INCR","DECR","INCR_WRAP","DECR_WRAP","_activeRenderTarget","stencilState","setStencilMode","mode","disable","STENCIL_TEST","enable","stencilFunc","stencilBack","compare","stencilOp","passOp","WGSL_TO_STD40_SIZE","f32","createUboElementsSTD40","uniformData","uboElements","map","chunkSize","uboElement","Math","max","lineUpValue","ceil","generateArraySyncSTD40","offsetToAdd","rowSize","elementSize","remainder","createUboSyncFunctionSTD40","GlUboSystem","createUboElements","generateUboSync","GlRenderTarget","msaaRenderBuffer","GlRenderTargetAdaptor","_clearColorCache","_viewPortCache","renderTargetSystem","_renderTargetSystem","copyToTexture","sourceRenderSurfaceTexture","destinationTexture","originSrc","originDest","glRenderTarget","getGpuRenderTarget","bindFramebuffer","FRAMEBUFFER","resolveTargetFramebuffer","copyTexSubImage2D","TEXTURE_2D","x","y","startRenderPass","clear","clearColor","viewport","gpuRenderTarget","viewPortY","pixelHeight","colorTextures","forEach","framebuffer","viewPortCache","depthStencilRenderBuffer","depth","_initStencil","READ_FRAMEBUFFER","blitFramebuffer","COLOR_BUFFER_BIT","NEAREST","initGpuRenderTarget","resource","_initColor","destroyGpuRenderTarget","deleteFramebuffer","deleteRenderbuffer","renderBuffer","_renderTarget","defaultClearColor","clearColorCache","clearColorArray","resizeGpuRenderTarget","_resizeColor","_resizeStencil","createFramebuffer","pixelWidth","bindSource","glTexture","glSource","getGlSource","framebufferTexture2D","COLOR_ATTACHMENT0","viewFramebuffer","_","createRenderbuffer","source2","glInternalFormat","internalFormat","bindRenderbuffer","RENDERBUFFER","renderbufferStorageMultisample","framebufferRenderbuffer","DEPTH_STENCIL_ATTACHMENT","DEPTH24_STENCIL8","renderbufferStorage","DEPTH_STENCIL","GlRenderTargetSystem","adaptor","GlProgramData","uniformGroups","uniformDirtyGroups","uniformBlockBindings","src","createShader","shaderSource","compileShader","booleanArray","array","Array","defaultValue","Int32Array","Uint32Array","GL_TABLE","GL_TO_GLSL_TYPES","FLOAT_VEC2","FLOAT_VEC3","FLOAT_VEC4","INT_VEC2","INT_VEC3","INT_VEC4","UNSIGNED_INT_VEC2","UNSIGNED_INT_VEC3","UNSIGNED_INT_VEC4","BOOL","BOOL_VEC2","BOOL_VEC3","BOOL_VEC4","FLOAT_MAT2","FLOAT_MAT3","FLOAT_MAT4","SAMPLER_2D","INT_SAMPLER_2D","UNSIGNED_INT_SAMPLER_2D","SAMPLER_CUBE","INT_SAMPLER_CUBE","UNSIGNED_INT_SAMPLER_CUBE","SAMPLER_2D_ARRAY","INT_SAMPLER_2D_ARRAY","UNSIGNED_INT_SAMPLER_2D_ARRAY","GLSL_TO_VERTEX_TYPES","float","vec2","vec3","vec4","int","ivec2","ivec3","ivec4","uint","uvec2","uvec3","uvec4","bool","bvec2","bvec3","bvec4","mapType","typeNames","keys","tn","logPrettyShaderError","shaderSrc","getShaderSource","split","line","shaderLog","getShaderInfoLog","splitShader","dedupe","lineNumbers","parseFloat","filter","n","logArgs","number","fragmentSourceToLog","console","error","groupCollapsed","warn","groupEnd","defaultSyncData","textureCount","blockIndex","GlShaderSystem","_programDataHash","_nextIndex","_boundUniformsIdsToIndexHash","_boundIndexToUniformsHash","_shaderSyncFunctions","_maxBindings","MAX_UNIFORM_BUFFER_BINDINGS","getParameter","_setProgram","syncFunction","_generateShaderSync","bindUniformBlock","programData","isBufferResource","_bufferResource","ubo","boundIndex","nextIndex","currentBoundUniformGroup","uniformBlockIndex","_uniformBlockData","uniformBlockBinding","_createProgramData","key","generateProgram","glVertShader","VERTEX_SHADER","glFragShader","FRAGMENT_SHADER","webGLProgram","createProgram","attachShader","transformFeedbackVaryings","names","bufferMode","SEPARATE_ATTRIBS","INTERLEAVED_ATTRIBS","linkProgram","getProgramParameter","LINK_STATUS","vertexShader","fragmentShader","getShaderParameter","COMPILE_STATUS","getProgramInfoLog","extractAttributesFromGlProgram","sortAttributes","totalAttributes","ACTIVE_ATTRIBUTES","attribData","getActiveAttrib","startsWith","sort","bindAttribLocation","getAttribLocation","test","_uniformData","getUniformData","totalUniforms","ACTIVE_UNIFORMS","getActiveUniform","isArray","match","getUboData","ACTIVE_UNIFORM_BLOCKS","uniformBlocks","totalUniformsBlocks","getActiveUniformBlockName","getUniformBlockIndex","getActiveUniformBlockParameter","UNIFORM_BLOCK_DATA_SIZE","deleteShader","getUniformLocation","shaderSystem","generateShaderSyncCode","funcFragments","headerFragments","addedTextreSystem","group","uniformName","_uniformBindMap","uniform1i","Function","UNIFORM_TO_SINGLE_SETTERS","i32","u32","UNIFORM_TO_ARRAY_SETTERS","GlUniformGroupSystem","_cache","_uniformGroupSyncHash","syncData","isStatic","_dirtyId","syncFunc","_getUniformSyncFunction","_signature","_createUniformSyncFunction","uniformGroupSyncHash","_getSignature","_generateUniformsSync","generateUniformsSync","uniform","uniformStructures","parsed","parser","template","templateType","preFix","_GlStateSystem","stateId","polygonOffset","_blendEq","setBlend","setOffset","setCullFace","setDepthTest","setFrontFace","setDepthMask","checks","defaultState","blendModesMap","mapWebGLBlendModesToPixi","blendMap","normal","ONE","ONE_MINUS_SRC_ALPHA","multiply","DST_COLOR","screen","ONE_MINUS_SRC_COLOR","none","SRC_ALPHA","erase","diff","call","forceState","_updateCheck","_checkBlendMode","BLEND","_checkPolygonOffset","POLYGON_OFFSET_FILL","DEPTH_TEST","depthMask","CULL_FACE","frontFace","setBlendMode","blendFunc","blendFuncSeparate","blendEquationSeparate","FUNC_ADD","setPolygonOffset","scale","pixelStorei","UNPACK_FLIP_Y_WEBGL","func","indexOf","splice","system","GlTexture","RGBA","samplerType","glUploadBufferImageResource","upload","texSubImage2D","texImage2D","compressedFormatMap","glUploadCompressedTextureResource","UNPACK_ALIGNMENT","mipWidth","mipHeight","compressed","levelBuffer","compressedTexImage2D","glUploadImageResource","alphaMode","UNPACK_PREMULTIPLY_ALPHA_WEBGL","glWidth","glHeight","textureWidth","textureHeight","resourceWidth","resourceHeight","glUploadVideoResource","isValid","scaleModeToGlFilter","linear","nearest","mipmapScaleModeToGlFilter","wrapModeToGlAddress","repeat","compareModeToGlCompare","applyStyleParams","mipmaps","anisotropicExt","glFunctionName","firstParam","forceClamp","firstCreation","addressModeU","addressModeV","addressModeW","wrapModeS","wrapModeT","wrapModeR","TEXTURE_WRAP_S","TEXTURE_WRAP_T","TEXTURE_WRAP_R","magFilter","TEXTURE_MAG_FILTER","mipmapFilter","glFilterMode","minFilter","TEXTURE_MIN_FILTER","maxAnisotropy","level","min","MAX_TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_MAX_ANISOTROPY_EXT","TEXTURE_COMPARE_FUNC","GlTextureSystem","managedTextures","_glTextures","_glSamplers","_boundTextures","_activeTextureLocation","_boundSamplers","_uploads","image","video","_useSeparateSamplers","_mapFormatToInternalFormat","bgra8unorm","SRGB8_ALPHA8_EXT","SRGB8_ALPHA8","RGBA8","r8unorm","R8","r8snorm","R8_SNORM","r8uint","R8UI","r8sint","R8I","r16uint","R16UI","r16sint","R16I","r16float","R16F","rg8unorm","RG8","rg8snorm","RG8_SNORM","rg8uint","RG8UI","rg8sint","RG8I","r32uint","R32UI","r32sint","R32I","r32float","R32F","rg16uint","RG16UI","rg16sint","RG16I","rg16float","RG16F","rgba8unorm","rgba8snorm","RGBA8_SNORM","rgba8uint","RGBA8UI","rgba8sint","RGBA8I","rgb9e5ufloat","RGB9_E5","rgb10a2unorm","RGB10_A2","rg11b10ufloat","R11F_G11F_B10F","rg32uint","RG32UI","rg32sint","RG32I","rg32float","RG32F","rgba16uint","RGBA16UI","rgba16sint","RGBA16I","rgba16float","RGBA16F","rgba32uint","RGBA32UI","rgba32sint","RGBA32I","rgba32float","RGBA32F","stencil8","STENCIL_INDEX8","depth16unorm","DEPTH_COMPONENT16","depth24plus","DEPTH_COMPONENT24","depth32float","DEPTH_COMPONENT32F","DEPTH32F_STENCIL8","COMPRESSED_RGBA_S3TC_DXT1_EXT","COMPRESSED_RGBA_S3TC_DXT3_EXT","COMPRESSED_RGBA_S3TC_DXT5_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT","COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT","COMPRESSED_RED_RGTC1_EXT","COMPRESSED_SIGNED_RED_RGTC1_EXT","COMPRESSED_RED_GREEN_RGTC2_EXT","COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT","COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT","COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT","COMPRESSED_RGBA_BPTC_UNORM_EXT","COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT","COMPRESSED_RGB8_ETC2","COMPRESSED_SRGB8_ETC2","COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2","COMPRESSED_RGBA8_ETC2_EAC","COMPRESSED_SRGB8_ALPHA8_ETC2_EAC","COMPRESSED_R11_EAC","COMPRESSED_SIGNED_RG11_EAC","COMPRESSED_RGBA_ASTC_4x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR","COMPRESSED_RGBA_ASTC_5x4_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR","COMPRESSED_RGBA_ASTC_5x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR","COMPRESSED_RGBA_ASTC_6x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR","COMPRESSED_RGBA_ASTC_6x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR","COMPRESSED_RGBA_ASTC_8x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR","COMPRESSED_RGBA_ASTC_8x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR","COMPRESSED_RGBA_ASTC_8x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR","COMPRESSED_RGBA_ASTC_10x5_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR","COMPRESSED_RGBA_ASTC_10x6_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR","COMPRESSED_RGBA_ASTC_10x8_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR","COMPRESSED_RGBA_ASTC_10x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR","COMPRESSED_RGBA_ASTC_12x10_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR","COMPRESSED_RGBA_ASTC_12x12_KHR","COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR","_mapFormatToType","UNSIGNED_INT_5_9_9_9_REV","UNSIGNED_INT_2_10_10_10_REV","UNSIGNED_INT_10F_11F_11F_REV","UNSIGNED_INT_24_8","FLOAT_32_UNSIGNED_INT_24_8_REV","_mapFormatToFormat","RED","RG","RGB","DEPTH_COMPONENT","initSource","_bindSampler","_touched","textureGC","count","_activateLocation","bindTexture","bindSampler","sampler","_getGlSampler","boundTextures","activeTexture","TEXTURE0","_initSource","createTexture","autoGenerateMipmaps","isPowerOfTwo","biggestDimension","mipLevelCount","floor","log2","includes","onSourceUpdate","onStyleChange","onSourceDestroy","onSourceUnload","onUpdateMipmaps","updateStyle","deleteTexture","uploadMethodId","generateMipmap","off","_initSampler","glSampler","createSampler","_resourceId","generateCanvas","pixels","getPixels","createCanvas","ctx","imageData","createImageData","putImageData","frame","round","Uint8Array","BYTES_PER_PIXEL","glRenterTarget","readPixels","Uint8ClampedArray","slice","DefaultWebGLSystems","DefaultWebGLPipes","DefaultWebGLAdapters","systems","renderPipes","renderPipeAdaptors","WebGLRenderer","sampleValues","batchSamplersUniformGroup","uTextures"],"mappings":"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"}
|