UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

27 lines (26 loc) 1.58 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{ScreenSpacePass as e}from"../views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.glsl.js";import{glsl as o}from"../views/3d/webgl-engine/core/shaderModules/glsl.js";import{Texture2DPassUniform as t}from"../views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js";import{ShaderBuilder as r}from"../views/webgl/ShaderBuilder.js";function s(){const s=new r;return s.include(e),s.fragment.uniforms.add(new t("blendWeightsTexture",(e=>e.inputTexture)),new t("colorTexture",(e=>e.color))),s.fragment.main.add(o`vec2 resolution = 1.0 / vec2(textureSize(colorTexture, 0)); vec4 offsets = vec4(uv.x + resolution.x, uv.y, uv.x, uv.y - resolution.y); vec4 a; a.rb = texture(blendWeightsTexture, uv).rb; a.g = texture(blendWeightsTexture, offsets.zw).g; a.a = texture(blendWeightsTexture, offsets.xy).a; if ( dot(a, vec4(1.0)) < 1e-5 ) { fragColor = texture( colorTexture, uv, 0.0 ); } else { vec2 offset; offset.x = a.a > a.b ? a.a : -a.b; offset.y = a.g > a.r ? -a.g : a.r; if ( abs( offset.x ) > abs( offset.y )) { offset.y = 0.0; } else { offset.x = 0.0; } vec4 C = texture( colorTexture, uv, 0.0 ); vec4 Cop = texture( colorTexture, uv + sign( offset ) * resolution.xy, 0.0 ); float s = abs( offset.x ) > abs( offset.y ) ? abs( offset.x ) : abs( offset.y ); fragColor = mix(C, Cop, s); }`),s}const f=Object.freeze(Object.defineProperty({__proto__:null,build:s},Symbol.toStringTag,{value:"Module"}));export{f as B,s as b};