pixi.js
Version:
<p align="center"> <a href="https://pixijs.com" target="_blank" rel="noopener noreferrer"> <img height="150" src="https://files.pixijs.download/branding/pixijs-logo-transparent-dark.svg?v=1" alt="PixiJS logo"> </a> </p> <br/> <p align="center">
1 lines • 4.76 kB
Source Map (JSON)
{"version":3,"file":"generateShaderSyncPolyfill.mjs","sources":["../../../src/unsafe-eval/shader/generateShaderSyncPolyfill.ts"],"sourcesContent":["import { BufferResource } from '../../rendering/renderers/shared/buffer/BufferResource';\nimport { UniformGroup } from '../../rendering/renderers/shared/shader/UniformGroup';\nimport { TextureSource } from '../../rendering/renderers/shared/texture/sources/TextureSource';\nimport { TextureStyle } from '../../rendering/renderers/shared/texture/TextureStyle';\n\nimport type { ShaderSyncData, ShaderSyncFunction } from '../../rendering/renderers/gl/shader/GlShaderSystem';\nimport type { WebGLRenderer } from '../../rendering/renderers/gl/WebGLRenderer';\nimport type { Shader } from '../../rendering/renderers/shared/shader/Shader';\n\n/** @internal */\nexport function generateShaderSyncPolyfill(): ShaderSyncFunction\n{\n return syncShader;\n}\n\nfunction syncShader(renderer: WebGLRenderer, shader: Shader, syncData: ShaderSyncData): void\n{\n const gl = renderer.gl;\n const shaderSystem = renderer.shader;\n const programData = shaderSystem._getProgramData(shader.glProgram);\n\n // loop through the groups and sync everything...\n for (const i in shader.groups)\n {\n const bindGroup = shader.groups[i];\n\n for (const j in bindGroup.resources)\n {\n const resource = bindGroup.resources[j];\n\n if (resource instanceof UniformGroup)\n {\n if (resource.ubo)\n {\n shaderSystem.bindUniformBlock(\n resource,\n shader._uniformBindMap[i as unknown as number][j as unknown as number],\n syncData.blockIndex++\n );\n }\n else\n {\n shaderSystem.updateUniformGroup(resource);\n }\n }\n else if (resource instanceof BufferResource)\n {\n shaderSystem.bindUniformBlock(\n resource,\n shader._uniformBindMap[i as unknown as number][j as unknown as number],\n syncData.blockIndex++\n );\n }\n else if (resource instanceof TextureSource)\n {\n // TODO really we should not be binding the sampler here too\n renderer.texture.bind(resource, syncData.textureCount);\n\n const uniformName = shader._uniformBindMap[i as unknown as number][j as unknown as number];\n\n const uniformData = programData.uniformData[uniformName];\n\n if (uniformData)\n {\n if (uniformData.value !== syncData.textureCount)\n {\n gl.uniform1i(uniformData.location, syncData.textureCount);\n }\n\n syncData.textureCount++;\n }\n }\n else if (resource instanceof TextureStyle)\n {\n // TODO not doing anything here works is assuming that textures are bound with the style they own.\n // this.renderer.texture.bindSampler(resource, syncData.textureCount);\n }\n }\n }\n}\n"],"names":[],"mappings":";;;;;;AAUO,SAAS,0BAAA,GAChB;AACI,EAAA,OAAO,UAAA;AACX;AAEA,SAAS,UAAA,CAAW,QAAA,EAAyB,MAAA,EAAgB,QAAA,EAC7D;AACI,EAAA,MAAM,KAAK,QAAA,CAAS,EAAA;AACpB,EAAA,MAAM,eAAe,QAAA,CAAS,MAAA;AAC9B,EAAA,MAAM,WAAA,GAAc,YAAA,CAAa,eAAA,CAAgB,MAAA,CAAO,SAAS,CAAA;AAGjE,EAAA,KAAA,MAAW,CAAA,IAAK,OAAO,MAAA,EACvB;AACI,IAAA,MAAM,SAAA,GAAY,MAAA,CAAO,MAAA,CAAO,CAAC,CAAA;AAEjC,IAAA,KAAA,MAAW,CAAA,IAAK,UAAU,SAAA,EAC1B;AACI,MAAA,MAAM,QAAA,GAAW,SAAA,CAAU,SAAA,CAAU,CAAC,CAAA;AAEtC,MAAA,IAAI,oBAAoB,YAAA,EACxB;AACI,QAAA,IAAI,SAAS,GAAA,EACb;AACI,UAAA,YAAA,CAAa,gBAAA;AAAA,YACT,QAAA;AAAA,YACA,MAAA,CAAO,eAAA,CAAgB,CAAsB,CAAA,CAAE,CAAsB,CAAA;AAAA,YACrE,QAAA,CAAS,UAAA;AAAA,WACb;AAAA,QACJ,CAAA,MAEA;AACI,UAAA,YAAA,CAAa,mBAAmB,QAAQ,CAAA;AAAA,QAC5C;AAAA,MACJ,CAAA,MAAA,IACS,oBAAoB,cAAA,EAC7B;AACI,QAAA,YAAA,CAAa,gBAAA;AAAA,UACT,QAAA;AAAA,UACA,MAAA,CAAO,eAAA,CAAgB,CAAsB,CAAA,CAAE,CAAsB,CAAA;AAAA,UACrE,QAAA,CAAS,UAAA;AAAA,SACb;AAAA,MACJ,CAAA,MAAA,IACS,oBAAoB,aAAA,EAC7B;AAEI,QAAA,QAAA,CAAS,OAAA,CAAQ,IAAA,CAAK,QAAA,EAAU,QAAA,CAAS,YAAY,CAAA;AAErD,QAAA,MAAM,WAAA,GAAc,MAAA,CAAO,eAAA,CAAgB,CAAsB,EAAE,CAAsB,CAAA;AAEzF,QAAA,MAAM,WAAA,GAAc,WAAA,CAAY,WAAA,CAAY,WAAW,CAAA;AAEvD,QAAA,IAAI,WAAA,EACJ;AACI,UAAA,IAAI,WAAA,CAAY,KAAA,KAAU,QAAA,CAAS,YAAA,EACnC;AACI,YAAA,EAAA,CAAG,SAAA,CAAU,WAAA,CAAY,QAAA,EAAU,QAAA,CAAS,YAAY,CAAA;AAAA,UAC5D;AAEA,UAAA,QAAA,CAAS,YAAA,EAAA;AAAA,QACb;AAAA,MACJ,CAAA,MAAA,IACS,oBAAoB,YAAA,EAC7B;AAAA,MAGA;AAAA,IACJ;AAAA,EACJ;AACJ;;;;"}