{"version":3,"file":"static/js/4510.96d612f0.chunk.js","mappings":"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","sources":["../node_modules/@arcgis/core/chunks/vec4f32.js","../node_modules/@arcgis/core/views/2d/engine/imagery/BrushRasterBitmap.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/BrushBitmap.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/BrushClip.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/BrushOverlay.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrush.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushFill.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushMarker.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushHeatmap.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLSymbol.js","../node_modules/@arcgis/core/views/2d/engine/brushes.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushLine.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushText.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushLabel.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushDotDensity.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushPieChart.js","../node_modules/@arcgis/core/views/2d/engine/flow/BrushFlow.js","../node_modules/@arcgis/core/views/2d/engine/imagery/BrushVectorField.js","../node_modules/@arcgis/core/views/2d/engine/imagery/RasterBitmap.js","../node_modules/@arcgis/core/views/2d/engine/webgl/DefaultVertexAttributeLayouts.js","../node_modules/@arcgis/core/views/2d/engine/webgl/VertexStream.js","../node_modules/@arcgis/core/views/2d/engine/webgl/Mesh2D.js","../node_modules/@arcgis/core/views/2d/engine/webgl/ClippingInfo.js","../node_modules/@arcgis/core/views/2d/engine/webgl/WGLContainer.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrush.js","../node_modules/@arcgis/core/views/2d/engine/webgl/shaders/TileInfoPrograms.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushInfo.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushStencil.js","../node_modules/@arcgis/core/views/2d/engine/webgl/shaders/BackgroundPrograms.js","../node_modules/@arcgis/core/views/2d/engine/webgl/shaders/sources/shaderRepository.js","../node_modules/@arcgis/core/views/2d/engine/webgl/shaders/sources/resolver.js","../node_modules/@arcgis/core/views/webgl/rasterUtils.js"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nfunction n(){return new Float32Array(4)}function t(n){const t=new Float32Array(4);return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function r(n,t,r,e){const a=new Float32Array(4);return a[0]=n,a[1]=t,a[2]=r,a[3]=e,a}function e(n,t){return new Float32Array(n,t,4)}function a(){return n()}function o(){return r(1,1,1,1)}function u(){return r(1,0,0,0)}function s(){return r(0,1,0,0)}function c(){return r(0,0,1,0)}function i(){return r(0,0,0,1)}const f=a(),l=o(),_=u(),y=s(),w=c(),N=i(),O=Object.freeze(Object.defineProperty({__proto__:null,create:n,clone:t,fromValues:r,createView:e,zeros:a,ones:o,unitX:u,unitY:s,unitZ:c,unitW:i,ZEROS:f,ONES:l,UNIT_X:_,UNIT_Y:y,UNIT_Z:w,UNIT_W:N},Symbol.toStringTag,{value:\"Module\"}));export{l as O,_ as U,f as Z,t as a,e as b,n as c,s as d,c as e,r as f,i as g,y as h,w as i,N as j,o,u,O as v,a as z};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e}from\"../../../../core/maybe.js\";import{hasSource as t}from\"./RasterBitmap.js\";import r from\"../webgl/VertexStream.js\";import s from\"../webgl/brushes/WGLBrush.js\";import{BlendFactor as a,CompareFunction as i}from\"../../../webgl/enums.js\";import{setTextures as o,getCommonUniforms as n,setUniforms as h,getColormapUniforms as l,getStretchUniforms as c,getShadedReliefUniforms as p,getUniformLocationInfos as d,getBasicGridUniforms as u}from\"../../../webgl/rasterUtils.js\";class m extends s{constructor(){super(...arguments),this._desc={lut:{vsPath:\"raster/lut\",fsPath:\"raster/lut\",attributes:new Map([[\"a_position\",0],[\"a_texcoord\",1]])},stretch:{vsPath:\"raster/stretch\",fsPath:\"raster/stretch\",attributes:new Map([[\"a_position\",0],[\"a_texcoord\",1]])},hillshade:{vsPath:\"raster/hillshade\",fsPath:\"raster/hillshade\",attributes:new Map([[\"a_position\",0],[\"a_texcoord\",1]])}},this._rendererUniformInfos=new Map}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e},t){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(i.EQUAL,t.stencilRef,255)}draw(e,r){if(!t(r)||r.suspended)return;const{timeline:s,context:a,painter:i,requestRender:o}=e;s.begin(this.name);const n=!a.capabilities.textureFloat?.textureFloatLinear;r.updateTexture(e);const h=this._getShaderVariations(r,n),l=i.materialManager.getProgram(this._desc[r.symbolizerParameters.type],h);this._drawWithProgram(a,l,r,o),s.end(this.name)}_drawWithProgram(t,s,a,i,d=1,m=[0,0],f=!1){if(this._quad||(this._quad=new r(t,[0,0,1,0,0,1,1,1])),e(i)&&!s.isCompiled)return void i();const{symbolizerParameters:_,transformGrid:g,width:b,height:P,opacity:S}=a,w=_.type;t.useProgram(s);const x=this._getShaderVariations(a),y=this._getUniformInfos(w,t,s,x),{names:M,textures:U}=a.getTextures();o(t,s,M,U);const j=u(d,m),I=n(g,[b,P],[a.source.width,a.source.height],S,f);if(h(s,y,{u_coordScale:a.coordScale,u_dvsMat3:a.transforms.dvs,...j,...I}),_.colormap){const{colormap:e,colormapOffset:t}=_,r=l(e,t);h(s,y,r)}if(\"stretch\"===_.type){const e=c(_);h(s,y,e)}else if(\"hillshade\"===_.type){const e=p(_);h(s,y,e)}this._quad.draw()}_getUniformInfos(e,t,r,s){const a=s.length>0?e+\"-\"+s.join(\"-\"):e;if(this._rendererUniformInfos.has(a))return this._rendererUniformInfos.get(a);const i=d(t,r);return this._rendererUniformInfos.set(a,i),i}_getShaderVariations(e,t=!1){const r=[],{interpolation:s}=e,{type:a,colormap:i}=e.symbolizerParameters;return\"cubic\"===s?r.push(\"bicubic\"):\"bilinear\"===s&&\"stretch\"===a&&null!=i?(r.push(\"bilinear\"),r.push(\"nnedge\")):t&&\"bilinear\"===s&&r.push(\"bilinear\"),e.isRendereredSource?r.push(\"noop\"):i&&r.push(\"applyColormap\"),e.transformGrid&&(r.push(\"applyProjection\"),1===e.transformGrid.spacing[0]&&r.push(\"lookupProjection\")),r}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e}from\"../../../../../core/maybe.js\";import{TEXTURE_BINDING_BITMAP as t}from\"../definitions.js\";import i from\"../VertexStream.js\";import s from\"./WGLBrush.js\";import{TextureSamplingMode as n,BlendFactor as r,CompareFunction as a}from\"../../../../webgl/enums.js\";const o={nearest:{defines:[],samplingMode:n.NEAREST,mips:!1},bilinear:{defines:[],samplingMode:n.LINEAR,mips:!1},bicubic:{defines:[\"bicubic\"],samplingMode:n.LINEAR,mips:!1},trilinear:{defines:[],samplingMode:n.LINEAR_MIPMAP_LINEAR,mips:!0}},d=(e,t,i)=>{if(\"dynamic\"===i.samplingMode){const{state:i}=e,s=t.resolution/t.pixelRatio/i.resolution,n=Math.round(e.pixelRatio)!==e.pixelRatio,r=s>1.05||s<.95;return i.rotation||r||n||t.isSourceScaled||t.rotation?o.bilinear:o.nearest}return o[i.samplingMode]};class m extends s{constructor(){super(...arguments),this._desc={vsPath:\"raster/bitmap\",fsPath:\"raster/bitmap\",attributes:new Map([[\"a_pos\",0]])}}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e},t){e.setBlendingEnabled(!0),\"additive\"===t.blendFunction?e.setBlendFunctionSeparate(r.ONE,r.ONE,r.ONE,r.ONE):e.setBlendFunctionSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(a.EQUAL,t.stencilRef,255)}draw(s,n){const{context:r,renderingOptions:a,painter:o,requestRender:m}=s;if(!n.source)return;const c=d(s,n,a),l=o.materialManager.getProgram(this._desc,c.defines);if(e(m)&&!l.isCompiled)return void m();s.timeline.begin(this.name),this._quad||(this._quad=new i(r,[0,0,1,0,0,1,1,1]));const{coordScale:p,computedOpacity:u,transforms:f}=n;n.setSamplingProfile(c),n.bind(s.context,t),r.useProgram(l),l.setUniformMatrix3fv(\"u_dvsMat3\",f.dvs),l.setUniform1i(\"u_texture\",t),l.setUniform2fv(\"u_coordScale\",p),l.setUniform1f(\"u_opacity\",u),this._quad.draw(),s.timeline.end(this.name)}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isNone as r,isSome as t}from\"../../../../../core/maybe.js\";import{f as e}from\"../../../../../chunks/vec4f32.js\";import{createProgramDescriptor as s}from\"../Utils.js\";import o from\"./WGLBrush.js\";import{background as i}from\"../shaders/BackgroundPrograms.js\";import{StencilOperation as a,CompareFunction as m,DataType as n,PrimitiveType as p}from\"../../../../webgl/enums.js\";import{createProgram as l}from\"../../../../webgl/ProgramTemplate.js\";const c=()=>s(\"clip\",{geometry:[{location:0,name:\"a_pos\",count:2,type:n.SHORT}]});class f extends o{constructor(){super(...arguments),this._color=e(0,1,0,1)}dispose(){this._program&&this._program.dispose()}prepareState({context:r}){r.setStencilTestEnabled(!0),r.setBlendingEnabled(!1),r.setFaceCullingEnabled(!1),r.setColorMask(!1,!1,!1,!1),r.setStencilOp(a.KEEP,a.KEEP,a.REPLACE),r.setStencilWriteMask(255),r.setStencilFunction(m.ALWAYS,0,255)}draw(e,s){const{context:o,state:a,requestRender:m}=e,f=c(),d=s.getVAO(o,a,f.attributes,f.bufferLayouts);r(d.indexBuffer)||(this._program||(this._program=l(o,i)),!t(m)||this._program.isCompiled?(o.useProgram(this._program),this._program.setUniform2fv(\"u_coord_range\",[1,1]),this._program.setUniform4fv(\"u_color\",this._color),this._program.setUniformMatrix3fv(\"u_dvsMat3\",a.displayMat3),o.bindVAO(d),o.drawElements(p.TRIANGLES,d.indexBuffer.size,n.UNSIGNED_INT,0),o.bindVAO()):m())}}export{f as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e}from\"../../../../../core/maybe.js\";import{TEXTURE_BINDING_BITMAP as t}from\"../definitions.js\";import{createProgramDescriptor as r}from\"../Utils.js\";import s from\"./WGLBrush.js\";import{BlendFactor as o,CompareFunction as n,DataType as a,PrimitiveType as i}from\"../../../../webgl/enums.js\";const u=()=>r(\"overlay\",{geometry:[{location:0,name:\"a_pos\",count:2,type:a.FLOAT}],tex:[{location:1,name:\"a_uv\",count:2,type:a.UNSIGNED_SHORT}]});class m extends s{constructor(){super(...arguments),this._desc={vsPath:\"overlay/overlay\",fsPath:\"overlay/overlay\",attributes:new Map([[\"a_pos\",0],[\"a_uv\",1]])}}dispose(){}prepareState({context:e}){e.setBlendingEnabled(!0),e.setColorMask(!0,!0,!0,!0),e.setBlendFunctionSeparate(o.ONE,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(n.GREATER,255,255)}draw(r,s){const{context:o,painter:n,requestRender:a}=r;if(!s.isReady)return;const{computedOpacity:m,dvsMat3:c,isWrapAround:d,texture:l}=s;r.timeline.begin(this.name);const p=n.materialManager.getProgram(this._desc);if(e(a)&&!p.isCompiled)return void a();const f=u(),_=s.getVAO(o,f.bufferLayouts,f.attributes);if(!_)return;o.bindVAO(_),o.useProgram(p),o.bindTexture(l,t),p.setUniformMatrix3fv(\"u_dvsMat3\",c),p.setUniform1i(\"u_texture\",t),p.setUniform1f(\"u_opacity\",m);const y=d?10:4;o.drawArrays(i.TRIANGLE_STRIP,0,y),o.bindVAO(),r.timeline.end(this.name)}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isNone as t,isSome as e}from\"../../../../../core/maybe.js\";import{MIN_MAX_ZOOM_PRECISION_FACTOR as i,TEXTURE_BINDING_ATTRIBUTE_DATA_0 as s,TEXTURE_BINDING_ATTRIBUTE_DATA_1 as o,TEXTURE_BINDING_ATTRIBUTE_DATA_2 as a,TEXTURE_BINDING_ATTRIBUTE_DATA_3 as r,TEXTURE_BINDING_ATTRIBUTE_DATA_4 as n,TEXTURE_BINDING_ATTRIBUTE_DATA_5 as m}from\"../definitions.js\";import u from\"./WGLBrush.js\";import{MaterialKeyBase as v}from\"../materialKey/MaterialKey.js\";import{BlendFactor as f,CompareFunction as l}from\"../../../../webgl/enums.js\";class p extends u{constructor(){super(...arguments),this._computeDesc=new Map}prepareState({context:t},e,i){i&&i.includes(\"hittest\")?t.setBlendFunctionSeparate(f.ONE,f.ONE,f.ONE,f.ONE):t.setBlendFunctionSeparate(f.ONE,f.ONE_MINUS_SRC_ALPHA,f.ONE,f.ONE_MINUS_SRC_ALPHA),t.setBlendingEnabled(!0),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!0),t.setStencilFunction(l.EQUAL,e.stencilRef,255)}draw(e,i,s){const o=this.getGeometryType();i.commit(e);const a=i.getGeometry(o);t(a)||(e.timeline.begin(this.name),e.attributeView.bindTextures(e.context),a.forEachCommand((t=>{const o=v.load(t.materialKey).symbologyType;this.supportsSymbology(o)&&this.drawGeometry(e,i,t,s)})))}_setSharedUniforms(t,u,v){const{displayLevel:f,pixelRatio:l,state:p,passOptions:c}=u;e(c)&&\"hittest\"===c.type&&(t.setUniform2fv(\"u_hittestPos\",c.position),t.setUniform1f(\"u_hittestDist\",c.distance)),t.setUniform1f(\"u_pixelRatio\",l),t.setUniformMatrix3fv(\"u_tileMat3\",v.transforms.tileMat3),t.setUniformMatrix3fv(\"u_viewMat3\",p.viewMat3),t.setUniformMatrix3fv(\"u_dvsMat3\",v.transforms.dvs),t.setUniformMatrix3fv(\"u_displayViewMat3\",p.displayViewMat3),t.setUniform1f(\"u_currentZoom\",Math.round(f*i)),t.setUniform1i(\"u_attributeTextureSize\",u.attributeView.size),t.setUniform1i(\"u_attributeData0\",s),t.setUniform1i(\"u_attributeData1\",o),t.setUniform1i(\"u_attributeData2\",a),t.setUniform1i(\"u_attributeData3\",r),t.setUniform1i(\"u_attributeData4\",n),t.setUniform1i(\"u_attributeData5\",m)}_setSizeVVUniforms(t,e,i,s){if(t.vvSizeMinMaxValue&&e.setUniform4fv(\"u_vvSizeMinMaxValue\",i.vvSizeMinMaxValue),t.vvSizeScaleStops&&e.setUniform1f(\"u_vvSizeScaleStopsValue\",i.vvSizeScaleStopsValue),t.vvSizeFieldStops){const t=i.getSizeVVFieldStops(s.key.level);e.setUniform1fv(\"u_vvSizeFieldStopsValues\",t.values),e.setUniform1fv(\"u_vvSizeFieldStopsSizes\",t.sizes)}t.vvSizeUnitValue&&e.setUniform1f(\"u_vvSizeUnitValueWorldToPixelsRatio\",i.vvSizeUnitValueToPixelsRatio)}_setColorAndOpacityVVUniforms(t,e,i){t.vvColor&&(e.setUniform1fv(\"u_vvColorValues\",i.vvColorValues),e.setUniform4fv(\"u_vvColors\",i.vvColors)),t.vvOpacity&&(e.setUniform1fv(\"u_vvOpacityValues\",i.vvOpacityValues),e.setUniform1fv(\"u_vvOpacities\",i.vvOpacities))}_setRotationVVUniforms(t,e,i){t.vvRotation&&e.setUniform1f(\"u_vvRotationType\",\"geographic\"===i.vvMaterialParameters.vvRotationType?0:1)}_getTriangleDesc(t,e,i=[\"a_pos\"]){const s=e.bufferLayouts.geometry,o=i.map((t=>s.findIndex((e=>e.name===t)))),a=`${t}-${o.join(\"-\")}`;let r=this._computeDesc.get(a);if(!r){const t=e.strides,i=e.strides.geometry,n=new Map(e.attributes),m=s.map((t=>({...t}))),u=Math.max(...e.attributes.values()),v={geometry:m};let f=0;for(const e of o){const t=s[e];v.geometry.push({count:t.count,name:t.name+\"1\",divisor:t.divisor,normalized:t.normalized,offset:i+t.offset,stride:i,type:t.type}),v.geometry.push({count:t.count,name:t.name+\"2\",divisor:t.divisor,normalized:t.normalized,offset:2*i+t.offset,stride:i,type:t.type}),n.set(t.name+\"1\",u+ ++f),n.set(t.name+\"2\",u+ ++f)}r={bufferLayouts:v,attributes:n,strides:t},this._computeDesc.set(a,r)}return r}}export{p as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e,unwrapOr as t}from\"../../../../../core/maybe.js\";import{WGLGeometryType as o,WGLSymbologyType as r}from\"../enums.js\";import{createProgramDescriptor as a}from\"../Utils.js\";import i from\"./WGLGeometryBrush.js\";import{FillMaterialKey as n}from\"../materialKey/MaterialKey.js\";import{getTechniqueFromMaterialKey as s}from\"../techniques/utils.js\";import{PrimitiveType as m,DataType as l}from\"../../../../webgl/enums.js\";function u(e){const t={geometry:[{location:0,name:\"a_pos\",count:2,type:l.SHORT},{location:1,name:\"a_id\",count:3,type:l.UNSIGNED_BYTE},{location:2,name:\"a_bitset\",count:1,type:l.UNSIGNED_BYTE},{location:3,name:\"a_color\",count:4,type:l.UNSIGNED_BYTE,normalized:!0},{location:4,name:\"a_aux1\",count:4,type:l.UNSIGNED_SHORT},{location:5,name:\"a_aux2\",count:4,type:l.SHORT},{location:6,name:\"a_aux3\",count:4,type:l.UNSIGNED_BYTE},{location:7,name:\"a_zoomRange\",count:2,type:l.UNSIGNED_SHORT}]};switch(e.symbologyType){case r.SIMPLE:case r.OUTLINE_FILL_SIMPLE:t.geometry.splice(7,1),t.geometry.splice(4,1)}return{shader:\"materials/fill\",vertexLayout:t}}class c extends i{dispose(){}getGeometryType(){return o.FILL}supportsSymbology(e){return e!==r.DOT_DENSITY}drawGeometry(o,r,i,l){const{context:c,painter:y,rendererInfo:p,requiredLevel:_,passOptions:f,requestRender:d}=o,E=n.load(i.materialKey),S=s(E.data),g=e(f)&&\"hittest\"===f.type,N=y.materialManager,{shader:T,vertexLayout:I,hittestAttributes:U}=t(S.programSpec,u(E));let x=m.TRIANGLES,L=a(E.data,I);g&&(L=this._getTriangleDesc(i.materialKey,L,U),x=m.POINTS);const{attributes:h,bufferLayouts:G}=L,O=N.getMaterialProgram(o,E,T,h,l);if(e(d)&&!g&&!O.isCompiled)return void d();if(c.useProgram(O),this._setSharedUniforms(O,o,r),O.setUniform2f(\"u_tileOffset\",512*r.key.col,512*r.key.row),E.textureBinding){y.textureManager.bindTextures(c,O,E);const e=1/2**(_-r.key.level);O.setUniform1f(\"u_zoomFactor\",e)}const b=1/o.pixelRatio;O.setUniform1f(\"u_blur\",b),O.setUniform1f(\"u_antialiasing\",b),this._setSizeVVUniforms(E,O,p,r),this._setColorAndOpacityVVUniforms(E,O,p);const D=i.target.getVAO(c,G,h,g);let R=i.indexCount,j=i.indexFrom*Uint32Array.BYTES_PER_ELEMENT;g&&(R/=3,j/=3),c.bindVAO(D),this._drawFills(o,r,O,x,R,j)}_drawFills(e,t,o,r,a,i){e.context.drawElements(r,a,l.UNSIGNED_INT,i)}}export{c as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as t,unwrapOr as e}from\"../../../../../core/maybe.js\";import{WGLGeometryType as o,WGLSymbologyType as a}from\"../enums.js\";import{createProgramDescriptor as r}from\"../Utils.js\";import i from\"./WGLGeometryBrush.js\";import{MarkerMaterialKey as n}from\"../materialKey/MaterialKey.js\";import{getTechniqueFromMaterialKey as s}from\"../techniques/utils.js\";import{DataType as m,PrimitiveType as l}from\"../../../../webgl/enums.js\";const u={shader:\"materials/icon\",vertexLayout:{geometry:[{location:0,name:\"a_pos\",count:2,type:m.SHORT},{location:1,name:\"a_vertexOffset\",count:2,type:m.SHORT},{location:2,name:\"a_texCoords\",count:2,type:m.UNSIGNED_SHORT},{location:3,name:\"a_bitSetAndDistRatio\",count:2,type:m.UNSIGNED_SHORT},{location:4,name:\"a_id\",count:4,type:m.UNSIGNED_BYTE},{location:5,name:\"a_color\",count:4,type:m.UNSIGNED_BYTE,normalized:!0},{location:6,name:\"a_outlineColor\",count:4,type:m.UNSIGNED_BYTE,normalized:!0},{location:7,name:\"a_sizeAndOutlineWidth\",count:4,type:m.UNSIGNED_BYTE},{location:8,name:\"a_zoomRange\",count:2,type:m.UNSIGNED_SHORT}]},hittestAttributes:[\"a_vertexOffset\",\"a_texCoords\"]};class d extends i{dispose(){}getGeometryType(){return o.MARKER}supportsSymbology(t){return t!==a.HEATMAP&&t!==a.PIE_CHART}drawGeometry(o,a,i,m){const{context:d,painter:c,rendererInfo:p,state:y,passOptions:_,requestRender:f}=o,E=n.load(i.materialKey),S=s(E.data),N=t(_)&&\"hittest\"===_.type,{shader:T,vertexLayout:g,hittestAttributes:x}=e(S.programSpec,u);let h=l.TRIANGLES,R=r(E.data,g);N&&(R=this._getTriangleDesc(i.materialKey,R,x),h=l.POINTS);const{attributes:U,bufferLayouts:A}=R,O=c.materialManager.getMaterialProgram(o,E,T,U,m);if(t(f)&&!N&&!O.isCompiled)return void f();d.useProgram(O),E.textureBinding&&c.textureManager.bindTextures(d,O,E,!0),this._setSharedUniforms(O,o,a);const G=E.vvRotation?y.displayViewMat3:y.displayMat3;O.setUniformMatrix3fv(\"u_displayMat3\",G),this._setSizeVVUniforms(E,O,p,a),this._setColorAndOpacityVVUniforms(E,O,p),this._setRotationVVUniforms(E,O,p);const I=i.target.getVAO(d,A,U,N);let M=i.indexCount,b=i.indexFrom*Uint32Array.BYTES_PER_ELEMENT;N&&(M/=3,b/=3),d.bindVAO(I),this._drawMarkers(o,a,O,h,M,b,N),d.bindVAO(null)}_drawMarkers(t,e,o,a,r,i,n){t.context.drawElements(a,r,m.UNSIGNED_INT,i)}}export{d as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport e from\"../../../../../core/Logger.js\";import{disposeMaybe as t,isNone as r}from\"../../../../../core/maybe.js\";import{WGLSymbologyType as a}from\"../enums.js\";import i from\"../VertexStream.js\";import s from\"./WGLGeometryBrushMarker.js\";import{assertRendererSchema as o}from\"../techniques/utils.js\";import{ContextType as u}from\"../../../../webgl/context-util.js\";import{DataType as n,BlendFactor as l,ClearBufferBit as m,TextureType as d,PixelFormat as h,PixelType as c,SizedPixelFormat as f,TextureWrapMode as _,TextureSamplingMode as p}from\"../../../../webgl/enums.js\";import{FramebufferObject as g}from\"../../../../webgl/FramebufferObject.js\";import{Texture as T}from\"../../../../webgl/Texture.js\";const x=e.getLogger(\"esri.views.2d.engine.webgl.brushes.WGLBrushHeatmap\"),F={vsPath:\"heatmap/heatmapResolve\",fsPath:\"heatmap/heatmapResolve\",attributes:new Map([[\"a_position\",0]])};class b extends s{supportsSymbology(e){return e===a.HEATMAP}dispose(){super.dispose(),this._accumulateOutputTexture=t(this._accumulateOutputTexture),this._accumulateFramebuffer=t(this._accumulateFramebuffer),this._resolveGradientTexture=t(this._resolveGradientTexture),this._tileQuad=t(this._tileQuad)}drawGeometry(e,t,r,a){const{defines:i}=this._loadQualityProfile(e.context);super.drawGeometry(e,t,r,a?[...a,...i]:i)}_drawMarkers(e,t,r,a,i,s,o){const{context:u}=e,l=u.getBoundFramebufferObject(),m=u.getViewport();this._prepareAccumulatePass(e,t,r,o),u.drawElements(a,i,n.UNSIGNED_INT,s),o||this._drawResolvePass(e,t,l,m)}_prepareAccumulatePass(e,t,r,a){const{context:i,rendererInfo:s,state:u,displayLevel:n}=e,{rendererSchema:d}=s;o(d,\"heatmap\");const{referenceScale:h,radius:c,isFieldActive:f}=d;this._loadResources(i),this._updateResources(d);const _=c*(0!==h?h/u.scale:1)*2**(t.key.level-n);r.setUniform1f(\"u_radius\",_),a||(i.bindFramebuffer(this._accumulateFramebuffer),r.setUniform1f(\"u_isFieldActive\",f),i.setViewport(0,0,this._accumulateFramebuffer.width,this._accumulateFramebuffer.height),i.setBlendingEnabled(!0),i.setBlendFunction(l.ONE,l.ONE),i.setClearColor(0,0,0,0),i.clear(m.COLOR_BUFFER_BIT))}_drawResolvePass(e,t,r,a){const{context:i,painter:s,rendererInfo:u}=e,{rendererSchema:n}=u;o(n,\"heatmap\");const{radius:m,minDensity:d,densityRange:h}=n,{defines:c}=this._loadQualityProfile(i),f=s.materialManager.getProgram(F,c);i.useProgram(f),this._setSharedUniforms(f,e,t),i.bindFramebuffer(r),i.setViewport(0,0,a.width,a.height),i.setBlendFunction(l.ONE,l.ONE_MINUS_SRC_ALPHA),i.bindTexture(this._accumulateOutputTexture,8),i.bindTexture(this._resolveGradientTexture,9),f.setUniform1i(\"u_texture\",8),f.setUniform1i(\"u_gradient\",9),f.setUniform2f(\"u_densityMinAndInvRange\",d,1/h),f.setUniform1f(\"u_densityNormalization\",3/(m*m*Math.PI)),this._tileQuad.draw()}_loadResources(e){const t=e.type===u.WEBGL2,{dataType:r,samplingMode:a,shadingRate:s}=this._loadQualityProfile(e);this._accumulateOutputTexture??(this._accumulateOutputTexture=new T(e,{target:d.TEXTURE_2D,pixelFormat:t?h.RED:h.RGBA,internalFormat:t?r===c.FLOAT?f.R32F:f.R16F:h.RGBA,dataType:r,samplingMode:a,wrapMode:_.CLAMP_TO_EDGE,width:Math.round(512*s),height:Math.round(512*s)})),this._accumulateFramebuffer??(this._accumulateFramebuffer=new g(e,{},this._accumulateOutputTexture)),this._resolveGradientTexture??(this._resolveGradientTexture=new T(e,{target:d.TEXTURE_2D,pixelFormat:h.RGBA,dataType:c.UNSIGNED_BYTE,samplingMode:p.LINEAR,wrapMode:_.CLAMP_TO_EDGE})),this._tileQuad??(this._tileQuad=new i(e,[0,0,1,0,0,1,1,1]))}_updateResources(e){const{gradientHash:t,gradient:r}=e;this._prevGradientHash!==t&&(this._resolveGradientTexture.resize(r.length/4,1),this._resolveGradientTexture.setData(r),this._prevGradientHash=t)}_loadQualityProfile(e){if(r(this._qualityProfile)){const{textureFloat:t,colorBufferFloat:r}=e.capabilities,{textureFloat:a,textureFloatLinear:i,textureHalfFloat:s,textureHalfFloatLinear:o,HALF_FLOAT:u}=t,{textureFloat:n,textureHalfFloat:l,floatBlend:m}=r;let d,h;const f=a&&n&&m,_=s&&l;f&&i?(d=c.FLOAT,h=p.LINEAR):_&&o?(d=u,h=p.LINEAR):f?(d=c.FLOAT,h=p.NEAREST):_?(d=u,h=p.NEAREST):x.error(\"Missing webgl extensions for heatmap!\"),h===p.NEAREST&&x.warnOnce(\"Missing linear filtering webgl extension(s). Heatmap quality may be reduced.\"),this._qualityProfile={dataType:d,samplingMode:h,shadingRate:.5,defines:d===u?[\"heatmapPrecisionHalfFloat\"]:[]}}return this._qualityProfile}}export{b as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{nextPowerOfTwo as t}from\"../../../../../core/mathUtils.js\";import{isSome as r}from\"../../../../../core/maybe.js\";import{c as e}from\"../../../../../chunks/mat3f32.js\";import{f as o}from\"../../../../../chunks/vec4f32.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as i,VTL_HIGH_RES_CUTOFF as s}from\"../definitions.js\";import{WGLDrawPhase as a}from\"../enums.js\";import{u32to4Xu8 as n}from\"../number.js\";import c from\"./WGLBrush.js\";import{BufferObject as m}from\"../../../../webgl/BufferObject.js\";import{TextureSamplingMode as f,CompareFunction as l,PrimitiveType as u,Usage as p}from\"../../../../webgl/enums.js\";import{VertexArrayObject as _}from\"../../../../webgl/VertexArrayObject.js\";class d extends c{constructor(){super(...arguments),this._color=o(1,0,0,1),this._patternMatrix=e(),this._programOptions={id:!1,pattern:!1}}dispose(){this._vao&&(this._vao.dispose(),this._vao=null)}drawMany(e,o){const{context:c,painter:m,styleLayerUID:p,requestRender:_}=e;this._loadWGLResources(e);const d=e.displayLevel,h=e.styleLayer,g=h.backgroundMaterial,v=m.vectorTilesMaterialManager,b=h.getPaintValue(\"background-color\",d),y=h.getPaintValue(\"background-opacity\",d),M=h.getPaintValue(\"background-pattern\",d),x=void 0!==M,j=b[3]*y,U=1|window.devicePixelRatio,L=e.spriteMosaic;let w,A;const P=U>s?2:1,I=e.drawPhase===a.HITTEST,R=this._programOptions;R.id=I,R.pattern=x;const k=v.getMaterialProgram(c,g,R);if(!r(_)||I||k.isCompiled){if(c.bindVAO(this._vao),c.useProgram(k),x){const t=L.getMosaicItemPosition(M,!0);if(r(t)){const{tl:e,br:o,page:s}=t;w=o[0]-e[0],A=o[1]-e[1];const a=L.getPageSize(s);r(a)&&(L.bind(c,f.LINEAR,s,i),k.setUniform4f(\"u_tlbr\",e[0],e[1],o[0],o[1]),k.setUniform2fv(\"u_mosaicSize\",a),k.setUniform1i(\"u_texture\",i))}k.setUniform1f(\"u_opacity\",y)}else this._color[0]=j*b[0],this._color[1]=j*b[1],this._color[2]=j*b[2],this._color[3]=j,k.setUniform4fv(\"u_color\",this._color);if(k.setUniform1f(\"u_depth\",h.z||0),I){const t=n(p+1);k.setUniform4fv(\"u_id\",t)}for(const r of o){if(k.setUniform1f(\"u_coord_range\",r.rangeX),k.setUniformMatrix3fv(\"u_dvsMat3\",r.transforms.dvs),x){const e=Math.max(2**(Math.round(d)-r.key.level),1),o=P*r.width*e,i=o/t(w),s=o/t(A);this._patternMatrix[0]=i,this._patternMatrix[4]=s,k.setUniformMatrix3fv(\"u_pattern_matrix\",this._patternMatrix)}c.setStencilFunction(l.EQUAL,r.stencilRef,255),c.drawArrays(u.TRIANGLE_STRIP,0,4)}}else _()}_loadWGLResources(t){if(this._vao)return;const{context:r,styleLayer:e}=t,o=e.backgroundMaterial,i=new Int8Array([0,0,1,0,0,1,1,1]),s=m.createVertex(r,p.STATIC_DRAW,i),a=new _(r,o.getAttributeLocations(),o.getLayoutInfo(),{geometry:s});this._vao=a}}export{d as WGLBrushVTLBackground};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e,isNone as t}from\"../../../../../core/maybe.js\";import{TranslateAnchor as r}from\"../../vectorTiles/style/StyleDefinition.js\";import{WGLDrawPhase as i}from\"../enums.js\";import{u32to4Xu8 as n}from\"../number.js\";import a from\"./WGLBrush.js\";import{CompareFunction as s,PrimitiveType as o,DataType as l}from\"../../../../webgl/enums.js\";class c extends a{constructor(){super(...arguments),this._programOptions={id:!1}}dispose(){}drawMany(a,c){const{context:m,displayLevel:f,requiredLevel:u,state:d,drawPhase:p,painter:y,spriteMosaic:g,styleLayerUID:v,requestRender:E}=a;if(!c.some((e=>e.layerData.get(v)?.circleIndexCount??!1)))return;const M=a.styleLayer,T=M.circleMaterial,x=y.vectorTilesMaterialManager,I=1.2,U=M.getPaintValue(\"circle-translate\",f),_=M.getPaintValue(\"circle-translate-anchor\",f),h=p===i.HITTEST,L=this._programOptions;L.id=h;const R=x.getMaterialProgram(m,T,L);if(!h&&e(E)&&!R.isCompiled)return void E();m.useProgram(R),R.setUniformMatrix3fv(\"u_displayMat3\",_===r.VIEWPORT?d.displayMat3:d.displayViewMat3),R.setUniform2fv(\"u_circleTranslation\",U),R.setUniform1f(\"u_depth\",M.z),R.setUniform1f(\"u_antialiasingWidth\",I);let S=-1;if(h){const e=n(v+1);R.setUniform4fv(\"u_id\",e)}for(const e of c){if(!e.layerData.has(v))continue;e.key.level!==S&&(S=e.key.level,T.setDataUniforms(R,f,M,S,g));const r=e.layerData.get(v);if(!r.circleIndexCount)continue;r.prepareForRendering(m);const i=r.circleVertexArrayObject;t(i)||(m.bindVAO(i),R.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),u!==e.key.level?m.setStencilFunction(s.EQUAL,e.stencilRef,255):m.setStencilFunction(s.GREATER,255,255),m.drawElements(o.TRIANGLES,r.circleIndexCount,l.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r.circleIndexStart),e.triangleCount+=r.circleIndexCount/3)}}}export{c as WGLBrushVTLCircle};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isNone as t,isSome as e}from\"../../../../../core/maybe.js\";import{TranslateAnchor as i}from\"../../vectorTiles/style/StyleDefinition.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as r,VTL_HIGH_RES_CUTOFF as n}from\"../definitions.js\";import{WGLDrawPhase as a}from\"../enums.js\";import{u32to4Xu8 as o}from\"../number.js\";import s from\"./WGLBrush.js\";import{TextureSamplingMode as l,CompareFunction as f,PrimitiveType as u,DataType as d}from\"../../../../webgl/enums.js\";const c=1/65536;class m extends s{constructor(){super(...arguments),this._fillProgramOptions={id:!1,pattern:!1},this._outlineProgramOptions={id:!1}}dispose(){}drawMany(t,e){const{displayLevel:i,drawPhase:r,renderPass:n,spriteMosaic:s,styleLayerUID:l}=t;let f=!1;for(const a of e)if(a.layerData.has(l)){const t=a.layerData.get(l);if(t.fillIndexCount>0||t.outlineIndexCount>0){f=!0;break}}if(!f)return;const u=t.styleLayer,d=u.getPaintProperty(\"fill-pattern\"),c=void 0!==d,m=c&&d.isDataDriven;let p;if(c&&!m){const t=d.getValue(i);p=s.getMosaicItemPosition(t,!0)}const y=!c&&u.getPaintValue(\"fill-antialias\",i);let g=!0,_=1;if(!c){const t=u.getPaintProperty(\"fill-color\"),e=u.getPaintProperty(\"fill-opacity\");if(!t?.isDataDriven&&!e?.isDataDriven){const t=u.getPaintValue(\"fill-color\",i);_=u.getPaintValue(\"fill-opacity\",i)*t[3],_>=1&&(g=!1)}}if(g&&\"opaque\"===n)return;let E;r===a.HITTEST&&(E=o(l+1));const v=u.getPaintValue(\"fill-translate\",i),M=u.getPaintValue(\"fill-translate-anchor\",i);(g||\"translucent\"!==n)&&this._drawFill(t,l,u,e,v,M,c,p,m,E);const P=!u.hasDataDrivenOutlineColor&&u.outlineUsesFillColor&&_<1;y&&\"opaque\"!==n&&!P&&this._drawOutline(t,l,u,e,v,M,E)}_drawFill(o,s,m,p,y,g,_,E,v,M){if(_&&!v&&t(E))return;const{context:P,displayLevel:I,state:T,drawPhase:U,painter:x,pixelRatio:h,spriteMosaic:D,requestRender:S}=o,R=m.fillMaterial,N=x.vectorTilesMaterialManager,w=h>n?2:1,L=U===a.HITTEST,A=this._fillProgramOptions;A.id=L,A.pattern=_;const C=N.getMaterialProgram(P,R,A);if(e(S)&&!L&&!C.isCompiled)return void S();if(P.useProgram(C),e(E)){const{page:t}=E,i=D.getPageSize(t);e(i)&&(D.bind(P,l.LINEAR,t,r),C.setUniform2fv(\"u_mosaicSize\",i),C.setUniform1i(\"u_texture\",r))}C.setUniformMatrix3fv(\"u_displayMat3\",g===i.VIEWPORT?T.displayMat3:T.displayViewMat3),C.setUniform2fv(\"u_fillTranslation\",y),C.setUniform1f(\"u_depth\",m.z+c),L&&C.setUniform4fv(\"u_id\",M);let V=-1;for(const i of p){if(!i.layerData.has(s))continue;i.key.level!==V&&(V=i.key.level,R.setDataUniforms(C,I,m,V,D));const n=i.layerData.get(s);if(!n.fillIndexCount)continue;n.prepareForRendering(P);const a=n.fillVertexArrayObject;if(!t(a)){if(P.bindVAO(a),C.setUniformMatrix3fv(\"u_dvsMat3\",i.transforms.dvs),P.setStencilFunction(f.EQUAL,i.stencilRef,255),_){const t=Math.max(2**(Math.round(I)-i.key.level),1),e=i.rangeX/(w*i.width*t);C.setUniform1f(\"u_patternFactor\",e)}if(v){const t=n.patternMap;if(!t)continue;for(const[i,n]of t){const t=D.getPageSize(i);e(t)&&(D.bind(P,l.LINEAR,i,r),C.setUniform2fv(\"u_mosaicSize\",t),C.setUniform1i(\"u_texture\",r),P.drawElements(u.TRIANGLES,n[1],d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*n[0]))}}else P.drawElements(u.TRIANGLES,n.fillIndexCount,d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*n.fillIndexStart);i.triangleCount+=n.fillIndexCount/3}}}_drawOutline(r,n,o,s,l,m,p){const{context:y,displayLevel:g,state:_,drawPhase:E,painter:v,pixelRatio:M,spriteMosaic:P,requestRender:I}=r,T=o.outlineMaterial,U=v.vectorTilesMaterialManager,x=.75/M,h=E===a.HITTEST,D=this._outlineProgramOptions;D.id=h;const S=U.getMaterialProgram(y,T,D);if(e(I)&&!h&&!S.isCompiled)return void I();y.useProgram(S),S.setUniformMatrix3fv(\"u_displayMat3\",m===i.VIEWPORT?_.displayMat3:_.displayViewMat3),S.setUniform2fv(\"u_fillTranslation\",l),S.setUniform1f(\"u_depth\",o.z+c),S.setUniform1f(\"u_outline_width\",x),h&&S.setUniform4fv(\"u_id\",p);let R=-1;for(const e of s){if(!e.layerData.has(n))continue;e.key.level!==R&&(R=e.key.level,T.setDataUniforms(S,g,o,R,P));const i=e.layerData.get(n);if(i.prepareForRendering(y),!i.outlineIndexCount)continue;const r=i.outlineVertexArrayObject;t(r)||(y.bindVAO(r),S.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),y.setStencilFunction(f.EQUAL,e.stencilRef,255),y.drawElements(u.TRIANGLES,i.outlineIndexCount,d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i.outlineIndexStart),e.triangleCount+=i.outlineIndexCount/3)}}}export{m as WGLBrushVTLFill};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e,isNone as t}from\"../../../../../core/maybe.js\";import{TranslateAnchor as i}from\"../../vectorTiles/style/StyleDefinition.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as n}from\"../definitions.js\";import{WGLDrawPhase as r}from\"../enums.js\";import{u32to4Xu8 as a}from\"../number.js\";import o from\"./WGLBrush.js\";import{TextureSamplingMode as s,CompareFunction as l,PrimitiveType as f,DataType as m}from\"../../../../webgl/enums.js\";class u extends o{constructor(){super(...arguments),this._programOptions={id:!1,pattern:!1,sdf:!1}}dispose(){}drawMany(o,u){const{context:c,displayLevel:d,state:p,drawPhase:g,painter:y,pixelRatio:E,spriteMosaic:M,styleLayerUID:_,requestRender:v}=o;if(!u.some((e=>e.layerData.get(_)?.lineIndexCount??!1)))return;const U=o.styleLayer,I=U.lineMaterial,P=y.vectorTilesMaterialManager,x=U.getPaintValue(\"line-translate\",d),T=U.getPaintValue(\"line-translate-anchor\",d),S=U.getPaintProperty(\"line-pattern\"),D=void 0!==S,L=D&&S.isDataDriven;let N,R;if(D&&!L){const e=S.getValue(d);N=M.getMosaicItemPosition(e)}let V=!1;if(!D){const e=U.getPaintProperty(\"line-dasharray\");if(R=void 0!==e,V=R&&e.isDataDriven,R&&!V){const t=e.getValue(d),i=U.getDashKey(t,U.getLayoutValue(\"line-cap\",d));N=M.getMosaicItemPosition(i)}}const h=1/E,A=g===r.HITTEST,j=this._programOptions;j.id=A,j.pattern=D,j.sdf=R;const w=P.getMaterialProgram(c,I,j);if(e(v)&&!A&&!w.isCompiled)return void v();if(c.useProgram(w),w.setUniformMatrix3fv(\"u_displayViewMat3\",p.displayViewMat3),w.setUniformMatrix3fv(\"u_displayMat3\",T===i.VIEWPORT?p.displayMat3:p.displayViewMat3),w.setUniform2fv(\"u_lineTranslation\",x),w.setUniform1f(\"u_depth\",U.z),w.setUniform1f(\"u_antialiasing\",h),A){const e=a(_+1);w.setUniform4fv(\"u_id\",e)}if(N&&e(N)){const{page:t}=N,i=M.getPageSize(t);e(i)&&(M.bind(c,s.LINEAR,t,n),w.setUniform2fv(\"u_mosaicSize\",i),w.setUniform1i(\"u_texture\",n))}let b=-1;for(const i of u){if(!i.layerData.has(_))continue;i.key.level!==b&&(b=i.key.level,I.setDataUniforms(w,d,U,b,M));const r=2**(d-b)/E;w.setUniform1f(\"u_zoomFactor\",r);const a=i.layerData.get(_);if(!a.lineIndexCount)continue;a.prepareForRendering(c);const o=a.lineVertexArrayObject;if(!t(o)){if(c.bindVAO(o),w.setUniformMatrix3fv(\"u_dvsMat3\",i.transforms.dvs),c.setStencilFunction(l.EQUAL,i.stencilRef,255),L||V){const t=a.patternMap;if(!t)continue;for(const[i,r]of t){const t=M.getPageSize(i);e(t)&&(M.bind(c,s.LINEAR,i,n),w.setUniform2fv(\"u_mosaicSize\",t),w.setUniform1i(\"u_texture\",n),c.drawElements(f.TRIANGLES,r[1],m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r[0]))}}else c.drawElements(f.TRIANGLES,a.lineIndexCount,m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a.lineIndexStart);i.triangleCount+=a.lineIndexCount/3}}}}export{u as WGLBrushVTLLine};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e,isNone as t}from\"../../../../../core/maybe.js\";import{c as i,f as a}from\"../../../../../chunks/vec2f32.js\";import{FADE_DURATION as r}from\"../../vectorTiles/decluttering/config.js\";import{RotationAlignment as s,SymbolPlacement as n,TranslateAnchor as o}from\"../../vectorTiles/style/StyleDefinition.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as l,VTL_TEXTURE_BINDING_UNIT_GLYPHS as f}from\"../definitions.js\";import{WGLDrawPhase as u}from\"../enums.js\";import{degToByte as m}from\"../GeometryUtils.js\";import{u32to4Xu8 as p}from\"../number.js\";import c from\"./WGLBrush.js\";import{TextureSamplingMode as d,CompareFunction as g,PrimitiveType as y,DataType as _}from\"../../../../webgl/enums.js\";const h=1/65536;class M extends c{constructor(){super(...arguments),this._iconProgramOptions={id:!1,sdf:!1},this._sdfProgramOptions={id:!1},this._spritesTextureSize=i()}dispose(){}drawMany(e,t){const{drawPhase:i,styleLayerUID:a}=e,r=e.styleLayer;let s;i===u.HITTEST&&(s=p(a+1)),this._drawIcons(e,r,t,s),this._drawText(e,r,t,s)}_drawIcons(i,a,f,p){const{context:c,displayLevel:d,drawPhase:g,painter:y,spriteMosaic:_,state:h,styleLayerUID:M,requestRender:P}=i,T=a.iconMaterial,U=y.vectorTilesMaterialManager;let E,x=!1;for(const e of f)if(e.layerData.has(M)&&(E=e.layerData.get(M),E.iconPerPageElementsMap.size>0)){x=!0;break}if(!x)return;const v=a.getPaintValue(\"icon-translate\",d),I=a.getPaintValue(\"icon-translate-anchor\",d);let S=a.getLayoutValue(\"icon-rotation-alignment\",d);S===s.AUTO&&(S=a.getLayoutValue(\"symbol-placement\",d)===n.POINT?s.VIEWPORT:s.MAP);const D=S===s.MAP,V=a.getLayoutValue(\"icon-keep-upright\",d)&&D,R=E.isIconSDF,w=g===u.HITTEST,A=this._iconProgramOptions;A.id=w,A.sdf=R;const L=U.getMaterialProgram(c,T,A);if(e(P)&&!w&&!L.isCompiled)return void P();c.useProgram(L),L.setUniformMatrix3fv(\"u_displayViewMat3\",S===s.MAP?h.displayViewMat3:h.displayMat3),L.setUniformMatrix3fv(\"u_displayMat3\",I===o.VIEWPORT?h.displayMat3:h.displayViewMat3),L.setUniform2fv(\"u_iconTranslation\",v),L.setUniform1f(\"u_depth\",a.z),L.setUniform1f(\"u_mapRotation\",m(h.rotation)),L.setUniform1f(\"u_keepUpright\",V?1:0),L.setUniform1f(\"u_level\",10*d),L.setUniform1i(\"u_texture\",l),L.setUniform1f(\"u_fadeDuration\",r/1e3),w&&L.setUniform4fv(\"u_id\",p);let O=-1;for(const e of f){if(!e.layerData.has(M))continue;if(e.key.level!==O&&(O=e.key.level,T.setDataUniforms(L,d,a,O,_)),E=e.layerData.get(M),0===E.iconPerPageElementsMap.size)continue;E.prepareForRendering(c),E.updateOpacityInfo();const r=E.iconVertexArrayObject;if(!t(r)){c.bindVAO(r),L.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),L.setUniform1f(\"u_time\",(performance.now()-E.lastOpacityUpdate)/1e3);for(const[t,a]of E.iconPerPageElementsMap)this._renderIconRange(i,L,a,t,e)}}}_renderIconRange(e,t,i,a,r){const{context:s,spriteMosaic:n}=e;this._spritesTextureSize[0]=n.getWidth(a)/4,this._spritesTextureSize[1]=n.getHeight(a)/4,t.setUniform2fv(\"u_mosaicSize\",this._spritesTextureSize),n.bind(s,d.LINEAR,a,l),s.setStencilTestEnabled(!0),s.setStencilFunction(g.GREATER,255,255),s.setStencilWriteMask(0),s.drawElements(y.TRIANGLES,i[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i[0]),r.triangleCount+=i[1]/3}_drawText(i,l,p,c){const{context:d,displayLevel:y,drawPhase:_,glyphMosaic:M,painter:P,pixelRatio:T,spriteMosaic:U,state:E,styleLayerUID:x,requestRender:v}=i,I=l.textMaterial,S=P.vectorTilesMaterialManager;let D,V=!1;for(const e of p)if(e.layerData.has(x)&&(D=e.layerData.get(x),D.glyphPerPageElementsMap.size>0)){V=!0;break}if(!V)return;const R=l.getPaintProperty(\"text-opacity\");if(R&&!R.isDataDriven&&0===R.getValue(y))return;const w=l.getPaintProperty(\"text-color\"),A=!w||w.isDataDriven||w.getValue(y)[3]>0,L=l.getPaintProperty(\"text-halo-width\"),O=l.getPaintProperty(\"text-halo-color\"),N=(!L||L.isDataDriven||L.getValue(y)>0)&&(!O||O.isDataDriven||O.getValue(y)[3]>0);if(!A&&!N)return;const b=24/8;let z=l.getLayoutValue(\"text-rotation-alignment\",y);z===s.AUTO&&(z=l.getLayoutValue(\"symbol-placement\",y)===n.POINT?s.VIEWPORT:s.MAP);const k=z===s.MAP,j=l.getLayoutValue(\"text-keep-upright\",y)&&k,G=_===u.HITTEST,W=.8*b/T;this._glyphTextureSize||(this._glyphTextureSize=a(M.width/4,M.height/4));const C=l.getPaintValue(\"text-translate\",y),F=l.getPaintValue(\"text-translate-anchor\",y),B=this._sdfProgramOptions;B.id=G;const H=S.getMaterialProgram(d,I,B);if(e(v)&&!G&&!H.isCompiled)return void v();d.useProgram(H),H.setUniformMatrix3fv(\"u_displayViewMat3\",z===s.MAP?E.displayViewMat3:E.displayMat3),H.setUniformMatrix3fv(\"u_displayMat3\",F===o.VIEWPORT?E.displayMat3:E.displayViewMat3),H.setUniform2fv(\"u_textTranslation\",C),H.setUniform1f(\"u_depth\",l.z+h),H.setUniform2fv(\"u_mosaicSize\",this._glyphTextureSize),H.setUniform1f(\"u_mapRotation\",m(E.rotation)),H.setUniform1f(\"u_keepUpright\",j?1:0),H.setUniform1f(\"u_level\",10*y),H.setUniform1i(\"u_texture\",f),H.setUniform1f(\"u_antialiasingWidth\",W),H.setUniform1f(\"u_fadeDuration\",r/1e3),G&&H.setUniform4fv(\"u_id\",c);let Y=-1;for(const e of p){if(!e.layerData.has(x))continue;if(e.key.level!==Y&&(Y=e.key.level,I.setDataUniforms(H,y,l,Y,U)),D=e.layerData.get(x),0===D.glyphPerPageElementsMap.size)continue;D.prepareForRendering(d),D.updateOpacityInfo();const i=D.textVertexArrayObject;if(t(i))continue;d.bindVAO(i),H.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),d.setStencilTestEnabled(!0),d.setStencilFunction(g.GREATER,255,255),d.setStencilWriteMask(0);const a=(performance.now()-D.lastOpacityUpdate)/1e3;H.setUniform1f(\"u_time\",a),D.glyphPerPageElementsMap.forEach(((t,i)=>{this._renderGlyphRange(d,t,i,M,H,N,A,e)}))}}_renderGlyphRange(e,t,i,a,r,s,n,o){a.bind(e,d.LINEAR,i,f),s&&(r.setUniform1f(\"u_halo\",1),e.drawElements(y.TRIANGLES,t[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),o.triangleCount+=t[1]/3),n&&(r.setUniform1f(\"u_halo\",0),e.drawElements(y.TRIANGLES,t[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),o.triangleCount+=t[1]/3)}}export{M as WGLBrushVTLSymbol};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport r from\"./flow/BrushFlow.js\";import s from\"./imagery/BrushRasterBitmap.js\";import e from\"./imagery/BrushVectorField.js\";import o from\"./webgl/brushes/BrushBitmap.js\";import l from\"./webgl/brushes/BrushClip.js\";import t from\"./webgl/brushes/BrushOverlay.js\";import m from\"./webgl/brushes/WGLBrushDotDensity.js\";import i from\"./webgl/brushes/WGLBrushHeatmap.js\";import b from\"./webgl/brushes/WGLBrushInfo.js\";import h from\"./webgl/brushes/WGLBrushPieChart.js\";import u from\"./webgl/brushes/WGLBrushStencil.js\";import{WGLBrushVTLBackground as p}from\"./webgl/brushes/WGLBrushVTLBackground.js\";import{WGLBrushVTLCircle as f}from\"./webgl/brushes/WGLBrushVTLCircle.js\";import{WGLBrushVTLFill as B}from\"./webgl/brushes/WGLBrushVTLFill.js\";import{WGLBrushVTLLine as L}from\"./webgl/brushes/WGLBrushVTLLine.js\";import{WGLBrushVTLSymbol as a}from\"./webgl/brushes/WGLBrushVTLSymbol.js\";import g from\"./webgl/brushes/WGLGeometryBrushFill.js\";import j from\"./webgl/brushes/WGLGeometryBrushLabel.js\";import w from\"./webgl/brushes/WGLGeometryBrushLine.js\";import G from\"./webgl/brushes/WGLGeometryBrushMarker.js\";import n from\"./webgl/brushes/WGLGeometryBrushText.js\";const W={marker:G,line:w,fill:g,text:n,label:j,clip:l,stencil:u,bitmap:o,overlay:t,raster:s,rasterVF:e,flow:r,tileInfo:b,vtlBackground:p,vtlFill:B,vtlLine:L,vtlCircle:f,vtlSymbol:a,dotDensity:m,heatmap:i,pieChart:h},y={vtlBackground:p,vtlFill:B,vtlLine:L,vtlCircle:f,vtlSymbol:a};export{W as brushes,y as vtlBrushes};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e}from\"../../../../../core/maybe.js\";import{WGLGeometryType as t}from\"../enums.js\";import{createProgramDescriptor as o}from\"../Utils.js\";import a from\"./WGLGeometryBrush.js\";import{LineMaterialKey as n}from\"../materialKey/MaterialKey.js\";import{DataType as r,PrimitiveType as i}from\"../../../../webgl/enums.js\";const s=e=>o(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:r.SHORT},{location:1,name:\"a_id\",count:4,type:r.UNSIGNED_BYTE},{location:2,name:\"a_color\",count:4,type:r.UNSIGNED_BYTE,normalized:!0},{location:3,name:\"a_offsetAndNormal\",count:4,type:r.BYTE},{location:4,name:\"a_accumulatedDistanceAndHalfWidth\",count:2,type:r.UNSIGNED_SHORT},{location:5,name:\"a_tlbr\",count:4,type:r.UNSIGNED_SHORT},{location:6,name:\"a_segmentDirection\",count:4,type:r.BYTE},{location:7,name:\"a_aux\",count:2,type:r.UNSIGNED_SHORT},{location:8,name:\"a_zoomRange\",count:2,type:r.UNSIGNED_SHORT}]});class m extends a{dispose(){}getGeometryType(){return t.LINE}supportsSymbology(e){return!0}drawGeometry(t,o,a,m){const{context:l,painter:c,rendererInfo:u,displayLevel:p,passOptions:y,requestRender:d}=t,_=n.load(a.materialKey),f=e(y)&&\"hittest\"===y.type;let E=s(_),N=i.TRIANGLES;f&&(E=this._getTriangleDesc(a.materialKey,E),N=i.POINTS);const{attributes:g,bufferLayouts:S}=E,T=c.materialManager.getMaterialProgram(t,_,\"materials/line\",g,m);if(e(d)&&!f&&!T.isCompiled)return void d();const U=1/t.pixelRatio,G=0;l.useProgram(T),this._setSharedUniforms(T,t,o),_.textureBinding&&c.textureManager.bindTextures(l,T,_);const I=2**(p-o.key.level);T.setUniform1f(\"u_zoomFactor\",I),T.setUniform1f(\"u_blur\",G+U),T.setUniform1f(\"u_antialiasing\",U),this._setSizeVVUniforms(_,T,u,o),this._setColorAndOpacityVVUniforms(_,T,u),l.setFaceCullingEnabled(!1);const b=a.target.getVAO(l,S,g,f);let x=a.indexCount,D=a.indexFrom*Uint32Array.BYTES_PER_ELEMENT;f&&(x/=3,D/=3),l.bindVAO(b),l.drawElements(N,x,r.UNSIGNED_INT,D)}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as t}from\"../../../../../core/maybe.js\";import{WGLGeometryType as e}from\"../enums.js\";import{createProgramDescriptor as o}from\"../Utils.js\";import a from\"./WGLGeometryBrush.js\";import{TextMaterialKey as r}from\"../materialKey/MaterialKey.js\";import{DataType as n,PrimitiveType as i}from\"../../../../webgl/enums.js\";const s=t=>o(t.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:n.SHORT},{location:1,name:\"a_id\",count:4,type:n.UNSIGNED_BYTE},{location:2,name:\"a_color\",count:4,type:n.UNSIGNED_BYTE,normalized:!0},{location:3,name:\"a_haloColor\",count:4,type:n.UNSIGNED_BYTE,normalized:!0},{location:4,name:\"a_texFontSize\",count:4,type:n.UNSIGNED_BYTE},{location:5,name:\"a_aux\",count:4,type:n.BYTE},{location:6,name:\"a_zoomRange\",count:2,type:n.UNSIGNED_SHORT},{location:7,name:\"a_vertexOffset\",count:2,type:n.SHORT},{location:8,name:\"a_texCoords\",count:2,type:n.UNSIGNED_SHORT}]});class m extends a{dispose(){}getGeometryType(){return e.TEXT}supportsSymbology(t){return!0}drawGeometry(e,o,a,m){const{context:l,painter:p,rendererInfo:u,state:y,passOptions:d,requestRender:_}=e,c=r.load(a.materialKey),f=t(d)&&\"hittest\"===d.type,{bufferLayouts:E,attributes:N}=s(c),S=p.materialManager.getMaterialProgram(e,c,\"materials/text\",N,m);if(t(_)&&!f&&!S.isCompiled)return void _();l.useProgram(S);let T=i.TRIANGLES;f&&(T=i.POINTS),this._setSharedUniforms(S,e,o),p.textureManager.bindTextures(l,S,c),S.setUniformMatrix3fv(\"u_displayMat3\",y.displayMat3),S.setUniformMatrix3fv(\"u_displayViewMat3\",y.displayViewMat3),this._setSizeVVUniforms(c,S,u,o),this._setColorAndOpacityVVUniforms(c,S,u),this._setRotationVVUniforms(c,S,u),S.setUniform1f(\"u_isHalo\",1);const U=a.target.getVAO(l,E,N),x=a.indexFrom*Uint32Array.BYTES_PER_ELEMENT;l.bindVAO(U),l.drawElements(i.TRIANGLES,a.indexCount,n.UNSIGNED_INT,x),S.setUniform1f(\"u_isHalo\",0),l.drawElements(T,a.indexCount,n.UNSIGNED_INT,x)}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as e}from\"../../../../../core/maybe.js\";import{WGLGeometryType as t}from\"../enums.js\";import{createProgramDescriptor as o}from\"../Utils.js\";import a from\"./WGLGeometryBrush.js\";import{LabelMaterialKey as n}from\"../materialKey/MaterialKey.js\";import{DataType as r,CompareFunction as i,PrimitiveType as s}from\"../../../../webgl/enums.js\";const m=e=>o(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:r.SHORT},{location:1,name:\"a_id\",count:4,type:r.UNSIGNED_BYTE},{location:2,name:\"a_color\",count:4,type:r.UNSIGNED_BYTE,normalized:!0},{location:3,name:\"a_haloColor\",count:4,type:r.UNSIGNED_BYTE,normalized:!0},{location:4,name:\"a_texAndSize\",count:4,type:r.UNSIGNED_BYTE},{location:5,name:\"a_refSymbolAndPlacementOffset\",count:4,type:r.UNSIGNED_BYTE},{location:6,name:\"a_glyphData\",count:4,type:r.UNSIGNED_BYTE},{location:7,name:\"a_vertexOffset\",count:2,type:r.SHORT},{location:8,name:\"a_texCoords\",count:2,type:r.UNSIGNED_SHORT}]});class l extends a{dispose(){}getGeometryType(){return t.LABEL}supportsSymbology(e){return!0}drawGeometry(t,o,a,l){const{context:u,painter:p,state:c,rendererInfo:d,passOptions:f,requestRender:y}=t,_=n.load(a.materialKey),E=e(f)&&\"hittest\"===f.type,N=_.mapAligned?1:0;if(!N&&Math.abs(o.key.level-Math.round(100*t.displayLevel)/100)>=1)return;const{bufferLayouts:S,attributes:U}=m(_),T=p.materialManager.getMaterialProgram(t,_,\"materials/label\",U,l);if(e(y)&&!E&&!T.isCompiled)return void y();t.context.setStencilFunction(i.EQUAL,0,255),u.useProgram(T),this._setSharedUniforms(T,t,o),p.textureManager.bindTextures(u,T,_);const g=1===N?c.displayViewMat3:c.displayMat3;this._setSizeVVUniforms(_,T,d,o),T.setUniform1f(\"u_mapRotation\",Math.floor(c.rotation/360*254)),T.setUniform1f(\"u_mapAligned\",N),T.setUniformMatrix3fv(\"u_displayMat3\",g),T.setUniform1f(\"u_opacity\",1),T.setUniform2fv(\"u_screenSize\",t.state.size),T.setUniform1f(\"u_isHalo\",1);const G=a.target.getVAO(u,S,U),I=a.indexFrom*Uint32Array.BYTES_PER_ELEMENT;u.bindVAO(G),u.drawElements(s.TRIANGLES,a.indexCount,r.UNSIGNED_INT,I),T.setUniform1f(\"u_isHalo\",0),u.drawElements(s.TRIANGLES,a.indexCount,r.UNSIGNED_INT,I),u.setStencilTestEnabled(!0),u.setBlendingEnabled(!0)}}export{l as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{disposeMaybe as e,isSome as t,isNone as o}from\"../../../../../core/maybe.js\";import r from\"../../../../../core/RandomLCG.js\";import{TEXTURE_BINDING_RENDERER_0 as s,TEXTURE_BINDING_RENDERER_1 as i,TILE_SIZE as n}from\"../definitions.js\";import{WGLGeometryType as d,WGLSymbologyType as a}from\"../enums.js\";import l from\"./WGLGeometryBrushFill.js\";import{assertRendererSchema as _}from\"../techniques/utils.js\";import{BufferObject as u}from\"../../../../webgl/BufferObject.js\";import{DataType as m,PrimitiveType as h,TextureType as c,PixelFormat as f,PixelType as T,TextureSamplingMode as p,TextureWrapMode as x,TargetType as w,DepthStencilTargetType as D,RenderbufferFormat as g,Usage as y}from\"../../../../webgl/enums.js\";import{FramebufferObject as S}from\"../../../../webgl/FramebufferObject.js\";import{Renderbuffer as E}from\"../../../../webgl/Renderbuffer.js\";import{Texture as b}from\"../../../../webgl/Texture.js\";import{VertexArrayObject as F}from\"../../../../webgl/VertexArrayObject.js\";class O extends l{constructor(){super(...arguments),this._dotTextureSize=0,this._dotTextures=null,this._dotSamplers=new Int32Array([s,i]),this._dotVAO=null,this._dotDesc={vsPath:\"dot/dot\",fsPath:\"dot/dot\",attributes:new Map([[\"a_pos\",0]])}}dispose(){super.dispose(),this._disposeTextures(),this._dotFBO=e(this._dotFBO),this._dotVAO=e(this._dotVAO)}getGeometryType(){return d.FILL}supportsSymbology(e){return e===a.DOT_DENSITY}_drawFills(e,o,r,s,i,n){const{passOptions:d}=e;if(t(d)&&\"hittest\"===d.type)super._drawFills(e,o,r,s,i,n);else{const t=this._drawDotLocations(e,o,r,i,n);this._drawDotDensity(e,o,t)}}_drawDotDensity(e,o,r){const{context:s,painter:i,rendererInfo:n,requestRender:d}=e,a=i.materialManager.getProgram(this._dotDesc);if(t(d)&&!a.isCompiled)return void d();const{rendererSchema:l}=n;_(l,\"dot-density\");const u=this._createDotDensityMesh(s,this._dotDesc.attributes,{geometry:[{name:\"a_pos\",count:2,type:m.SHORT,divisor:0,normalized:!1,offset:0,stride:4}]});s.setStencilTestEnabled(!0),s.useProgram(a),a.setUniform1f(\"u_tileZoomFactor\",1),a.setUniform1i(\"u_texture\",this._dotSamplers[0]),a.setUniform1f(\"u_dotSize\",Math.max(l.dotSize,1)),a.setUniform1f(\"u_pixelRatio\",window.devicePixelRatio),this._setSharedUniforms(a,e,o),s.bindTexture(r,this._dotSamplers[0]),s.bindVAO(u),s.drawArrays(h.POINTS,0,262144)}_drawDotLocations(e,t,o,r,s){const{context:i,rendererInfo:d,requiredLevel:a}=e,l=i.getViewport(),{rendererSchema:u}=d;_(u,\"dot-density\");const{dotScale:c,colors:f,activeDots:T,backgroundColor:p,dotValue:x}=u;i.setViewport(0,0,512,512);const w=i.getBoundFramebufferObject(),D=this._createFBO(i);i.bindFramebuffer(D),i.setClearColor(0,0,0,0),i.clear(i.gl.COLOR_BUFFER_BIT|i.gl.STENCIL_BUFFER_BIT),i.setStencilTestEnabled(!1);const g=1/2**(a-t.key.level),y=n,S=y*window.devicePixelRatio*y*window.devicePixelRatio,E=1/g*(1/g),b=c?e.state.scale/c:1;return o.setUniform1f(\"u_tileZoomFactor\",g),o.setUniform1f(\"u_tileDotsOverArea\",S/(n*window.devicePixelRatio*n*window.devicePixelRatio)),o.setUniformMatrix4fv(\"u_dotColors\",f),o.setUniform4fv(\"u_isActive\",T),o.setUniform4fv(\"u_dotBackgroundColor\",p),o.setUniform1f(\"u_dotValue\",Math.max(1,x*b*E)),this._bindDotDensityTextures(i,o,d,y),i.drawElements(h.TRIANGLES,r,m.UNSIGNED_INT,s),i.setViewport(l.x,l.y,l.width,l.height),i.bindFramebuffer(w),D.colorTexture}_createFBO(e){if(o(this._dotFBO)){const t=512,o=512,r={target:c.TEXTURE_2D,pixelFormat:f.RGBA,dataType:T.UNSIGNED_BYTE,samplingMode:p.NEAREST,wrapMode:x.CLAMP_TO_EDGE,width:t,height:o},s={colorTarget:w.TEXTURE,depthStencilTarget:D.DEPTH_STENCIL_RENDER_BUFFER},i=new E(e,{width:t,height:o,internalFormat:g.DEPTH_STENCIL});this._dotFBO=new S(e,s,r,i)}return this._dotFBO}_disposeTextures(){if(this._dotTextures){for(let e=0;et.dispose())),this._rasterTexture=null,this._transformGridTexture=null,this._colormapTexture=null}get symbolizerParameters(){return this._symbolizerParameters||x}set symbolizerParameters(t){this._symbolizerParameters!==t&&(this._symbolizerParameters=t,this._colormapTextureInvalidated=!0)}get source(){return this._source}set source(t){this._source!==t&&(this._source=t,this._rasterTexture&&(this._rasterTexture.dispose(),this._rasterTexture=null,this._rasterTextureBandIds=null),this.invalidateTexture())}get suspended(){return this._suspended}set suspended(t){this._suspended&&!t&&this.stage&&(this.ready(),this.requestRender()),this._suspended=t}get bandIds(){return this._bandIds}set bandIds(t){this._bandIds=t,this._isBandIdschanged(t)&&this.invalidateTexture()}get interpolation(){return this._interpolation||\"nearest\"}set interpolation(t){this._interpolation=t,this._rasterTexture&&this._rasterTexture.setSamplingMode(\"bilinear\"===this._getTextureSamplingMethod(t)?l.LINEAR:l.NEAREST)}get transformGrid(){return this._transformGrid}set transformGrid(t){this._transformGrid=t,this._transformGridTexture&&(this._transformGridTexture.dispose(),this._transformGridTexture=null)}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this.requestRender())}_createTransforms(){return{dvs:o()}}setTransform(t){const o=e(this.transforms.dvs),[n,h]=t.toScreenNoRotation([0,0],[this.x,this.y]),l=this.resolution/this.pixelRatio/t.resolution,d=l*this.width,_=l*this.height,m=Math.PI*this.rotation/180;r(o,o,u(n,h)),r(o,o,u(d/2,_/2)),s(o,o,-m),r(o,o,u(-d/2,-_/2)),i(o,o,u(d,_)),a(this.transforms.dvs,t.displayViewMat3,o)}getTextures(){if(!this._rasterTexture)return null;const t=[],e=[];return this._transformGridTexture&&(e.push(this._transformGridTexture),t.push(\"u_transformGrid\")),this._rasterTexture&&(e.push(this._rasterTexture),t.push(\"u_image\")),this._colormapTexture&&(e.push(this._colormapTexture),t.push(\"u_colormap\")),{names:t,textures:e}}onAttach(){this.invalidateTexture()}onDetach(){this.invalidateTexture()}updateTexture({context:t}){if(!this.stage)return this._rasterTexture?.dispose(),this._transformGridTexture?.dispose(),this._colormapTexture?.dispose(),this._rasterTexture=null,this._rasterTextureBandIds=null,this._transformGridTexture=null,void(this._colormapTexture=null);const e=this._isValidSource(this.source);e&&this._colormapTextureInvalidated&&(this._colormapTextureInvalidated=!1,this._updateColormapTexture(t)),this._textureInvalidated&&(this._textureInvalidated=!1,this._createOrDestroyRasterTexture(t),this._rasterTexture&&(e?this.transformGrid&&!this._transformGridTexture&&(this._transformGridTexture=d(t,this.transformGrid)):this._rasterTexture.setData(null)),this.suspended||(this.ready(),this.requestRender()))}_createOrDestroyRasterTexture(e){const r=t(this.source)?n(this.source,this.bandIds):null;if(!this._isValidSource(r))return void(this._rasterTexture&&(this._rasterTexture.dispose(),this._rasterTextureBandIds=null,this._rasterTexture=null));const s=!this._isBandIdschanged(this.bandIds);if(this._rasterTexture){if(s)return;this._rasterTexture.dispose(),this._rasterTextureBandIds=null,this._rasterTexture=null}this._supportsBilinearTexture=e.capabilities.textureFloat?.textureFloatLinear;const i=this._getTextureSamplingMethod(this.interpolation),a=this.isRendereredSource||!e.capabilities.textureFloat?.textureFloat;this._rasterTexture=_(e,r,i,a),this._rasterTextureBandIds=this.bandIds?[...this.bandIds]:null}_isBandIdschanged(t){const e=this._rasterTextureBandIds;return!(null==e&&null==t||e&&t&&e.join(\"\")===t.join(\"\"))}_isValidSource(e){return t(e)&&e.pixels?.length>0}_getTextureSamplingMethod(e){const{type:r,colormap:s}=this.symbolizerParameters,i=\"lut\"===r||\"stretch\"===r&&t(s);return!this._supportsBilinearTexture||i||\"bilinear\"!==e&&\"cubic\"!==e?\"nearest\":\"bilinear\"}_updateColormapTexture(t){const e=this._colormap,r=this.symbolizerParameters.colormap;return r?e?r.length!==e.length||r.some(((t,r)=>t!==e[r]))?(this._colormapTexture&&(this._colormapTexture.dispose(),this._colormapTexture=null),this._colormapTexture=m(t,r),void(this._colormap=r)):void 0:(this._colormapTexture=m(t,r),void(this._colormap=r)):(this._colormapTexture&&(this._colormapTexture.dispose(),this._colormapTexture=null),void(this._colormap=null))}}class c extends p{get source(){return this._source}}function T(e){return t(e.source)}export{p as RasterBitmap,c as RasterBitmapWithSource,T as hasSource};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{DataType as e}from\"../../../webgl/enums.js\";import{VertexElementDescriptor as o}from\"../../../webgl/VertexElementDescriptor.js\";const r={geometry:[new o(\"a_pos\",2,e.BYTE,0,2)]},t={geometry:[new o(\"a_pos\",2,e.BYTE,0,4),new o(\"a_tex\",2,e.BYTE,2,4)]},m={geometry:[new o(\"a_pos\",2,e.UNSIGNED_SHORT,0,4)]};export{r as Pos2b,m as Pos2us,t as PosTex2b};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{BufferObject as t}from\"../../../webgl/BufferObject.js\";import{Usage as e,DataType as r,PrimitiveType as s}from\"../../../webgl/enums.js\";import{VertexArrayObject as i}from\"../../../webgl/VertexArrayObject.js\";import{VertexElementDescriptor as o}from\"../../../webgl/VertexElementDescriptor.js\";class n{constructor(s,n){this.rctx=s,this._vertexBuffer=t.createVertex(s,e.STATIC_DRAW,new Uint16Array(n)),this._vao=new i(s,new Map([[\"a_position\",0]]),{geometry:[new o(\"a_position\",2,r.SHORT,0,4)]},{geometry:this._vertexBuffer}),this._count=n.length/2}bind(){this.rctx.bindVAO(this._vao)}unbind(){this.rctx.bindVAO(null)}dispose(){this._vao.dispose(!1),this._vertexBuffer.dispose()}draw(){this.rctx.bindVAO(this._vao),this.rctx.drawArrays(s.TRIANGLE_STRIP,0,this._count)}}export{n as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport e from\"../../../../core/Error.js\";import t from\"../../../../core/Logger.js\";import{isSome as r}from\"../../../../core/maybe.js\";import{e as o}from\"../../../../chunks/earcut.js\";import{a as s}from\"../../../../chunks/vec2.js\";import{a as n}from\"../../../../chunks/vec2f64.js\";import{convertFromNestedArray as i,convertFromPolygon as c}from\"../../../../layers/graphics/featureConversionUtils.js\";import a from\"../../../../layers/graphics/OptimizedGeometry.js\";import{i1616to32 as f}from\"./number.js\";import{BufferObject as h}from\"../../../webgl/BufferObject.js\";import{PrimitiveType as m,Usage as u,DataType as y}from\"../../../webgl/enums.js\";const x=t.getLogger(\"esri.views.2d.engine.webgl.Mesh2D\"),g=t=>{switch(t.BYTES_PER_ELEMENT){case 1:return y.UNSIGNED_BYTE;case 2:return y.UNSIGNED_SHORT;case 4:return y.UNSIGNED_INT;default:throw new e(\"Cannot get DataType of array\")}},p=(e,t,r,o)=>{let s=0;for(let n=1;n0:s<0},l=({coords:e,lengths:t},r)=>{const s=[];for(let n=0,i=0;n({...r,[o]:h.createVertex(e,t,this.vertices[o])})),{})),this._cache.vertexBuffers}}export{w as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport t from\"../../../../core/Error.js\";import e from\"../../../../core/Logger.js\";import{isSome as r,isNone as s}from\"../../../../core/maybe.js\";import{watch as i}from\"../../../../core/reactiveUtils.js\";import{c as o}from\"../../../../chunks/mat3f32.js\";import{DisplayObject as h}from\"../DisplayObject.js\";import a from\"./Mesh2D.js\";import{VertexArrayObject as c}from\"../../../webgl/VertexArrayObject.js\";const n=e.getLogger(\"esri.views.2d.engine.webgl.ClippingInfo\"),m=t=>parseFloat(t)/100;class p extends h{constructor(t,e){super(),this._clip=e,this._cache={},this.stage=t,this._handle=i((()=>e.version),(()=>this._invalidate())),this.ready()}static fromClipArea(t,e){return new p(t,e)}_destroyGL(){r(this._cache.mesh)&&(this._cache.mesh.destroy(),this._cache.mesh=null),r(this._cache.vao)&&(this._cache.vao.dispose(),this._cache.vao=null)}destroy(){this._destroyGL(),this._handle.remove()}getVAO(t,e,r,i){const[o,h]=e.size;if(\"geometry\"!==this._clip.type&&this._lastWidth===o&&this._lastHeight===h||(this._lastWidth=o,this._lastHeight=h,this._destroyGL()),s(this._cache.vao)){const s=this._createMesh(e,this._clip),o=s.getIndexBuffer(t),h=s.getVertexBuffers(t);this._cache.mesh=s,this._cache.vao=new c(t,r,i,h,o)}return this._cache.vao}_createTransforms(){return{dvs:o()}}_invalidate(){this._destroyGL(),this.requestRender()}_createScreenRect(t,e){const[r,s]=t.size,i=\"string\"==typeof e.left?m(e.left)*r:e.left,o=\"string\"==typeof e.right?m(e.right)*r:e.right,h=\"string\"==typeof e.top?m(e.top)*s:e.top,a=\"string\"==typeof e.bottom?m(e.bottom)*s:e.bottom,c=i,n=h;return{x:c,y:n,width:Math.max(r-o-c,0),height:Math.max(s-a-n,0)}}_createMesh(e,r){switch(r.type){case\"rect\":return a.fromRect(this._createScreenRect(e,r));case\"path\":return a.fromPath(r);case\"geometry\":return a.fromGeometry(e,r);default:return n.error(new t(\"mapview-bad-type\",\"Unable to create ClippingInfo mesh from clip of type: ${clip.type}\")),a.fromRect({x:0,y:0,width:1,height:1})}}}export{p as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport\"../../../../core/has.js\";import{isNone as e,isSome as r}from\"../../../../core/maybe.js\";import{c as s}from\"../../../../chunks/mat3f32.js\";import{brushes as t}from\"../brushes.js\";import{Container as i}from\"../Container.js\";import n from\"./ClippingInfo.js\";import{WGLDrawPhase as o}from\"./enums.js\";class a extends i{constructor(){super(...arguments),this.name=this.constructor.name}set clips(e){this._clips=e,this.children.forEach((r=>r.clips=e)),this._updateClippingInfo()}_createTransforms(){return{dvs:s()}}doRender(e){const r=this.createRenderParams(e),{painter:s,globalOpacity:t,profiler:i,drawPhase:n}=r,a=n===o.LABEL||n===o.HIGHLIGHT?1:t*this.computedOpacity;i.recordContainerStart(this.name),s.beforeRenderLayer(r,this._clippingInfos?255:0,a),this.updateTransforms(e.state),this.renderChildren(r),s.compositeLayer(r,a),i.recordContainerEnd()}renderChildren(r){e(this._renderPasses)&&(this._renderPasses=this.prepareRenderPasses(r.painter));for(const e of this.children)e.beforeRender(r);for(const e of this._renderPasses)try{e.render(r)}catch(s){}for(const e of this.children)e.afterRender(r)}createRenderParams(e){return e.requireFBO=this.requiresDedicatedFBO,e}prepareRenderPasses(e){return[e.registerRenderPass({name:\"clip\",brushes:[t.clip],target:()=>this._clippingInfos,drawPhase:o.MAP|o.LABEL|o.LABEL_ALPHA|o.DEBUG|o.HIGHLIGHT})]}updateTransforms(e){for(const r of this.children)r.setTransform(e)}onAttach(){super.onAttach(),this._updateClippingInfo()}onDetach(){super.onDetach(),this._updateClippingInfo()}_updateClippingInfo(){if(r(this._clippingInfos)&&(this._clippingInfos.forEach((e=>e.destroy())),this._clippingInfos=null),!this.stage)return;const e=this._clips;r(e)&&e.length&&(this._clippingInfos=e.items.map((e=>n.fromClipArea(this.stage,e)))),this.requestRender()}}export{a as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nclass a{constructor(){this.name=this.constructor.name||\"UnnamedBrush\"}prepareState(a,r,t){}draw(a,r,t){}drawMany(a,r,t){for(const s of r)this.draw(a,s,t)}}export{a as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{resolveIncludes as e}from\"./sources/resolver.js\";const r={shaders:{vertexShader:e(\"tileInfo/tileInfo.vert\"),fragmentShader:e(\"tileInfo/tileInfo.frag\")},attributes:new Map([[\"a_pos\",0]])};export{r as tileInfo};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as t}from\"../../../../../core/maybe.js\";import{f as e}from\"../../../../../chunks/vec4f32.js\";import{Pos2b as r}from\"../DefaultVertexAttributeLayouts.js\";import i from\"./WGLBrush.js\";import{background as o}from\"../shaders/BackgroundPrograms.js\";import{tileInfo as s}from\"../shaders/TileInfoPrograms.js\";import{BufferObject as n}from\"../../../../webgl/BufferObject.js\";import{BlendFactor as a,PrimitiveType as l,Usage as u,TextureType as m,PixelFormat as _,PixelType as f,TextureSamplingMode as h,TextureWrapMode as c}from\"../../../../webgl/enums.js\";import{createProgram as g}from\"../../../../webgl/ProgramTemplate.js\";import{Texture as d}from\"../../../../webgl/Texture.js\";import{VertexArrayObject as p}from\"../../../../webgl/VertexArrayObject.js\";const A=300,b=32;class x extends i{constructor(){super(...arguments),this._color=e(1,0,0,1)}dispose(){this._outlineProgram&&(this._outlineProgram.dispose(),this._outlineProgram=null),this._tileInfoProgram&&(this._tileInfoProgram.dispose(),this._tileInfoProgram=null),this._outlineVertexArrayObject&&(this._outlineVertexArrayObject.dispose(),this._outlineVertexArrayObject=null),this._tileInfoVertexArrayObject&&(this._tileInfoVertexArrayObject.dispose(),this._tileInfoVertexArrayObject=null),this._canvas=null}prepareState({context:t}){t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(a.ONE,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1)}draw(e,r){const{context:i,requestRender:o}=e;if(!r.isReady)return;if(this._loadWGLResources(i),t(o)&&(!this._outlineProgram.isCompiled||!this._tileInfoProgram.isCompiled))return void o();i.bindVAO(this._outlineVertexArrayObject),i.useProgram(this._outlineProgram),this._outlineProgram.setUniformMatrix3fv(\"u_dvsMat3\",r.transforms.dvs),this._outlineProgram.setUniform2f(\"u_coord_range\",r.rangeX,r.rangeY),this._outlineProgram.setUniform1f(\"u_depth\",0),this._outlineProgram.setUniform4fv(\"u_color\",this._color),i.drawArrays(l.LINE_STRIP,0,4);const s=this._getTexture(i,r);s?(i.bindVAO(this._tileInfoVertexArrayObject),i.useProgram(this._tileInfoProgram),i.bindTexture(s,0),this._tileInfoProgram.setUniformMatrix3fv(\"u_dvsMat3\",r.transforms.dvs),this._tileInfoProgram.setUniform1f(\"u_depth\",0),this._tileInfoProgram.setUniform2f(\"u_coord_ratio\",r.rangeX/r.width,r.rangeY/r.height),this._tileInfoProgram.setUniform2f(\"u_delta\",8,8),this._tileInfoProgram.setUniform2f(\"u_dimensions\",s.descriptor.width,s.descriptor.height),i.drawArrays(l.TRIANGLE_STRIP,0,4),i.bindVAO()):i.bindVAO()}_loadWGLResources(t){if(this._outlineProgram&&this._tileInfoProgram)return;const e=g(t,o),i=g(t,s),a=new Int8Array([0,0,1,0,1,1,0,1]),l=n.createVertex(t,u.STATIC_DRAW,a),m=new p(t,o.attributes,r,{geometry:l}),_=new Int8Array([0,0,1,0,0,1,1,1]),f=n.createVertex(t,u.STATIC_DRAW,_),h=new p(t,s.attributes,r,{geometry:f});this._outlineProgram=e,this._tileInfoProgram=i,this._outlineVertexArrayObject=m,this._tileInfoVertexArrayObject=h}_getTexture(t,e){if(e.texture&&e.triangleCountReportedInDebug===e.triangleCount)return e.texture;e.triangleCountReportedInDebug=e.triangleCount,this._canvas||(this._canvas=document.createElement(\"canvas\"),this._canvas.setAttribute(\"id\",\"canvas2d\"),this._canvas.setAttribute(\"width\",`${A}`),this._canvas.setAttribute(\"height\",`${b}`),this._canvas.setAttribute(\"style\",\"display:none\"));const r=e.triangleCount;let i=e.key.id;e.triangleCount>0&&(i+=`, ${r}`);const o=this._canvas,s=o.getContext(\"2d\");return s.font=\"24px sans-serif\",s.textAlign=\"left\",s.textBaseline=\"top\",s.clearRect(0,0,A,b),r>1e5?(s.fillStyle=\"red\",s.fillRect(0,0,A,b),s.fillStyle=\"black\"):(s.clearRect(0,0,A,b),s.fillStyle=\"blue\"),s.fillText(i,0,0),e.texture=new d(t,{target:m.TEXTURE_2D,pixelFormat:_.RGBA,dataType:f.UNSIGNED_BYTE,samplingMode:h.NEAREST,wrapMode:c.CLAMP_TO_EDGE},o),e.texture}}export{x as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{isSome as r}from\"../../../../../core/maybe.js\";import{f as t}from\"../../../../../chunks/vec4f32.js\";import{Pos2b as e}from\"../DefaultVertexAttributeLayouts.js\";import i from\"./WGLBrush.js\";import{background as s}from\"../shaders/BackgroundPrograms.js\";import{BufferObject as o}from\"../../../../webgl/BufferObject.js\";import{StencilOperation as a,Face as l,CompareFunction as n,PrimitiveType as d,Usage as m}from\"../../../../webgl/enums.js\";import{createProgram as _}from\"../../../../webgl/ProgramTemplate.js\";import{VertexArrayObject as c}from\"../../../../webgl/VertexArrayObject.js\";class h extends i{constructor(){super(...arguments),this._color=t(1,0,0,1),this._initialized=!1}dispose(){this._solidProgram&&(this._solidProgram.dispose(),this._solidProgram=null),this._solidVertexArrayObject&&(this._solidVertexArrayObject.dispose(),this._solidVertexArrayObject=null)}prepareState({context:r},t){r.setDepthWriteEnabled(!1),r.setDepthTestEnabled(!1),r.setStencilTestEnabled(!0),r.setBlendingEnabled(!1),r.setColorMask(!1,!1,!1,!1),r.setStencilOp(a.KEEP,a.KEEP,a.REPLACE),r.setStencilWriteMask(255),r.setStencilFunctionSeparate(l.FRONT_AND_BACK,n.GREATER,t.stencilRef,255)}draw(t,e){const{context:i,requestRender:s}=t;this._initialized||this._initialize(i),!r(s)||this._solidProgram.isCompiled?(i.bindVAO(this._solidVertexArrayObject),i.useProgram(this._solidProgram),this._solidProgram.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),this._solidProgram.setUniform2fv(\"u_coord_range\",[e.rangeX,e.rangeY]),this._solidProgram.setUniform1f(\"u_depth\",0),this._solidProgram.setUniform4fv(\"u_color\",this._color),i.drawArrays(d.TRIANGLE_STRIP,0,4),i.bindVAO()):s()}_initialize(r){if(this._initialized)return!0;const t=_(r,s);if(!t)return!1;const i=new Int8Array([0,0,1,0,0,1,1,1]),a=o.createVertex(r,m.STATIC_DRAW,i),l=new c(r,s.attributes,e,{geometry:a});return this._solidProgram=t,this._solidVertexArrayObject=l,this._initialized=!0,!0}}export{h as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{resolveIncludes as r}from\"./sources/resolver.js\";const e={shaders:{vertexShader:r(\"background/background.vert\"),fragmentShader:r(\"background/background.frag\")},attributes:new Map([[\"a_pos\",0]])};export{e as background};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nconst e={background:{\"background.frag\":\"uniform lowp vec4 u_color;\\nvoid main() {\\ngl_FragColor = u_color;\\n}\",\"background.vert\":\"attribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform mediump vec2 u_coord_range;\\nuniform mediump float u_depth;\\nvoid main() {\\nvec3 v_pos = u_dvsMat3 * vec3(u_coord_range * a_pos, 1.0);\\ngl_Position = vec4(v_pos.xy, 0.0, 1.0);\\n}\"},bitBlit:{\"bitBlit.frag\":\"uniform lowp sampler2D u_tex;\\nuniform lowp float u_opacity;\\nvarying mediump vec2 v_uv;\\nvoid main() {\\nlowp vec4 color = texture2D(u_tex, v_uv);\\ngl_FragColor = color * u_opacity;\\n}\",\"bitBlit.vert\":\"attribute vec2 a_pos;\\nattribute vec2 a_tex;\\nvarying mediump vec2 v_uv;\\nvoid main(void) {\\ngl_Position = vec4(a_pos, 0.0, 1.0);\\nv_uv = a_tex;\\n}\"},blend:{\"blend.frag\":\"precision mediump float;\\nuniform sampler2D u_layerTexture;\\nuniform lowp float u_opacity;\\nuniform lowp float u_inFadeOpacity;\\n#ifndef NORMAL\\nuniform sampler2D u_backbufferTexture;\\n#endif\\nvarying mediump vec2 v_uv;\\nfloat rgb2v(in vec3 c) {\\nreturn max(c.x, max(c.y, c.z));\\n}\\nvec3 rgb2hsv(in vec3 c) {\\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\nvec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\\nvec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\\nfloat d = q.x - min(q.w, q.y);\\nfloat e = 1.0e-10;\\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\\n}\\nvec3 hsv2rgb(in vec3 c) {\\nvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\nvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\nreturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n}\\nvec3 tint(in vec3 Cb, in vec3 Cs) {\\nfloat vIn = rgb2v(Cb);\\nvec3 hsvTint = rgb2hsv(Cs);\\nvec3 hsvOut = vec3(hsvTint.x, hsvTint.y, vIn * hsvTint.z);\\nreturn hsv2rgb(hsvOut);\\n}\\nfloat overlay(in float Cb, in float Cs) {\\nreturn (1.0 - step(0.5, Cs)) * (1.0 - 2.0 * (1.0 - Cs ) * (1.0 - Cb)) + step(0.5, Cs) * (2.0 * Cs * Cb);\\n}\\nfloat colorDodge(in float Cb, in float Cs) {\\nreturn (Cb == 0.0) ? 0.0 : (Cs == 1.0) ? 1.0 : min(1.0, Cb / (1.0 - Cs));\\n}\\nfloat colorBurn(in float Cb, in float Cs) {\\nreturn (Cb == 1.0) ? 1.0 : (Cs == 0.0) ? 0.0 : 1.0 - min(1.0, (1.0 - Cb) / Cs);\\n}\\nfloat hardLight(in float Cb, in float Cs) {\\nreturn (1.0 - step(0.5, Cs)) * (2.0 * Cs * Cb) + step(0.5, Cs) * (1.0 - 2.0 * (1.0 - Cs) * (1.0 - Cb));\\n}\\nfloat reflectBlend(in float Cb, in float Cs) {\\nreturn (Cs == 1.0) ? Cs : min(Cb * Cb / (1.0 - Cs), 1.0);\\n}\\nfloat softLight(in float Cb, in float Cs) {\\nif (Cs <= 0.5) {\\nreturn Cb - (1.0 - 2.0 * Cs) * Cb * (1.0 - Cb);\\n}\\nif (Cb <= 0.25) {\\nreturn Cb + (2.0 * Cs - 1.0) * Cb * ((16.0 * Cb - 12.0) * Cb + 3.0);\\n}\\nreturn Cb + (2.0 * Cs - 1.0) * (sqrt(Cb) - Cb);\\n}\\nfloat vividLight(in float Cb, in float Cs) {\\nreturn (1.0 - step(0.5, Cs)) * colorBurn(Cb, 2.0 * Cs) + step(0.5, Cs) * colorDodge(Cb, (2.0 * (Cs - 0.5)));\\n}\\nfloat minv3(in vec3 c) {\\nreturn min(min(c.r, c.g), c.b);\\n}\\nfloat maxv3(in vec3 c) {\\nreturn max(max(c.r, c.g), c.b);\\n}\\nfloat lumv3(in vec3 c) {\\nreturn dot(c, vec3(0.3, 0.59, 0.11));\\n}\\nfloat satv3(vec3 c) {\\nreturn maxv3(c) - minv3(c);\\n}\\nvec3 clipColor(vec3 color) {\\nfloat lum = lumv3(color);\\nfloat mincol = minv3(color);\\nfloat maxcol = maxv3(color);\\nif (mincol < 0.0) {\\ncolor = lum + ((color - lum) * lum) / (lum - mincol);\\n}\\nif (maxcol > 1.0) {\\ncolor = lum + ((color - lum) * (1.0 - lum)) / (maxcol - lum);\\n}\\nreturn color;\\n}\\nvec3 setLum(vec3 cbase, vec3 clum) {\\nfloat lbase = lumv3(cbase);\\nfloat llum = lumv3(clum);\\nfloat ldiff = llum - lbase;\\nvec3 color = cbase + vec3(ldiff);\\nreturn clipColor(color);\\n}\\nvec3 setLumSat(vec3 cbase, vec3 csat, vec3 clum)\\n{\\nfloat minbase = minv3(cbase);\\nfloat sbase = satv3(cbase);\\nfloat ssat = satv3(csat);\\nvec3 color;\\nif (sbase > 0.0) {\\ncolor = (cbase - minbase) * ssat / sbase;\\n} else {\\ncolor = vec3(0.0);\\n}\\nreturn setLum(color, clum);\\n}\\nvoid main() {\\nvec4 src = texture2D(u_layerTexture, v_uv);\\n#ifdef NORMAL\\ngl_FragColor = src * u_opacity;\\n#else\\nvec4 dst = texture2D(u_backbufferTexture, v_uv);\\nvec3 Cs = src.a == 0.0 ? src.rgb : vec3(src.rgb / src.a);\\nvec3 Cb = dst.a == 0.0 ? dst.rgb : vec3(dst.rgb / dst.a);\\nfloat as = u_opacity * src.a;\\nfloat ab = dst.a;\\n#ifdef DESTINATION_OVER\\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb, as + ab - as * ab);\\n#endif\\n#ifdef SOURCE_IN\\nvec4 color = vec4(as * Cs * ab, as * ab);\\nvec4 fadeColor = (1.0 - u_opacity) * u_inFadeOpacity * vec4(ab * Cb, ab);\\ngl_FragColor = color + fadeColor;\\n#endif\\n#ifdef DESTINATION_IN\\nvec4 color = vec4(ab * Cb * as, ab * as);\\nvec4 fadeColor = (1.0 - u_opacity) * u_inFadeOpacity * vec4(ab * Cb, ab);\\ngl_FragColor = color + fadeColor;\\n#endif\\n#ifdef SOURCE_OUT\\ngl_FragColor = vec4(as * Cs * (1.0 - ab), as * (1.0 - ab));\\n#endif\\n#ifdef DESTINATION_OUT\\ngl_FragColor = vec4(ab * Cb * (1.0 - as), ab * (1.0 - as));\\n#endif\\n#ifdef SOURCE_ATOP\\ngl_FragColor = vec4(as * Cs * ab + ab * Cb * (1.0 - as), ab);\\n#endif\\n#ifdef DESTINATION_ATOP\\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb * as, as);\\n#endif\\n#ifdef XOR\\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb * (1.0 - as),\\nas * (1.0 - ab) + ab * (1.0 - as));\\n#endif\\n#ifdef MULTIPLY\\ngl_FragColor = vec4(as * Cs * ab * Cb + (1.0 - ab) * as * Cs + (1.0 - as) * ab * Cb,\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef SCREEN\\ngl_FragColor = vec4((Cs + Cb - Cs * Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef OVERLAY\\nvec3 f = vec3(overlay(Cb.r, Cs.r), overlay(Cb.g, Cs.g), overlay(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef DARKEN\\ngl_FragColor = vec4(min(Cs, Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef LIGHTER\\ngl_FragColor = vec4(as * Cs + ab * Cb, as + ab);\\n#endif\\n#ifdef LIGHTEN\\ngl_FragColor = vec4(max(Cs, Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef COLOR_DODGE\\nvec3 f = vec3(colorDodge(Cb.r, Cs.r), colorDodge(Cb.g, Cs.g), colorDodge(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef COLOR_BURN\\nvec3 f = vec3(colorBurn(Cb.r, Cs.r), colorBurn(Cb.g, Cs.g), colorBurn(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef HARD_LIGHT\\nvec3 f = vec3(hardLight(Cb.r, Cs.r), hardLight(Cb.g, Cs.g), hardLight(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef SOFT_LIGHT\\nvec3 f = vec3(softLight(Cb.r, Cs.r), softLight(Cb.g, Cs.g), softLight(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef DIFFERENCE\\ngl_FragColor = vec4(abs(Cb - Cs) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef EXCLUSION\\nvec3 f = Cs + Cb - 2.0 * Cs * Cb;\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef INVERT\\ngl_FragColor = vec4((1.0 - Cb) * as * ab + Cb * ab * (1.0 - as), ab);\\n#endif\\n#ifdef VIVID_LIGHT\\nvec3 f = vec3(vividLight(Cb.r, Cs.r),\\nvividLight(Cb.g, Cs.g),\\nvividLight(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef HUE\\nvec3 f = setLumSat(Cs,Cb,Cb);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef SATURATION\\nvec3 f = setLumSat(Cb,Cs,Cb);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef COLOR\\nvec3 f = setLum(Cs,Cb);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef LUMINOSITY\\nvec3 f = setLum(Cb,Cs);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef PLUS\\ngl_FragColor = clamp(vec4(src.r + Cb.r, src.g + Cb.g, src.b + Cb.b, as + ab), 0.0, 1.0);\\n#endif\\n#ifdef MINUS\\ngl_FragColor = vec4(clamp(vec3(Cb.r - src.r, Cb.g - src.g, Cb.b - src.b), 0.0, 1.0), ab * as);\\n#endif\\n#ifdef AVERAGE\\nvec3 f = (Cb + Cs) / 2.0;\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef REFLECT\\nvec3 f = vec3(reflectBlend(Cb.r, Cs.r),\\nreflectBlend(Cb.g, Cs.g),\\nreflectBlend(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#endif\\n}\",\"blend.vert\":\"attribute vec2 a_position;\\nvarying mediump vec2 v_uv;\\nvoid main(void) {\\ngl_Position = vec4(a_position , 0.0, 1.0);\\nv_uv = (a_position + 1.0) / 2.0;\\n}\"},dot:{dot:{\"dot.frag\":\"precision mediump float;\\nvarying vec4 v_color;\\nvarying float v_dotRatio;\\nvarying float v_invEdgeRatio;\\nuniform highp float u_tileZoomFactor;\\nvoid main()\\n{\\nfloat dist = length(gl_PointCoord - vec2(.5, .5)) * 2.;\\nfloat alpha = smoothstep(0., 1., v_invEdgeRatio * (dist - v_dotRatio) + 1.);\\ngl_FragColor = v_color * alpha;\\n}\",\"dot.vert\":\"precision highp float;\\nattribute vec2 a_pos;\\nuniform sampler2D u_texture;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp float u_tileZoomFactor;\\nuniform highp float u_dotSize;\\nuniform highp float u_pixelRatio;\\nvarying vec2 v_pos;\\nvarying vec4 v_color;\\nvarying float v_dotRatio;\\nvarying float v_invEdgeRatio;\\nconst float EPSILON = 0.000001;\\nvoid main()\\n{\\nmat3 tileToTileTexture = mat3( 1., 0., 0.,\\n0., -1., 0.,\\n0., 1., 1. );\\nvec3 texCoords = tileToTileTexture * vec3(a_pos.xy / 512., 1.);\\nv_color = texture2D(u_texture, texCoords.xy);\\nfloat smoothEdgeWidth = max(u_dotSize / 2., 1.) ;\\nfloat z = 0.;\\nz += 2.0 * step(v_color.a, EPSILON);\\ngl_PointSize = (smoothEdgeWidth + u_dotSize);\\ngl_Position = vec4((u_dvsMat3 * vec3(a_pos + .5, 1.)).xy, z, 1.);\\nv_dotRatio = u_dotSize / gl_PointSize;\\nv_invEdgeRatio = -1. / ( smoothEdgeWidth / gl_PointSize );\\ngl_PointSize *= (u_pixelRatio * u_tileZoomFactor);\\n}\"}},filtering:{\"bicubic.glsl\":\"vec4 computeWeights(float v) {\\nfloat b = 1.0 / 6.0;\\nfloat v2 = v * v;\\nfloat v3 = v2 * v;\\nfloat w0 = b * (-v3 + 3.0 * v2 - 3.0 * v + 1.0);\\nfloat w1 = b * (3.0 * v3 - 6.0 * v2 + 4.0);\\nfloat w2 = b * (-3.0 * v3 + 3.0 * v2 + 3.0 * v + 1.0);\\nfloat w3 = b * v3;\\nreturn vec4(w0, w1, w2, w3);\\n}\\nvec4 bicubicOffsetsAndWeights(float v) {\\nvec4 w = computeWeights(v);\\nfloat g0 = w.x + w.y;\\nfloat g1 = w.z + w.w;\\nfloat h0 = 1.0 - (w.y / g0) + v;\\nfloat h1 = 1.0 + (w.w / g1) - v;\\nreturn vec4(h0, h1, g0, g1);\\n}\\nvec4 sampleBicubicBSpline(sampler2D sampler, vec2 coords, vec2 texSize) {\\nvec2 eX = vec2(1.0 / texSize.x, 0.0);\\nvec2 eY = vec2(0.0, 1.0 / texSize.y);\\nvec2 texel = coords * texSize - 0.5;\\nvec3 hgX = bicubicOffsetsAndWeights(fract(texel).x).xyz;\\nvec3 hgY = bicubicOffsetsAndWeights(fract(texel).y).xyz;\\nvec2 coords10 = coords + hgX.x * eX;\\nvec2 coords00 = coords - hgX.y * eX;\\nvec2 coords11 = coords10 + hgY.x * eY;\\nvec2 coords01 = coords00 + hgY.x * eY;\\ncoords10 = coords10 - hgY.y * eY;\\ncoords00 = coords00 - hgY.y * eY;\\nvec4 color00 = texture2D(sampler, coords00);\\nvec4 color10 = texture2D(sampler, coords10);\\nvec4 color01 = texture2D(sampler, coords01);\\nvec4 color11 = texture2D(sampler, coords11);\\ncolor00 = mix(color00, color01, hgY.z);\\ncolor10 = mix(color10, color11, hgY.z);\\ncolor00 = mix(color00, color10, hgX.z);\\nreturn color00;\\n}\",\"bilinear.glsl\":\"vec4 sampleBilinear(sampler2D sampler, vec2 coords, vec2 texSize) {\\nvec2 texelStart = floor(coords * texSize);\\nvec2 coord0 = texelStart / texSize;\\nvec2 coord1 = (texelStart + vec2(1.0, 0.0)) / texSize;\\nvec2 coord2 = (texelStart + vec2(0.0, 1.0)) / texSize;\\nvec2 coord3 = (texelStart + vec2(1.0, 1.0)) / texSize;\\nvec4 color0 = texture2D(sampler, coord0);\\nvec4 color1 = texture2D(sampler, coord1);\\nvec4 color2 = texture2D(sampler, coord2);\\nvec4 color3 = texture2D(sampler, coord3);\\nvec2 blend = fract(coords * texSize);\\nvec4 color01 = mix(color0, color1, blend.x);\\nvec4 color23 = mix(color2, color3, blend.x);\\nvec4 color = mix(color01, color23, blend.y);\\n#ifdef NNEDGE\\nfloat alpha = floor(color0.a * color1.a * color2.a * color3.a + 0.5);\\ncolor = color * alpha + (1.0 - alpha) * texture2D(sampler, coords);\\n#endif\\nreturn color;\\n}\",\"epx.glsl\":\"vec4 sampleEPX(sampler2D sampler, float size, vec2 coords, vec2 texSize) {\\nvec2 invSize = 1.0 / texSize;\\nvec2 texel = coords * texSize;\\nvec2 texel_i = floor(texel);\\nvec2 texel_frac = fract(texel);\\nvec4 colorP = texture2D(sampler, texel_i * invSize);\\nvec4 colorP1 = vec4(colorP);\\nvec4 colorP2 = vec4(colorP);\\nvec4 colorP3 = vec4(colorP);\\nvec4 colorP4 = vec4(colorP);\\nvec4 colorA = texture2D(sampler, (texel_i - vec2(0.0, 1.0)) * invSize);\\nvec4 colorB = texture2D(sampler, (texel_i + vec2(1.0, 0.0)) * invSize);\\nvec4 colorC = texture2D(sampler, (texel_i - vec2(1.0, 0.0)) * invSize);\\nvec4 colorD = texture2D(sampler, (texel_i + vec2(0.0, 1.0)) * invSize);\\nif (colorC == colorA && colorC != colorD && colorA != colorB) {\\ncolorP1 = colorA;\\n}\\nif (colorA == colorB && colorA != colorC && colorB != colorD) {\\ncolorP2 = colorB;\\n}\\nif (colorD == colorC && colorD != colorB && colorC != colorA) {\\ncolorP3 = colorC;\\n}\\nif (colorB == colorD && colorB != colorA && colorD != colorC) {\\ncolorP4 = colorD;\\n}\\nvec4 colorP12 = mix(colorP1, colorP2, texel_frac.x);\\nvec4 colorP34 = mix(colorP1, colorP2, texel_frac.x);\\nreturn mix(colorP12, colorP34, texel_frac.y);\\n}\"},fx:{integrate:{\"integrate.frag\":\"precision mediump float;\\nuniform lowp sampler2D u_sourceTexture;\\nuniform lowp sampler2D u_maskTexture;\\nuniform mediump float u_zoomLevel;\\nuniform highp float u_timeDelta;\\nuniform highp float u_animationTime;\\nvarying highp vec2 v_texcoord;\\n#include \\nvoid main()\\n{\\n#ifdef DELTA\\nvec4 texel = texture2D(u_sourceTexture, v_texcoord);\\nvec4 data0 = texture2D(u_maskTexture, v_texcoord);\\nfloat flags = data0.r * 255.0;\\nfloat groupMinZoom = data0.g * 255.0;\\nfloat isVisible = getFilterBit(flags, 0);\\nfloat wouldClip = step(groupMinZoom, u_zoomLevel);\\nfloat direction = wouldClip * 1.0 + (1.0 - wouldClip) * -1.0;\\nfloat dt = u_timeDelta / max(u_animationTime, 0.0001);\\nvec4 nextState = vec4(texel + direction * dt);\\ngl_FragColor = vec4(nextState);\\n#elif defined(UPDATE)\\nvec4 texel = texture2D(u_sourceTexture, v_texcoord);\\ngl_FragColor = texel;\\n#endif\\n}\",\"integrate.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos;\\ngl_Position = vec4(a_pos * 2.0 - 1.0, 0.0, 1.0);\\n}\"}},heatmap:{heatmapResolve:{\"heatmapResolve.frag\":\"precision highp float;\\n#ifdef HEATMAP_PRECISION_HALF_FLOAT\\n#define COMPRESSION_FACTOR 4.0\\n#else\\n#define COMPRESSION_FACTOR 1.0\\n#endif\\nuniform sampler2D u_texture;\\nuniform sampler2D u_gradient;\\nuniform vec2 u_densityMinAndInvRange;\\nuniform float u_densityNormalization;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 data = texture2D(u_texture, v_uv);\\nfloat density = data.r * COMPRESSION_FACTOR;\\ndensity *= u_densityNormalization;\\ndensity = (density - u_densityMinAndInvRange.x) * u_densityMinAndInvRange.y;\\nvec4 color = texture2D(u_gradient, vec2(density, 0.5));\\ngl_FragColor = vec4(color.rgb * color.a, color.a);\\n}\",\"heatmapResolve.vert\":\"precision highp float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nvarying vec2 v_uv;\\nconst float UV_TO_TILE_SPACE = 512.;\\nvoid main() {\\nv_uv = a_pos;\\ngl_Position = vec4((u_dvsMat3 * vec3(a_pos * UV_TO_TILE_SPACE, 1.)).xy, 1., 1.);\\n}\"}},highlight:{\"blur.frag\":\"varying mediump vec2 v_texcoord;\\nuniform mediump vec4 u_direction;\\nuniform mediump mat4 u_channelSelector;\\nuniform mediump float u_sigma;\\nuniform sampler2D u_texture;\\nmediump float gauss1(mediump vec2 dir) {\\nreturn exp(-dot(dir, dir) / (2.0 * u_sigma * u_sigma));\\n}\\nmediump vec4 selectChannel(mediump vec4 sample) {\\nreturn u_channelSelector * sample;\\n}\\nvoid accumGauss1(mediump float i, inout mediump float tot, inout mediump float weight) {\\nmediump float w = gauss1(i * u_direction.xy);\\ntot += selectChannel(texture2D(u_texture, v_texcoord + i * u_direction.zw))[3] * w;\\nweight += w;\\n}\\nvoid main(void) {\\nmediump float tot = 0.0;\\nmediump float weight = 0.0;\\naccumGauss1(-5.0, tot, weight);\\naccumGauss1(-4.0, tot, weight);\\naccumGauss1(-3.0, tot, weight);\\naccumGauss1(-2.0, tot, weight);\\naccumGauss1(-1.0, tot, weight);\\naccumGauss1(0.0, tot, weight);\\naccumGauss1(1.0, tot, weight);\\naccumGauss1(2.0, tot, weight);\\naccumGauss1(3.0, tot, weight);\\naccumGauss1(4.0, tot, weight);\\naccumGauss1(5.0, tot, weight);\\ngl_FragColor = vec4(0.0, 0.0, 0.0, tot / weight);\\n}\",\"highlight.frag\":\"varying mediump vec2 v_texcoord;\\nuniform sampler2D u_texture;\\nuniform mediump float u_sigma;\\nuniform sampler2D u_shade;\\nuniform mediump vec2 u_minMaxDistance;\\nmediump float estimateDistance() {\\nmediump float y = texture2D(u_texture, v_texcoord)[3];\\nconst mediump float y0 = 0.5;\\nmediump float m0 = 1.0 / (sqrt(2.0 * 3.1415) * u_sigma);\\nmediump float d = (y - y0) / m0;\\nreturn d;\\n}\\nmediump vec4 shade(mediump float d) {\\nmediump float mappedDistance = (d - u_minMaxDistance.x) / (u_minMaxDistance.y - u_minMaxDistance.x);\\nmappedDistance = clamp(mappedDistance, 0.0, 1.0);\\nreturn texture2D(u_shade, vec2(mappedDistance, 0.5));\\n}\\nvoid main(void) {\\nmediump float d = estimateDistance();\\ngl_FragColor = shade(d);\\n}\",\"textured.vert\":\"attribute mediump vec2 a_position;\\nattribute mediump vec2 a_texcoord;\\nvarying mediump vec2 v_texcoord;\\nvoid main(void) {\\ngl_Position = vec4(a_position, 0.0, 1.0);\\nv_texcoord = a_texcoord;\\n}\"},magnifier:{\"magnifier.frag\":\"uniform lowp vec4 u_background;\\nuniform mediump sampler2D u_readbackTexture;\\nuniform mediump sampler2D u_maskTexture;\\nuniform mediump sampler2D u_overlayTexture;\\nuniform bool u_maskEnabled;\\nuniform bool u_overlayEnabled;\\nvarying mediump vec2 v_texCoord;\\nconst lowp float barrelFactor = 1.1;\\nlowp vec2 barrel(lowp vec2 uv) {\\nlowp vec2 uvn = uv * 2.0 - 1.0;\\nif (uvn.x == 0.0 && uvn.y == 0.0) {\\nreturn vec2(0.5, 0.5);\\n}\\nlowp float theta = atan(uvn.y, uvn.x);\\nlowp float r = pow(length(uvn), barrelFactor);\\nreturn r * vec2(cos(theta), sin(theta)) * 0.5 + 0.5;\\n}\\nvoid main(void)\\n{\\nlowp vec4 color = texture2D(u_readbackTexture, barrel(v_texCoord));\\ncolor = (color + (1.0 - color.a) * u_background);\\nlowp float mask = u_maskEnabled ? texture2D(u_maskTexture, v_texCoord).a : 1.0;\\ncolor *= mask;\\nlowp vec4 overlayColor = u_overlayEnabled ? texture2D(u_overlayTexture, v_texCoord) : vec4(0);\\ngl_FragColor = overlayColor + (1.0 - overlayColor.a) * color;\\n}\",\"magnifier.vert\":\"precision mediump float;\\nattribute mediump vec2 a_pos;\\nuniform mediump vec4 u_drawPos;\\nvarying mediump vec2 v_texCoord;\\nvoid main(void)\\n{\\nv_texCoord = a_pos;\\ngl_Position = vec4(u_drawPos.xy + vec2(a_pos - 0.5) * u_drawPos.zw, 0.0, 1.0);\\n}\"},materials:{\"attributeData.glsl\":\"uniform highp sampler2D u_attributeData0;\\nuniform highp sampler2D u_attributeData1;\\nuniform highp sampler2D u_attributeData2;\\nuniform highp sampler2D u_attributeData3;\\nuniform highp sampler2D u_attributeData4;\\nuniform highp sampler2D u_attributeData5;\\nuniform highp int u_attributeTextureSize;\\nhighp vec2 getAttributeDataCoords(in highp vec3 id) {\\nhighp vec3 texel = unpackDisplayIdTexel(id);\\nhighp float size = float(u_attributeTextureSize);\\nhighp float u32 = float(int(texel.r) + int(texel.g) * 256 + int(texel.b) * 256 * 256);\\nhighp float col = mod(u32, size);\\nhighp float row = (u32 - col) / size;\\nhighp float u = col / size;\\nhighp float v = row / size;\\nreturn vec2(u, v);\\n}\\nhighp vec2 getAttributeDataTextureCoords(in highp vec3 id) {\\nreturn (getAttributeDataCoords(id) * 2.0) - 1.0 + (.5 / vec2(u_attributeTextureSize));\\n}\\nhighp vec4 getAttributeData0(in highp vec3 id) {\\nvec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData0, coords);\\n}\\nhighp vec4 getAttributeData1(in highp vec3 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData1, coords);\\n}\\nhighp vec4 getAttributeData2(in highp vec3 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData2, coords);\\n}\\nhighp vec4 getAttributeData3(in highp vec3 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData3, coords);\\n}\\nhighp vec4 getAttributeData4(in highp vec3 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData4, coords);\\n}\\nhighp vec4 getAttributeData5(in highp vec3 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData5, coords);\\n}\\nfloat u88VVToFloat(in vec2 v) {\\nbool isMagic = v.x == 255.0 && v.y == 255.0;\\nif (isMagic) {\\nreturn NAN_MAGIC_NUMBER;\\n}\\nreturn (v.x + v.y * float(0x100)) - 32768.0;\\n}\",\"barycentric.glsl\":\"float inTriangle(vec3 bary) {\\nvec3 absBary = abs(bary);\\nreturn step((absBary.x + absBary.y + absBary.z), 1.05);\\n}\\nvec3 xyToBarycentric(in vec2 pos, in vec2 v0, in vec2 v1, in vec2 v2) {\\nmat3 xyToBarycentricMat3 = mat3(\\nv1.x * v2.y - v2.x * v1.y, v2.x * v0.y - v0.x * v2.y, v0.x * v1.y - v1.x * v0.y,\\nv1.y - v2.y, v2.y - v0.y, v0.y - v1.y,\\nv2.x - v1.x, v0.x - v2.x, v1.x - v0.x\\n);\\nfloat A2 = v0.x * (v1.y - v2.y) + v1.x * (v2.y - v0.y) + v2.x * (v0.y - v1.y);\\nreturn (1. / A2) * xyToBarycentricMat3 * vec3(1., pos);\\n}\",\"constants.glsl\":\"const float C_DEG_TO_RAD = 3.14159265359 / 180.0;\\nconst float C_256_TO_RAD = 3.14159265359 / 128.0;\\nconst float C_RAD_TO_DEG = 180.0 / 3.141592654;\\nconst float SIGNED_BYTE_TO_UNSIGNED = 128.0;\\nconst float POSITION_PRECISION = 1.0 / 8.0;\\nconst float FILL_POSITION_PRECISION = 1.0 / 1.0;\\nconst float SOFT_EDGE_RATIO = 1.0;\\nconst float THIN_LINE_WIDTH_FACTOR = 1.1;\\nconst float THIN_LINE_HALF_WIDTH = 1.0;\\nconst float EXTRUDE_SCALE_PLACEMENT_PADDING = 1.0 / 4.0;\\nconst float OFFSET_PRECISION = 1.0 / 8.0;\\nconst float OUTLINE_SCALE = 1.0 / 5.0;\\nconst float SDF_FONT_SIZE = 24.0;\\nconst float MAX_SDF_DISTANCE = 8.0;\\nconst float PLACEMENT_PADDING = 8.0;\\nconst float EPSILON = 0.00001;\\nconst float EPSILON_HITTEST = 0.05;\\nconst int MAX_FILTER_COUNT = 2;\\nconst int ATTR_VV_SIZE = 0;\\nconst int ATTR_VV_COLOR = 1;\\nconst int ATTR_VV_OPACITY = 2;\\nconst int ATTR_VV_ROTATION = 3;\\nconst highp float NAN_MAGIC_NUMBER = 1e-30;\\nconst int BITSET_GENERIC_LOCK_COLOR = 1;\\nconst int BITSET_GENERIC_CONSIDER_ALPHA_ONLY = 4;\\nconst int BITSET_MARKER_ALIGNMENT_MAP = 0;\\nconst int BITSET_MARKER_OUTLINE_ALLOW_COLOR_OVERRIDE = 2;\\nconst int BITSET_MARKER_SCALE_SYMBOLS_PROPORTIONALLY = 3;\\nconst int BITSET_TYPE_FILL_OUTLINE = 0;\\nconst int BITSET_FILL_RANDOM_PATTERN_OFFSET = 2;\\nconst int BITSET_LINE_SCALE_DASH = 2;\",fill:{\"common.glsl\":\"#include \\n#ifdef PATTERN\\nuniform mediump vec2 u_mosaicSize;\\nvarying mediump float v_sampleAlphaOnly;\\n#endif\\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\\nuniform lowp vec4 u_isActive[ 2 ];\\nuniform highp float u_dotValue;\\nuniform highp float u_tileDotsOverArea;\\nuniform highp float u_dotTextureDotCount;\\nuniform mediump float u_tileZoomFactor;\\n#endif\\nvarying highp vec3 v_id;\\nvarying lowp vec4 v_color;\\nvarying lowp float v_opacity;\\nvarying mediump vec4 v_aux1;\\n#ifdef PATTERN\\nvarying mediump vec2 v_tileTextureCoord;\\n#endif\\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\nvarying lowp float v_isOutline;\\n#endif\\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\\nvarying highp vec2 v_dotTextureCoords;\\nvarying highp vec4 v_dotThresholds[ 2 ];\\n#endif\",\"fill.frag\":\"precision highp float;\\n#include \\n#include \\n#include \\n#ifdef PATTERN\\nuniform lowp sampler2D u_texture;\\n#endif\\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\\nuniform mediump mat4 u_dotColors[ 2 ];\\nuniform sampler2D u_dotTextures[ 2 ];\\nuniform vec4 u_dotBackgroundColor;\\n#endif\\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\n#include \\n#include \\nlowp vec4 drawLine() {\\nfloat v_lineWidth = v_aux1.x;\\nvec2 v_normal = v_aux1.yz;\\nLineData inputs = LineData(\\nv_color,\\nv_normal,\\nv_lineWidth,\\nv_opacity,\\nv_id\\n);\\nreturn shadeLine(inputs);\\n}\\n#endif\\nlowp vec4 drawFill() {\\nlowp vec4 out_color = vec4(0.);\\n#ifdef HITTEST\\nout_color = v_color;\\n#elif defined(PATTERN)\\nmediump vec4 v_tlbr = v_aux1;\\nmediump vec2 normalizedTextureCoord = mod(v_tileTextureCoord, 1.0);\\nmediump vec2 samplePos = mix(v_tlbr.xy, v_tlbr.zw, normalizedTextureCoord);\\nlowp vec4 color = texture2D(u_texture, samplePos);\\n#ifdef VV_COLOR\\nif (v_sampleAlphaOnly > 0.5) {\\ncolor.rgb = vec3(color.a);\\n}\\n#endif\\nout_color = v_opacity * v_color * color;\\n#elif SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY && !defined(HIGHLIGHT)\\nvec4 textureThresholds0 = texture2D(u_dotTextures[0], v_dotTextureCoords);\\nvec4 textureThresholds1 = texture2D(u_dotTextures[1], v_dotTextureCoords);\\nvec4 difference0 = v_dotThresholds[0] - textureThresholds0;\\nvec4 difference1 = v_dotThresholds[1] - textureThresholds1;\\n#ifdef DD_DOT_BLENDING\\nvec4 isPositive0 = step(0.0, difference0);\\nvec4 isPositive1 = step(0.0, difference1);\\nfloat weightSum = dot(isPositive0, difference0) + dot(isPositive1, difference1);\\nfloat lessThanEqZero = step(weightSum, 0.0);\\nfloat greaterThanZero = 1.0 - lessThanEqZero ;\\nfloat divisor = (weightSum + lessThanEqZero);\\nvec4 weights0 = difference0 * isPositive0 / divisor;\\nvec4 weights1 = difference1 * isPositive1 / divisor;\\nvec4 dotColor = u_dotColors[0] * weights0 + u_dotColors[1] * weights1;\\nvec4 preEffectColor = greaterThanZero * dotColor + lessThanEqZero * u_dotBackgroundColor;\\n#else\\nfloat diffMax = max(max4(difference0), max4(difference1));\\nfloat lessThanZero = step(diffMax, 0.0);\\nfloat greaterOrEqZero = 1.0 - lessThanZero;\\nvec4 isMax0 = step(diffMax, difference0);\\nvec4 isMax1 = step(diffMax, difference1);\\nvec4 dotColor = u_dotColors[0] * isMax0 + u_dotColors[1] * isMax1;\\nvec4 preEffectColor = greaterOrEqZero * dotColor + lessThanZero * u_dotBackgroundColor;\\n#endif\\nout_color = preEffectColor;\\n#else\\nout_color = v_opacity * v_color;\\n#endif\\n#ifdef HIGHLIGHT\\nout_color.a = 1.0;\\n#endif\\nreturn out_color;\\n}\\nvoid main() {\\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\nif (v_isOutline > 0.5) {\\ngl_FragColor = drawLine();\\n} else {\\ngl_FragColor = drawFill();\\n}\\n#else\\ngl_FragColor = drawFill();\\n#endif\\n}\",\"fill.vert\":\"#include \\n#define PACKED_LINE\\nprecision highp float;\\nattribute float a_bitset;\\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\\nattribute float a_inverseArea;\\nvec4 a_color = vec4(0.0, 0.0, 0.0, 1.0);\\nvec2 a_zoomRange = vec2(0.0, 10000.0);\\n#else\\nattribute vec4 a_color;\\nattribute vec4 a_aux2;\\nattribute vec4 a_aux3;\\n#ifndef SYMBOLOGY_TYPE_IS_SIMPLE_LIKE\\nattribute vec4 a_aux1;\\nattribute vec2 a_zoomRange;\\n#else\\nvec2 a_zoomRange = vec2(0.0, 10000.0);\\n#endif\\n#endif\\nuniform vec2 u_tileOffset;\\n#include \\n#include \\n#include \\n#include \\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\\nvec4 dotThreshold(vec4 featureAttrOverFeatureArea, float dotValue, float tileDotsOverArea) {\\nreturn featureAttrOverFeatureArea * (1.0 / dotValue) * (1.0 / tileDotsOverArea);\\n}\\n#endif\\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\n#include \\n#include \\nvoid drawLine(out lowp vec4 out_color, out highp vec3 out_pos) {\\nLineData outputs = buildLine(\\nout_pos,\\na_id,\\na_pos,\\na_color,\\n(a_aux3.xy - 128.) / 16.,\\n(a_aux3.zw - 128.) / 16.,\\n0.,\\na_aux2.z / 16.,\\na_bitset,\\nvec4(0.),\\nvec2(0.),\\na_aux2.w / 16.\\n);\\nv_id = outputs.id;\\nv_opacity = outputs.opacity;\\nv_aux1 = vec4(outputs.lineHalfWidth, outputs.normal, 0.);\\nout_color = outputs.color;\\n}\\n#endif\\nvoid drawFill(out lowp vec4 out_color, out highp vec3 out_pos) {\\nfloat a_bitSet = a_bitset;\\nout_color = getColor(a_color, a_bitSet, BITSET_GENERIC_LOCK_COLOR);\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\\nmat3 tileToTileNormalized = mat3( 2. / 512., 0., 0.,\\n0., -2. / 512., 0.,\\n-1., 1., 1. );\\nout_pos = tileToTileNormalized * vec3((a_pos * FILL_POSITION_PRECISION), 1.);\\n#else\\nout_pos = u_dvsMat3 * vec3(a_pos * FILL_POSITION_PRECISION, 1.);\\n#endif\\n#ifdef PATTERN\\nvec4 a_tlbr = a_aux1;\\nfloat a_width = a_aux2.x;\\nfloat a_height = a_aux2.y;\\nvec2 a_offset = a_aux2.zw;\\nvec2 a_scale = a_aux3.xy;\\nfloat a_angle = a_aux3.z;\\nvec2 scale = (1.0 / SIGNED_BYTE_TO_UNSIGNED) * a_scale;\\nfloat width = u_zoomFactor * a_width * scale.x;\\nfloat height = u_zoomFactor * a_height * scale.y;\\nfloat angle = C_256_TO_RAD * a_angle;\\nfloat sinA = sin(angle);\\nfloat cosA = cos(angle);\\nfloat dx = 0.0;\\nfloat dy = 0.0;\\nif (getBit(a_bitset, BITSET_FILL_RANDOM_PATTERN_OFFSET) > 0.5) {\\nfloat id = rgba2float(vec4(a_id, 0.0));\\ndx = rand(vec2(id, 0.0));\\ndy = rand(vec2(0.0, id));\\n}\\nmat3 patternMatrix = mat3(cosA / width, sinA / height, 0,\\n-sinA / width, cosA / height, 0,\\ndx, dy, 1);\\nvec2 tileOffset = vec2(u_tileOffset.x * cosA - u_tileOffset.y * sinA, u_tileOffset.x * sinA + u_tileOffset.y * cosA);\\ntileOffset = mod(tileOffset, vec2(a_aux2.x, a_aux2.y));\\nvec2 symbolOffset = (a_offset - tileOffset) / vec2(width, height);\\nv_tileTextureCoord = (patternMatrix * vec3(a_pos * FILL_POSITION_PRECISION, 1.0)).xy - symbolOffset;\\nv_aux1 = a_tlbr / u_mosaicSize.xyxy;\\nv_sampleAlphaOnly = getBit(a_bitset, BITSET_GENERIC_CONSIDER_ALPHA_ONLY);\\n#elif SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_DOT_DENSITY\\nvec4 ddAttributeData0 = getAttributeData2(a_id) * u_isActive[0] * a_inverseArea;\\nvec4 ddAttributeData1 = getAttributeData3(a_id) * u_isActive[1] * a_inverseArea;\\nfloat size = u_tileZoomFactor * 512.0 * 1.0 / u_pixelRatio;\\nv_dotThresholds[0] = dotThreshold(ddAttributeData0, u_dotValue, u_tileDotsOverArea);\\nv_dotThresholds[1] = dotThreshold(ddAttributeData1, u_dotValue, u_tileDotsOverArea);\\nv_dotTextureCoords = (a_pos * FILL_POSITION_PRECISION + 0.5) / size;\\n#endif\\n}\\n#ifdef HITTEST\\nvoid draw(out lowp vec4 out_color, out highp vec3 out_pos) {\\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\nif (getBit(a_bitset, BITSET_TYPE_FILL_OUTLINE) > 0.5) {\\nout_pos = vec3(0., 0., 2.);\\nreturn;\\n}\\n#endif\\nhittestFill(out_color, out_pos);\\ngl_PointSize = 1.0;\\n}\\n#elif defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE)\\nvoid draw(out lowp vec4 out_color, out highp vec3 out_pos) {\\nv_isOutline = getBit(a_bitset, BITSET_TYPE_FILL_OUTLINE);\\nif (v_isOutline > 0.5) {\\ndrawLine(out_color, out_pos);\\n} else {\\ndrawFill(out_color, out_pos);\\n}\\n}\\n#else\\n#define draw drawFill\\n#endif\\nvoid main()\\n{\\nINIT;\\nhighp vec3 pos = vec3(0.);\\nhighp vec4 color = vec4(0.);\\ndraw(color, pos);\\nv_color = color;\\ngl_Position = vec4(clip(v_color, pos, getFilterFlags(), a_zoomRange), 1.0);\\n}\",\"hittest.glsl\":\"#ifdef HITTEST\\n#include \\nattribute vec2 a_pos1;\\nattribute vec2 a_pos2;\\nvoid hittestFill(\\nout lowp vec4 out_color,\\nout highp vec3 out_pos\\n) {\\nvec3 pos = u_viewMat3 * u_tileMat3 * vec3(a_pos * FILL_POSITION_PRECISION, 1.);\\nvec3 pos1 = u_viewMat3 * u_tileMat3 * vec3(a_pos1 * FILL_POSITION_PRECISION, 1.);\\nvec3 pos2 = u_viewMat3 * u_tileMat3 * vec3(a_pos2 * FILL_POSITION_PRECISION, 1.);\\nfloat hittestDist = u_hittestDist;\\nfloat dist = distPointTriangle(u_hittestPos, pos.xy, pos1.xy, pos2.xy);\\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\\nif (dist < 0. || dist >= hittestDist) {\\nout_pos.z += 2.0;\\n}\\nout_color = vec4(1. / 255., 0, 0, dist == 0. ? (1. / 255.) : 0.);\\n}\\n#endif\"},hittest:{\"common.glsl\":\"#ifdef HITTEST\\nuniform float u_hittestDist;\\nuniform highp vec2 u_hittestPos;\\nfloat projectScalar(vec2 a, vec2 b) {\\nreturn dot(a, normalize(b));\\n}\\nfloat distPointSegment(vec2 p0, vec2 p1, vec2 p2) {\\nvec2 L = p2 - p1;\\nvec2 A = p0 - p1;\\nfloat projAL = projectScalar(A, L);\\nfloat t = clamp(projAL / length(L), 0., 1.);\\nreturn distance(p0, p1 + t * (p2 - p1));\\n}\\nvoid hittestMarker(out lowp vec4 out_color, out highp vec3 out_pos, in highp vec3 pos, float size) {\\nfloat dist = distance(pos, vec3(u_hittestPos, 1.));\\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\\nif ((dist - size) > u_hittestDist) {\\nout_pos.z += 2.0;\\n}\\nout_color = vec4(1. / 255., 0, 0, (dist - size) < 0. ? (1. / 255.) : 0.);\\n}\\nfloat intersectPointTriangleBary(vec2 p, vec2 a, vec2 b, vec2 c) {\\nreturn inTriangle(xyToBarycentric(p, a, b, c));\\n}\\nfloat distPointTriangle(vec2 p, vec2 a, vec2 b, vec2 c) {\\nvec2 ba = b - a;\\nvec2 ca = c - a;\\nfloat crossProduct = ba.x * ca.y - ca.x * ba.y;\\nbool isParallel = crossProduct < EPSILON_HITTEST && crossProduct > -EPSILON_HITTEST;\\nif (isParallel) {\\nreturn -1.;\\n}\\nif (intersectPointTriangleBary(p.xy, a, b, c) == 1.) {\\nreturn 0.;\\n}\\nfloat distAB = distPointSegment(p, a, b);\\nfloat distBC = distPointSegment(p, b, c);\\nfloat distCA = distPointSegment(p, c, a);\\nreturn min(min(distAB, distBC), distCA);\\n}\\n#endif\"},icon:{\"common.glsl\":\"#include \\nuniform lowp vec2 u_mosaicSize;\\nvarying lowp vec4 v_color;\\nvarying highp vec3 v_id;\\nvarying highp vec4 v_sizeTex;\\nvarying mediump vec3 v_pos;\\nvarying lowp float v_opacity;\\nuniform lowp sampler2D u_texture;\\n#ifdef SDF\\nvarying lowp vec4 v_outlineColor;\\nvarying mediump float v_outlineWidth;\\nvarying mediump float v_distRatio;\\nvarying mediump float v_overridingOutlineColor;\\nvarying mediump float v_isThin;\\n#endif\\n#ifdef SDF\\nvec4 getColor(vec2 v_size, vec2 v_tex) {\\nlowp vec4 fillPixelColor = v_color;\\nfloat d = 0.5 - rgba2float(texture2D(u_texture, v_tex));\\nfloat size = max(v_size.x, v_size.y);\\nfloat dist = d * size * SOFT_EDGE_RATIO * v_distRatio;\\nfillPixelColor *= clamp(0.5 - dist, 0.0, 1.0);\\nfloat outlineWidth = v_outlineWidth;\\n#ifdef HIGHLIGHT\\noutlineWidth = max(outlineWidth, 4.0 * v_isThin);\\n#endif\\nif (outlineWidth > 0.25) {\\nlowp vec4 outlinePixelColor = v_overridingOutlineColor * v_color + (1.0 - v_overridingOutlineColor) * v_outlineColor;\\nfloat clampedOutlineSize = min(outlineWidth, size);\\noutlinePixelColor *= clamp(0.5 - abs(dist) + clampedOutlineSize * 0.5, 0.0, 1.0);\\nreturn v_opacity * ((1.0 - outlinePixelColor.a) * fillPixelColor + outlinePixelColor);\\n}\\nreturn v_opacity * fillPixelColor;\\n}\\n#else\\nvec4 getColor(vec2 _v_size, vec2 v_tex) {\\nlowp vec4 texColor = texture2D(u_texture, v_tex);\\nreturn v_opacity * texColor * v_color;\\n}\\n#endif\",heatmapAccumulate:{\"common.glsl\":\"varying lowp vec4 v_hittestResult;\\nvarying mediump vec2 v_offsetFromCenter;\\nvarying highp float v_fieldValue;\",\"heatmapAccumulate.frag\":\"precision mediump float;\\n#include \\n#ifdef HEATMAP_PRECISION_HALF_FLOAT\\n#define COMPRESSION_FACTOR 0.25\\n#else\\n#define COMPRESSION_FACTOR 1.0\\n#endif\\nuniform lowp sampler2D u_texture;\\nvoid main() {\\n#ifdef HITTEST\\ngl_FragColor = v_hittestResult;\\n#else\\nfloat radius = length(v_offsetFromCenter);\\nfloat shapeWeight = step(radius, 1.0);\\nfloat oneMinusRadiusSquared = 1.0 - radius * radius;\\nfloat kernelWeight = oneMinusRadiusSquared * oneMinusRadiusSquared;\\ngl_FragColor = vec4(shapeWeight * kernelWeight * v_fieldValue * COMPRESSION_FACTOR);\\n#endif\\n}\",\"heatmapAccumulate.vert\":\"precision highp float;\\nattribute vec2 a_vertexOffset;\\nvec4 a_color = vec4(0.0);\\nvec2 a_zoomRange = vec2(0.0, 10000.0);\\nuniform float u_radius;\\nuniform float u_isFieldActive;\\nconst float TILE_TO_CLIP_SPACE = 2.0 / 512.0;\\n#include \\n#include \\n#include \\nvoid main() {\\nfloat filterFlags = getFilterFlags();\\n#ifdef HITTEST\\nhighp vec4 out_hittestResult = vec4(0.);\\nhighp vec3 out_pos = vec3(0.);\\nvec3 pos = u_viewMat3 * u_tileMat3 * vec3(a_pos * POSITION_PRECISION, 1.0);\\nhittestMarker(out_hittestResult, out_pos, pos, u_radius);\\nv_hittestResult = out_hittestResult;\\ngl_PointSize = 1.;\\ngl_Position = vec4(clip(a_color, out_pos, filterFlags, a_zoomRange), 1.0);\\n#else\\nv_offsetFromCenter = sign(a_vertexOffset);\\nv_fieldValue = getAttributeData2(a_id).x * u_isFieldActive + 1.0 - u_isFieldActive;\\nvec3 centerPos = vec3(a_pos * POSITION_PRECISION * TILE_TO_CLIP_SPACE - 1.0, 1.0);\\nvec3 vertexPos = centerPos + vec3(v_offsetFromCenter, 0.0) * u_radius * TILE_TO_CLIP_SPACE;\\ngl_Position = vec4(clip(a_color, vertexPos, filterFlags, a_zoomRange), 1.0);\\n#endif\\n}\"},\"hittest.glsl\":\"#ifdef HITTEST\\n#include \\nattribute vec2 a_vertexOffset1;\\nattribute vec2 a_vertexOffset2;\\nattribute vec2 a_texCoords1;\\nattribute vec2 a_texCoords2;\\nvec2 getTextureCoords(in vec3 bary, in vec2 texCoords0, in vec2 texCoords1, in vec2 texCoords2) {\\nreturn texCoords0 * bary.x + texCoords1 * bary.y + texCoords2 * bary.z;\\n}\\nvoid hittestIcon(\\ninout lowp vec4 out_color,\\nout highp vec3 out_pos,\\nin vec3 pos,\\nin vec3 offset,\\nin vec2 size,\\nin float scaleFactor,\\nin float isMapAligned\\n) {\\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\\nvec3 posBase = u_viewMat3 * u_tileMat3 * pos;\\nvec3 offset1 = scaleFactor * vec3(a_vertexOffset1 / 16.0, 0.);\\nvec3 offset2 = scaleFactor * vec3(a_vertexOffset2 / 16.0, 0.);\\nvec2 pos0 = (posBase + getMatrixNoDisplay(isMapAligned) * offset).xy;\\nvec2 pos1 = (posBase + getMatrixNoDisplay(isMapAligned) * offset1).xy;\\nvec2 pos2 = (posBase + getMatrixNoDisplay(isMapAligned) * offset2).xy;\\nvec3 bary0 = xyToBarycentric(u_hittestPos + vec2(-u_hittestDist, -u_hittestDist), pos0, pos1, pos2);\\nvec3 bary1 = xyToBarycentric(u_hittestPos + vec2(0., -u_hittestDist), pos0, pos1, pos2);\\nvec3 bary2 = xyToBarycentric(u_hittestPos + vec2(u_hittestDist, -u_hittestDist), pos0, pos1, pos2);\\nvec3 bary3 = xyToBarycentric(u_hittestPos + vec2(-u_hittestDist, 0.), pos0, pos1, pos2);\\nvec3 bary4 = xyToBarycentric(u_hittestPos, pos0, pos1, pos2);\\nvec3 bary5 = xyToBarycentric(u_hittestPos + vec2(u_hittestDist, 0.), pos0, pos1, pos2);\\nvec3 bary6 = xyToBarycentric(u_hittestPos + vec2(-u_hittestDist, u_hittestDist), pos0, pos1, pos2);\\nvec3 bary7 = xyToBarycentric(u_hittestPos + vec2(0., u_hittestDist), pos0, pos1, pos2);\\nvec3 bary8 = xyToBarycentric(u_hittestPos + vec2(u_hittestDist, u_hittestDist), pos0, pos1, pos2);\\nvec2 tex0 = a_texCoords / u_mosaicSize;\\nvec2 tex1 = a_texCoords1 / u_mosaicSize;\\nvec2 tex2 = a_texCoords2 / u_mosaicSize;\\nfloat alphaSum = 0.;\\nalphaSum += inTriangle(bary0) * getColor(size, getTextureCoords(bary0, tex0, tex1, tex2)).a;\\nalphaSum += inTriangle(bary1) * getColor(size, getTextureCoords(bary1, tex0, tex1, tex2)).a;\\nalphaSum += inTriangle(bary2) * getColor(size, getTextureCoords(bary2, tex0, tex1, tex2)).a;\\nalphaSum += inTriangle(bary3) * getColor(size, getTextureCoords(bary3, tex0, tex1, tex2)).a;\\nalphaSum += inTriangle(bary4) * getColor(size, getTextureCoords(bary4, tex0, tex1, tex2)).a;\\nalphaSum += inTriangle(bary5) * getColor(size, getTextureCoords(bary5, tex0, tex1, tex2)).a;\\nalphaSum += inTriangle(bary6) * getColor(size, getTextureCoords(bary6, tex0, tex1, tex2)).a;\\nalphaSum += inTriangle(bary7) * getColor(size, getTextureCoords(bary7, tex0, tex1, tex2)).a;\\nout_pos.z += step(alphaSum, .05) * 2.0;\\nout_color = vec4(1. / 255., 0., 0., alphaSum / 255.);\\n}\\n#endif\",\"icon.frag\":\"precision mediump float;\\n#include \\n#include \\n#include \\nvoid main()\\n{\\n#ifdef HITTEST\\nvec4 color = v_color;\\n#else\\nvec4 color = getColor(v_sizeTex.xy, v_sizeTex.zw);\\n#endif\\n#ifdef HIGHLIGHT\\ncolor.a = step(1.0 / 255.0, color.a);\\n#endif\\ngl_FragColor = color;\\n}\",\"icon.vert\":\"precision highp float;\\nattribute vec4 a_color;\\nattribute vec4 a_outlineColor;\\nattribute vec4 a_sizeAndOutlineWidth;\\nattribute vec2 a_vertexOffset;\\nattribute vec2 a_texCoords;\\nattribute vec2 a_bitSetAndDistRatio;\\nattribute vec2 a_zoomRange;\\n#include \\n#include \\n#include \\nfloat getMarkerScaleFactor(inout vec2 size, in float referenceSize) {\\n#ifdef VV_SIZE\\nfloat f = getSize(size.y) / size.y;\\nfloat sizeFactor = size.y / referenceSize;\\nreturn getSize(referenceSize) / referenceSize;\\n#else\\nreturn 1.;\\n#endif\\n}\\nvoid main()\\n{\\nINIT;\\nfloat a_bitSet = a_bitSetAndDistRatio.x;\\nvec3 pos = vec3(a_pos * POSITION_PRECISION, 1.0);\\nvec2 size = a_sizeAndOutlineWidth.xy * a_sizeAndOutlineWidth.xy / 128.0;\\nvec3 offset = vec3(a_vertexOffset / 16.0, 0.);\\nfloat outlineSize = a_sizeAndOutlineWidth.z * a_sizeAndOutlineWidth.z / 128.0;\\nfloat isMapAligned = getBit(a_bitSet, BITSET_MARKER_ALIGNMENT_MAP);\\nfloat referenceSize = a_sizeAndOutlineWidth.w * a_sizeAndOutlineWidth.w / 128.0;\\nfloat scaleSymbolProportionally = getBit(a_bitSet, BITSET_MARKER_SCALE_SYMBOLS_PROPORTIONALLY);\\nfloat scaleFactor = getMarkerScaleFactor(size, referenceSize);\\nsize.xy *= scaleFactor;\\noffset.xy *= scaleFactor;\\noutlineSize *= scaleSymbolProportionally * (scaleFactor - 1.0) + 1.0;\\nvec2 v_tex = a_texCoords / u_mosaicSize;\\nfloat filterFlags = getFilterFlags();\\nv_color = getColor(a_color, a_bitSet, BITSET_GENERIC_LOCK_COLOR);\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\nv_pos = u_dvsMat3 * pos + getMatrix(isMapAligned) * getRotation() * offset;\\nv_sizeTex = vec4(size.xy, v_tex.xy);\\n#ifdef SDF\\nv_isThin = getBit(a_bitSet, BITSET_MARKER_OUTLINE_ALLOW_COLOR_OVERRIDE);\\n#ifdef VV_COLOR\\nv_overridingOutlineColor = v_isThin;\\n#else\\nv_overridingOutlineColor = 0.0;\\n#endif\\nv_outlineWidth = min(outlineSize, max(max(size.x, size.y) - 0.99, 0.0));\\nv_outlineColor = a_outlineColor;\\nv_distRatio = a_bitSetAndDistRatio.y / 126.0;\\n#endif\\n#ifdef HITTEST\\nhighp vec4 out_color = vec4(0.);\\nhighp vec3 out_pos = vec3(0.);\\nhittestIcon(out_color, out_pos, pos, offset, size, scaleFactor, isMapAligned);\\nv_color = out_color;\\ngl_PointSize = 1.;\\ngl_Position = vec4(clip(v_color, out_pos, filterFlags, a_zoomRange), 1.0);\\n#else\\ngl_Position = vec4(clip(v_color, v_pos, filterFlags, a_zoomRange), 1.0);\\n#endif\\n}\"},label:{\"common.glsl\":\"uniform mediump float u_zoomLevel;\\nuniform mediump float u_mapRotation;\\nuniform mediump float u_mapAligned;\\nuniform mediump vec2 u_mosaicSize;\\nvarying mediump float v_antialiasingWidth;\\nvarying mediump float v_edgeDistanceOffset;\\nvarying mediump vec2 v_tex;\\nvarying mediump vec4 v_color;\\nvarying lowp vec4 v_animation;\",\"label.frag\":\"#include \",\"label.vert\":\"precision highp float;\\n#include \\n#include \\nattribute vec4 a_color;\\nattribute vec4 a_haloColor;\\nattribute vec4 a_texAndSize;\\nattribute vec4 a_refSymbolAndPlacementOffset;\\nattribute vec4 a_glyphData;\\nattribute vec2 a_vertexOffset;\\nattribute vec2 a_texCoords;\\nuniform float u_isHalo;\\nuniform float u_mapRotation;\\nuniform float u_mapAligned;\\nfloat getZ(in float minZoom, in float maxZoom, in float angle) {\\nfloat glyphAngle = angle * 360.0 / 254.0;\\nfloat mapAngle = u_mapRotation * 360.0 / 254.0;\\nfloat diffAngle = min(360.0 - abs(mapAngle - glyphAngle), abs(mapAngle - glyphAngle));\\nfloat z = 0.0;\\nz += u_mapAligned * (2.0 * (1.0 - step(minZoom, u_currentZoom)));\\nz += u_mapAligned * 2.0 * step(90.0, diffAngle);\\nz += 2.0 * (1.0 - step(u_currentZoom, maxZoom));\\nreturn z;\\n}\\nvoid main()\\n{\\nINIT;\\nfloat groupMinZoom = getMinZoom();\\nfloat glyphMinZoom = a_glyphData.x;\\nfloat glyphMaxZoom = a_glyphData.y;\\nfloat glyphAngle = a_glyphData.z;\\nfloat a_minZoom = max(groupMinZoom, glyphMinZoom);\\nfloat a_placementPadding = a_refSymbolAndPlacementOffset.x * EXTRUDE_SCALE_PLACEMENT_PADDING;\\nvec2 a_placementDir = unpack_u8_nf32(a_refSymbolAndPlacementOffset.zw);\\nfloat a_refSymbolSize = a_refSymbolAndPlacementOffset.y;\\nfloat fontSize = a_texAndSize.z;\\nfloat haloSize = a_texAndSize.w * OUTLINE_SCALE;\\nvec2 vertexOffset = a_vertexOffset * OFFSET_PRECISION;\\nvec3 pos = vec3(a_pos * POSITION_PRECISION, 1.0);\\nfloat z = getZ(a_minZoom, glyphMaxZoom, glyphAngle);\\nfloat fontScale = fontSize / SDF_FONT_SIZE;\\nfloat halfSize = getSize(a_refSymbolSize) / 2.0;\\nfloat animation = pow(getAnimationState(), vec4(2.0)).r;\\nv_color = animation * ((1.0 - u_isHalo) * a_color + (u_isHalo * a_haloColor));\\nv_opacity = 1.0;\\nv_tex = a_texCoords / u_mosaicSize;\\nv_edgeDistanceOffset = u_isHalo * haloSize / fontScale / MAX_SDF_DISTANCE;\\nv_antialiasingWidth = 0.105 * SDF_FONT_SIZE / fontSize / u_pixelRatio;\\nvec2 placementOffset = a_placementDir * (halfSize + a_placementPadding);\\nvec3 glyphOffset = u_displayMat3 * vec3(vertexOffset + placementOffset, 0.0);\\nvec3 v_pos = vec3((u_dvsMat3 * pos + glyphOffset).xy, z);\\ngl_Position = vec4(v_pos, 1.0);\\n#ifdef DEBUG\\nv_color = vec4(a_color.rgb, z == 0.0 ? 1.0 : 0.645);\\n#endif\\n}\"},line:{\"common.glsl\":\"varying lowp vec4 v_color;\\nvarying highp vec3 v_id;\\nvarying mediump vec2 v_normal;\\nvarying mediump float v_lineHalfWidth;\\nvarying lowp float v_opacity;\\n#ifdef PATTERN\\nvarying mediump vec4 v_tlbr;\\nvarying mediump vec2 v_patternSize;\\n#endif\\n#if defined(PATTERN) || defined(SDF)\\nvarying highp float v_accumulatedDistance;\\n#endif\\n#ifdef SDF\\nvarying mediump float v_lineWidthRatio;\\n#endif\",\"hittest.glsl\":\"#include \\n#ifdef HITTEST\\nattribute vec2 a_pos1;\\nattribute vec2 a_pos2;\\nvoid hittestLine(out lowp vec4 out_color, out highp vec3 out_pos, float halfWidth) {\\nvec3 pos = u_viewMat3 * u_tileMat3 * vec3(a_pos * POSITION_PRECISION, 1.);\\nvec3 pos1 = u_viewMat3 * u_tileMat3 * vec3(a_pos1 * POSITION_PRECISION, 1.);\\nvec3 pos2 = u_viewMat3 * u_tileMat3 * vec3(a_pos2 * POSITION_PRECISION, 1.);\\nvec3 outTextureCoords = vec3(getAttributeDataTextureCoords(a_id), 0.0);\\nfloat dist = min(distPointSegment(u_hittestPos, pos.xy, pos1.xy),\\ndistPointSegment(u_hittestPos, pos.xy, pos2.xy)) - halfWidth;\\nout_pos = vec3(getAttributeDataTextureCoords(a_id), 0.0);\\nif (dist >= u_hittestDist) {\\nout_pos.z += 2.0;\\n}\\nout_color = vec4(1. / 255., 0, 0, dist <= 0. ? (1. / 255.) : 0.);\\n}\\n#endif\",\"line.frag\":\"precision lowp float;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#ifdef HITTEST\\nvoid main() {\\ngl_FragColor = v_color;\\n}\\n#else\\nvoid main() {\\nLineData inputs = LineData(\\nv_color,\\nv_normal,\\nv_lineHalfWidth,\\nv_opacity,\\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\n#ifdef PATTERN\\nv_tlbr,\\nv_patternSize,\\n#endif\\n#ifdef SDF\\nv_lineWidthRatio,\\n#endif\\n#if defined(PATTERN) || defined(SDF)\\nv_accumulatedDistance,\\n#endif\\n#endif\\nv_id\\n);\\ngl_FragColor = shadeLine(inputs);\\n}\\n#endif\",\"line.vert\":\"precision highp float;\\nattribute vec4 a_color;\\nattribute vec4 a_offsetAndNormal;\\nattribute vec2 a_accumulatedDistanceAndHalfWidth;\\nattribute vec4 a_tlbr;\\nattribute vec4 a_segmentDirection;\\nattribute vec2 a_aux;\\nattribute vec2 a_zoomRange;\\n#include \\n#include \\n#include \\n#include \\n#include \\n#include \\n#ifdef HITTEST\\nvoid draw() {\\nfloat aa = 0.5 * u_antialiasing;\\nfloat a_halfWidth = a_accumulatedDistanceAndHalfWidth.y / 16.;\\nfloat a_cimHalfWidth = a_aux.x / 16. ;\\nvec2 a_offset = a_offsetAndNormal.xy / 16.;\\nfloat baseWidth = getBaseLineHalfWidth(a_halfWidth, a_cimHalfWidth);\\nfloat halfWidth = getLineHalfWidth(baseWidth, aa);\\nhighp vec3 pos = vec3(0.);\\nv_color = vec4(0.);\\nhittestLine(v_color, pos, halfWidth);\\ngl_PointSize = 1.;\\ngl_Position = vec4(clip(v_color, pos, getFilterFlags(), a_zoomRange), 1.0);\\n}\\n#else\\nvoid draw()\\n{\\nhighp vec3 pos = vec3(0.);\\nLineData outputs = buildLine(\\npos,\\na_id,\\na_pos,\\na_color,\\na_offsetAndNormal.xy / 16.,\\na_offsetAndNormal.zw / 16.,\\na_accumulatedDistanceAndHalfWidth.x,\\na_accumulatedDistanceAndHalfWidth.y / 16.,\\na_segmentDirection.w,\\na_tlbr,\\na_segmentDirection.xy / 16.,\\na_aux.x / 16.\\n);\\nv_id = outputs.id;\\nv_color = outputs.color;\\nv_normal = outputs.normal;\\nv_lineHalfWidth = outputs.lineHalfWidth;\\nv_opacity = outputs.opacity;\\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\n#ifdef PATTERN\\nv_tlbr = outputs.tlbr;\\nv_patternSize = outputs.patternSize;\\n#endif\\n#ifdef SDF\\nv_lineWidthRatio = outputs.lineWidthRatio;\\n#endif\\n#if defined(PATTERN) || defined(SDF)\\nv_accumulatedDistance = outputs.accumulatedDistance;\\n#endif\\n#endif\\ngl_Position = vec4(clip(outputs.color, pos, getFilterFlags(), a_zoomRange), 1.0);\\n}\\n#endif\\nvoid main() {\\nINIT;\\ndraw();\\n}\"},pie:{\"pie.frag\":\"precision mediump float;\\n#include \\n#include \\n#include \\n#include \\nvarying float v_size;\\nvarying vec2 v_offset;\\nvarying vec2 v_filteredSectorToColorId[NUMBER_OF_FIELDS];\\nvarying float v_numOfEntries;\\nvarying float v_maxSectorAngle;\\nuniform lowp vec4 u_colors[NUMBER_OF_FIELDS];\\nuniform lowp vec4 u_defaultColor;\\nuniform lowp vec4 u_othersColor;\\nuniform lowp vec4 u_outlineColor;\\nuniform float u_donutRatio;\\nuniform float u_sectorThreshold;\\nstruct FilteredChartInfo {\\nfloat endSectorAngle;\\nint colorId;\\n};\\nlowp vec4 getSectorColor(in int index, in vec2 filteredSectorToColorId[NUMBER_OF_FIELDS]) {\\n#if __VERSION__ == 300\\nmediump int colorIndex = int(filteredSectorToColorId[index].y);\\nreturn u_colors[colorIndex];\\n#else\\nmediump int colorIndex;\\nfor (int i = 0; i < NUMBER_OF_FIELDS; ++i) {\\nif (i == index) {\\ncolorIndex = int(filteredSectorToColorId[i].y);\\n}\\n}\\nfor (int i = 0; i < NUMBER_OF_FIELDS; ++i) {\\nif (i == colorIndex) {\\nreturn u_colors[i];\\n}\\n}\\nreturn u_colors[NUMBER_OF_FIELDS - 1];\\n#endif\\n}\\nconst int OTHER_SECTOR_ID = 255;\\n#ifdef HITTEST\\nvec4 getColor() {\\nreturn v_color;\\n}\\n#else\\nvec4 getColor() {\\nfloat angle = 90.0 - C_RAD_TO_DEG * atan2(v_offset.y, v_offset.x);\\nif (angle < 0.0) {\\nangle += 360.0;\\n} else if (angle > 360.0) {\\nangle = mod(angle, 360.0);\\n}\\nint numOfEntries = int(v_numOfEntries);\\nfloat maxSectorAngle = v_maxSectorAngle;\\nlowp vec4 fillColor = (maxSectorAngle > 0.0 || u_sectorThreshold > 0.0) ? u_othersColor : u_defaultColor;\\nlowp vec4 prevColor = vec4(0.0);\\nlowp vec4 nextColor = vec4(0.0);\\nfloat startSectorAngle = 0.0;\\nfloat endSectorAngle = 0.0;\\nif (angle < maxSectorAngle) {\\nfor (int index = 0; index < NUMBER_OF_FIELDS; ++index) {\\nstartSectorAngle = endSectorAngle;\\nendSectorAngle = v_filteredSectorToColorId[index].x;\\nif (endSectorAngle > angle) {\\nfillColor = getSectorColor(index, v_filteredSectorToColorId);\\nprevColor = u_sectorThreshold != 0.0 && index == 0 && abs(360.0 - maxSectorAngle) < EPSILON ? u_othersColor :\\ngetSectorColor(index > 0 ? index - 1 : numOfEntries - 1, v_filteredSectorToColorId);\\nnextColor = u_sectorThreshold != 0.0 && abs(endSectorAngle - maxSectorAngle) < EPSILON ? u_othersColor :\\ngetSectorColor(index < numOfEntries - 1 ? index + 1 : 0, v_filteredSectorToColorId);\\nbreak;\\n}\\nif (index == numOfEntries - 1) {\\nbreak;\\n}\\n}\\n} else {\\nprevColor = getSectorColor(numOfEntries - 1, v_filteredSectorToColorId);\\nnextColor = getSectorColor(0, v_filteredSectorToColorId);\\nstartSectorAngle = maxSectorAngle;\\nendSectorAngle = 360.0;\\n}\\nlowp vec4 outlineColor = u_outlineColor;\\nfloat offset = length(v_offset);\\nfloat distanceSize = offset * v_size;\\nif (startSectorAngle != 0.0 || endSectorAngle != 360.0) {\\nfloat distanceToStartSector = (angle - startSectorAngle);\\nfloat distanceToEndSector = (endSectorAngle - angle);\\nfloat sectorThreshold = 0.6;\\nfloat beginSectorAlpha = smoothstep(0.0, sectorThreshold, distanceToStartSector * offset);\\nfloat endSectorAlpha = smoothstep(0.0, sectorThreshold, distanceToEndSector * offset);\\nif (endSectorAlpha > 0.0) {\\nfillColor = mix(nextColor, fillColor, endSectorAlpha);\\n} else if (beginSectorAlpha > 0.0) {\\nfillColor = mix(prevColor, fillColor, beginSectorAlpha);\\n}\\n}\\nfloat donutSize = u_donutRatio * (v_size - v_outlineWidth);\\nfloat endOfDonut = donutSize - v_outlineWidth;\\nfloat aaThreshold = 0.75;\\nfloat innerCircleAlpha = endOfDonut - aaThreshold > 0.0 ? smoothstep(endOfDonut - aaThreshold, endOfDonut + aaThreshold, distanceSize) : 1.0;\\nfloat outerCircleAlpha = 1.0 - smoothstep(v_size - aaThreshold, v_size + aaThreshold , distanceSize);\\nfloat circleAlpha = innerCircleAlpha * outerCircleAlpha;\\nfloat startOfOutline = v_size - v_outlineWidth;\\nif (startOfOutline > 0.0 && v_outlineWidth > 0.25) {\\nfloat outlineFactor = smoothstep(startOfOutline - aaThreshold, startOfOutline + aaThreshold, distanceSize);\\nfloat innerLineFactor = donutSize - aaThreshold > 0.0 ? 1.0 - smoothstep(donutSize - aaThreshold, donutSize + aaThreshold , distanceSize) : 0.0;\\nfillColor = mix(fillColor, outlineColor, innerLineFactor + outlineFactor);\\n}\\nreturn v_opacity * circleAlpha * fillColor;\\n}\\n#endif\\nvoid main()\\n{\\nvec4 color = getColor();\\n#ifdef HIGHLIGHT\\ncolor.a = step(1.0 / 255.0, color.a);\\n#endif\\ngl_FragColor = color;\\n}\",\"pie.vert\":\"precision highp float;\\nattribute vec4 a_color;\\nattribute vec4 a_outlineColor;\\nattribute vec4 a_sizeAndOutlineWidth;\\nattribute vec2 a_vertexOffset;\\nattribute vec2 a_texCoords;\\nattribute vec2 a_bitSetAndDistRatio;\\nattribute vec2 a_zoomRange;\\nuniform float u_outlineWidth;\\nuniform mediump float u_sectorThreshold;\\nvarying float v_size;\\nvarying vec2 v_offset;\\nvarying vec2 v_filteredSectorToColorId[NUMBER_OF_FIELDS];\\nvarying float v_numOfEntries;\\nvarying float v_maxSectorAngle;\\nstruct FilteredChartInfo {\\nfloat endSectorAngle;\\nint colorId;\\n};\\nint filter(in float sectorAngle,\\nin int currentIndex,\\ninout FilteredChartInfo filteredInfo,\\ninout vec2 filteredSectorToColorId[NUMBER_OF_FIELDS]) {\\nif (sectorAngle > u_sectorThreshold * 360.0) {\\nfilteredInfo.endSectorAngle += sectorAngle;\\n#if __VERSION__ == 300\\nfilteredSectorToColorId[filteredInfo.colorId] = vec2(filteredInfo.endSectorAngle, currentIndex);\\n#else\\nfor (int i = 0; i < NUMBER_OF_FIELDS; i++) {\\nif (i == filteredInfo.colorId) {\\nfilteredSectorToColorId[i] = vec2(filteredInfo.endSectorAngle, currentIndex);\\n}\\n}\\n#endif\\n++filteredInfo.colorId;\\n}\\nreturn 0;\\n}\\nint filterValues(inout vec2 filteredSectorToColorId[NUMBER_OF_FIELDS],\\ninout FilteredChartInfo filteredInfo,\\nin float sectorAngles[NUMBER_OF_FIELDS]) {\\nfor (int index = 0; index < NUMBER_OF_FIELDS; ++index) {\\nfloat sectorValue = sectorAngles[index];\\nfilter(sectorValue, index, filteredInfo, filteredSectorToColorId);\\n}\\nreturn filteredInfo.colorId;\\n}\\n#include \\n#include \\n#include \\nvec2 getMarkerSize(inout vec2 offset, inout vec2 baseSize, inout float outlineSize, in float referenceSize, in float bitSet) {\\nvec2 outSize = baseSize;\\n#ifdef VV_SIZE\\nfloat r = 0.5 * getSize(referenceSize) / referenceSize;\\noutSize.xy *= r;\\noffset.xy *= r;\\nfloat scaleSymbolProportionally = getBit(bitSet, BITSET_MARKER_SCALE_SYMBOLS_PROPORTIONALLY);\\noutlineSize *= scaleSymbolProportionally * (r - 1.0) + 1.0;\\n#endif\\nreturn outSize;\\n}\\nvec3 getOffset(in vec2 in_offset, float a_bitSet) {\\nfloat isMapAligned = getBit(a_bitSet, BITSET_MARKER_ALIGNMENT_MAP);\\nvec3 offset = vec3(in_offset, 0.0);\\nreturn getMatrix(isMapAligned) * offset;\\n}\\nfloat filterNaNValues(in float value) {\\nreturn value != NAN_MAGIC_NUMBER ? value : 0.0;\\n}\\nvoid main()\\n{\\nINIT;\\nvec2 a_size = a_sizeAndOutlineWidth.xy * a_sizeAndOutlineWidth.xy / 128.0;\\nvec2 a_offset = a_vertexOffset / 16.0;\\nfloat outlineSize = u_outlineWidth;\\nfloat a_bitSet = a_bitSetAndDistRatio.x;\\nvec2 size = getMarkerSize(a_offset, a_size, outlineSize, a_sizeAndOutlineWidth.w * a_sizeAndOutlineWidth.w / 128.0, a_bitSet);\\nfloat filterFlags = getFilterFlags();\\nvec3 pos = vec3(a_pos * POSITION_PRECISION, 1.0);\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\nv_pos = u_dvsMat3 * pos + getOffset(a_offset, a_bitSet);\\nv_offset = sign(a_texCoords - 0.5);\\nv_size = max(size.x, size.y);\\nv_outlineWidth = outlineSize;\\nfloat attributeData[10];\\nvec4 attributeData0 = getAttributeData3(a_id);\\nattributeData[0] = filterNaNValues(attributeData0.x);\\nattributeData[1] = filterNaNValues(attributeData0.y);\\nattributeData[2] = filterNaNValues(attributeData0.z);\\nattributeData[3] = filterNaNValues(attributeData0.w);\\n#if (NUMBER_OF_FIELDS > 4)\\nvec4 attributeData1 = getAttributeData4(a_id);\\nattributeData[4] = filterNaNValues(attributeData1.x);\\nattributeData[5] = filterNaNValues(attributeData1.y);\\nattributeData[6] = filterNaNValues(attributeData1.z);\\nattributeData[7] = filterNaNValues(attributeData1.w);\\n#endif\\n#if (NUMBER_OF_FIELDS > 8)\\nvec4 attributeData2 = getAttributeData5(a_id);\\nattributeData[8] = filterNaNValues(attributeData2.x);\\nattributeData[9] = filterNaNValues(attributeData2.y);\\n#endif\\nfloat sum = 0.0;\\nfor (int i = 0; i < NUMBER_OF_FIELDS; ++i) {\\nsum += attributeData[i];\\n}\\nfloat sectorAngles[NUMBER_OF_FIELDS];\\nfor (int i = 0; i < NUMBER_OF_FIELDS; ++i) {\\nsectorAngles[i] = 360.0 * attributeData[i] / sum;\\n}\\nvec2 filteredSectorToColorId[NUMBER_OF_FIELDS];\\nFilteredChartInfo filteredInfo = FilteredChartInfo(0.0, 0);\\nint numOfEntries = filterValues(filteredSectorToColorId, filteredInfo, sectorAngles);\\nv_numOfEntries = float(numOfEntries);\\nv_maxSectorAngle = filteredInfo.endSectorAngle;\\n#if __VERSION__ == 300\\nv_filteredSectorToColorId = filteredSectorToColorId;\\n#else\\nfor (int i = 0; i < NUMBER_OF_FIELDS; ++i) {\\nif (i == numOfEntries) {\\nbreak;\\n}\\nv_filteredSectorToColorId[i] = filteredSectorToColorId[i];\\n}\\n#endif\\n#ifdef HITTEST\\nhighp vec3 out_pos = vec3(0.0);\\nv_color = vec4(0.0);\\nhittestMarker(v_color, out_pos, u_viewMat3 * u_tileMat3 * pos, v_size);\\ngl_PointSize = 1.0;\\ngl_Position = vec4(clip(v_color, out_pos, filterFlags, a_zoomRange), 1.0);\\n#else\\ngl_Position = vec4(clip(v_color, v_pos, filterFlags, a_zoomRange), 1.0);\\n#endif\\n}\"},shared:{line:{\"common.glsl\":\"#if !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE) && defined(PATTERN)\\nuniform mediump vec2 u_mosaicSize;\\nvarying mediump float v_sampleAlphaOnly;\\n#endif\\nstruct LineData {\\nlowp vec4 color;\\nmediump vec2 normal;\\nmediump float lineHalfWidth;\\nlowp float opacity;\\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\n#ifdef PATTERN\\nmediump vec4 tlbr;\\nmediump vec2 patternSize;\\n#endif\\n#ifdef SDF\\nmediump float lineWidthRatio;\\n#endif\\n#if defined(PATTERN) || defined(SDF)\\nhighp float accumulatedDistance;\\n#endif\\n#endif\\nhighp vec3 id;\\n};\",\"line.frag\":\"uniform lowp float u_blur;\\n#if !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE) && !defined(HIGHLIGHT)\\n#if defined(PATTERN) || defined(SDF)\\nuniform sampler2D u_texture;\\nuniform highp float u_pixelRatio;\\n#endif\\n#endif\\n#if defined(SDF) && !defined(HIGHLIGHT) && !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE)\\nlowp vec4 getLineColor(LineData line) {\\nmediump float adjustedPatternWidth = line.patternSize.x * 2.0 * line.lineWidthRatio;\\nmediump float relativeTexX = fract(line.accumulatedDistance / adjustedPatternWidth);\\nmediump float relativeTexY = 0.5 + 0.25 * line.normal.y;\\nmediump vec2 texCoord = mix(line.tlbr.xy, line.tlbr.zw, vec2(relativeTexX, relativeTexY));\\nmediump float d = rgba2float(texture2D(u_texture, texCoord)) - 0.5;\\nfloat dist = d * line.lineHalfWidth;\\nreturn line.opacity * clamp(0.5 - dist, 0.0, 1.0) * line.color;\\n}\\n#elif defined(PATTERN) && !defined(HIGHLIGHT) && !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE)\\nlowp vec4 getLineColor(LineData line) {\\nmediump float lineHalfWidth = line.lineHalfWidth;\\nmediump float adjustedPatternWidth = line.patternSize.x * 2.0 * lineHalfWidth / line.patternSize.y;\\nmediump float relativeTexX = fract(line.accumulatedDistance / adjustedPatternWidth);\\nmediump float relativeTexY = 0.5 + 0.5 * line.normal.y;\\nmediump vec2 texCoord = mix(line.tlbr.xy, line.tlbr.zw, vec2(relativeTexY, relativeTexX));\\nlowp vec4 color = texture2D(u_texture, texCoord);\\n#ifdef VV_COLOR\\nif (v_sampleAlphaOnly > 0.5) {\\ncolor.rgb = vec3(color.a);\\n}\\n#endif\\nreturn line.opacity * line.color * color;\\n}\\n#else\\nlowp vec4 getLineColor(LineData line) {\\nreturn line.opacity * line.color;\\n}\\n#endif\\nvec4 shadeLine(LineData line)\\n{\\nmediump float thinLineFactor = max(THIN_LINE_WIDTH_FACTOR * step(line.lineHalfWidth, THIN_LINE_HALF_WIDTH), 1.0);\\nmediump float fragDist = length(line.normal) * line.lineHalfWidth;\\nlowp float alpha = clamp(thinLineFactor * (line.lineHalfWidth - fragDist) / (u_blur + thinLineFactor - 1.0), 0.0, 1.0);\\nlowp vec4 out_color = getLineColor(line) * alpha;\\n#ifdef HIGHLIGHT\\nout_color.a = step(1.0 / 255.0, out_color.a);\\n#endif\\n#ifdef ID\\nif (out_color.a < 1.0 / 255.0) {\\ndiscard;\\n}\\nout_color = vec4(line.id, 0.0);\\n#endif\\nreturn out_color;\\n}\",\"line.vert\":\"float getBaseLineHalfWidth(in float lineHalfWidth, in float referenceHalfWidth) {\\n#ifdef VV_SIZE\\nfloat refLineWidth = 2.0 * referenceHalfWidth;\\nreturn 0.5 * (lineHalfWidth / max(referenceHalfWidth, EPSILON)) * getSize(refLineWidth);\\n#else\\nreturn lineHalfWidth;\\n#endif\\n}\\nfloat getLineHalfWidth(in float baseWidth, in float aa) {\\nfloat halfWidth = max(baseWidth + aa, 0.45) + 0.1 * aa;\\n#ifdef HIGHLIGHT\\nhalfWidth = max(halfWidth, 2.0);\\n#endif\\nreturn halfWidth;\\n}\\nvec2 getDist(in vec2 offset, in float halfWidth) {\\nfloat thinLineFactor = max(THIN_LINE_WIDTH_FACTOR * step(halfWidth, THIN_LINE_HALF_WIDTH), 1.0);\\nreturn thinLineFactor * halfWidth * offset;\\n}\\nLineData buildLine(\\nout vec3 out_pos,\\nin vec3 in_id,\\nin vec2 in_pos,\\nin vec4 in_color,\\nin vec2 in_offset,\\nin vec2 in_normal,\\nin float in_accumulatedDist,\\nin float in_lineHalfWidth,\\nin float in_bitSet,\\nin vec4 in_tlbr,\\nin vec2 in_segmentDirection,\\nin float in_referenceHalfWidth\\n)\\n{\\nfloat aa = 0.5 * u_antialiasing;\\nfloat baseWidth = getBaseLineHalfWidth(in_lineHalfWidth, in_referenceHalfWidth);\\nfloat halfWidth = getLineHalfWidth(baseWidth, aa);\\nfloat z = 2.0 * step(baseWidth, 0.0);\\nvec2 dist = getDist(in_offset, halfWidth);\\nvec3 offset = u_displayViewMat3 * vec3(dist, 0.0);\\nvec3 pos = u_dvsMat3 * vec3(in_pos * POSITION_PRECISION, 1.0) + offset;\\n#ifdef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\nvec4 color = in_color;\\nfloat opacity = 1.0;\\n#else\\nvec4 color = getColor(in_color, in_bitSet, BITSET_GENERIC_LOCK_COLOR);\\nfloat opacity = getOpacity();\\n#ifdef SDF\\nconst float SDF_PATTERN_HALF_WIDTH = 15.5;\\nfloat scaleDash = getBit(in_bitSet, BITSET_LINE_SCALE_DASH);\\nfloat lineWidthRatio = (scaleDash * max(halfWidth - 0.55 * u_antialiasing, 0.25) + (1.0 - scaleDash)) / SDF_PATTERN_HALF_WIDTH;\\n#endif\\n#endif\\n#if !defined(SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE) && defined(PATTERN)\\nv_sampleAlphaOnly = getBit(in_bitSet, BITSET_GENERIC_CONSIDER_ALPHA_ONLY);\\n#endif\\nout_pos = vec3(pos.xy, z);\\nreturn LineData(\\ncolor,\\nin_normal,\\nhalfWidth,\\nopacity,\\n#ifndef SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\n#ifdef PATTERN\\nin_tlbr / u_mosaicSize.xyxy,\\nvec2(in_tlbr.z - in_tlbr.x, in_tlbr.w - in_tlbr.y),\\n#endif\\n#ifdef SDF\\nlineWidthRatio,\\n#endif\\n#if defined(PATTERN) || defined(SDF)\\nin_accumulatedDist * u_zoomFactor + dot(in_segmentDirection, dist),\\n#endif\\n#endif\\nnorm(in_id)\\n);\\n}\"}},\"symbologyTypeUtils.glsl\":\"#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_OUTLINE_FILL || SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_OUTLINE_FILL_SIMPLE\\n#define SYMBOLOGY_TYPE_IS_OUTLINE_FILL_LIKE\\n#endif\\n#if SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_SIMPLE || SYMBOLOGY_TYPE == SYMBOLOGY_TYPE_OUTLINE_FILL_SIMPLE\\n#define SYMBOLOGY_TYPE_IS_SIMPLE_LIKE\\n#endif\",text:{\"common.glsl\":\"uniform highp vec2 u_mosaicSize;\\nvarying highp vec3 v_id;\\nvarying mediump vec3 v_pos;\\nvarying lowp float v_opacity;\\nvarying lowp vec4 v_color;\\nvarying highp vec2 v_tex;\\nvarying mediump float v_antialiasingWidth;\\nvarying mediump float v_edgeDistanceOffset;\\nvarying lowp float v_transparency;\",\"hittest.glsl\":\"#include \",\"text.frag\":\"precision mediump float;\\n#include \\nuniform lowp sampler2D u_texture;\\n#ifdef HITTEST\\nvec4 getColor() {\\nreturn v_color;\\n}\\n#else\\nvec4 getColor()\\n{\\nfloat SDF_CUTOFF = (2.0 / 8.0);\\nfloat SDF_BASE_EDGE_DIST = 1.0 - SDF_CUTOFF;\\nlowp float dist = texture2D(u_texture, v_tex).a;\\nmediump float edge = SDF_BASE_EDGE_DIST - v_edgeDistanceOffset;\\n#ifdef HIGHLIGHT\\nedge /= 2.0;\\n#endif\\nlowp float aa = v_antialiasingWidth;\\nlowp float alpha = smoothstep(edge - aa, edge + aa, dist);\\nreturn alpha * v_color * v_opacity;\\n}\\n#endif\\nvoid main()\\n{\\ngl_FragColor = getColor();\\n}\",\"text.vert\":\"precision highp float;\\n#include \\n#include \\n#include \\n#include \\nattribute vec4 a_color;\\nattribute vec4 a_haloColor;\\nattribute vec4 a_texFontSize;\\nattribute vec4 a_aux;\\nattribute vec2 a_zoomRange;\\nattribute vec2 a_vertexOffset;\\nattribute vec2 a_texCoords;\\nuniform float u_isHalo;\\nfloat getTextSize(inout vec2 offset, inout float baseSize, in float referenceSize) {\\n#ifdef VV_SIZE\\nfloat r = getSize(referenceSize) / referenceSize;\\nbaseSize *= r;\\noffset.xy *= r;\\nreturn baseSize;\\n#endif\\nreturn baseSize;\\n}\\nvoid main()\\n{\\nINIT;\\nfloat a_referenceSize = a_aux.z * a_aux.z / 256.0;\\nfloat a_bitSet = a_aux.w;\\nfloat a_fontSize = a_texFontSize.z;\\nvec2 a_offset = a_vertexOffset * OFFSET_PRECISION;\\nvec3 in_pos = vec3(a_pos * POSITION_PRECISION, 1.0);\\nfloat fontSize = getTextSize(a_offset, a_fontSize, a_referenceSize);\\nfloat fontScale = fontSize / SDF_FONT_SIZE;\\nvec3 offset = getRotation() * vec3(a_offset, 0.0);\\nmat3 extrudeMatrix = getBit(a_bitSet, 0) == 1.0 ? u_displayViewMat3 : u_displayMat3;\\nv_color = u_isHalo * a_haloColor + (1.0 - u_isHalo) * getColor(a_color, a_bitSet, 1);\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\nv_tex = a_texCoords / u_mosaicSize;\\nv_pos = u_dvsMat3 * in_pos + extrudeMatrix * offset;\\nv_edgeDistanceOffset = u_isHalo * OUTLINE_SCALE * a_texFontSize.w / fontScale / MAX_SDF_DISTANCE;\\nv_antialiasingWidth = 0.105 * SDF_FONT_SIZE / fontSize / u_pixelRatio;\\n#ifdef HITTEST\\nhighp vec3 out_pos = vec3(0.);\\nv_color = vec4(0.);\\nhittestMarker(v_color, out_pos, u_viewMat3 * u_tileMat3 * vec3(a_pos * POSITION_PRECISION, 1.0)\\n+ u_tileMat3 * offset, fontSize / 2.);\\ngl_PointSize = 1.;\\ngl_Position = vec4(clip(v_color, out_pos, getFilterFlags(), a_zoomRange), 1.0);\\n#else\\ngl_Position = vec4(clip(v_color, v_pos, getFilterFlags(), a_zoomRange), 1.0);\\n#endif\\n}\"},\"utils.glsl\":\"float rshift(in float u32, in int amount) {\\nreturn floor(u32 / pow(2.0, float(amount)));\\n}\\nfloat getBit(in float bitset, in int bitIndex) {\\nfloat offset = pow(2.0, float(bitIndex));\\nreturn mod(floor(bitset / offset), 2.0);\\n}\\nfloat getFilterBit(in float bitset, in int bitIndex) {\\nreturn getBit(bitset, bitIndex + 1);\\n}\\nfloat getHighlightBit(in float bitset) {\\nreturn getBit(bitset, 0);\\n}\\nhighp vec3 unpackDisplayIdTexel(in highp vec3 bitset) {\\nfloat isAggregate = getBit(bitset.b, 7);\\nreturn (1.0 - isAggregate) * bitset + isAggregate * (vec3(bitset.rgb) - vec3(0.0, 0.0, float(0x80)));\\n}\\nvec4 unpack(in float u32) {\\nfloat r = mod(rshift(u32, 0), 255.0);\\nfloat g = mod(rshift(u32, 8), 255.0);\\nfloat b = mod(rshift(u32, 16), 255.0);\\nfloat a = mod(rshift(u32, 24), 255.0);\\nreturn vec4(r, g, b, a);\\n}\\nvec3 norm(in vec3 v) {\\nreturn v /= 255.0;\\n}\\nvec4 norm(in vec4 v) {\\nreturn v /= 255.0;\\n}\\nfloat max4(vec4 target) {\\nreturn max(max(max(target.x, target.y), target.z), target.w);\\n}\\nvec2 unpack_u8_nf32(vec2 bytes) {\\nreturn (bytes - 127.0) / 127.0;\\n}\\nhighp float rand(in vec2 co) {\\nhighp float a = 12.9898;\\nhighp float b = 78.233;\\nhighp float c = 43758.5453;\\nhighp float dt = dot(co, vec2(a,b));\\nhighp float sn = mod(dt, 3.14);\\nreturn fract(sin(sn) * c);\\n}\",\"vcommon.glsl\":\"#include \\n#include \\n#include \\n#include \\n#include \\nattribute vec2 a_pos;\\nattribute highp vec3 a_id;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp mat3 u_displayMat3;\\nuniform highp mat3 u_displayViewMat3;\\nuniform highp mat3 u_tileMat3;\\nuniform highp mat3 u_viewMat3;\\nuniform highp float u_pixelRatio;\\nuniform mediump float u_zoomFactor;\\nuniform mediump float u_antialiasing;\\nuniform mediump float u_currentZoom;\\nvec4 VV_ADATA = vec4(0.0);\\nvoid loadVisualVariableData(inout vec4 target) {\\n#ifdef SUPPORTS_TEXTURE_FLOAT\\ntarget.rgba = getAttributeData2(a_id);\\n#else\\nvec4 data0 = getAttributeData2(a_id);\\nvec4 data1 = getAttributeData3(a_id);\\ntarget.r = u88VVToFloat(data0.rg * 255.0);\\ntarget.g = u88VVToFloat(data0.ba * 255.0);\\ntarget.b = u88VVToFloat(data1.rg * 255.0);\\ntarget.a = u88VVToFloat(data1.ba * 255.0);\\n#endif\\n}\\n#ifdef VV\\n#define INIT loadVisualVariableData(VV_ADATA)\\n#else\\n#define INIT\\n#endif\\nvec4 getColor(in vec4 a_color, in float a_bitSet, int index) {\\n#ifdef VV_COLOR\\nfloat isColorLocked = getBit(a_bitSet, index);\\nreturn getVVColor(VV_ADATA[ATTR_VV_COLOR], a_color, isColorLocked);\\n#else\\nreturn a_color;\\n#endif\\n}\\nfloat getOpacity() {\\n#ifdef VV_OPACITY\\nreturn getVVOpacity(VV_ADATA[ATTR_VV_OPACITY]);\\n#else\\nreturn 1.0;\\n#endif\\n}\\nfloat getSize(in float in_size) {\\n#ifdef VV_SIZE\\nreturn getVVSize(in_size, VV_ADATA[ATTR_VV_SIZE]);\\n#else\\nreturn in_size;\\n#endif\\n}\\nmat3 getRotation() {\\n#ifdef VV_ROTATION\\nreturn getVVRotationMat3(mod(VV_ADATA[ATTR_VV_ROTATION], 360.0));\\n#else\\nreturn mat3(1.0);\\n#endif\\n}\\nfloat getFilterFlags() {\\n#ifdef IGNORES_SAMPLER_PRECISION\\nreturn ceil(getAttributeData0(a_id).x * 255.0);\\n#else\\nreturn getAttributeData0(a_id).x * 255.0;\\n#endif\\n}\\nvec4 getAnimationState() {\\nreturn getAttributeData1(a_id);\\n}\\nfloat getMinZoom() {\\nvec4 data0 = getAttributeData0(a_id) * 255.0;\\nreturn data0.g;\\n}\\nmat3 getMatrixNoDisplay(float isMapAligned) {\\nreturn isMapAligned * u_viewMat3 * u_tileMat3 + (1.0 - isMapAligned) * u_tileMat3;\\n}\\nmat3 getMatrix(float isMapAligned) {\\nreturn isMapAligned * u_displayViewMat3 + (1.0 - isMapAligned) * u_displayMat3;\\n}\\nvec3 clip(inout vec4 color, inout vec3 pos, in float filterFlags, in vec2 minMaxZoom) {\\npos.z += 2.0 * (1.0 - getFilterBit(filterFlags, 0));\\n#ifdef INSIDE\\npos.z += 2.0 * (1.0 - getFilterBit(filterFlags, 1));\\n#elif defined(OUTSIDE)\\npos.z += 2.0 * getFilterBit(filterFlags, 1);\\n#elif defined(HIGHLIGHT)\\n#if !defined(HIGHLIGHT_ALL)\\npos.z += 2.0 * (1.0 - getHighlightBit(filterFlags));\\n#endif\\n#endif\\npos.z += 2.0 * (step(minMaxZoom.y, u_currentZoom) + (1.0 - step(minMaxZoom.x, u_currentZoom)));\\nreturn pos;\\n}\",\"vv.glsl\":\"#if defined(VV_SIZE_MIN_MAX_VALUE) || defined(VV_SIZE_SCALE_STOPS) || defined(VV_SIZE_FIELD_STOPS) || defined(VV_SIZE_UNIT_VALUE)\\n#define VV_SIZE\\n#endif\\n#if defined(VV_COLOR) || defined(VV_SIZE) || defined(VV_OPACITY) || defined(VV_ROTATION)\\n#define VV\\n#endif\\n#ifdef VV_COLOR\\nuniform highp float u_vvColorValues[8];\\nuniform vec4 u_vvColors[8];\\n#endif\\n#ifdef VV_SIZE_MIN_MAX_VALUE\\nuniform highp vec4 u_vvSizeMinMaxValue;\\n#endif\\n#ifdef VV_SIZE_SCALE_STOPS\\nuniform highp float u_vvSizeScaleStopsValue;\\n#endif\\n#ifdef VV_SIZE_FIELD_STOPS\\nuniform highp float u_vvSizeFieldStopsValues[6];\\nuniform float u_vvSizeFieldStopsSizes[6];\\n#endif\\n#ifdef VV_SIZE_UNIT_VALUE\\nuniform highp float u_vvSizeUnitValueWorldToPixelsRatio;\\n#endif\\n#ifdef VV_OPACITY\\nuniform highp float u_vvOpacityValues[8];\\nuniform float u_vvOpacities[8];\\n#endif\\n#ifdef VV_ROTATION\\nuniform lowp float u_vvRotationType;\\n#endif\\nbool isNan(float val) {\\nreturn (val == NAN_MAGIC_NUMBER);\\n}\\n#ifdef VV_SIZE_MIN_MAX_VALUE\\nfloat getVVMinMaxSize(float sizeValue, float fallback) {\\nif (isNan(sizeValue)) {\\nreturn fallback;\\n}\\nfloat interpolationRatio = (sizeValue - u_vvSizeMinMaxValue.x) / (u_vvSizeMinMaxValue.y - u_vvSizeMinMaxValue.x);\\ninterpolationRatio = clamp(interpolationRatio, 0.0, 1.0);\\nreturn u_vvSizeMinMaxValue.z + interpolationRatio * (u_vvSizeMinMaxValue.w - u_vvSizeMinMaxValue.z);\\n}\\n#endif\\n#ifdef VV_SIZE_FIELD_STOPS\\nconst int VV_SIZE_N = 6;\\nfloat getVVStopsSize(float sizeValue, float fallback) {\\nif (isNan(sizeValue)) {\\nreturn fallback;\\n}\\nif (sizeValue <= u_vvSizeFieldStopsValues[0]) {\\nreturn u_vvSizeFieldStopsSizes[0];\\n}\\nfor (int i = 1; i < VV_SIZE_N; ++i) {\\nif (u_vvSizeFieldStopsValues[i] >= sizeValue) {\\nfloat f = (sizeValue - u_vvSizeFieldStopsValues[i-1]) / (u_vvSizeFieldStopsValues[i] - u_vvSizeFieldStopsValues[i-1]);\\nreturn mix(u_vvSizeFieldStopsSizes[i-1], u_vvSizeFieldStopsSizes[i], f);\\n}\\n}\\nreturn u_vvSizeFieldStopsSizes[VV_SIZE_N - 1];\\n}\\n#endif\\n#ifdef VV_SIZE_UNIT_VALUE\\nfloat getVVUnitValue(float sizeValue, float fallback) {\\nif (isNan(sizeValue)) {\\nreturn fallback;\\n}\\nreturn u_vvSizeUnitValueWorldToPixelsRatio * sizeValue;\\n}\\n#endif\\n#ifdef VV_OPACITY\\nconst int VV_OPACITY_N = 8;\\nfloat getVVOpacity(float opacityValue) {\\nif (isNan(opacityValue)) {\\nreturn 1.0;\\n}\\nif (opacityValue <= u_vvOpacityValues[0]) {\\nreturn u_vvOpacities[0];\\n}\\nfor (int i = 1; i < VV_OPACITY_N; ++i) {\\nif (u_vvOpacityValues[i] >= opacityValue) {\\nfloat f = (opacityValue - u_vvOpacityValues[i-1]) / (u_vvOpacityValues[i] - u_vvOpacityValues[i-1]);\\nreturn mix(u_vvOpacities[i-1], u_vvOpacities[i], f);\\n}\\n}\\nreturn u_vvOpacities[VV_OPACITY_N - 1];\\n}\\n#endif\\n#ifdef VV_ROTATION\\nmat4 getVVRotation(float rotationValue) {\\nif (isNan(rotationValue)) {\\nreturn mat4(1, 0, 0, 0,\\n0, 1, 0, 0,\\n0, 0, 1, 0,\\n0, 0, 0, 1);\\n}\\nfloat rotation = rotationValue;\\nif (u_vvRotationType == 1.0) {\\nrotation = 90.0 - rotation;\\n}\\nfloat angle = C_DEG_TO_RAD * rotation;\\nfloat sinA = sin(angle);\\nfloat cosA = cos(angle);\\nreturn mat4(cosA, sinA, 0, 0,\\n-sinA, cosA, 0, 0,\\n0, 0, 1, 0,\\n0, 0, 0, 1);\\n}\\nmat3 getVVRotationMat3(float rotationValue) {\\nif (isNan(rotationValue)) {\\nreturn mat3(1, 0, 0,\\n0, 1, 0,\\n0, 0, 1);\\n}\\nfloat rotation = rotationValue;\\nif (u_vvRotationType == 1.0) {\\nrotation = 90.0 - rotation;\\n}\\nfloat angle = C_DEG_TO_RAD * -rotation;\\nfloat sinA = sin(angle);\\nfloat cosA = cos(angle);\\nreturn mat3(cosA, -sinA, 0,\\nsinA, cosA, 0,\\n0, 0, 1);\\n}\\n#endif\\n#ifdef VV_COLOR\\nconst int VV_COLOR_N = 8;\\nvec4 getVVColor(float colorValue, vec4 fallback, float isColorLocked) {\\nif (isNan(colorValue) || isColorLocked == 1.0) {\\nreturn fallback;\\n}\\nif (colorValue <= u_vvColorValues[0]) {\\nreturn u_vvColors[0];\\n}\\nfor (int i = 1; i < VV_COLOR_N; ++i) {\\nif (u_vvColorValues[i] >= colorValue) {\\nfloat f = (colorValue - u_vvColorValues[i-1]) / (u_vvColorValues[i] - u_vvColorValues[i-1]);\\nreturn mix(u_vvColors[i-1], u_vvColors[i], f);\\n}\\n}\\nreturn u_vvColors[VV_COLOR_N - 1];\\n}\\n#endif\\nfloat getVVSize(in float size, in float vvSize) {\\n#ifdef VV_SIZE_MIN_MAX_VALUE\\nreturn getVVMinMaxSize(vvSize, size);\\n#elif defined(VV_SIZE_SCALE_STOPS)\\nreturn u_vvSizeScaleStopsValue;\\n#elif defined(VV_SIZE_FIELD_STOPS)\\nfloat outSize = getVVStopsSize(vvSize, size);\\nreturn isNan(outSize) ? size : outSize;\\n#elif defined(VV_SIZE_UNIT_VALUE)\\nreturn getVVUnitValue(vvSize, size);\\n#else\\nreturn size;\\n#endif\\n}\"},overlay:{overlay:{\"overlay.frag\":\"precision lowp float;\\nuniform lowp sampler2D u_texture;\\nuniform lowp float u_opacity;\\nvarying mediump vec2 v_uv;\\nvoid main() {\\nvec4 color = texture2D(u_texture, v_uv);\\ngl_FragColor = color * u_opacity;\\n}\",\"overlay.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nattribute vec2 a_uv;\\nuniform highp mat3 u_dvsMat3;\\nvarying mediump vec2 v_uv;\\nvoid main(void) {\\nv_uv = a_uv;\\nmediump vec3 pos = u_dvsMat3 * vec3(a_pos, 1.0);\\ngl_Position = vec4(pos.xy, 0.0, 1.0);\\n}\"}},\"post-processing\":{blit:{\"blit.frag\":\"precision mediump float;\\nuniform sampler2D u_texture;\\nvarying vec2 v_uv;\\nvoid main() {\\ngl_FragColor = texture2D(u_texture, v_uv);\\n}\"},bloom:{composite:{\"composite.frag\":\"precision mediump float;\\nvarying vec2 v_uv;\\nuniform sampler2D u_blurTexture1;\\nuniform sampler2D u_blurTexture2;\\nuniform sampler2D u_blurTexture3;\\nuniform sampler2D u_blurTexture4;\\nuniform sampler2D u_blurTexture5;\\nuniform float u_bloomStrength;\\nuniform float u_bloomRadius;\\nuniform float u_bloomFactors[NUMMIPS];\\nuniform vec3 u_bloomTintColors[NUMMIPS];\\nfloat lerpBloomFactor(const in float factor) {\\nfloat mirrorFactor = 1.2 - factor;\\nreturn mix(factor, mirrorFactor, u_bloomRadius);\\n}\\nvoid main() {\\ngl_FragColor = u_bloomStrength * (\\nlerpBloomFactor(u_bloomFactors[0]) * vec4(u_bloomTintColors[0], 1.0) * texture2D(u_blurTexture1, v_uv) +\\nlerpBloomFactor(u_bloomFactors[1]) * vec4(u_bloomTintColors[1], 1.0) * texture2D(u_blurTexture2, v_uv) +\\nlerpBloomFactor(u_bloomFactors[2]) * vec4(u_bloomTintColors[2], 1.0) * texture2D(u_blurTexture3, v_uv) +\\nlerpBloomFactor(u_bloomFactors[3]) * vec4(u_bloomTintColors[3], 1.0) * texture2D(u_blurTexture4, v_uv) +\\nlerpBloomFactor(u_bloomFactors[4]) * vec4(u_bloomTintColors[4], 1.0) * texture2D(u_blurTexture5, v_uv)\\n);\\n}\"},gaussianBlur:{\"gaussianBlur.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform vec2 u_texSize;\\nuniform vec2 u_direction;\\nvarying vec2 v_uv;\\n#define KERNEL_RADIUS RADIUS\\n#define SIGMA RADIUS\\nfloat gaussianPdf(in float x, in float sigma) {\\nreturn 0.39894 * exp(-0.5 * x * x / ( sigma * sigma)) / sigma;\\n}\\nvoid main() {\\nvec2 invSize = 1.0 / u_texSize;\\nfloat fSigma = float(SIGMA);\\nfloat weightSum = gaussianPdf(0.0, fSigma);\\nvec4 pixelColorSum = texture2D(u_colorTexture, v_uv) * weightSum;\\nfor (int i = 1; i < KERNEL_RADIUS; i ++) {\\nfloat x = float(i);\\nfloat w = gaussianPdf(x, fSigma);\\nvec2 uvOffset = u_direction * invSize * x;\\nvec4 sample1 = texture2D(u_colorTexture, v_uv + uvOffset);\\nvec4 sample2 = texture2D(u_colorTexture, v_uv - uvOffset);\\npixelColorSum += (sample1 + sample2) * w;\\nweightSum += 2.0 * w;\\n}\\ngl_FragColor = pixelColorSum /weightSum;\\n}\"},luminosityHighPass:{\"luminosityHighPass.frag\":\"precision mediump float;\\nuniform sampler2D u_texture;\\nuniform vec3 u_defaultColor;\\nuniform float u_defaultOpacity;\\nuniform float u_luminosityThreshold;\\nuniform float u_smoothWidth;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 texel = texture2D(u_texture, v_uv);\\nvec3 luma = vec3(0.299, 0.587, 0.114);\\nfloat v = dot(texel.xyz, luma);\\nvec4 outputColor = vec4(u_defaultColor.rgb, u_defaultOpacity);\\nfloat alpha = smoothstep(u_luminosityThreshold, u_luminosityThreshold + u_smoothWidth, v);\\ngl_FragColor = mix(outputColor, texel, alpha);\\n}\"}},blur:{gaussianBlur:{\"gaussianBlur.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform vec2 u_texSize;\\nuniform vec2 u_direction;\\nuniform float u_sigma;\\nvarying vec2 v_uv;\\n#define KERNEL_RADIUS RADIUS\\nfloat gaussianPdf(in float x, in float sigma) {\\nreturn 0.39894 * exp(-0.5 * x * x / ( sigma * sigma)) / sigma;\\n}\\nvoid main() {\\nvec2 invSize = 1.0 / u_texSize;\\nfloat fSigma = u_sigma;\\nfloat weightSum = gaussianPdf(0.0, fSigma);\\nvec4 pixelColorSum = texture2D(u_colorTexture, v_uv) * weightSum;\\nfor (int i = 1; i < KERNEL_RADIUS; i ++) {\\nfloat x = float(i);\\nfloat w = gaussianPdf(x, fSigma);\\nvec2 uvOffset = u_direction * invSize * x;\\nvec4 sample1 = texture2D(u_colorTexture, v_uv + uvOffset);\\nvec4 sample2 = texture2D(u_colorTexture, v_uv - uvOffset);\\npixelColorSum += (sample1 + sample2) * w;\\nweightSum += 2.0 * w;\\n}\\ngl_FragColor = pixelColorSum /weightSum;\\n}\"},\"radial-blur\":{\"radial-blur.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nvarying vec2 v_uv;\\nconst float sampleDist = 1.0;\\nconst float sampleStrength = 2.2;\\nvoid main(void) {\\nfloat samples[10];\\nsamples[0] = -0.08;\\nsamples[1] = -0.05;\\nsamples[2] = -0.03;\\nsamples[3] = -0.02;\\nsamples[4] = -0.01;\\nsamples[5] = 0.01;\\nsamples[6] = 0.02;\\nsamples[7] = 0.03;\\nsamples[8] = 0.05;\\nsamples[9] = 0.08;\\nvec2 dir = 0.5 - v_uv;\\nfloat dist = sqrt(dir.x * dir.x + dir.y * dir.y);\\ndir = dir / dist;\\nvec4 color = texture2D(u_colorTexture,v_uv);\\nvec4 sum = color;\\nfor (int i = 0; i < 10; i++) {\\nsum += texture2D(u_colorTexture, v_uv + dir * samples[i] * sampleDist);\\n}\\nsum *= 1.0 / 11.0;\\nfloat t = dist * sampleStrength;\\nt = clamp(t, 0.0, 1.0);\\ngl_FragColor = mix(color, sum, t);\\n}\"}},dra:{\"dra.frag\":\"precision mediump float;\\nuniform sampler2D u_minColor;\\nuniform sampler2D u_maxColor;\\nuniform sampler2D u_texture;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 minColor = texture2D(u_minColor, vec2(0.5));\\nvec4 maxColor = texture2D(u_maxColor, vec2(0.5));\\nvec4 color = texture2D(u_texture, v_uv);\\nvec3 minColorUnpremultiply = minColor.rgb / minColor.a;\\nvec3 maxColorUnpremultiply = maxColor.rgb / maxColor.a;\\nvec3 colorUnpremultiply = color.rgb / color.a;\\nvec3 range = maxColorUnpremultiply - minColorUnpremultiply;\\ngl_FragColor = vec4(color.a * (colorUnpremultiply - minColorUnpremultiply) / range, color.a);\\n}\",\"min-max\":{\"min-max.frag\":\"#extension GL_EXT_draw_buffers : require\\nprecision mediump float;\\n#define CELL_SIZE 2\\nuniform sampler2D u_minTexture;\\nuniform sampler2D u_maxTexture;\\nuniform vec2 u_srcResolution;\\nuniform vec2 u_dstResolution;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec2 srcPixel = floor(gl_FragCoord.xy) * float(CELL_SIZE);\\nvec2 onePixel = vec2(1.0) / u_srcResolution;\\nvec2 uv = (srcPixel + 0.5) / u_srcResolution;\\nvec4 minColor = vec4(1.0);\\nvec4 maxColor = vec4(0.0);\\nfor (int y = 0; y < CELL_SIZE; ++y) {\\nfor (int x = 0; x < CELL_SIZE; ++x) {\\nvec2 offset = uv + vec2(x, y) * onePixel;\\nminColor = min(minColor, texture2D(u_minTexture, offset));\\nmaxColor = max(maxColor, texture2D(u_maxTexture, offset));\\n}\\n}\\ngl_FragData[0] = minColor;\\ngl_FragData[1] = maxColor;\\n}\"}},\"drop-shadow\":{composite:{\"composite.frag\":\"precision mediump float;\\nuniform sampler2D u_layerFBOTexture;\\nuniform sampler2D u_blurTexture;\\nuniform vec4 u_shadowColor;\\nuniform vec2 u_shadowOffset;\\nuniform highp mat3 u_displayViewMat3;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec3 offset = u_displayViewMat3 * vec3(u_shadowOffset, 0.0);\\nvec4 layerColor = texture2D(u_layerFBOTexture, v_uv);\\nvec4 blurColor = texture2D(u_blurTexture, v_uv - offset.xy / 2.0);\\ngl_FragColor = ((1.0 - layerColor.a) * blurColor.a * u_shadowColor + layerColor);\\n}\"}},\"edge-detect\":{\"frei-chen\":{\"frei-chen.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform vec2 u_texSize;\\nvarying vec2 v_uv;\\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\\nmat3 G[9];\\nconst mat3 g0 = mat3( 0.3535533845424652, 0, -0.3535533845424652, 0.5, 0, -0.5, 0.3535533845424652, 0, -0.3535533845424652 );\\nconst mat3 g1 = mat3( 0.3535533845424652, 0.5, 0.3535533845424652, 0, 0, 0, -0.3535533845424652, -0.5, -0.3535533845424652 );\\nconst mat3 g2 = mat3( 0, 0.3535533845424652, -0.5, -0.3535533845424652, 0, 0.3535533845424652, 0.5, -0.3535533845424652, 0 );\\nconst mat3 g3 = mat3( 0.5, -0.3535533845424652, 0, -0.3535533845424652, 0, 0.3535533845424652, 0, 0.3535533845424652, -0.5 );\\nconst mat3 g4 = mat3( 0, -0.5, 0, 0.5, 0, 0.5, 0, -0.5, 0 );\\nconst mat3 g5 = mat3( -0.5, 0, 0.5, 0, 0, 0, 0.5, 0, -0.5 );\\nconst mat3 g6 = mat3( 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.6666666865348816, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204 );\\nconst mat3 g7 = mat3( -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, 0.6666666865348816, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408 );\\nconst mat3 g8 = mat3( 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408 );\\nvoid main() {\\nG[0] = g0,\\nG[1] = g1,\\nG[2] = g2,\\nG[3] = g3,\\nG[4] = g4,\\nG[5] = g5,\\nG[6] = g6,\\nG[7] = g7,\\nG[8] = g8;\\nmat3 I;\\nfloat cnv[9];\\nvec3 sample;\\nfor (float i = 0.0; i < 3.0; i++) {\\nfor (float j = 0.0; j < 3.0; j++) {\\nsample = texture2D(u_colorTexture, v_uv + texel * vec2(i - 1.0,j - 1.0)).rgb;\\nI[int(i)][int(j)] = length(sample);\\n}\\n}\\nfor (int i = 0; i < 9; i++) {\\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\\ncnv[i] = dp3 * dp3;\\n}\\nfloat M = (cnv[0] + cnv[1]) + (cnv[2] + cnv[3]);\\nfloat S = (cnv[4] + cnv[5]) + (cnv[6] + cnv[7]) + (cnv[8] + M);\\ngl_FragColor = vec4(vec3(sqrt(M / S)), texture2D(u_colorTexture, v_uv).a);\\n}\"},sobel:{\"sobel.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nvarying vec2 v_uv;\\nuniform vec2 u_texSize;\\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\\nmat3 G[2];\\nconst mat3 g0 = mat3( 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, -1.0, -2.0, -1.0 );\\nconst mat3 g1 = mat3( 1.0, 0.0, -1.0, 2.0, 0.0, -2.0, 1.0, 0.0, -1.0 );\\nvoid main() {\\nmat3 I;\\nfloat cnv[2];\\nvec3 sample;\\nG[0] = g0;\\nG[1] = g1;\\nfor (float i = 0.0; i < 3.0; i++) {\\nfor (float j = 0.0; j < 3.0; j++) {\\nsample = texture2D( u_colorTexture, v_uv + texel * vec2(i-1.0,j-1.0) ).rgb;\\nI[int(i)][int(j)] = length(sample);\\n}\\n}\\nfor (int i = 0; i < 2; i++) {\\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\\ncnv[i] = dp3 * dp3;\\n}\\ngl_FragColor = vec4(vec3(0.5 * sqrt(cnv[0] * cnv[0] + cnv[1] * cnv[1])), texture2D(u_colorTexture, v_uv).a);\\n}\"}},\"edge-enhance\":{\"edge-enhance.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nvarying vec2 v_uv;\\nuniform vec2 u_texSize;\\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\\nmat3 G[2];\\nconst mat3 g0 = mat3( 1.0, 0.0, -1.0, 1.0, 0.0, -1.0, 1.0, 0.0, -1.0 );\\nconst mat3 g1 = mat3( 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0 );\\nvoid main() {\\nmat3 I;\\nfloat cnv[2];\\nvec3 sample;\\nG[0] = g0;\\nG[1] = g1;\\nfor (float i = 0.0; i < 3.0; i++) {\\nfor (float j = 0.0; j < 3.0; j++) {\\nsample = texture2D( u_colorTexture, v_uv + texel * vec2(i-1.0,j-1.0) ).rgb;\\nI[int(i)][int(j)] = length(sample);\\n}\\n}\\nfor (int i = 0; i < 2; i++) {\\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\\ncnv[i] = dp3 * dp3;\\n}\\nvec4 color = texture2D(u_colorTexture, v_uv);\\ngl_FragColor = vec4(0.5 * sqrt(cnv[0] * cnv[0] + cnv[1] * cnv[1]) * color);\\n}\"},filterEffect:{\"filterEffect.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform mat4 u_coefficients;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 color = texture2D(u_colorTexture, v_uv);\\nvec4 rgbw = u_coefficients * vec4(color.a > 0.0 ? color.rgb / color.a : vec3(0.0), 1.0);\\nfloat a = color.a;\\ngl_FragColor = vec4(a * rgbw.rgb, a);\\n}\"},pp:{\"pp.vert\":\"precision mediump float;\\nattribute vec2 a_position;\\nvarying vec2 v_uv;\\nvoid main() {\\ngl_Position = vec4(a_position, 0.0, 1.0);\\nv_uv = (a_position + 1.0) / 2.0;\\n}\"}},raster:{bitmap:{\"bitmap.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\nuniform sampler2D u_texture;\\nuniform highp vec2 u_coordScale;\\nuniform lowp float u_opacity;\\n#include \\nvoid main() {\\n#ifdef BICUBIC\\nvec4 color = sampleBicubicBSpline(u_texture, v_texcoord, u_coordScale);\\n#else\\nvec4 color = texture2D(u_texture, v_texcoord);\\n#endif\\nfloat alpha = u_opacity * color.a;\\ngl_FragColor = vec4(alpha * color.rgb, alpha);\\n}\",\"bitmap.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"},common:{\"common.glsl\":\"uniform sampler2D u_image;\\nuniform int u_bandCount;\\nuniform bool u_flipY;\\nuniform float u_opacity;\\nuniform int u_resampling;\\nuniform vec2 u_srcImageSize;\\n#ifdef APPLY_PROJECTION\\n#include \\n#endif\\n#ifdef BICUBIC\\n#include \\n#endif\\n#ifdef BILINEAR\\n#include \\n#endif\\nvec2 getPixelLocation(vec2 coords) {\\nvec2 targetLocation = u_flipY ? vec2(coords.s, 1.0 - coords.t) : coords;\\n#ifdef APPLY_PROJECTION\\ntargetLocation = projectPixelLocation(targetLocation);\\n#endif\\nreturn targetLocation;\\n}\\nbool isOutside(vec2 coords){\\nif (coords.t>1.00001 ||coords.t<-0.00001 || coords.s>1.00001 ||coords.s<-0.00001) {\\nreturn true;\\n} else {\\nreturn false;\\n}\\n}\\nvec4 getPixel(vec2 pixelLocation) {\\n#ifdef BICUBIC\\nvec4 color = sampleBicubicBSpline(u_image, pixelLocation, u_srcImageSize);\\n#elif defined(BILINEAR)\\nvec4 color = sampleBilinear(u_image, pixelLocation, u_srcImageSize);\\n#else\\nvec4 color = texture2D(u_image, pixelLocation);\\n#endif\\nreturn color;\\n}\",\"contrastBrightness.glsl\":\"uniform float u_contrastOffset;\\nuniform float u_brightnessOffset;\\nvec4 adjustContrastBrightness(vec4 currentPixel, bool isFloat) {\\nvec4 pixelValue = isFloat ? currentPixel * 255.0 : currentPixel;\\nfloat maxI = 255.0;\\nfloat mid = 128.0;\\nfloat c = u_contrastOffset;\\nfloat b = u_brightnessOffset;\\nvec4 v;\\nif (c > 0.0 && c < 100.0) {\\nv = (200.0 * pixelValue - 100.0 * maxI + 2.0 * maxI * b) / (2.0 * (100.0 - c)) + mid;\\n} else if (c <= 0.0 && c > -100.0) {\\nv = (200.0 * pixelValue - 100.0 * maxI + 2.0 * maxI * b) * (100.0 + c) / 20000.0 + mid;\\n} else if (c == 100.0) {\\nv = (200.0 * pixelValue - 100.0 * maxI + (maxI + 1.0) * (100.0 - c) + 2.0 * maxI * b);\\nv = (sign(v) + 1.0) / 2.0;\\n} else if (c == -100.0) {\\nv = vec4(mid, mid, mid, currentPixel.a);\\n}\\nreturn vec4(v.r / 255.0, v.g / 255.0, v.b / 255.0, currentPixel.a);\\n}\",\"projection.glsl\":\"uniform sampler2D u_transformGrid;\\nuniform vec2 u_transformSpacing;\\nuniform vec2 u_transformGridSize;\\nuniform vec2 u_targetImageSize;\\nvec2 projectPixelLocation(vec2 coords) {\\n#ifdef LOOKUP_PROJECTION\\nvec4 pv = texture2D(u_transformGrid, coords);\\nreturn vec2(pv.r, pv.g);\\n#endif\\nvec2 index_image = floor(coords * u_targetImageSize);\\nvec2 oneTransformPixel = vec2(0.25 / u_transformGridSize.s, 1.0 / u_transformGridSize.t);\\nvec2 index_transform = floor(index_image / u_transformSpacing) / u_transformGridSize;\\nvec2 pos = fract((index_image + vec2(0.5, 0.5)) / u_transformSpacing);\\nvec2 srcLocation;\\nvec2 transform_location = index_transform + oneTransformPixel * 0.5;\\nif (pos.s <= pos.t) {\\nvec4 ll_abc = texture2D(u_transformGrid, vec2(transform_location.s, transform_location.t));\\nvec4 ll_def = texture2D(u_transformGrid, vec2(transform_location.s + oneTransformPixel.s, transform_location.t));\\nsrcLocation.s = dot(ll_abc.rgb, vec3(pos, 1.0));\\nsrcLocation.t = dot(ll_def.rgb, vec3(pos, 1.0));\\n} else {\\nvec4 ur_abc = texture2D(u_transformGrid, vec2(transform_location.s + 2.0 * oneTransformPixel.s, transform_location.t));\\nvec4 ur_def = texture2D(u_transformGrid, vec2(transform_location.s + 3.0 * oneTransformPixel.s, transform_location.t));\\nsrcLocation.s = dot(ur_abc.rgb, vec3(pos, 1.0));\\nsrcLocation.t = dot(ur_def.rgb, vec3(pos, 1.0));\\n}\\nreturn srcLocation;\\n}\"},flow:{\"getFadeOpacity.glsl\":\"uniform float u_decayRate;\\nuniform float u_fadeToZero;\\nfloat getFadeOpacity(float x) {\\nfloat cutOff = mix(0.0, exp(-u_decayRate), u_fadeToZero);\\nreturn (exp(-u_decayRate * x) - cutOff) / (1.0 - cutOff);\\n}\",\"getFragmentColor.glsl\":\"vec4 getFragmentColor(vec4 color, float dist, float size, float featheringSize) {\\nfloat featheringStart = clamp(0.5 - featheringSize / size, 0.0, 0.5);\\nif (dist > featheringStart) {\\ncolor *= 1.0 - (dist - featheringStart) / (0.5 - featheringStart);\\n}\\nreturn color;\\n}\",imagery:{\"imagery.frag\":\"precision highp float;\\nvarying vec2 v_texcoord;\\nuniform sampler2D u_texture;\\nuniform float u_Min;\\nuniform float u_Max;\\nuniform float u_featheringSize;\\n#include \\nfloat getIntensity(float v) {\\nreturn u_Min + v * (u_Max - u_Min);\\n}\\nvoid main(void) {\\nvec4 sampled = texture2D(u_texture, v_texcoord);\\nfloat intensity = getIntensity(sampled.r);\\ngl_FragColor = getColor(intensity);\\ngl_FragColor.a *= getOpacity(sampled.r);\\ngl_FragColor.a *= sampled.a;\\ngl_FragColor.rgb *= gl_FragColor.a;\\n}\",\"imagery.vert\":\"attribute vec2 a_position;\\nattribute vec2 a_texcoord;\\nuniform mat3 u_dvsMat3;\\nvarying vec2 v_texcoord;\\nvoid main(void) {\\nvec2 xy = (u_dvsMat3 * vec3(a_position, 1.0)).xy;\\ngl_Position = vec4(xy, 0.0, 1.0);\\nv_texcoord = a_texcoord;\\n}\"},particles:{\"particles.frag\":\"precision highp float;\\nvarying vec4 v_color;\\nvarying vec2 v_texcoord;\\nvarying float v_size;\\nuniform float u_featheringSize;\\n#include \\nvoid main(void) {\\ngl_FragColor = getFragmentColor(v_color, length(v_texcoord - 0.5), v_size, u_featheringSize);\\n}\",\"particles.vert\":\"attribute vec4 a_xyts0;\\nattribute vec4 a_xyts1;\\nattribute vec4 a_typeIdDurationSeed;\\nattribute vec4 a_extrudeInfo;\\nuniform mat3 u_dvsMat3;\\nuniform mat3 u_displayViewMat3;\\nuniform float u_time;\\nuniform float u_trailLength;\\nuniform float u_flowSpeed;\\nvarying vec4 v_color;\\nvarying vec2 v_texcoord;\\nvarying float v_size;\\nuniform float u_featheringSize;\\nuniform float u_introFade;\\n#include \\n#include \\nvoid main(void) {\\nvec2 position0 = a_xyts0.xy;\\nfloat t0 = a_xyts0.z;\\nfloat speed0 = a_xyts0.w;\\nvec2 position1 = a_xyts1.xy;\\nfloat t1 = a_xyts1.z;\\nfloat speed1 = a_xyts1.w;\\nfloat type = a_typeIdDurationSeed.x;\\nfloat id = a_typeIdDurationSeed.y;\\nfloat duration = a_typeIdDurationSeed.z;\\nfloat seed = a_typeIdDurationSeed.w;\\nvec2 e0 = a_extrudeInfo.xy;\\nvec2 e1 = a_extrudeInfo.zw;\\nfloat animationPeriod = duration + u_trailLength;\\nfloat scaledTime = u_time * u_flowSpeed;\\nfloat randomizedTime = scaledTime + seed * animationPeriod;\\nfloat t = mod(randomizedTime, animationPeriod);\\nfloat fUnclamped = (t - t0) / (t1 - t0);\\nfloat f = clamp(fUnclamped, 0.0, 1.0);\\nfloat clampedTime = mix(t0, t1, f);\\nfloat speed = mix(speed0, speed1, f);\\nvec2 extrude;\\nvec2 position;\\nfloat fadeOpacity;\\nfloat introOpacity;\\nif (type == 2.0) {\\nif (fUnclamped < 0.0 || (fUnclamped > 1.0 && t1 != duration)) {\\ngl_Position = vec4(0.0, 0.0, -2.0, 1.0);\\nreturn;\\n}\\nvec2 ortho = mix(e0, e1, f);\\nvec2 parallel;\\nparallel = normalize(position1 - position0) * 0.5;\\nif (id == 1.0) {\\nextrude = ortho;\\nv_texcoord = vec2(0.5, 0.0);\\n} else if (id == 2.0) {\\nextrude = -ortho;\\nv_texcoord = vec2(0.5, 1.0);\\n} else if (id == 3.0) {\\nextrude = ortho + parallel;\\nv_texcoord = vec2(1.0, 0.0);\\n} else if (id == 4.0) {\\nextrude = -ortho + parallel;\\nv_texcoord = vec2(1.0, 1.0);\\n}\\nfadeOpacity = getFadeOpacity((t - clampedTime) / u_trailLength);\\nintroOpacity = 1.0 - exp(-clampedTime);\\nv_size = getSize(speed);\\nv_color = getColor(speed);\\nv_color.a *= getOpacity(speed);\\nposition = mix(position0, position1, f);\\n} else {\\nif (fUnclamped < 0.0) {\\ngl_Position = vec4(0.0, 0.0, -2.0, 1.0);\\nreturn;\\n}\\nif (id == 1.0) {\\nextrude = e0;\\nv_texcoord = vec2(0.5, 0.0);\\nfadeOpacity = getFadeOpacity((t - t0) / u_trailLength);\\nintroOpacity = 1.0 - exp(-t0);\\nv_size = getSize(speed0);\\nv_color = getColor(speed0);\\nv_color.a *= getOpacity(speed0);\\nposition = position0;\\n} else if (id == 2.0) {\\nextrude = -e0;\\nv_texcoord = vec2(0.5, 1.0);\\nfadeOpacity = getFadeOpacity((t - t0) / u_trailLength);\\nintroOpacity = 1.0 - exp(-t0);\\nv_size = getSize(speed0);\\nv_color = getColor(speed0);\\nv_color.a *= getOpacity(speed0);\\nposition = position0;\\n} else if (id == 3.0) {\\nextrude = mix(e0, e1, f);\\nv_texcoord = vec2(0.5, 0.0);\\nfadeOpacity = getFadeOpacity((t - clampedTime) / u_trailLength);\\nintroOpacity = 1.0 - exp(-clampedTime);\\nv_size = getSize(speed);\\nv_color = getColor(speed);\\nv_color.a *= getOpacity(speed);\\nposition = mix(position0, position1, f);\\n} else if (id == 4.0) {\\nextrude = -mix(e0, e1, f);\\nv_texcoord = vec2(0.5, 1.0);\\nfadeOpacity = getFadeOpacity((t - clampedTime) / u_trailLength);\\nintroOpacity = 1.0 - exp(-clampedTime);\\nv_size = getSize(speed);\\nv_color = getColor(speed);\\nv_color.a *= getOpacity(speed);\\nposition = mix(position0, position1, f);\\n}\\n}\\nvec2 xy = (u_dvsMat3 * vec3(position, 1.0) + u_displayViewMat3 * vec3(extrude * v_size, 0.0)).xy;\\ngl_Position = vec4(xy, 0.0, 1.0);\\nv_color.a *= fadeOpacity;\\nv_color.a *= mix(1.0, introOpacity, u_introFade);\\nv_color.rgb *= v_color.a;\\n}\"},streamlines:{\"streamlines.frag\":\"precision highp float;\\nvarying float v_side;\\nvarying float v_time;\\nvarying float v_totalTime;\\nvarying float v_timeSeed;\\nvarying vec4 v_color;\\nvarying float v_size;\\nuniform float u_time;\\nuniform float u_trailLength;\\nuniform float u_flowSpeed;\\nuniform float u_featheringSize;\\nuniform float u_introFade;\\n#include \\n#include \\nvoid main(void) {\\nfloat t = mod(v_timeSeed * (v_totalTime + u_trailLength) + u_time * u_flowSpeed, v_totalTime + u_trailLength) - v_time;\\nvec4 color = v_color * step(0.0, t) * getFadeOpacity(t / u_trailLength);\\ncolor *= mix(1.0, 1.0 - exp(-v_time), u_introFade);\\ngl_FragColor = getFragmentColor(color, length((v_side + 1.0) / 2.0 - 0.5), v_size, u_featheringSize);\\n}\",\"streamlines.vert\":\"attribute vec3 a_positionAndSide;\\nattribute vec3 a_timeInfo;\\nattribute vec2 a_extrude;\\nattribute float a_speed;\\nuniform mat3 u_dvsMat3;\\nuniform mat3 u_displayViewMat3;\\nvarying float v_time;\\nvarying float v_totalTime;\\nvarying float v_timeSeed;\\nvarying vec4 v_color;\\nvarying float v_side;\\nvarying float v_size;\\nuniform float u_featheringSize;\\n#include \\nvoid main(void) {\\nvec4 lineColor = getColor(a_speed);\\nfloat lineOpacity = getOpacity(a_speed);\\nfloat lineSize = getSize(a_speed);\\nvec2 position = a_positionAndSide.xy;\\nv_side = a_positionAndSide.z;\\nvec2 xy = (u_dvsMat3 * vec3(position, 1.0) + u_displayViewMat3 * vec3(a_extrude * lineSize, 0.0)).xy;\\ngl_Position = vec4(xy, 0.0, 1.0);\\nv_time = a_timeInfo.x;\\nv_totalTime = a_timeInfo.y;\\nv_timeSeed = a_timeInfo.z;\\nv_color = lineColor;\\nv_color.a *= lineOpacity;\\nv_color.rgb *= v_color.a;\\nv_size = lineSize;\\n}\"},\"vv.glsl\":\"#define MAX_STOPS 8\\n#ifdef VV_COLOR\\nuniform float u_color_stops[MAX_STOPS];\\nuniform vec4 u_color_values[MAX_STOPS];\\nuniform int u_color_count;\\n#else\\nuniform vec4 u_color;\\n#endif\\n#ifdef VV_OPACITY\\nuniform float u_opacity_stops[MAX_STOPS];\\nuniform float u_opacity_values[MAX_STOPS];\\nuniform int u_opacity_count;\\n#else\\nuniform float u_opacity;\\n#endif\\n#ifdef VV_SIZE\\nuniform float u_size_stops[MAX_STOPS];\\nuniform float u_size_values[MAX_STOPS];\\nuniform int u_size_count;\\n#else\\nuniform float u_size;\\n#endif\\nuniform float u_featheringOffset;\\nvec4 getColor(float x) {\\n#ifdef VV_COLOR\\nvec4 color = u_color_values[0];\\n{\\nfor (int i = 1; i < MAX_STOPS; i++) {\\nif (i >= u_color_count) {\\nbreak;\\n}\\nfloat x1 = u_color_stops[i - 1];\\nif (x < x1) {\\nbreak;\\n}\\nfloat x2 = u_color_stops[i];\\nvec4 y2 = u_color_values[i];\\nif (x < x2) {\\nvec4 y1 = u_color_values[i - 1];\\ncolor = y1 + (y2 - y1) * (x - x1) / (x2 - x1);\\n} else {\\ncolor = y2;\\n}\\n}\\n}\\n#else\\nvec4 color = u_color;\\n#endif\\nreturn color;\\n}\\nfloat getOpacity(float x) {\\n#ifdef VV_OPACITY\\nfloat opacity = u_opacity_values[0];\\n{\\nfor (int i = 1; i < MAX_STOPS; i++) {\\nif (i >= u_opacity_count) {\\nbreak;\\n}\\nfloat x1 = u_opacity_stops[i - 1];\\nif (x < x1) {\\nbreak;\\n}\\nfloat x2 = u_opacity_stops[i];\\nfloat y2 = u_opacity_values[i];\\nif (x < x2) {\\nfloat y1 = u_opacity_values[i - 1];\\nopacity = y1 + (y2 - y1) * (x - x1) / (x2 - x1);\\n} else {\\nopacity = y2;\\n}\\n}\\n}\\n#else\\nfloat opacity = u_opacity;\\n#endif\\nreturn opacity;\\n}\\nfloat getSize(float x) {\\n#ifdef VV_SIZE\\nfloat size = u_size_values[0];\\n{\\nfor (int i = 1; i < MAX_STOPS; i++) {\\nif (i >= u_size_count) {\\nbreak;\\n}\\nfloat x1 = u_size_stops[i - 1];\\nif (x < x1) {\\nbreak;\\n}\\nfloat x2 = u_size_stops[i];\\nfloat y2 = u_size_values[i];\\nif (x < x2) {\\nfloat y1 = u_size_values[i - 1];\\nsize = y1 + (y2 - y1) * (x - x1) / (x2 - x1);\\n} else {\\nsize = y2;\\n}\\n}\\n}\\n#else\\nfloat size = u_size;\\n#endif\\nreturn size + 2.0 * u_featheringSize * u_featheringOffset;\\n}\"},hillshade:{\"hillshade.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\n#include \\nuniform int u_hillshadeType;\\nuniform float u_sinZcosAs[6];\\nuniform float u_sinZsinAs[6];\\nuniform float u_cosZs[6];\\nuniform float u_weights[6];\\nuniform vec2 u_factor;\\nuniform float u_minValue;\\nuniform float u_maxValue;\\n#include \\nfloat getNeighborHoodAlpha(float a, float b, float c, float d, float e, float f, float g, float h, float i){\\nif (a == 0.0 || a == 0.0 || a==0.0 || a == 0.0 || a == 0.0 || a==0.0 || a == 0.0 || a == 0.0 || a==0.0) {\\nreturn 0.0;\\n}\\nelse {\\nreturn e;\\n}\\n}\\nvec3 rgb2hsv(vec3 c) {\\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\nvec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\\nvec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\\nfloat d = q.x - min(q.w, q.y);\\nfloat e = 1.0e-10;\\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\\n}\\nvec3 hsv2rgb(vec3 c) {\\nvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\nvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\nreturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n}\\nvec4 overlay(float val, float minValue, float maxValue, float hillshade) {\\nval = clamp((val - minValue) / (maxValue - minValue), 0.0, 1.0);\\nvec4 rgb = colorize(vec4(val, val, val, 1.0), 255.0);\\nvec3 hsv = rgb2hsv(rgb.xyz);\\nhsv.z = hillshade;\\nreturn vec4(hsv2rgb(hsv), 1.0) * rgb.a;\\n}\\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\nif (currentPixel.a == 0.0) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec2 axy = vec2(-1.0, -1.0);\\nvec2 bxy = vec2(0.0, -1.0);\\nvec2 cxy = vec2(1.0, -1.0);\\nvec2 dxy = vec2(-1.0, 0.0);\\nvec2 fxy = vec2(1.0, 0.0);\\nvec2 gxy = vec2(-1.0, 1.0);\\nvec2 hxy = vec2(0.0, 1.0);\\nvec2 ixy = vec2(1.0, 1.0);\\nvec2 onePixel = 1.0 / u_srcImageSize;\\nif (pixelLocation.s < onePixel.s) {\\naxy[0] = 1.0;\\ndxy[0] = 1.0;\\ngxy[0] = 1.0;\\n}\\nif (pixelLocation.t < onePixel.t) {\\naxy[1] = 1.0;\\nbxy[1] = 1.0;\\ncxy[1] = 1.0;\\n}\\nif (pixelLocation.s > 1.0 - onePixel.s) {\\ncxy[0] = -1.0;\\nfxy[0] = -1.0;\\nixy[0] = -1.0;\\n}\\nif (pixelLocation.t > 1.0 - onePixel.t) {\\ngxy[1] = -1.0;\\nhxy[1] = -1.0;\\nixy[1] = -1.0;\\n}\\nvec4 va = texture2D(u_image, pixelLocation + onePixel * axy);\\nvec4 vb = texture2D(u_image, pixelLocation + onePixel * bxy);\\nvec4 vc = texture2D(u_image, pixelLocation + onePixel * cxy);\\nvec4 vd = texture2D(u_image, pixelLocation + onePixel * dxy);\\nvec4 ve = texture2D(u_image, pixelLocation);\\nvec4 vf = texture2D(u_image, pixelLocation + onePixel * fxy);\\nvec4 vg = texture2D(u_image, pixelLocation + onePixel * gxy);\\nvec4 vh = texture2D(u_image, pixelLocation + onePixel * hxy);\\nvec4 vi = texture2D(u_image, pixelLocation + onePixel * ixy);\\nfloat dzx = (vc + 2.0 * vf + vi - va - 2.0 * vd - vg).r * u_factor.s;\\nfloat dzy = (vg + 2.0 * vh + vi - va - 2.0 * vb - vc).r * u_factor.t;\\nfloat dzd = sqrt(1.0 + dzx * dzx + dzy * dzy);\\nfloat hillshade = 0.0;\\nif (u_hillshadeType == 0){\\nfloat cosDelta = u_sinZsinAs[0] * dzy - u_sinZcosAs[0] * dzx;\\nfloat z = (u_cosZs[0] + cosDelta) / dzd;\\nif (z < 0.0) z = 0.0;\\nhillshade = z;\\n} else {\\nfor (int k = 0; k < 6; k++) {\\nfloat cosDelta = u_sinZsinAs[k] * dzy - u_sinZcosAs[k] * dzx;\\nfloat z = (u_cosZs[k] + cosDelta) / dzd;\\nif (z < 0.0) z = 0.0;\\nhillshade = hillshade + z * u_weights[k];\\nif (k == 5) break;\\n}\\n}\\nfloat alpha = getNeighborHoodAlpha(va.a, vb.a, vc.a, vd.a, ve.a, vf.a, vg.a, vh.a, vi.a);\\n#ifdef APPLY_COLORMAP\\ngl_FragColor = overlay(ve.r, u_minValue, u_maxValue, hillshade) * alpha * u_opacity;\\n#else\\ngl_FragColor = vec4(hillshade, hillshade, hillshade, 1.0) * alpha * u_opacity;\\n#endif\\n}\",\"hillshade.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"},lut:{\"colorize.glsl\":\"uniform sampler2D u_colormap;\\nuniform float u_colormapOffset;\\nuniform float u_colormapMaxIndex;\\nvec4 colorize(vec4 currentPixel, float scaleFactor) {\\nfloat clrIndex = clamp(currentPixel.r * scaleFactor - u_colormapOffset, 0.0, u_colormapMaxIndex);\\nvec2 clrPosition = vec2((clrIndex + 0.5) / (u_colormapMaxIndex + 1.0), 0.0);\\nvec4 color = texture2D(u_colormap, clrPosition);\\nvec4 result = vec4(color.rgb, color.a * currentPixel.a);\\nreturn result;\\n}\",\"lut.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\n#include \\n#include \\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\nvec4 result = colorize(currentPixel, 1.0);\\ngl_FragColor = vec4(result.xyz, 1.0) * result.a * u_opacity;\\n}\",\"lut.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform highp float u_scale;\\nuniform highp vec2 u_offset;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos * u_scale + u_offset;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"},magdir:{\"magdir.frag\":\"precision mediump float;\\nvarying vec4 v_color;\\nuniform lowp float u_opacity;\\nvoid main() {\\ngl_FragColor = v_color * u_opacity;\\n}\",\"magdir.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nattribute vec2 a_offset;\\nattribute vec2 a_vv;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform vec2 u_symbolSize;\\nuniform vec2 u_symbolPercentRange;\\nuniform vec2 u_dataRange;\\nuniform float u_rotation;\\nuniform vec4 u_colors[12];\\nvarying vec4 v_color;\\nvoid main()\\n{\\nfloat angle = a_offset.y + u_rotation;\\n#ifndef ROTATION_GEOGRAPHIC\\nangle = 3.14159265359 * 2.0 - angle - 3.14159265359 / 2.0;\\n#endif\\nvec2 offset = vec2(cos(angle), sin(angle)) * a_offset.x;\\n#ifdef DATA_RANGE\\nfloat valuePercentage = clamp((a_vv.y - u_dataRange.x) / (u_dataRange.y - u_dataRange.x), 0.0, 1.0);\\nfloat sizeRatio = u_symbolPercentRange.x + valuePercentage * (u_symbolPercentRange.y - u_symbolPercentRange.x);\\nfloat sizePercentage = clamp(sizeRatio, u_symbolPercentRange.x, u_symbolPercentRange.y);\\n#else\\nfloat sizePercentage = (u_symbolPercentRange.x + u_symbolPercentRange.y) / 2.0;\\n#endif\\nvec2 pos = a_pos + offset * sizePercentage * u_symbolSize;\\nv_color = u_colors[int(a_vv.x)];\\ngl_Position = vec4(u_dvsMat3 * vec3(pos * u_coordScale, 1.0), 1.0);\\n}\"},reproject:{\"reproject.frag\":\"precision mediump float;\\nvarying vec2 v_texcoord;\\n#include \\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\ngl_FragColor = vec4(currentPixel.rgb, 1.0) * currentPixel.a * u_opacity;\\n}\",\"reproject.vert\":\"precision mediump float;\\nattribute vec2 a_position;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_position;\\ngl_Position = vec4(2.0 * (a_position - 0.5), 0.0, 1.0);\\n}\"},scalar:{\"scalar.frag\":\"precision mediump float;\\nuniform lowp float u_opacity;\\nvarying vec2 v_pos;\\nconst vec4 outlineColor = vec4(0.2, 0.2, 0.2, 1.0);\\nconst float outlineSize = 0.02;\\nconst float innerRadius = 0.25;\\nconst float outerRadius = 0.42;\\nconst float innerSquareLength = 0.15;\\nvoid main() {\\nmediump float dist = length(v_pos);\\nmediump float fillalpha1 = smoothstep(outerRadius, outerRadius + outlineSize, dist);\\nfillalpha1 *= (1.0-smoothstep(outerRadius + outlineSize, outerRadius + 0.1 + outlineSize, dist));\\n#ifdef INNER_CIRCLE\\nmediump float fillalpha2 = smoothstep(innerRadius, innerRadius + outlineSize, dist);\\nfillalpha2 *= (1.0-smoothstep(innerRadius + outlineSize, innerRadius + 0.1 + outlineSize, dist));\\n#else\\nmediump float fillalpha2 = (abs(v_pos.x) < innerSquareLength ? 1.0 : 0.0) * (abs(v_pos.y) < innerSquareLength ? 1.0 : 0.0);\\n#endif\\ngl_FragColor = (fillalpha2 + fillalpha1) * outlineColor * u_opacity;\\n}\",\"scalar.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nattribute vec2 a_offset;\\nattribute vec2 a_vv;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform vec2 u_symbolSize;\\nuniform vec2 u_symbolPercentRange;\\nuniform vec2 u_dataRange;\\nvarying vec2 v_pos;\\nvoid main()\\n{\\n#ifdef DATA_RANGE\\nfloat valuePercentage = clamp((a_vv.y - u_dataRange.x) / (u_dataRange.y - u_dataRange.x), 0.0, 1.0);\\nfloat sizeRatio = u_symbolPercentRange.x + valuePercentage * (u_symbolPercentRange.y - u_symbolPercentRange.x);\\nfloat sizePercentage = clamp(sizeRatio, u_symbolPercentRange.x, u_symbolPercentRange.y);\\n#else\\nfloat sizePercentage = (u_symbolPercentRange.x + u_symbolPercentRange.y) / 2.0;\\n#endif\\nvec2 size = u_symbolSize * sizePercentage;\\nvec2 pos = a_pos + a_offset * size;\\nv_pos = a_offset;\\ngl_Position = vec4(u_dvsMat3 * vec3(pos * u_coordScale, 1.0), 1.0);\\n}\"},stretch:{\"stretch.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\n#include \\nuniform float u_minCutOff[3];\\nuniform float u_maxCutOff[3];\\nuniform float u_minOutput;\\nuniform float u_maxOutput;\\nuniform float u_factor[3];\\nuniform bool u_useGamma;\\nuniform float u_gamma[3];\\nuniform float u_gammaCorrection[3];\\n#include \\nfloat stretchOneValue(float val, float minCutOff, float maxCutOff, float minOutput, float maxOutput, float factor, bool useGamma, float gamma, float gammaCorrection) {\\nif (val >= maxCutOff) {\\nreturn maxOutput;\\n} else if (val <= minCutOff) {\\nreturn minOutput;\\n}\\nfloat stretchedVal;\\nif (useGamma) {\\nfloat tempf = 1.0;\\nfloat outRange = maxOutput - minOutput;\\nfloat relativeVal = (val - minCutOff) / (maxCutOff - minCutOff);\\nif (gamma > 1.0) {\\ntempf -= pow(1.0 / outRange, relativeVal * gammaCorrection);\\n}\\nstretchedVal = (tempf * outRange * pow(relativeVal, 1.0 / gamma) + minOutput) / 255.0;\\n} else {\\nstretchedVal = minOutput + (val - minCutOff) * factor;\\n}\\nreturn stretchedVal;\\n}\\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\n#ifdef NOOP\\ngl_FragColor = vec4(currentPixel.rgb, 1.0) * currentPixel.a * u_opacity;\\nreturn;\\n#endif\\nif (u_bandCount == 1) {\\nfloat grayVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_useGamma, u_gamma[0], u_gammaCorrection[0]);\\n#ifdef APPLY_COLORMAP\\nvec4 result = colorize(vec4(grayVal, grayVal, grayVal, 1.0), u_useGamma ? 255.0 : 1.0);\\ngl_FragColor = vec4(result.xyz, 1.0) * result.a * currentPixel.a * u_opacity;\\n#else\\ngl_FragColor = vec4(grayVal, grayVal, grayVal, 1.0) * currentPixel.a * u_opacity;\\n#endif\\n} else {\\nfloat redVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_useGamma, u_gamma[0], u_gammaCorrection[0]);\\nfloat greenVal = stretchOneValue(currentPixel.g, u_minCutOff[1], u_maxCutOff[1], u_minOutput, u_maxOutput, u_factor[1], u_useGamma, u_gamma[1], u_gammaCorrection[1]);\\nfloat blueVal = stretchOneValue(currentPixel.b, u_minCutOff[2], u_maxCutOff[2], u_minOutput, u_maxOutput, u_factor[2], u_useGamma, u_gamma[2], u_gammaCorrection[2]);\\ngl_FragColor = vec4(redVal, greenVal, blueVal, 1.0) * currentPixel.a * u_opacity;\\n}\\n}\",\"stretch.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform highp float u_scale;\\nuniform highp vec2 u_offset;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos * u_scale + u_offset;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"}},stencil:{\"stencil.frag\":\"void main() {\\ngl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\\n}\",\"stencil.vert\":\"attribute vec2 a_pos;\\nuniform mat3 u_worldExtent;\\nvoid main() {\\ngl_Position = vec4(u_worldExtent * vec3(a_pos, 1.0), 1.0);\\n}\"},tileInfo:{\"tileInfo.frag\":\"uniform mediump sampler2D u_texture;\\nvarying mediump vec2 v_tex;\\nvoid main(void) {\\nlowp vec4 color = texture2D(u_texture, v_tex);\\ngl_FragColor = 0.75 * color;\\n}\",\"tileInfo.vert\":\"attribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform mediump float u_depth;\\nuniform mediump vec2 u_coord_ratio;\\nuniform mediump vec2 u_delta;\\nuniform mediump vec2 u_dimensions;\\nvarying mediump vec2 v_tex;\\nvoid main() {\\nmediump vec2 offset = u_coord_ratio * vec2(u_delta + a_pos * u_dimensions);\\nvec3 v_pos = u_dvsMat3 * vec3(offset, 1.0);\\ngl_Position = vec4(v_pos.xy, 0.0, 1.0);\\nv_tex = a_pos;\\n}\"},util:{\"atan2.glsl\":\"float atan2(in float y, in float x) {\\nfloat t0, t1, t2, t3, t4;\\nt3 = abs(x);\\nt1 = abs(y);\\nt0 = max(t3, t1);\\nt1 = min(t3, t1);\\nt3 = 1.0 / t0;\\nt3 = t1 * t3;\\nt4 = t3 * t3;\\nt0 = - 0.013480470;\\nt0 = t0 * t4 + 0.057477314;\\nt0 = t0 * t4 - 0.121239071;\\nt0 = t0 * t4 + 0.195635925;\\nt0 = t0 * t4 - 0.332994597;\\nt0 = t0 * t4 + 0.999995630;\\nt3 = t0 * t3;\\nt3 = (abs(y) > abs(x)) ? 1.570796327 - t3 : t3;\\nt3 = x < 0.0 ? 3.141592654 - t3 : t3;\\nt3 = y < 0.0 ? -t3 : t3;\\nreturn t3;\\n}\",\"encoding.glsl\":\"const vec4 rgba2float_factors = vec4(\\n255.0 / (256.0),\\n255.0 / (256.0 * 256.0),\\n255.0 / (256.0 * 256.0 * 256.0),\\n255.0 / (256.0 * 256.0 * 256.0 * 256.0)\\n);\\nfloat rgba2float(vec4 rgba) {\\nreturn dot(rgba, rgba2float_factors);\\n}\"}};export{e as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport r from\"./shaderRepository.js\";import{ShaderCompiler as e}from\"../../../../../webgl/ShaderCompiler.js\";function o(e){let o=r;return e.split(\"/\").forEach((r=>{o&&(o=o[r])})),o}const t=new e(o);function n(r){return t.resolveIncludes(r)}export{n as resolveIncludes};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.24/esri/copyright.txt for details.\n*/\nimport{Z as e}from\"../../chunks/vec2f64.js\";import{ContextType as t}from\"./context-util.js\";import{PixelType as n,TextureType as a,PixelFormat as r,SizedPixelFormat as i,TextureSamplingMode as o,TextureWrapMode as s,TargetType as u,DepthStencilTargetType as f,UniformType as m}from\"./enums.js\";import{FramebufferObject as c}from\"./FramebufferObject.js\";import{Texture as l}from\"./Texture.js\";function _(e,u,f=\"nearest\",m=!1){const c=!(m&&\"u8\"===u.pixelType),_=c?n.FLOAT:n.UNSIGNED_BYTE,p=null==u.pixels||0===u.pixels.length?null:c?u.getAsRGBAFloat():u.getAsRGBA(),E=e.capabilities.textureFloat?.textureFloatLinear,T={width:u.width,height:u.height,target:a.TEXTURE_2D,pixelFormat:r.RGBA,internalFormat:e.type===t.WEBGL2&&c?i.RGBA32F:r.RGBA,samplingMode:!E||\"bilinear\"!==f&&\"cubic\"!==f?o.NEAREST:o.LINEAR,dataType:_,wrapMode:s.CLAMP_TO_EDGE,flipped:!1};return new l(e,T,p)}function p(e,t,i,m){const _=m?n.UNSIGNED_BYTE:n.FLOAT,p={width:t,height:i,target:a.TEXTURE_2D,pixelFormat:r.RGBA,internalFormat:r.RGBA,samplingMode:o.NEAREST,dataType:_,wrapMode:s.CLAMP_TO_EDGE,flipped:!1},E=new l(e,p);return new c(e,{colorTarget:u.TEXTURE,depthStencilTarget:f.DEPTH_STENCIL_RENDER_BUFFER,width:t,height:i},E)}function E(e,u){const{spacing:f,offsets:m,coefficients:c,size:[_,p]}=u,E=f[0]>1,T={width:E?4*_:_,height:p,target:a.TEXTURE_2D,pixelFormat:r.RGBA,internalFormat:e.type===t.WEBGL2?i.RGBA32F:r.RGBA,dataType:n.FLOAT,samplingMode:o.NEAREST,wrapMode:s.CLAMP_TO_EDGE,flipped:!1},g=new Float32Array(E?_*p*16:2*m.length);if(E)for(let t=0,n=0;t{const r=t.get(a)||t.get(a+\"[0]\");r&&G(e,a,n[a],r)}))}function U(e,t,n,a){n.length===a.length&&(a.some((e=>null==e))||n.some((e=>null==e))||n.forEach(((n,r)=>{t.setUniform1i(n,r),e.bindTexture(a[r],r)})))}function G(e,t,n,a){if(null===a||null==n)return!1;const{info:r}=a;switch(r.type){case m.FLOAT:r.size>1?e.setUniform1fv(t,n):e.setUniform1f(t,n);break;case m.FLOAT_VEC2:e.setUniform2fv(t,n);break;case m.FLOAT_VEC3:e.setUniform3fv(t,n);break;case m.FLOAT_VEC4:e.setUniform4fv(t,n);break;case m.FLOAT_MAT3:e.setUniformMatrix3fv(t,n);break;case m.FLOAT_MAT4:e.setUniformMatrix4fv(t,n);break;case m.INT:r.size>1?e.setUniform1iv(t,n):e.setUniform1i(t,n);break;case m.BOOL:e.setUniform1i(t,n?1:0);break;case m.INT_VEC2:case m.BOOL_VEC2:e.setUniform2iv(t,n);break;case m.INT_VEC3:case m.BOOL_VEC3:e.setUniform3iv(t,n);break;case m.INT_VEC4:case m.BOOL_VEC4:e.setUniform4iv(t,n);break;default:return!1}return!0}export{T as createColormapTexture,p as createFrameBuffer,_ as createRasterTexture,E as createTransformTexture,h as getBasicGridUniforms,A as getColormapUniforms,g as getCommonUniforms,O as getShadedReliefUniforms,d as getStretchUniforms,F as getUniformLocationInfos,U as setTextures,R as setUniforms};\n"],"names":["n","Float32Array","t","r","e","a","o","u","s","c","i","f","l","_","y","w","N","Object","freeze","defineProperty","__proto__","create","clone","fromValues","createView","zeros","ones","unitX","unitY","unitZ","unitW","ZEROS","ONES","UNIT_X","UNIT_Y","UNIT_Z","UNIT_W","Symbol","toStringTag","value","m","constructor","super","arguments","this","_desc","lut","vsPath","fsPath","attributes","Map","stretch","hillshade","_rendererUniformInfos","dispose","_quad","prepareState","context","setBlendingEnabled","setBlendFunctionSeparate","setColorMask","setStencilWriteMask","setStencilTestEnabled","setStencilFunction","stencilRef","draw","suspended","timeline","painter","requestRender","begin","name","capabilities","textureFloat","textureFloatLinear","updateTexture","h","_getShaderVariations","materialManager","getProgram","symbolizerParameters","type","_drawWithProgram","end","d","isCompiled","transformGrid","g","width","b","height","P","opacity","S","useProgram","x","_getUniformInfos","names","M","textures","U","getTextures","j","I","source","u_coordScale","coordScale","u_dvsMat3","transforms","dvs","colormap","colormapOffset","p","length","join","has","get","set","interpolation","push","isRendereredSource","spacing","nearest","defines","samplingMode","mips","bilinear","bicubic","trilinear","state","resolution","pixelRatio","Math","round","rotation","isSourceScaled","blendFunction","renderingOptions","computedOpacity","setSamplingProfile","bind","setUniformMatrix3fv","setUniform1i","setUniform2fv","setUniform1f","_color","_program","setFaceCullingEnabled","setStencilOp","geometry","location","count","getVAO","bufferLayouts","indexBuffer","setUniform4fv","displayMat3","bindVAO","drawElements","size","isReady","dvsMat3","isWrapAround","texture","tex","bindTexture","drawArrays","_computeDesc","includes","getGeometryType","commit","getGeometry","attributeView","bindTextures","forEachCommand","v","materialKey","symbologyType","supportsSymbology","drawGeometry","_setSharedUniforms","displayLevel","passOptions","position","distance","tileMat3","viewMat3","displayViewMat3","_setSizeVVUniforms","vvSizeMinMaxValue","vvSizeScaleStops","vvSizeScaleStopsValue","vvSizeFieldStops","getSizeVVFieldStops","key","level","setUniform1fv","values","sizes","vvSizeUnitValue","vvSizeUnitValueToPixelsRatio","_setColorAndOpacityVVUniforms","vvColor","vvColorValues","vvColors","vvOpacity","vvOpacityValues","vvOpacities","_setRotationVVUniforms","vvRotation","vvMaterialParameters","vvRotationType","_getTriangleDesc","map","findIndex","strides","max","divisor","normalized","offset","stride","rendererInfo","requiredLevel","E","data","shader","T","vertexLayout","hittestAttributes","programSpec","splice","L","G","O","getMaterialProgram","setUniform2f","col","row","textureBinding","textureManager","D","target","R","indexCount","indexFrom","Uint32Array","BYTES_PER_ELEMENT","_drawFills","A","_drawMarkers","F","_patternMatrix","_programOptions","id","pattern","_vao","drawMany","styleLayerUID","_loadWGLResources","styleLayer","backgroundMaterial","vectorTilesMaterialManager","getPaintValue","window","devicePixelRatio","spriteMosaic","drawPhase","k","getMosaicItemPosition","tl","br","page","getPageSize","setUniform4f","z","rangeX","Int8Array","getAttributeLocations","getLayoutInfo","some","layerData","circleIndexCount","circleMaterial","setDataUniforms","prepareForRendering","circleVertexArrayObject","circleIndexStart","triangleCount","_fillProgramOptions","_outlineProgramOptions","renderPass","fillIndexCount","outlineIndexCount","getPaintProperty","isDataDriven","getValue","_drawFill","hasDataDrivenOutlineColor","outlineUsesFillColor","_drawOutline","fillMaterial","C","V","fillVertexArrayObject","patternMap","fillIndexStart","outlineMaterial","outlineVertexArrayObject","outlineIndexStart","sdf","lineIndexCount","lineMaterial","getDashKey","getLayoutValue","lineVertexArrayObject","lineIndexStart","_iconProgramOptions","_sdfProgramOptions","_spritesTextureSize","_drawIcons","_drawText","iconMaterial","iconPerPageElementsMap","isIconSDF","updateOpacityInfo","iconVertexArrayObject","performance","now","lastOpacityUpdate","_renderIconRange","getWidth","getHeight","glyphMosaic","textMaterial","glyphPerPageElementsMap","W","_glyphTextureSize","B","H","Y","textVertexArrayObject","forEach","_renderGlyphRange","marker","line","fill","text","label","mapAligned","abs","floor","clip","stencil","bitmap","overlay","raster","rasterVF","flow","tileInfo","vtlBackground","vtlFill","vtlLine","vtlCircle","vtlSymbol","dotDensity","_dotTextureSize","_dotTextures","_dotSamplers","Int32Array","_dotVAO","_dotDesc","_disposeTextures","_dotFBO","_drawDotLocations","_drawDotDensity","rendererSchema","_createDotDensityMesh","dotSize","getViewport","dotScale","colors","activeDots","backgroundColor","dotValue","setViewport","getBoundFramebufferObject","_createFBO","bindFramebuffer","setClearColor","clear","gl","COLOR_BUFFER_BIT","STENCIL_BUFFER_BIT","scale","setUniformMatrix4fv","_bindDotDensityTextures","colorTexture","pixelFormat","dataType","wrapMode","colorTarget","depthStencilTarget","internalFormat","_createDotDensityTextures","seed","setUniform1iv","Int16Array","_seed","_allocDotDensityTexture","getFloat","heatmap","_accumulateOutputTexture","_accumulateFramebuffer","_resolveGradientTexture","_tileQuad","_loadQualityProfile","_prepareAccumulatePass","_drawResolvePass","referenceScale","radius","isFieldActive","_loadResources","_updateResources","setBlendFunction","minDensity","densityRange","PI","shadingRate","gradientHash","gradient","_prevGradientHash","resize","setData","_qualityProfile","colorBufferFloat","textureHalfFloat","textureHalfFloatLinear","HALF_FLOAT","floatBlend","error","warnOnce","pieChart","defaultColor","othersColor","outlineColor","holePercentage","sectorThreshold","outlineWidth","_visualState","time","displayData","attach","resources","ready","flowStyle","render","animated","beaufort_ft","beaufort_m","beaufort_km","beaufort_mi","beaufort_kn","classified_arrow","ocean_current_m","ocean_current_kn","single_arrow","wind_speed","magdir","scalar","validPixelCount","updateVectorFieldVAO","vaoData","_drawScalars","vao","elementCount","_drawTriangles","dataRange","rotationType","style","symbolPercentRange","_getSymbolSize","symbolTileSize","bandCount","outMin","outMax","minCutOff","maxCutOff","factor","useGamma","gamma","gammaCorrection","stretchType","_textureInvalidated","_colormapTextureInvalidated","_supportsBilinearTexture","_symbolizerParameters","_source","rawPixelData","_suspended","_bandIds","_interpolation","_transformGrid","destroy","_rasterTexture","_transformGridTexture","_colormapTexture","_rasterTextureBandIds","invalidateTexture","stage","bandIds","_isBandIdschanged","setSamplingMode","_getTextureSamplingMethod","_createTransforms","setTransform","toScreenNoRotation","onAttach","onDetach","_isValidSource","_updateColormapTexture","_createOrDestroyRasterTexture","pixels","_colormap","rctx","_vertexBuffer","Uint16Array","_count","unbind","coords","lengths","slice","_cache","vertices","indices","primitiveType","isMapSpace","fromScreenExtent","xmin","ymin","xmax","ymax","path","fromPolygon","fromMapExtent","fromRect","toScreen","vertexBuffers","elementType","getIndexBuffer","getVertexBuffers","keys","reduce","parseFloat","_clip","_handle","version","_invalidate","_destroyGL","mesh","remove","_lastWidth","_lastHeight","_createMesh","_createScreenRect","left","right","top","bottom","clips","_clips","children","_updateClippingInfo","doRender","createRenderParams","globalOpacity","profiler","recordContainerStart","beforeRenderLayer","_clippingInfos","updateTransforms","renderChildren","compositeLayer","recordContainerEnd","_renderPasses","prepareRenderPasses","beforeRender","afterRender","requireFBO","requiresDedicatedFBO","registerRenderPass","brushes","items","shaders","vertexShader","fragmentShader","_outlineProgram","_tileInfoProgram","_outlineVertexArrayObject","_tileInfoVertexArrayObject","_canvas","rangeY","_getTexture","descriptor","triangleCountReportedInDebug","document","createElement","setAttribute","getContext","font","textAlign","textBaseline","clearRect","fillStyle","fillRect","fillText","_initialized","_solidProgram","_solidVertexArrayObject","setDepthWriteEnabled","setDepthTestEnabled","setStencilFunctionSeparate","_initialize","background","bitBlit","blend","dot","filtering","fx","integrate","heatmapResolve","highlight","magnifier","materials","hittest","icon","heatmapAccumulate","pie","shared","blit","bloom","composite","gaussianBlur","luminosityHighPass","blur","dra","sobel","filterEffect","pp","common","imagery","particles","streamlines","reproject","util","split","resolveIncludes","pixelType","getAsRGBAFloat","getAsRGBA","flipped","offsets","coefficients","u_flipY","u_applyTransform","u_opacity","u_transformSpacing","u_transformGridSize","u_targetImageSize","u_srcImageSize","u_colormapOffset","u_colormapMaxIndex","u_scale","u_offset","u_bandCount","u_minOutput","u_maxOutput","u_minCutOff","u_maxCutOff","u_factor","u_useGamma","u_gamma","u_gammaCorrection","u_hillshadeType","hillshadeType","u_sinZcosAs","sinZcosAs","u_sinZsinAs","sinZsinAs","u_cosZs","cosZs","u_weights","weights","u_minValue","minValue","u_maxValue","maxValue","glName","getProgramParameter","ACTIVE_UNIFORMS","getActiveUniform","getUniformLocation","info","setUniform3fv","setUniform2iv","setUniform3iv","setUniform4iv"],"sourceRoot":""}