shadow$provide.module$node_modules$pixi_DOT_js$lib$filters$blend_modes$blend_template_wgsl = function(global, require, module, exports) {
  Object.defineProperty(exports, "__esModule", {value:!0});
  exports.default = "\nstruct GlobalFilterUniforms {\n  uInputSize:vec4\x3cf32\x3e,\n  uInputPixel:vec4\x3cf32\x3e,\n  uInputClamp:vec4\x3cf32\x3e,\n  uOutputFrame:vec4\x3cf32\x3e,\n  uGlobalFrame:vec4\x3cf32\x3e,\n  uOutputTexture:vec4\x3cf32\x3e,\n};\n\nstruct BlendUniforms {\n  uBlend:f32,\n};\n\n@group(0) @binding(0) var\x3cuniform\x3e gfu: GlobalFilterUniforms;\n@group(0) @binding(1) var uTexture: texture_2d\x3cf32\x3e;\n@group(0) @binding(2) var uSampler : sampler;\n@group(0) @binding(3) var uBackTexture: texture_2d\x3cf32\x3e;\n\n@group(1) @binding(0) var\x3cuniform\x3e blendUniforms : BlendUniforms;\n\n\nstruct VSOutput {\n    @builtin(position) position: vec4\x3cf32\x3e,\n    @location(0) uv : vec2\x3cf32\x3e\n  };\n\nfn filterVertexPosition(aPosition:vec2\x3cf32\x3e) -\x3e vec4\x3cf32\x3e\n{\n    var position \x3d aPosition * gfu.uOutputFrame.zw + gfu.uOutputFrame.xy;\n\n    position.x \x3d position.x * (2.0 / gfu.uOutputTexture.x) - 1.0;\n    position.y \x3d position.y * (2.0*gfu.uOutputTexture.z / gfu.uOutputTexture.y) - gfu.uOutputTexture.z;\n\n    return vec4(position, 0.0, 1.0);\n}\n\nfn filterTextureCoord( aPosition:vec2\x3cf32\x3e ) -\x3e vec2\x3cf32\x3e\n{\n    return aPosition * (gfu.uOutputFrame.zw * gfu.uInputSize.zw);\n}\n\nfn globalTextureCoord( aPosition:vec2\x3cf32\x3e ) -\x3e vec2\x3cf32\x3e\n{\n  return  (aPosition.xy / gfu.uGlobalFrame.zw) + (gfu.uGlobalFrame.xy / gfu.uGlobalFrame.zw);  \n}\n  \n@vertex\nfn mainVertex(\n  @location(0) aPosition : vec2\x3cf32\x3e, \n) -\x3e VSOutput {\n  return VSOutput(\n   filterVertexPosition(aPosition),\n   filterTextureCoord(aPosition)\n  );\n}\n\n{FUNCTIONS}\n\n@fragment\nfn mainFragment(\n  @location(0) uv: vec2\x3cf32\x3e\n) -\x3e @location(0) vec4\x3cf32\x3e {\n\n\n   var back \x3d  textureSample(uBackTexture, uSampler, uv);\n   var front \x3d textureSample(uTexture, uSampler, uv);\n   var blendedAlpha \x3d front.a + back.a * (1.0 - front.a);\n   \n   var out \x3d vec4\x3cf32\x3e(0.0,0.0,0.0,0.0);\n\n   {MAIN}\n\n   return out;\n}";
};

//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$filters$blend_modes$blend_template_wgsl.js.map
