1 line
6.9 KiB
Plaintext
1 line
6.9 KiB
Plaintext
{"version":3,"file":"TilingSpriteShader.mjs","sources":["../../../../src/scene/sprite-tiling/shader/TilingSpriteShader.ts"],"sourcesContent":["import { Matrix } from '../../../maths/matrix/Matrix';\nimport {\n compileHighShaderGlProgram,\n compileHighShaderGpuProgram\n} from '../../../rendering/high-shader/compileHighShaderToProgram';\nimport { localUniformBit, localUniformBitGl } from '../../../rendering/high-shader/shader-bits/localUniformBit';\nimport { roundPixelsBit, roundPixelsBitGl } from '../../../rendering/high-shader/shader-bits/roundPixelsBit';\nimport { Shader } from '../../../rendering/renderers/shared/shader/Shader';\nimport { UniformGroup } from '../../../rendering/renderers/shared/shader/UniformGroup';\nimport { Texture } from '../../../rendering/renderers/shared/texture/Texture';\nimport { tilingBit, tilingBitGl } from './tilingBit';\n\nimport type { GlProgram } from '../../../rendering/renderers/gl/shader/GlProgram';\nimport type { GpuProgram } from '../../../rendering/renderers/gpu/shader/GpuProgram';\n\nlet gpuProgram: GpuProgram;\nlet glProgram: GlProgram;\n\nexport class TilingSpriteShader extends Shader\n{\n constructor()\n {\n gpuProgram ??= compileHighShaderGpuProgram({\n name: 'tiling-sprite-shader',\n bits: [\n localUniformBit,\n tilingBit,\n roundPixelsBit,\n ],\n });\n\n glProgram ??= compileHighShaderGlProgram({\n name: 'tiling-sprite-shader',\n bits: [\n localUniformBitGl,\n tilingBitGl,\n roundPixelsBitGl,\n ]\n });\n\n const tilingUniforms = new UniformGroup({\n uMapCoord: { value: new Matrix(), type: 'mat3x3<f32>' },\n uClampFrame: { value: new Float32Array([0, 0, 1, 1]), type: 'vec4<f32>' },\n uClampOffset: { value: new Float32Array([0, 0]), type: 'vec2<f32>' },\n uTextureTransform: { value: new Matrix(), type: 'mat3x3<f32>' },\n uSizeAnchor: { value: new Float32Array([100, 100, 0.5, 0.5]), type: 'vec4<f32>' },\n });\n\n super({\n glProgram,\n gpuProgram,\n resources: {\n localUniforms: new UniformGroup({\n uTransformMatrix: { value: new Matrix(), type: 'mat3x3<f32>' },\n uColor: { value: new Float32Array([1, 1, 1, 1]), type: 'vec4<f32>' },\n uRound: { value: 0, type: 'f32' },\n }),\n tilingUniforms,\n uTexture: Texture.EMPTY.source,\n uSampler: Texture.EMPTY.source.style,\n }\n });\n }\n\n public updateUniforms(\n width: number, height: number,\n matrix: Matrix,\n anchorX: number, anchorY: number,\n texture: Texture\n ): void\n {\n const tilingUniforms = this.resources.tilingUniforms;\n\n const textureWidth = texture.width;\n const textureHeight = texture.height;\n const textureMatrix = texture.textureMatrix;\n\n const uTextureTransform = tilingUniforms.uniforms.uTextureTransform;\n\n uTextureTransform.set(\n matrix.a * textureWidth / width,\n matrix.b * textureWidth / height,\n matrix.c * textureHeight / width,\n matrix.d * textureHeight / height,\n matrix.tx / width,\n matrix.ty / height);\n\n uTextureTransform.invert();\n\n tilingUniforms.uniforms.uMapCoord = textureMatrix.mapCoord;\n tilingUniforms.uniforms.uClampFrame = textureMatrix.uClampFrame;\n tilingUniforms.uniforms.uClampOffset = textureMatrix.uClampOffset;\n tilingUniforms.uniforms.uTextureTransform = uTextureTransform;\n tilingUniforms.uniforms.uSizeAnchor[0] = width;\n tilingUniforms.uniforms.uSizeAnchor[1] = height;\n tilingUniforms.uniforms.uSizeAnchor[2] = anchorX;\n tilingUniforms.uniforms.uSizeAnchor[3] = anchorY;\n\n if (texture)\n {\n this.resources.uTexture = texture.source;\n this.resources.uSampler = texture.source.style;\n }\n }\n}\n"],"names":[],"mappings":"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"} |