struct LeftOver { time : f32; [[size(12)]] padding : u32; worldViewProjection : mat4x4; outputSize : vec2; stageSize : vec2; spriteMapSize : vec2; stageScale : f32; spriteCount : f32; colorMul : vec3; } [[group(2), binding(9)]] var x_20 : LeftOver; [[group(2), binding(3)]] var frameMapTexture : texture_2d; [[group(2), binding(2)]] var frameMapSampler : sampler; var tUV : vec2; [[group(2), binding(5)]] var tileMapsTexture0 : texture_2d; [[group(2), binding(4)]] var tileMapsSampler : sampler; [[group(2), binding(6)]] var tileMapsTexture1 : texture_2d; [[group(2), binding(8)]] var animationMapTexture : texture_2d; [[group(2), binding(7)]] var animationMapSampler : sampler; var mt : f32; [[group(2), binding(1)]] var spriteSheetTexture : texture_2d; [[group(2), binding(0)]] var spriteSheetSampler : sampler; var glFragColor : vec4; var tileID_1 : vec2; var levelUnits : vec2; var stageUnits_1 : vec2; var vPosition : vec3; var vUV : vec2; fn getFrameData_f1_(frameID : ptr) -> mat4x4 { var fX : f32; let x_15 : f32 = *(frameID); let x_25 : f32 = x_20.spriteCount; fX = (x_15 / x_25); let x_37 : f32 = fX; let x_40 : vec4 = textureSampleBias(frameMapTexture, frameMapSampler, vec2(x_37, 0.0), 0.0); let x_44 : f32 = fX; let x_47 : vec4 = textureSampleBias(frameMapTexture, frameMapSampler, vec2(x_44, 0.25), 0.0); let x_51 : f32 = fX; let x_54 : vec4 = textureSampleBias(frameMapTexture, frameMapSampler, vec2(x_51, 0.5), 0.0); return mat4x4(vec4(x_40.x, x_40.y, x_40.z, x_40.w), vec4(x_47.x, x_47.y, x_47.z, x_47.w), vec4(x_54.x, x_54.y, x_54.z, x_54.w), vec4(vec4(0.0, 0.0, 0.0, 0.0).x, vec4(0.0, 0.0, 0.0, 0.0).y, vec4(0.0, 0.0, 0.0, 0.0).z, vec4(0.0, 0.0, 0.0, 0.0).w)); } fn main_1() { var color : vec4; var tileUV : vec2; var tileID : vec2; var sheetUnits : vec2; var spriteUnits : f32; var stageUnits : vec2; var i : i32; var frameID_1 : f32; var animationData : vec4; var f : f32; var frameData : mat4x4; var param : f32; var frameSize : vec2; var offset_1 : vec2; var ratio : vec2; var nc : vec4; var alpha : f32; var mixed : vec3; color = vec4(0.0, 0.0, 0.0, 0.0); let x_86 : vec2 = tUV; tileUV = fract(x_86); let x_91 : f32 = tileUV.y; tileUV.y = (1.0 - x_91); let x_95 : vec2 = tUV; tileID = floor(x_95); let x_101 : vec2 = x_20.spriteMapSize; sheetUnits = (vec2(1.0, 1.0) / x_101); let x_106 : f32 = x_20.spriteCount; spriteUnits = (1.0 / x_106); let x_111 : vec2 = x_20.stageSize; stageUnits = (vec2(1.0, 1.0) / x_111); i = 0; loop { let x_122 : i32 = i; if ((x_122 < 2)) { } else { break; } let x_126 : i32 = i; switch(x_126) { case 1: { let x_150 : vec2 = tileID; let x_154 : vec2 = x_20.stageSize; let x_156 : vec4 = textureSampleBias(tileMapsTexture1, tileMapsSampler, ((x_150 + vec2(0.5, 0.5)) / x_154), 0.0); frameID_1 = x_156.x; } case 0: { let x_136 : vec2 = tileID; let x_140 : vec2 = x_20.stageSize; let x_142 : vec4 = textureSampleBias(tileMapsTexture0, tileMapsSampler, ((x_136 + vec2(0.5, 0.5)) / x_140), 0.0); frameID_1 = x_142.x; } default: { } } let x_166 : f32 = frameID_1; let x_169 : f32 = x_20.spriteCount; let x_172 : vec4 = textureSampleBias(animationMapTexture, animationMapSampler, vec2(((x_166 + 0.5) / x_169), 0.0), 0.0); animationData = x_172; let x_174 : f32 = animationData.y; if ((x_174 > 0.0)) { let x_181 : f32 = x_20.time; let x_184 : f32 = animationData.z; mt = ((x_181 * x_184) % 1.0); f = 0.0; loop { let x_193 : f32 = f; if ((x_193 < 8.0)) { } else { break; } let x_197 : f32 = animationData.y; let x_198 : f32 = mt; if ((x_197 > x_198)) { let x_203 : f32 = animationData.x; frameID_1 = x_203; break; } let x_208 : f32 = frameID_1; let x_211 : f32 = x_20.spriteCount; let x_214 : f32 = f; let x_217 : vec4 = textureSampleBias(animationMapTexture, animationMapSampler, vec2(((x_208 + 0.5) / x_211), (0.125 * x_214)), 0.0); animationData = x_217; continuing { let x_218 : f32 = f; f = (x_218 + 1.0); } } } let x_222 : f32 = frameID_1; param = (x_222 + 0.5); let x_225 : mat4x4 = getFrameData_f1_(&(param)); frameData = x_225; let x_228 : vec4 = frameData[0]; let x_231 : vec2 = x_20.spriteMapSize; frameSize = (vec2(x_228.w, x_228.z) / x_231); let x_235 : vec4 = frameData[0]; let x_237 : vec2 = sheetUnits; offset_1 = (vec2(x_235.x, x_235.y) * x_237); let x_241 : vec4 = frameData[2]; let x_244 : vec4 = frameData[0]; ratio = (vec2(x_241.x, x_241.y) / vec2(x_244.w, x_244.z)); let x_248 : f32 = frameData[2].z; if ((x_248 == 1.0)) { let x_252 : vec2 = tileUV; tileUV = vec2(x_252.y, x_252.x); } let x_254 : i32 = i; if ((x_254 == 0)) { let x_263 : vec2 = tileUV; let x_264 : vec2 = frameSize; let x_266 : vec2 = offset_1; let x_268 : vec4 = textureSample(spriteSheetTexture, spriteSheetSampler, ((x_263 * x_264) + x_266)); color = x_268; } else { let x_274 : vec2 = tileUV; let x_275 : vec2 = frameSize; let x_277 : vec2 = offset_1; let x_279 : vec4 = textureSample(spriteSheetTexture, spriteSheetSampler, ((x_274 * x_275) + x_277)); nc = x_279; let x_283 : f32 = color.w; let x_285 : f32 = nc.w; alpha = min((x_283 + x_285), 1.0); let x_290 : vec4 = color; let x_292 : vec4 = nc; let x_295 : f32 = nc.w; mixed = mix(vec3(x_290.x, x_290.y, x_290.z), vec3(x_292.x, x_292.y, x_292.z), vec3(x_295, x_295, x_295)); let x_298 : vec3 = mixed; let x_299 : f32 = alpha; color = vec4(x_298.x, x_298.y, x_298.z, x_299); } continuing { let x_304 : i32 = i; i = (x_304 + 1); } } let x_310 : vec3 = x_20.colorMul; let x_311 : vec4 = color; let x_313 : vec3 = (vec3(x_311.x, x_311.y, x_311.z) * x_310); let x_314 : vec4 = color; color = vec4(x_313.x, x_313.y, x_313.z, x_314.w); let x_318 : vec4 = color; glFragColor = x_318; return; } struct main_out { [[location(0)]] glFragColor_1 : vec4; } [[stage(fragment)]] fn main([[location(2)]] tUV_param : vec2, [[location(5)]] tileID_1_param : vec2, [[location(4)]] levelUnits_param : vec2, [[location(3)]] stageUnits_1_param : vec2, [[location(0)]] vPosition_param : vec3, [[location(1)]] vUV_param : vec2) -> main_out { tUV = tUV_param; tileID_1 = tileID_1_param; levelUnits = levelUnits_param; stageUnits_1 = stageUnits_1_param; vPosition = vPosition_param; vUV = vUV_param; main_1(); return main_out(glFragColor); }