declare const _default: "#version 300 es\n#define SHADER_NAME text-background-layer-fragment-shader\n\nprecision highp float;\n\nin vec4 vFillColor;\nin vec4 vLineColor;\nin float vLineWidth;\nin vec2 uv;\nin vec2 dimensions;\n\nout vec4 fragColor;\n\nfloat round_rect(vec2 p, vec2 size, vec4 radii) {\n  // Convert p and size to center-based coordinates [-0.5, 0.5]\n  vec2 pixelPositionCB = (p - 0.5) * size;\n  vec2 sizeCB = size * 0.5;\n\n  float maxBorderRadius = min(size.x, size.y) * 0.5;\n  vec4 borderRadius = vec4(min(radii, maxBorderRadius));\n\n  // from https://www.shadertoy.com/view/4llXD7\n  borderRadius.xy =\n      (pixelPositionCB.x > 0.0) ? borderRadius.xy : borderRadius.zw;\n  borderRadius.x = (pixelPositionCB.y > 0.0) ? borderRadius.x : borderRadius.y;\n  vec2 q = abs(pixelPositionCB) - sizeCB + borderRadius.x;\n  return -(min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - borderRadius.x);\n}\n\nfloat rect(vec2 p, vec2 size) {\n  vec2 pixelPosition = p * size;\n  return min(min(pixelPosition.x, size.x - pixelPosition.x),\n             min(pixelPosition.y, size.y - pixelPosition.y));\n}\n\nvec4 get_stroked_fragColor(float dist) {\n  float isBorder = smoothedge(dist, vLineWidth);\n  return mix(vFillColor, vLineColor, isBorder);\n}\n\nvoid main(void) {\n  geometry.uv = uv;\n\n  if (textBackground.borderRadius != vec4(0.0)) {\n    float distToEdge = round_rect(uv, dimensions, textBackground.borderRadius);\n    if (textBackground.stroked) {\n      fragColor = get_stroked_fragColor(distToEdge);\n    } else {\n      fragColor = vFillColor;\n    }\n    // add border radius\n    float shapeAlpha = smoothedge(-distToEdge, 0.0);\n    fragColor.a *= shapeAlpha;\n  } else {\n    if (textBackground.stroked) {\n      float distToEdge = rect(uv, dimensions);\n      fragColor = get_stroked_fragColor(distToEdge);\n    } else {\n      fragColor = vFillColor;\n    }\n  }\n  DECKGL_FILTER_COLOR(fragColor, geometry);\n}\n";
export default _default;
//# sourceMappingURL=text-background-layer-fragment.glsl.d.ts.map