"use strict"; Object.defineProperty(exports, "__esModule", { value: !0 }); var msdfFrag = `// Pixi texture info\r varying vec2 vTextureCoord;\r uniform sampler2D uSampler;\r \r // Tint\r uniform vec4 uColor;\r \r // on 2D applications fwidth is screenScale / glyphAtlasScale * distanceFieldRange\r uniform float uFWidth;\r \r void main(void) {\r \r // To stack MSDF and SDF we need a non-pre-multiplied-alpha texture.\r vec4 texColor = texture2D(uSampler, vTextureCoord);\r \r // MSDF\r float median = texColor.r + texColor.g + texColor.b -\r min(texColor.r, min(texColor.g, texColor.b)) -\r max(texColor.r, max(texColor.g, texColor.b));\r // SDF\r median = min(median, texColor.a);\r \r float screenPxDistance = uFWidth * (median - 0.5);\r float alpha = clamp(screenPxDistance + 0.5, 0.0, 1.0);\r if (median < 0.01) {\r alpha = 0.0;\r } else if (median > 0.99) {\r alpha = 1.0;\r }\r \r // Gamma correction for coverage-like alpha\r float luma = dot(uColor.rgb, vec3(0.299, 0.587, 0.114));\r float gamma = mix(1.0, 1.0 / 2.2, luma);\r float coverage = pow(uColor.a * alpha, gamma); \r \r // NPM Textures, NPM outputs\r gl_FragColor = vec4(uColor.rgb, coverage);\r }\r `; exports.default = msdfFrag; //# sourceMappingURL=msdf.frag.js.map