HighlightBlur.glsl.js 2.0 KB

1234567891011121314151617181920212223242526
  1. /*
  2. All material copyright ESRI, All Rights Reserved, unless otherwise specified.
  3. See https://js.arcgis.com/4.25/esri/copyright.txt for details.
  4. */
  5. import{a as e}from"./vec2f64.js";import{Float2DrawUniform as r}from"../views/3d/webgl-engine/core/shaderModules/Float2DrawUniform.js";import{NoParameters as o,glsl as t}from"../views/3d/webgl-engine/core/shaderModules/interfaces.js";import{ShaderBuilder as i}from"../views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js";import{Texture2DDrawUniform as u}from"../views/3d/webgl-engine/core/shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as s}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{VertexAttribute as n}from"../views/3d/webgl-engine/lib/VertexAttribute.js";class a extends o{constructor(){super(...arguments),this.blurSize=e()}}function d(){const e=new i,{vertex:o,fragment:a}=e,d=o.code,l=a.code;return e.attributes.add(n.POSITION,"vec2"),e.attributes.add(n.UV0,"vec2"),e.varyings.add("blurCoordinate","vec3"),o.uniforms.add(new s("coverageTex",(e=>e.coverageTexture))),a.uniforms.add(new r("blurSize",(e=>e.blurSize))),d.add(t`void main() {
  6. gl_Position = vec4(position, 0.0, 1.0);
  7. vec4 cov = texture2D(coverageTex, uv0);
  8. if (cov.r == 0.0) {
  9. gl_Position = vec4(0.0);
  10. }
  11. blurCoordinate = vec3(gl_Position.xy * 0.5 + vec2(0.5), max(cov.g, cov.b));
  12. }`),a.uniforms.add(new u("tex",(e=>e.blurInputTexture))),l.add(t`void main() {
  13. vec2 uv = blurCoordinate.xy;
  14. vec4 center = texture2D(tex, uv);
  15. if (blurCoordinate.z == 1.0) {
  16. gl_FragColor = center;
  17. } else {
  18. vec4 sum = vec4(0.0);
  19. sum += center * 0.204164;
  20. sum += texture2D(tex, uv + blurSize * 1.407333) * 0.304005;
  21. sum += texture2D(tex, uv - blurSize * 1.407333) * 0.304005;
  22. sum += texture2D(tex, uv + blurSize * 3.294215) * 0.093913;
  23. sum += texture2D(tex, uv - blurSize * 3.294215) * 0.093913;
  24. gl_FragColor = sum;
  25. }
  26. }`),e}const l=Object.freeze(Object.defineProperty({__proto__:null,HighlightBlurDrawParameters:a,build:d},Symbol.toStringTag,{value:"Module"}));export{a as H,l as a,d as b};