{"version":3,"file":"static/js/4510.340c1834.chunk.js","mappings":"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","sources":["../node_modules/@arcgis/core/chunks/vec4f32.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/WGLGeometryBrushFill.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushPieChart.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/webgl/brushes/WGLGeometryBrushLabel.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/brushes.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushDotDensity.js","../node_modules/@arcgis/core/views/2d/engine/webgl/DefaultVertexAttributeLayouts.js","../node_modules/@arcgis/core/views/2d/engine/webgl/GeometryUtils.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/BrushBitmap.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrush.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushHeatmap.js","../node_modules/@arcgis/core/views/webgl/heatmapTextureUtils.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/brushes/WGLGeometryBrush.js","../node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushMarker.js","../node_modules/@arcgis/core/views/2d/engine/webgl/effects/Effect.js","../node_modules/@arcgis/core/views/2d/engine/webgl/shaders/BackgroundPrograms.js","../node_modules/@arcgis/core/views/2d/engine/webgl/shaders/TileInfoPrograms.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"],"sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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,ONES:l,UNIT_W:N,UNIT_X:_,UNIT_Y:y,UNIT_Z:w,ZEROS:f,clone:t,create:n,createView:e,fromValues:r,ones:o,unitW:i,unitX:u,unitY:s,unitZ:c,zeros:a},Symbol.toStringTag,{value:\"Module\"}));export{l as O,_ as U,f as Z,n as a,e as b,t 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.26/esri/copyright.txt for details.\n*/\nimport{isNone as r,isSome as e}from\"../../../../../core/maybe.js\";import{f as t}from\"../../../../../chunks/vec4f32.js\";import{createProgramDescriptor as s}from\"../Utils.js\";import o from\"./WGLBrush.js\";import{background as a}from\"../shaders/BackgroundPrograms.js\";import{StencilOperation as i,CompareFunction as m,PrimitiveType as n,DataType 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:p.SHORT}]});class d extends o{constructor(){super(...arguments),this._color=t(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(i.KEEP,i.KEEP,i.REPLACE),r.setStencilWriteMask(255),r.setStencilFunction(m.ALWAYS,0,255)}draw(t,s){const{context:o,state:i,requestRender:m,allowDelayedRender:d}=t,f=c(),g=s.getVAO(o,i,f.attributes,f.bufferLayouts);r(g.indexBuffer)||(this._program||(this._program=l(o,a)),d&&e(m)&&!this._program.compiled?m():(o.useProgram(this._program),this._program.setUniform2fv(\"u_coord_range\",[1,1]),this._program.setUniform4fv(\"u_color\",this._color),this._program.setUniformMatrix3fv(\"u_dvsMat3\",i.displayMat3),o.bindVAO(g),o.drawElements(n.TRIANGLES,g.indexBuffer.size,p.UNSIGNED_INT,0),o.bindVAO()))}}export{d as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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,PrimitiveType as a,DataType as i}from\"../../../../webgl/enums.js\";const c=()=>r(\"overlay\",{geometry:[{location:0,name:\"a_pos\",count:2,type:i.FLOAT}],tex:[{location:1,name:\"a_uv\",count:2,type:i.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:i,allowDelayedRender:m}=r;if(!s.isReady)return;const{computedOpacity:u,dvsMat3:d,isWrapAround:l,perspectiveTransform:p,texture:f}=s;r.timeline.begin(this.name);const _=n.materialManager.getProgram(this._desc);if(m&&e(i)&&!_.compiled)return void i();const v=c(),y=s.getVAO(o,v.bufferLayouts,v.attributes);if(!y)return;o.bindVAO(y),o.useProgram(_),o.bindTexture(f,t),_.setUniformMatrix3fv(\"u_dvsMat3\",d),_.setUniform1i(\"u_texture\",t),_.setUniform1f(\"u_opacity\",u),_.setUniform2fv(\"u_perspective\",p);const A=l?10:4;o.drawArrays(a.TRIANGLE_STRIP,0,A),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.26/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:d,requestRender:f,allowDelayedRender:E}=o,S=n.load(i.materialKey),g=s(S.data),N=e(d)&&\"hittest\"===d.type,T=y.materialManager,{shader:I,vertexLayout:U,hittestAttributes:x}=t(g.programSpec,u(S));let L=m.TRIANGLES,h=a(S.data,U);N&&(h=this._getTriangleDesc(i.materialKey,h,x),L=m.POINTS);const{attributes:G,bufferLayouts:O}=h,b=T.getMaterialProgram(o,S,I,G,l);if(E&&e(f)&&!b.compiled)return void f();if(c.useProgram(b),this._setSharedUniforms(b,o,r),b.setUniform2f(\"u_tileOffset\",512*r.key.col,512*r.key.row),S.textureBinding){y.textureManager.bindTextures(c,b,S);const e=1/2**(_-r.key.level);b.setUniform1f(\"u_zoomFactor\",e)}const D=1/o.pixelRatio;b.setUniform1f(\"u_blur\",D),b.setUniform1f(\"u_antialiasing\",D),this._setSizeVVUniforms(S,b,p,r),this._setColorAndOpacityVVUniforms(S,b,p);const R=i.target.getVAO(c,O,G,N);let w=i.indexCount,j=i.indexFrom*Uint32Array.BYTES_PER_ELEMENT;N&&(w/=3,j/=3),c.bindVAO(R),this._drawFills(o,r,b,L,w,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.26/esri/copyright.txt for details.\n*/\nimport{WGLSymbologyType as o}from\"../enums.js\";import r from\"./WGLGeometryBrushMarker.js\";import{assertRendererSchema as e}from\"../techniques/utils.js\";import{DataType as t}from\"../../../../webgl/enums.js\";class s extends r{supportsSymbology(r){return r===o.PIE_CHART}_drawMarkers(o,r,s,n,l,f,u){const{context:i}=o,{rendererInfo:m}=o,{rendererSchema:a}=m;e(a,\"pie-chart\"),s.setUniform4fv(\"u_colors\",a.colors),s.setUniform4fv(\"u_defaultColor\",a.defaultColor),s.setUniform4fv(\"u_othersColor\",a.othersColor),s.setUniform4fv(\"u_outlineColor\",a.outlineColor),s.setUniform1f(\"u_donutRatio\",a.holePercentage),s.setUniform1f(\"u_sectorThreshold\",a.sectorThreshold),s.setUniform1f(\"u_outlineWidth\",a.outlineWidth),i.drawElements(n,l,t.UNSIGNED_INT,f)}}export{s as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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:_,allowDelayedRender:d}=e;this._loadWGLResources(e);const h=e.displayLevel,g=e.styleLayer,v=g.backgroundMaterial,y=m.vectorTilesMaterialManager,b=g.getPaintValue(\"background-color\",h),x=g.getPaintValue(\"background-opacity\",h),M=g.getPaintValue(\"background-pattern\",h),j=void 0!==M,U=b[3]*x,w=1|window.devicePixelRatio,L=e.spriteMosaic;let A,P;const I=w>s?2:1,R=e.drawPhase===a.HITTEST,k=this._programOptions;k.id=R,k.pattern=j;const T=y.getMaterialProgram(c,v,k);if(d&&r(_)&&!T.compiled)_();else{if(c.bindVAO(this._vao),c.useProgram(T),j){const t=L.getMosaicItemPosition(M,!0);if(r(t)){const{tl:e,br:o,page:s}=t;A=o[0]-e[0],P=o[1]-e[1];const a=L.getPageSize(s);r(a)&&(L.bind(c,f.LINEAR,s,i),T.setUniform4f(\"u_tlbr\",e[0],e[1],o[0],o[1]),T.setUniform2fv(\"u_mosaicSize\",a),T.setUniform1i(\"u_texture\",i))}T.setUniform1f(\"u_opacity\",x)}else this._color[0]=U*b[0],this._color[1]=U*b[1],this._color[2]=U*b[2],this._color[3]=U,T.setUniform4fv(\"u_color\",this._color);if(T.setUniform1f(\"u_depth\",g.z||0),R){const t=n(p+1);T.setUniform4fv(\"u_id\",t)}for(const r of o){if(T.setUniform1f(\"u_coord_range\",r.rangeX),T.setUniformMatrix3fv(\"u_dvsMat3\",r.transforms.dvs),j){const e=Math.max(2**(Math.round(h)-r.key.level),1),o=I*r.width*e,i=o/t(A),s=o/t(P);this._patternMatrix[0]=i,this._patternMatrix[4]=s,T.setUniformMatrix3fv(\"u_pattern_matrix\",this._patternMatrix)}c.setStencilFunction(l.EQUAL,0,255),c.drawArrays(u.TRIANGLE_STRIP,0,4)}}}_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.26/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 a}from\"../number.js\";import n from\"./WGLBrush.js\";import{CompareFunction as s,PrimitiveType as o,DataType as l}from\"../../../../webgl/enums.js\";class c extends n{constructor(){super(...arguments),this._programOptions={id:!1}}dispose(){}drawMany(n,c){const{context:m,displayLevel:d,requiredLevel:f,state:u,drawPhase:p,painter:y,spriteMosaic:g,styleLayerUID:v,requestRender:E,allowDelayedRender:M}=n;if(!c.some((e=>e.layerData.get(v)?.circleIndexCount??!1)))return;const T=n.styleLayer,x=T.circleMaterial,I=y.vectorTilesMaterialManager,U=1.2,_=T.getPaintValue(\"circle-translate\",d),R=T.getPaintValue(\"circle-translate-anchor\",d),h=p===i.HITTEST,D=this._programOptions;D.id=h;const L=I.getMaterialProgram(m,x,D);if(M&&e(E)&&!L.compiled)return void E();m.useProgram(L),L.setUniformMatrix3fv(\"u_displayMat3\",R===r.VIEWPORT?u.displayMat3:u.displayViewMat3),L.setUniform2fv(\"u_circleTranslation\",_),L.setUniform1f(\"u_depth\",T.z),L.setUniform1f(\"u_antialiasingWidth\",U);let S=-1;if(h){const e=a(v+1);L.setUniform4fv(\"u_id\",e)}for(const e of c){if(!e.layerData.has(v))continue;e.key.level!==S&&(S=e.key.level,x.setDataUniforms(L,d,T,S,g));const r=e.layerData.get(v);if(!r.circleIndexCount)continue;r.prepareForRendering(m);const i=r.circleVertexArrayObject;t(i)||(m.bindVAO(i),L.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),f!==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.26/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 a}from\"../definitions.js\";import{WGLDrawPhase as n}from\"../enums.js\";import{u32to4Xu8 as o}from\"../number.js\";import l from\"./WGLBrush.js\";import{TextureSamplingMode as s,CompareFunction as f,PrimitiveType as u,DataType as d}from\"../../../../webgl/enums.js\";const c=1/65536;class m extends l{constructor(){super(...arguments),this._fillProgramOptions={id:!1,pattern:!1},this._outlineProgramOptions={id:!1}}dispose(){}drawMany(t,e){const{displayLevel:i,drawPhase:r,renderPass:a,spriteMosaic:l,styleLayerUID:s}=t;let f=!1;for(const n of e)if(n.layerData.has(s)){const t=n.layerData.get(s);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=l.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\"===a)return;let E;r===n.HITTEST&&(E=o(s+1));const v=u.getPaintValue(\"fill-translate\",i),M=u.getPaintValue(\"fill-translate-anchor\",i);(g||\"translucent\"!==a)&&this._drawFill(t,s,u,e,v,M,c,p,m,E);const P=!u.hasDataDrivenOutlineColor&&u.outlineUsesFillColor&&_<1;y&&\"opaque\"!==a&&!P&&this._drawOutline(t,s,u,e,v,M,E)}_drawFill(o,l,m,p,y,g,_,E,v,M){if(_&&!v&&t(E))return;const{context:P,displayLevel:I,state:T,drawPhase:U,painter:x,pixelRatio:D,spriteMosaic:h,requestRender:S,allowDelayedRender:R}=o,w=m.fillMaterial,N=x.vectorTilesMaterialManager,L=D>a?2:1,A=U===n.HITTEST,V=this._fillProgramOptions;V.id=A,V.pattern=_;const O=N.getMaterialProgram(P,w,V);if(R&&e(S)&&!O.compiled)return void S();if(P.useProgram(O),e(E)){const{page:t}=E,i=h.getPageSize(t);e(i)&&(h.bind(P,s.LINEAR,t,r),O.setUniform2fv(\"u_mosaicSize\",i),O.setUniform1i(\"u_texture\",r))}O.setUniformMatrix3fv(\"u_displayMat3\",g===i.VIEWPORT?T.displayMat3:T.displayViewMat3),O.setUniform2fv(\"u_fillTranslation\",y),O.setUniform1f(\"u_depth\",m.z+c),A&&O.setUniform4fv(\"u_id\",M);let C=-1;for(const i of p){if(!i.layerData.has(l))continue;i.key.level!==C&&(C=i.key.level,w.setDataUniforms(O,I,m,C,h));const a=i.layerData.get(l);if(!a.fillIndexCount)continue;a.prepareForRendering(P);const n=a.fillVertexArrayObject;if(!t(n)){if(P.bindVAO(n),O.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/(L*i.width*t);O.setUniform1f(\"u_patternFactor\",e)}if(v){const t=a.patternMap;if(!t)continue;for(const[i,a]of t){const t=h.getPageSize(i);e(t)&&(h.bind(P,s.LINEAR,i,r),O.setUniform2fv(\"u_mosaicSize\",t),O.setUniform1i(\"u_texture\",r),P.drawElements(u.TRIANGLES,a[1],d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a[0]))}}else P.drawElements(u.TRIANGLES,a.fillIndexCount,d.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a.fillIndexStart);i.triangleCount+=a.fillIndexCount/3}}}_drawOutline(r,a,o,l,s,m,p){const{context:y,displayLevel:g,state:_,drawPhase:E,painter:v,pixelRatio:M,spriteMosaic:P,requestRender:I,allowDelayedRender:T}=r,U=o.outlineMaterial,x=v.vectorTilesMaterialManager,D=.75/M,h=E===n.HITTEST,S=this._outlineProgramOptions;S.id=h;const R=x.getMaterialProgram(y,U,S);if(T&&e(I)&&!R.compiled)return void I();y.useProgram(R),R.setUniformMatrix3fv(\"u_displayMat3\",m===i.VIEWPORT?_.displayMat3:_.displayViewMat3),R.setUniform2fv(\"u_fillTranslation\",s),R.setUniform1f(\"u_depth\",o.z+c),R.setUniform1f(\"u_outline_width\",D),h&&R.setUniform4fv(\"u_id\",p);let w=-1;for(const e of l){if(!e.layerData.has(a))continue;e.key.level!==w&&(w=e.key.level,U.setDataUniforms(R,g,o,w,P));const i=e.layerData.get(a);if(i.prepareForRendering(y),!i.outlineIndexCount)continue;const r=i.outlineVertexArrayObject;t(r)||(y.bindVAO(r),R.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.26/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 c extends o{constructor(){super(...arguments),this._programOptions={id:!1,pattern:!1,sdf:!1}}dispose(){}drawMany(o,c){const{context:u,displayLevel:d,state:p,drawPhase:y,painter:g,pixelRatio:E,spriteMosaic:M,styleLayerUID:_,requestRender:v,allowDelayedRender:U}=o;if(!c.some((e=>e.layerData.get(_)?.lineIndexCount??!1)))return;const I=o.styleLayer,P=I.lineMaterial,x=g.vectorTilesMaterialManager,T=I.getPaintValue(\"line-translate\",d),D=I.getPaintValue(\"line-translate-anchor\",d),S=I.getPaintProperty(\"line-pattern\"),L=void 0!==S,N=L&&S.isDataDriven;let R,V;if(L&&!N){const e=S.getValue(d);R=M.getMosaicItemPosition(e)}let h=!1;if(!L){const e=I.getPaintProperty(\"line-dasharray\");if(V=void 0!==e,h=V&&e.isDataDriven,V&&!h){const t=e.getValue(d),i=I.getDashKey(t,I.getLayoutValue(\"line-cap\",d));R=M.getMosaicItemPosition(i)}}const w=1/E,A=y===r.HITTEST,j=this._programOptions;j.id=A,j.pattern=L,j.sdf=V;const b=x.getMaterialProgram(u,P,j);if(U&&e(v)&&!b.compiled)return void v();if(u.useProgram(b),b.setUniformMatrix3fv(\"u_displayViewMat3\",p.displayViewMat3),b.setUniformMatrix3fv(\"u_displayMat3\",D===i.VIEWPORT?p.displayMat3:p.displayViewMat3),b.setUniform2fv(\"u_lineTranslation\",T),b.setUniform1f(\"u_depth\",I.z),b.setUniform1f(\"u_antialiasing\",w),A){const e=a(_+1);b.setUniform4fv(\"u_id\",e)}if(R&&e(R)){const{page:t}=R,i=M.getPageSize(t);e(i)&&(M.bind(u,s.LINEAR,t,n),b.setUniform2fv(\"u_mosaicSize\",i),b.setUniform1i(\"u_texture\",n))}let z=-1;for(const i of c){if(!i.layerData.has(_))continue;i.key.level!==z&&(z=i.key.level,P.setDataUniforms(b,d,I,z,M));const r=2**(d-z)/E;b.setUniform1f(\"u_zoomFactor\",r);const a=i.layerData.get(_);if(!a.lineIndexCount)continue;a.prepareForRendering(u);const o=a.lineVertexArrayObject;if(!t(o)){if(u.bindVAO(o),b.setUniformMatrix3fv(\"u_dvsMat3\",i.transforms.dvs),u.setStencilFunction(l.EQUAL,i.stencilRef,255),N||h){const t=a.patternMap;if(!t)continue;for(const[i,r]of t){const t=M.getPageSize(i);e(t)&&(M.bind(u,s.LINEAR,i,n),b.setUniform2fv(\"u_mosaicSize\",t),b.setUniform1i(\"u_texture\",n),u.drawElements(f.TRIANGLES,r[1],m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*r[0]))}}else u.drawElements(f.TRIANGLES,a.lineIndexCount,m.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*a.lineIndexStart);i.triangleCount+=a.lineIndexCount/3}}}}export{c as WGLBrushVTLLine};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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 n,SymbolPlacement as s,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 c}from\"../enums.js\";import{degToByte as u}from\"../GeometryUtils.js\";import{u32to4Xu8 as m}from\"../number.js\";import p from\"./WGLBrush.js\";import{TextureSamplingMode as d,CompareFunction as y,PrimitiveType as g,DataType as _}from\"../../../../webgl/enums.js\";const h=1/65536;class M extends p{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 n;i===c.HITTEST&&(n=m(a+1)),this._drawIcons(e,r,t,n),this._drawText(e,r,t,n)}_drawIcons(i,a,f,m){const{context:p,displayLevel:d,drawPhase:y,painter:g,spriteMosaic:_,state:h,styleLayerUID:M,requestRender:P,allowDelayedRender:T}=i,U=a.iconMaterial,E=g.vectorTilesMaterialManager;let x,v=!1;for(const e of f)if(e.layerData.has(M)&&(x=e.layerData.get(M),x.iconPerPageElementsMap.size>0)){v=!0;break}if(!v)return;const D=a.getPaintValue(\"icon-translate\",d),I=a.getPaintValue(\"icon-translate-anchor\",d);let R=a.getLayoutValue(\"icon-rotation-alignment\",d);R===n.AUTO&&(R=a.getLayoutValue(\"symbol-placement\",d)===s.POINT?n.VIEWPORT:n.MAP);const S=R===n.MAP,V=a.getLayoutValue(\"icon-keep-upright\",d)&&S,w=x.isIconSDF,A=y===c.HITTEST,L=this._iconProgramOptions;L.id=A,L.sdf=w;const O=E.getMaterialProgram(p,U,L);if(T&&e(P)&&!O.compiled)return void P();p.useProgram(O),O.setUniformMatrix3fv(\"u_displayViewMat3\",R===n.MAP?h.displayViewMat3:h.displayMat3),O.setUniformMatrix3fv(\"u_displayMat3\",I===o.VIEWPORT?h.displayMat3:h.displayViewMat3),O.setUniform2fv(\"u_iconTranslation\",D),O.setUniform1f(\"u_depth\",a.z),O.setUniform1f(\"u_mapRotation\",u(h.rotation)),O.setUniform1f(\"u_keepUpright\",V?1:0),O.setUniform1f(\"u_level\",10*d),O.setUniform1i(\"u_texture\",l),O.setUniform1f(\"u_fadeDuration\",r/1e3),A&&O.setUniform4fv(\"u_id\",m);let N=-1;for(const e of f){if(!e.layerData.has(M))continue;if(e.key.level!==N&&(N=e.key.level,U.setDataUniforms(O,d,a,N,_)),x=e.layerData.get(M),0===x.iconPerPageElementsMap.size)continue;x.prepareForRendering(p),x.updateOpacityInfo();const r=x.iconVertexArrayObject;if(!t(r)){p.bindVAO(r),O.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),O.setUniform1f(\"u_time\",(performance.now()-x.lastOpacityUpdate)/1e3);for(const[t,a]of x.iconPerPageElementsMap)this._renderIconRange(i,O,a,t,e)}}}_renderIconRange(e,t,i,a,r){const{context:n,spriteMosaic:s}=e;this._spritesTextureSize[0]=s.getWidth(a)/4,this._spritesTextureSize[1]=s.getHeight(a)/4,t.setUniform2fv(\"u_mosaicSize\",this._spritesTextureSize),s.bind(n,d.LINEAR,a,l),n.setStencilTestEnabled(!0),n.setStencilFunction(y.GREATER,255,255),n.setStencilWriteMask(0),n.drawElements(g.TRIANGLES,i[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*i[0]),r.triangleCount+=i[1]/3}_drawText(i,l,m,p){const{context:d,displayLevel:g,drawPhase:_,glyphMosaic:M,painter:P,pixelRatio:T,spriteMosaic:U,state:E,styleLayerUID:x,requestRender:v,allowDelayedRender:D}=i,I=l.textMaterial,R=P.vectorTilesMaterialManager;let S,V=!1;for(const e of m)if(e.layerData.has(x)&&(S=e.layerData.get(x),S.glyphPerPageElementsMap.size>0)){V=!0;break}if(!V)return;const w=l.getPaintProperty(\"text-opacity\");if(w&&!w.isDataDriven&&0===w.getValue(g))return;const A=l.getPaintProperty(\"text-color\"),L=!A||A.isDataDriven||A.getValue(g)[3]>0,O=l.getPaintProperty(\"text-halo-width\"),N=l.getPaintProperty(\"text-halo-color\"),b=(!O||O.isDataDriven||O.getValue(g)>0)&&(!N||N.isDataDriven||N.getValue(g)[3]>0);if(!L&&!b)return;const z=24/8;let k=l.getLayoutValue(\"text-rotation-alignment\",g);k===n.AUTO&&(k=l.getLayoutValue(\"symbol-placement\",g)===s.POINT?n.VIEWPORT:n.MAP);const j=k===n.MAP,G=l.getLayoutValue(\"text-keep-upright\",g)&&j,W=_===c.HITTEST,F=.8*z/T;this._glyphTextureSize||(this._glyphTextureSize=a(M.width/4,M.height/4));const B=l.getPaintValue(\"text-translate\",g),H=l.getPaintValue(\"text-translate-anchor\",g),C=this._sdfProgramOptions;C.id=W;const Y=R.getMaterialProgram(d,I,C);if(D&&e(v)&&!Y.compiled)return void v();d.useProgram(Y),Y.setUniformMatrix3fv(\"u_displayViewMat3\",k===n.MAP?E.displayViewMat3:E.displayMat3),Y.setUniformMatrix3fv(\"u_displayMat3\",H===o.VIEWPORT?E.displayMat3:E.displayViewMat3),Y.setUniform2fv(\"u_textTranslation\",B),Y.setUniform1f(\"u_depth\",l.z+h),Y.setUniform2fv(\"u_mosaicSize\",this._glyphTextureSize),Y.setUniform1f(\"u_mapRotation\",u(E.rotation)),Y.setUniform1f(\"u_keepUpright\",G?1:0),Y.setUniform1f(\"u_level\",10*g),Y.setUniform1i(\"u_texture\",f),Y.setUniform1f(\"u_antialiasingWidth\",F),Y.setUniform1f(\"u_fadeDuration\",r/1e3),W&&Y.setUniform4fv(\"u_id\",p);let q=-1;for(const e of m){if(!e.layerData.has(x))continue;if(e.key.level!==q&&(q=e.key.level,I.setDataUniforms(Y,g,l,q,U)),S=e.layerData.get(x),0===S.glyphPerPageElementsMap.size)continue;S.prepareForRendering(d),S.updateOpacityInfo();const i=S.textVertexArrayObject;if(t(i))continue;d.bindVAO(i),Y.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),d.setStencilTestEnabled(!0),d.setStencilFunction(y.GREATER,255,255),d.setStencilWriteMask(0);const a=(performance.now()-S.lastOpacityUpdate)/1e3;Y.setUniform1f(\"u_time\",a),S.glyphPerPageElementsMap.forEach(((t,i)=>{this._renderGlyphRange(d,t,i,M,Y,b,L,e)}))}}_renderGlyphRange(e,t,i,a,r,n,s,o){a.bind(e,d.LINEAR,i,f),n&&(r.setUniform1f(\"u_halo\",1),e.drawElements(g.TRIANGLES,t[1],_.UNSIGNED_INT,Uint32Array.BYTES_PER_ELEMENT*t[0]),o.triangleCount+=t[1]/3),s&&(r.setUniform1f(\"u_halo\",0),e.drawElements(g.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.26/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{CompareFunction as r,PrimitiveType as s,DataType as i}from\"../../../../webgl/enums.js\";const m=e=>o(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:i.SHORT},{location:1,name:\"a_id\",count:4,type:i.UNSIGNED_BYTE},{location:2,name:\"a_color\",count:4,type:i.UNSIGNED_BYTE,normalized:!0},{location:3,name:\"a_haloColor\",count:4,type:i.UNSIGNED_BYTE,normalized:!0},{location:4,name:\"a_texAndSize\",count:4,type:i.UNSIGNED_BYTE},{location:5,name:\"a_refSymbolAndPlacementOffset\",count:4,type:i.UNSIGNED_BYTE},{location:6,name:\"a_glyphData\",count:4,type:i.UNSIGNED_BYTE},{location:7,name:\"a_vertexOffset\",count:2,type:i.SHORT},{location:8,name:\"a_texCoords\",count:2,type:i.UNSIGNED_SHORT}]});class l extends a{dispose(){}getGeometryType(){return t.LABEL}supportsSymbology(e){return!0}drawGeometry(t,o,a,l){const{context:u,painter:f,state:d,rendererInfo:c,requestRender:_,allowDelayedRender:p}=t,y=n.load(a.materialKey),E=y.mapAligned?1:0;if(!E&&Math.abs(o.key.level-Math.round(100*t.displayLevel)/100)>=1)return;const{bufferLayouts:N,attributes:U}=m(y),S=f.materialManager.getMaterialProgram(t,y,\"materials/label\",U,l);if(p&&e(_)&&!S.compiled)return void _();t.context.setStencilFunction(r.EQUAL,0,255),u.useProgram(S),this._setSharedUniforms(S,t,o),f.textureManager.bindTextures(u,S,y);const T=1===E?d.displayViewMat3:d.displayMat3;this._setSizeVVUniforms(y,S,c,o),S.setUniform1f(\"u_mapRotation\",Math.floor(d.rotation/360*254)),S.setUniform1f(\"u_mapAligned\",E),S.setUniformMatrix3fv(\"u_displayMat3\",T),S.setUniform1f(\"u_opacity\",1),S.setUniform2fv(\"u_screenSize\",t.state.size);const g=a.target.getVAO(u,N,U),G=a.indexFrom*Uint32Array.BYTES_PER_ELEMENT;u.bindVAO(g),S.setUniform1f(\"u_isHaloPass\",0),S.setUniform1f(\"u_isBackgroundPass\",1),u.drawElements(s.TRIANGLES,a.indexCount,i.UNSIGNED_INT,G),S.setUniform1f(\"u_isHaloPass\",1),S.setUniform1f(\"u_isBackgroundPass\",0),u.drawElements(s.TRIANGLES,a.indexCount,i.UNSIGNED_INT,G),S.setUniform1f(\"u_isHaloPass\",0),S.setUniform1f(\"u_isBackgroundPass\",0),u.drawElements(s.TRIANGLES,a.indexCount,i.UNSIGNED_INT,G),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.26/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{PrimitiveType as r,DataType as i}from\"../../../../webgl/enums.js\";const s=e=>o(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:i.SHORT},{location:1,name:\"a_id\",count:4,type:i.UNSIGNED_BYTE},{location:2,name:\"a_color\",count:4,type:i.UNSIGNED_BYTE,normalized:!0},{location:3,name:\"a_offsetAndNormal\",count:4,type:i.BYTE},{location:4,name:\"a_accumulatedDistanceAndHalfWidth\",count:2,type:i.UNSIGNED_SHORT},{location:5,name:\"a_tlbr\",count:4,type:i.UNSIGNED_SHORT},{location:6,name:\"a_segmentDirection\",count:4,type:i.BYTE},{location:7,name:\"a_aux\",count:2,type:i.UNSIGNED_SHORT},{location:8,name:\"a_zoomRange\",count:2,type:i.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:d,requestRender:y,allowDelayedRender:_}=t,f=n.load(a.materialKey),E=e(d)&&\"hittest\"===d.type;let N=s(f),g=r.TRIANGLES;E&&(N=this._getTriangleDesc(a.materialKey,N),g=r.POINTS);const{attributes:S,bufferLayouts:T}=N,U=c.materialManager.getMaterialProgram(t,f,\"materials/line\",S,m);if(_&&e(y)&&!U.compiled)return void y();const G=1/t.pixelRatio,I=0;l.useProgram(U),this._setSharedUniforms(U,t,o),f.textureBinding&&c.textureManager.bindTextures(l,U,f);const D=2**(p-o.key.level);U.setUniform1f(\"u_zoomFactor\",D),U.setUniform1f(\"u_blur\",I+G),U.setUniform1f(\"u_antialiasing\",G),this._setSizeVVUniforms(f,U,u,o),this._setColorAndOpacityVVUniforms(f,U,u),l.setFaceCullingEnabled(!1);const R=a.target.getVAO(l,T,S,E);let b=a.indexCount,x=a.indexFrom*Uint32Array.BYTES_PER_ELEMENT;E&&(b/=3,x/=3),l.bindVAO(R),l.drawElements(g,b,i.UNSIGNED_INT,x)}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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{PrimitiveType as s,DataType as n}from\"../../../../webgl/enums.js\";const i=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:u,rendererInfo:d,state:f,passOptions:_,requestRender:p,allowDelayedRender:c}=e,y=r.load(a.materialKey),E=t(_)&&\"hittest\"===_.type,{bufferLayouts:N,attributes:U}=i(y),S=u.materialManager.getMaterialProgram(e,y,\"materials/text\",U,m);if(c&&t(p)&&!S.compiled)return void p();l.useProgram(S);let T=s.TRIANGLES;E&&(T=s.POINTS),this._setSharedUniforms(S,e,o),u.textureManager.bindTextures(l,S,y),S.setUniformMatrix3fv(\"u_displayMat3\",f.displayMat3),S.setUniformMatrix3fv(\"u_displayViewMat3\",f.displayViewMat3),this._setSizeVVUniforms(y,S,d,o),this._setColorAndOpacityVVUniforms(y,S,d),this._setRotationVVUniforms(y,S,d);const x=a.target.getVAO(l,N,U),I=a.indexFrom*Uint32Array.BYTES_PER_ELEMENT;S.setUniform1f(\"u_isHaloPass\",0),S.setUniform1f(\"u_isBackgroundPass\",1),l.bindVAO(x),l.drawElements(T,a.indexCount,n.UNSIGNED_INT,I),S.setUniform1f(\"u_isHaloPass\",1),S.setUniform1f(\"u_isBackgroundPass\",0),l.drawElements(s.TRIANGLES,a.indexCount,n.UNSIGNED_INT,I),S.setUniform1f(\"u_isHaloPass\",0),S.setUniform1f(\"u_isBackgroundPass\",0),l.drawElements(T,a.indexCount,n.UNSIGNED_INT,I)}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/esri/copyright.txt for details.\n*/\nimport r from\"./webgl/brushes/BrushBitmap.js\";import s from\"./webgl/brushes/BrushClip.js\";import e from\"./webgl/brushes/BrushOverlay.js\";import o from\"./webgl/brushes/WGLBrushDotDensity.js\";import m from\"./webgl/brushes/WGLBrushHeatmap.js\";import l from\"./webgl/brushes/WGLBrushInfo.js\";import t from\"./webgl/brushes/WGLBrushPieChart.js\";import b from\"./webgl/brushes/WGLBrushStencil.js\";import{WGLBrushVTLBackground as h}from\"./webgl/brushes/WGLBrushVTLBackground.js\";import{WGLBrushVTLCircle as i}from\"./webgl/brushes/WGLBrushVTLCircle.js\";import{WGLBrushVTLFill as u}from\"./webgl/brushes/WGLBrushVTLFill.js\";import{WGLBrushVTLLine as p}from\"./webgl/brushes/WGLBrushVTLLine.js\";import{WGLBrushVTLSymbol as L}from\"./webgl/brushes/WGLBrushVTLSymbol.js\";import f from\"./webgl/brushes/WGLGeometryBrushFill.js\";import B from\"./webgl/brushes/WGLGeometryBrushLabel.js\";import g from\"./webgl/brushes/WGLGeometryBrushLine.js\";import G from\"./webgl/brushes/WGLGeometryBrushMarker.js\";import j from\"./webgl/brushes/WGLGeometryBrushText.js\";const w={marker:G,line:g,fill:f,text:j,label:B,clip:s,stencil:b,bitmap:r,overlay:e,tileInfo:l,vtlBackground:h,vtlFill:u,vtlLine:p,vtlCircle:i,vtlSymbol:L,dotDensity:o,heatmap:m,pieChart:t};export{w as brushes};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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 y,Usage as g}from\"../../../../webgl/enums.js\";import{FramebufferObject as S}from\"../../../../webgl/FramebufferObject.js\";import{Renderbuffer as b}from\"../../../../webgl/Renderbuffer.js\";import{Texture as E}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,allowDelayedRender:a}=e,l=i.materialManager.getProgram(this._dotDesc);if(a&&t(d)&&!l.compiled)return void d();const{rendererSchema:u}=n;_(u,\"dot-density\");const c=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(l),l.setUniform1f(\"u_tileZoomFactor\",1),l.setUniform1i(\"u_texture\",this._dotSamplers[0]),l.setUniform1f(\"u_dotSize\",Math.max(u.dotSize,1)),l.setUniform1f(\"u_pixelRatio\",window.devicePixelRatio),this._setSharedUniforms(l,e,o),s.bindTexture(r,this._dotSamplers[0]),s.bindVAO(c),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 y=1/2**(a-t.key.level),g=n,S=g*window.devicePixelRatio*g*window.devicePixelRatio,b=1/y*(1/y),E=c?e.state.scale/c:1;return o.setUniform1f(\"u_tileZoomFactor\",y),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*E*b)),this._bindDotDensityTextures(i,o,d,g),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 b(e,{width:t,height:o,internalFormat:y.DEPTH_STENCIL});this._dotFBO=new S(e,s,r,i)}return this._dotFBO}_disposeTextures(){if(this._dotTextures){for(let e=0;e=0?n:n+t}function o(t){return u(t*n,256)}function c(n){return u(n*t,256)}function e(n){return Math.log(n)*r}function f(n,t,r){return n*(1-r)+t*r}function i(n,t,r){return n>=t&&n<=r||n>=r&&n<=t}export{i as between,c as degToByte,f as interpolate,e as log2,u as positiveMod,o as radToByte};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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.26/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 s}from\"../../../../chunks/earcut.js\";import{s as o}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=>{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\")}},g=(e,t,r,s)=>{let o=0;for(let n=1;n0:o<0},p=({coords:e,lengths:t},r)=>{const o=[];for(let n=0,i=0;n({...r,[s]:h.createVertex(e,t,this.vertices[s])})),{})),this._cache.vertexBuffers}}export{l as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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=t=>parseFloat(t)/100;class m 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 m(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?n(e.left)*r:e.left,o=\"string\"==typeof e.right?n(e.right)*r:e.right,h=\"string\"==typeof e.top?n(e.top)*s:e.top,a=\"string\"==typeof e.bottom?n(e.bottom)*s:e.bottom,c=i,m=h;return{x:c,y:m,width:Math.max(r-o-c,0),height:Math.max(s-a-m,0)}}_createMesh(r,s){switch(s.type){case\"rect\":return a.fromRect(this._createScreenRect(r,s));case\"path\":return a.fromPath(s);case\"geometry\":return a.fromGeometry(r,s);default:return e.getLogger(\"esri.views.2d.engine.webgl.ClippingInfo\").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{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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()}beforeRender(e){super.beforeRender(e),this.updateTransforms(e.state)}_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.renderChildren(r),s.compositeLayer(r,a),i.recordContainerEnd()}renderChildren(r){e(this._renderPasses)&&(this._renderPasses=this.prepareRenderPasses(r.painter));for(const e of this._renderPasses)try{e.render(r)}catch(s){}}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(){r(this._clippingInfos)&&(this._clippingInfos.forEach((e=>e.destroy())),this._clippingInfos=null);const e=this.stage;if(!e)return;const s=this._clips;r(s)&&s.length&&(this._clippingInfos=s.items.map((r=>n.fromClipArea(e,r)))),this.requestRender()}}export{a as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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}){e.setBlendingEnabled(!0),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0)}draw(s,n){const{context:o,renderingOptions:m,painter:l,requestRender:c,allowDelayedRender:p}=s;if(!n.source||!n.isReady)return;const u=d(s,n,m),f=l.materialManager.getProgram(this._desc,u.defines);if(p&&e(c)&&!f.compiled)return void c();s.timeline.begin(this.name),\"additive\"===n.blendFunction?o.setBlendFunctionSeparate(r.ONE,r.ONE,r.ONE,r.ONE):o.setBlendFunctionSeparate(r.ONE,r.ONE_MINUS_SRC_ALPHA,r.ONE,r.ONE_MINUS_SRC_ALPHA),o.setStencilFunction(a.EQUAL,n.stencilRef,255),this._quad||(this._quad=new i(o,[0,0,1,0,0,1,1,1]));const{coordScale:_,computedOpacity:E,transforms:M}=n;n.setSamplingProfile(u),n.bind(s.context,t),o.useProgram(f),f.setUniformMatrix3fv(\"u_dvsMat3\",M.dvs),f.setUniform1i(\"u_texture\",t),f.setUniform2fv(\"u_coordScale\",_),f.setUniform1f(\"u_opacity\",E),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.26/esri/copyright.txt for details.\n*/\nclass t{constructor(){this.name=this.constructor.name||\"UnnamedBrush\",this.brushEffect=null}prepareState(t,r){}draw(t,r,s){}drawMany(t,r,s){for(const a of r)a.visible&&this.draw(t,a,s)}}export{t as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/esri/copyright.txt for details.\n*/\nimport e from\"../../../../../core/Logger.js\";import{disposeMaybe as t,isSome as r,isNone as i}from\"../../../../../core/maybe.js\";import{WGLSymbologyType as a}from\"../enums.js\";import s from\"../VertexStream.js\";import u from\"./WGLGeometryBrushMarker.js\";import{Effect as n}from\"../effects/Effect.js\";import{assertRendererSchema as o}from\"../techniques/utils.js\";import{ContextType as h}from\"../../../../webgl/context-util.js\";import{CompareFunction as c,DataType as l,BlendFactor as f,ClearBufferBit as m,TextureType as d,TextureWrapMode as p,RenderbufferFormat as _,PixelFormat as b,PixelType as g,TextureSamplingMode as F}from\"../../../../webgl/enums.js\";import{FramebufferObject as w}from\"../../../../webgl/FramebufferObject.js\";import{loadHeatmapTextureConfiguration as T}from\"../../../../webgl/heatmapTextureUtils.js\";import{Renderbuffer as E}from\"../../../../webgl/Renderbuffer.js\";import{Texture as O}from\"../../../../webgl/Texture.js\";const S=e.getLogger(\"esri.views.2d.engine.webgl.brushes.WGLBrushHeatmap\");function x(e){return\"heatmap\"===e.type}class B extends u{constructor(){super(...arguments),this.brushEffect=new y}supportsSymbology(e){return e===a.HEATMAP}dispose(){super.dispose(),this.brushEffect.dispose(),this.brushEffect=null}prepareState(){}drawGeometry(e,t,r,i){const{defines:a}=this.brushEffect.loadQualityProfile(e.context);super.drawGeometry(e,t,r,i?[...i,...a]:a)}_drawMarkers(e,t,r,i,a,s,u){const{context:n,rendererInfo:h,state:f}=e,{rendererSchema:m}=h;o(m,\"heatmap\");const{referenceScale:d,radius:p,isFieldActive:_}=m,b=p*(0!==d?d/f.scale:1);r.setUniform1f(\"u_radius\",b),u||(r.setUniform1f(\"u_isFieldActive\",_),n.setStencilFunction(c.GEQUAL,t.stencilRef,255)),n.drawElements(i,a,l.UNSIGNED_INT,s)}}const v={vsPath:\"heatmap/heatmapResolve\",fsPath:\"heatmap/heatmapResolve\",attributes:new Map([[\"a_position\",0]])};class y extends n{constructor(){super(...arguments),this.name=this.constructor.name}createOptions({passOptions:e}){return e}dispose(){this._prevFBO=null,this._accumulateOutputTexture=t(this._accumulateOutputTexture),r(this._accumulateFramebuffer)&&this._accumulateFramebuffer.detachDepthStencilBuffer(),this._accumulateOutputStencilBuffer=t(this._accumulateOutputStencilBuffer),this._accumulateFramebuffer=t(this._accumulateFramebuffer),this._resolveGradientTexture=t(this._resolveGradientTexture),this._tileQuad=t(this._tileQuad)}bind(e){const{context:t,rendererInfo:i,passOptions:a}=e,{rendererSchema:s}=i;!(r(a)&&\"hittest\"===a.type)&&x(s)&&(this._prevFBO=t.getBoundFramebufferObject(),this._prevViewport=t.getViewport(),o(s,\"heatmap\"),this._loadResources(e),this._updateResources(t,s),t.bindFramebuffer(this._accumulateFramebuffer),t.setViewport(0,0,this._accumulateFramebuffer.width,this._accumulateFramebuffer.height),t.setStencilTestEnabled(!0),t.setBlendingEnabled(!0),t.setBlendFunction(f.ONE,f.ONE),t.setClearColor(0,0,0,0),t.clear(m.COLOR_BUFFER_BIT))}unbind(){this._prevFBO=null,this._prevViewport=null}draw(e){const{context:t,painter:i,rendererInfo:a,passOptions:s}=e,{rendererSchema:u}=a;if(r(s)&&\"hittest\"===s.type||!x(u))return;const{defines:n}=this.loadQualityProfile(t),o=i.materialManager.getProgram(v,n);t.useProgram(o),t.bindFramebuffer(this._prevFBO),t.setViewport(0,0,this._prevViewport.width,this._prevViewport.height),t.setBlendFunction(f.ONE,f.ONE_MINUS_SRC_ALPHA),t.setStencilTestEnabled(!1);const{radius:h,minDensity:c,densityRange:l}=u;t.bindTexture(this._accumulateOutputTexture,8),t.bindTexture(this._resolveGradientTexture,9),o.setUniform1i(\"u_texture\",8),o.setUniform1i(\"u_gradient\",9),o.setUniform2f(\"u_densityMinAndInvRange\",c,1/l),o.setUniform1f(\"u_densityNormalization\",3/(h*h*Math.PI)),this._tileQuad.draw()}_loadResources({context:e,painter:t}){const{dataType:r,samplingMode:i,pixelFormat:a,internalFormat:u,shadingRate:n,requiresSharedStencilBuffer:o}=this.loadQualityProfile(e),{width:h,height:c}=this._prevViewport,l=h*n,f=c*n;this._accumulateOutputTexture??(this._accumulateOutputTexture=new O(e,{target:d.TEXTURE_2D,pixelFormat:a,internalFormat:u,dataType:r,samplingMode:i,wrapMode:p.CLAMP_TO_EDGE,width:l,height:f})),o||(this._accumulateOutputStencilBuffer??(this._accumulateOutputStencilBuffer=new E(e,{width:l,height:f,internalFormat:_.DEPTH_STENCIL}))),this._accumulateFramebuffer??(this._accumulateFramebuffer=new w(e,{},this._accumulateOutputTexture,o?t.getSharedStencilBuffer():this._accumulateOutputStencilBuffer)),this._resolveGradientTexture??(this._resolveGradientTexture=new O(e,{target:d.TEXTURE_2D,pixelFormat:b.RGBA,dataType:g.UNSIGNED_BYTE,samplingMode:F.LINEAR,wrapMode:p.CLAMP_TO_EDGE})),this._tileQuad??(this._tileQuad=new s(e,[0,0,1,0,0,1,1,1]))}_updateResources(e,t){const{gradientHash:i,gradient:a}=t;this._prevGradientHash!==i&&(this._resolveGradientTexture.resize(a.length/4,1),this._resolveGradientTexture.setData(a),this._prevGradientHash=i);const{shadingRate:s,requiresSharedStencilBuffer:u}=this.loadQualityProfile(e),{width:n,height:o}=this._prevViewport,h=n*s,c=o*s,{width:l,height:f}=this._accumulateFramebuffer;if(l!==h||f!==c){const e=this._accumulateFramebuffer.depthStencilAttachment;if(u&&r(e)){const{width:t,height:r}=e.descriptor;t===h&&r===c||(S.errorOnce(\"Attempted to resize shared stencil buffer! Detaching instead.\"),this._accumulateFramebuffer.detachDepthStencilBuffer())}this._accumulateFramebuffer.resize(h,c)}u||e.blitFramebuffer(this._prevFBO,this._accumulateFramebuffer,0,0,this._prevFBO.width,this._prevFBO.height,0,0,this._accumulateFramebuffer.width,this._accumulateFramebuffer.height,m.STENCIL_BUFFER_BIT,F.NEAREST)}loadQualityProfile(e){if(i(this._qualityProfile)){const t=T(e,S),r=e.type===h.WEBGL1;this._qualityProfile={...t,requiresSharedStencilBuffer:r,shadingRate:r?1:.25,defines:t.dataType!==g.FLOAT?[\"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.26/esri/copyright.txt for details.\n*/\nimport e from\"../../core/Error.js\";import{unwrapOrThrow as t}from\"../../core/maybe.js\";import{PixelType as r,TextureSamplingMode as a,PixelFormat as o,SizedPixelFormat as l}from\"./enums.js\";function n(n,i){const{textureFloat:f,colorBufferFloat:s}=n.capabilities,u=f?.textureFloat,m=f?.textureFloatLinear,_=f?.textureHalfFloat,p=f?.textureHalfFloatLinear,d=f?.HALF_FLOAT,x=s?.textureFloat,b=s?.textureHalfFloat,c=s?.floatBlend,h=t(n.driverTest).floatBufferBlend.result;if(!u&&!_)throw new e(\"heatmap:missing-texture-float\",\"HeatmapRenderer requires WebGL2 or the WebGL1 extension OES_texture_float or OES_texture_half_float.\");if(!x&&!b)throw new e(\"heatmap:missing-color-buffer-float\",\"HeatmapRenderer requires the WebGL extension EXT_color_buffer_float or EXT_color_buffer_half_float or WEBGL_color_buffer_float.\");if(!(c&&h||b))throw new e(\"heatmap:missing-float-blend\",\"HeatmapRenderer requires the WebGL extension EXT_float_blend or EXT_color_buffer_half_float.\"+(h?\"\":\" This device claims support for EXT_float_blend, but does not actually support it.\"));const E=u&&x&&c&&h,F=_&&b,R=m,L=p,T=!!s?.R32F,w=!!s?.R16F;if(E&&(R||!L))return R||i.warnOnce(\"Missing WebGL extension OES_texture_float_linear. Heatmap quality may be reduced.\"),{dataType:r.FLOAT,samplingMode:R?a.LINEAR:a.NEAREST,pixelFormat:T?o.RED:o.RGBA,internalFormat:T?l.R32F:o.RGBA};if(F)return L||i.warnOnce(\"Missing WebGL extension OES_texture_half_float_linear. Heatmap quality may be reduced.\"),{dataType:d,samplingMode:L?a.LINEAR:a.NEAREST,pixelFormat:w?o.RED:o.RGBA,internalFormat:w?l.R16F:o.RGBA};throw new e(\"heatmap:missing-hardware-support\",\"HeatmapRenderer requires WebGL extensions that allow it to render and blend to float or half float textures.\")}export{n as loadHeatmapTextureConfiguration};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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 c,TextureWrapMode as d}from\"../../../../webgl/enums.js\";import{createProgram as g}from\"../../../../webgl/ProgramTemplate.js\";import{Texture as h}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?.dispose(),this._outlineProgram=null,this._tileInfoProgram?.dispose(),this._tileInfoProgram=null,this._outlineVertexArrayObject?.dispose(),this._outlineVertexArrayObject=null,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,allowDelayedRender:s}=e;if(!r.isReady)return;if(this._loadWGLResources(i),s&&t(o)&&(!this._outlineProgram.compiled||!this._tileInfoProgram.compiled))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 n=this._getTexture(i,r);n?(i.bindVAO(this._tileInfoVertexArrayObject),i.useProgram(this._tileInfoProgram),i.bindTexture(n,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\",n.descriptor.width,n.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,_),c=new p(t,s.attributes,r,{geometry:f});this._outlineProgram=e,this._tileInfoProgram=i,this._outlineVertexArrayObject=m,this._tileInfoVertexArrayObject=c}_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 h(t,{target:m.TEXTURE_2D,pixelFormat:_.RGBA,dataType:f.UNSIGNED_BYTE,samplingMode:c.NEAREST,wrapMode:d.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.26/esri/copyright.txt for details.\n*/\nimport{isSome as r}from\"../../../../../core/maybe.js\";import{f as e}from\"../../../../../chunks/vec4f32.js\";import{Pos2b as t}from\"../DefaultVertexAttributeLayouts.js\";import s from\"./WGLBrush.js\";import{background as i}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 c}from\"../../../../webgl/ProgramTemplate.js\";import{VertexArrayObject as _}from\"../../../../webgl/VertexArrayObject.js\";class h extends s{constructor(){super(...arguments),this._color=e(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}){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)}draw(e,t){const{context:s,requestRender:i,allowDelayedRender:o}=e;this._initialized||this._initialize(s),o&&r(i)&&!this._solidProgram.compiled?i():(s.setStencilFunctionSeparate(l.FRONT_AND_BACK,n.GREATER,t.stencilRef,255),s.bindVAO(this._solidVertexArrayObject),s.useProgram(this._solidProgram),this._solidProgram.setUniformMatrix3fv(\"u_dvsMat3\",t.transforms.dvs),this._solidProgram.setUniform2fv(\"u_coord_range\",[t.rangeX,t.rangeY]),this._solidProgram.setUniform1f(\"u_depth\",0),this._solidProgram.setUniform4fv(\"u_color\",this._color),s.drawArrays(d.TRIANGLE_STRIP,0,4),s.bindVAO())}_initialize(r){if(this._initialized)return!0;const e=c(r,i);if(!e)return!1;const s=new Int8Array([0,0,1,0,0,1,1,1]),a=o.createVertex(r,m.STATIC_DRAW,s),l=new _(r,i.attributes,t,{geometry:a});return this._solidProgram=e,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.26/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 u}from\"../definitions.js\";import m 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 m{constructor(){super(...arguments),this._computeDesc=new Map}prepareState({context:t},e){e&&e.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)}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),e.context.setStencilFunction(l.EQUAL,i.stencilRef,255),a.forEachCommand((t=>{const o=v.load(t.materialKey).symbologyType;this.supportsSymbology(o)&&this.drawGeometry(e,i,t,s)})))}_setSharedUniforms(t,m,v){const{displayLevel:f,pixelRatio:l,state:p,passOptions:c}=m;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\",m.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\",u)}_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);null!=t&&(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),u=s.map((t=>({...t}))),m=Math.max(...e.attributes.values()),v={geometry:u};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\",m+ ++f),n.set(t.name+\"2\",m+ ++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.26/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 d={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 u extends i{dispose(){}getGeometryType(){return o.MARKER}supportsSymbology(t){return t!==a.HEATMAP&&t!==a.PIE_CHART}drawGeometry(o,a,i,m){const{context:u,painter:c,rendererInfo:p,state:y,passOptions:_,requestRender:f,allowDelayedRender:E}=o,S=n.load(i.materialKey),N=s(S.data),T=t(_)&&\"hittest\"===_.type,{shader:g,vertexLayout:x,hittestAttributes:R}=e(N.programSpec,d);let h=l.TRIANGLES,U=r(S.data,x);T&&(U=this._getTriangleDesc(i.materialKey,U,R),h=l.POINTS);const{attributes:A,bufferLayouts:O}=U,G=c.materialManager.getMaterialProgram(o,S,g,A,m);if(E&&t(f)&&!G.compiled)return void f();u.useProgram(G),S.textureBinding&&c.textureManager.bindTextures(u,G,S,!0),this._setSharedUniforms(G,o,a);const I=S.vvRotation?y.displayViewMat3:y.displayMat3;G.setUniformMatrix3fv(\"u_displayMat3\",I),this._setSizeVVUniforms(S,G,p,a),this._setColorAndOpacityVVUniforms(S,G,p),this._setRotationVVUniforms(S,G,p);const M=i.target.getVAO(u,O,A,T);let b=i.indexCount,D=i.indexFrom*Uint32Array.BYTES_PER_ELEMENT;T&&(b/=3,D/=3),u.bindVAO(M),this._drawMarkers(o,a,G,h,b,D,T),u.bindVAO(null)}_drawMarkers(t,e,o,a,r,i,n){t.context.drawElements(a,r,m.UNSIGNED_INT,i)}}export{u as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/esri/copyright.txt for details.\n*/\nclass t{constructor(){this.name=this.constructor.name}createOptions(t,r){return null}}export{t as Effect};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.26/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.26/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.26/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 = clamp(vec3(colorDodge(Cb.r, Cs.r), colorDodge(Cb.g, Cs.g), colorDodge(Cb.b, Cs.b)), vec3(0.0), vec3(1.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 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(clamp(vividLight(Cb.r, Cs.r), 0.0, 1.0),\\nclamp(vividLight(Cb.g, Cs.g), 0.0, 1.0),\\nclamp(vividLight(Cb.b, Cs.b), 0.0, 1.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 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 = clamp(vec3(reflectBlend(Cb.r, Cs.r),\\nreflectBlend(Cb.g, Cs.g),\\nreflectBlend(Cb.b, Cs.b)), vec3(0.0), vec3(1.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#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}\"},debug:{overlay:{\"overlay.frag\":\"precision mediump float;\\nvarying vec4 v_color;\\nvoid main(void) {\\ngl_FragColor = v_color;\\n}\",\"overlay.vert\":\"attribute vec3 a_PositionAndFlags;\\nuniform mat3 u_dvsMat3;\\nuniform vec4 u_colors[4];\\nuniform float u_opacities[4];\\nvarying vec4 v_color;\\nvoid main(void) {\\nvec2 position = a_PositionAndFlags.xy;\\nfloat flags = a_PositionAndFlags.z;\\nint colorIndex = int(mod(flags, 4.0));\\nvec4 color;\\nfor (int i = 0; i < 4; i++) {\\ncolor = u_colors[i];\\nif (i == colorIndex) {\\nbreak;\\n}\\n}\\nint opacityIndex = int(mod(floor(flags / 4.0), 4.0));\\nfloat opacity;\\nfor (int i = 0; i < 4; i++) {\\nopacity = u_opacities[i];\\nif (i == opacityIndex) {\\nbreak;\\n}\\n}\\nv_color = color * opacity;\\ngl_Position = vec4((u_dvsMat3 * vec3(position, 1.0)).xy, 0.0, 1.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;\\nvarying vec2 v_uv;\\nvoid main() {\\nv_uv = a_pos;\\ngl_Position = vec4(a_pos * 2.0 - 1.0, 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 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_FILL_HAS_UNRESOLVED_REPLACEMENT_COLOR = 3;\\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);\\nif (v_sampleAlphaOnly > 0.5) {\\ncolor.rgb = vec3(color.a);\\n}\\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 \\nconst float INV_SCALE_COMPRESSION_FACTOR = 1.0 / 128.0;\\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 = INV_SCALE_COMPRESSION_FACTOR * 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);\\nif (getBit(a_bitSet, BITSET_FILL_HAS_UNRESOLVED_REPLACEMENT_COLOR) > 0.5) {\\n#ifdef VV_COLOR\\nv_sampleAlphaOnly *= 1.0 - getBit(a_bitSet, BITSET_GENERIC_LOCK_COLOR);\\n#else\\nv_sampleAlphaOnly = 0.0;\\n#endif\\n}\\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;\\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 = u_dvsMat3 * vec3(a_pos * POSITION_PRECISION, 1.0);\\nvec3 vertexPos = centerPos + u_displayViewMat3 * vec3(v_offsetFromCenter, 0.0) * u_radius;\\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_isHaloPass;\\nuniform float u_isBackgroundPass;\\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_isBackground = a_glyphData.w;\\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;\\nfloat isText = 1.0 - a_isBackground;\\nfloat isBackground = u_isBackgroundPass * a_isBackground;\\nvec4 nonHaloColor = (isBackground + isText) * a_color;\\nv_color = animation * ((1.0 - u_isHaloPass) * nonHaloColor + (u_isHaloPass * a_haloColor));\\nv_opacity = 1.0;\\nv_tex = a_texCoords / u_mosaicSize;\\nv_edgeDistanceOffset = u_isHaloPass * 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);\\nfloat isHidden = u_isBackgroundPass * isText + (1.0 - u_isBackgroundPass) * a_isBackground;\\nv_pos.z += 2.0 * isHidden;\\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 ? 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 adjustedPatternHeight = line.patternSize.y * 2.0 * lineHalfWidth / line.patternSize.x;\\nmediump float relativeTexY = fract(line.accumulatedDistance / adjustedPatternHeight);\\nmediump float relativeTexX = 0.5 + 0.5 * line.normal.y;\\nmediump vec2 texCoord = mix(line.tlbr.xy, line.tlbr.zw, vec2(relativeTexX, relativeTexY));\\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_isHaloPass;\\nuniform float u_isBackgroundPass;\\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_isBackground = a_aux.y;\\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;\\nfloat isText = 1.0 - a_isBackground;\\nfloat isBackground = u_isBackgroundPass * a_isBackground;\\nvec4 nonHaloColor = (isBackground * a_color) + (isText * getColor(a_color, a_bitSet, 1));\\nv_color = u_isHaloPass * a_haloColor + (1.0 - u_isHaloPass) * nonHaloColor;\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\nv_tex = a_texCoords / u_mosaicSize;\\nv_pos = u_dvsMat3 * in_pos + extrudeMatrix * offset;\\nfloat isHidden = u_isBackgroundPass * isText + (1.0 - u_isBackgroundPass) * a_isBackground;\\nv_pos.z += 2.0 * isHidden;\\nv_edgeDistanceOffset = u_isHaloPass * 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;\\nuniform mediump vec2 u_perspective;\\nvarying mediump vec2 v_uv;\\nvoid main(void) {\\nv_uv = a_uv;\\nfloat w = 1.0 + dot(a_uv, u_perspective);\\nvec3 pos = u_dvsMat3 * vec3(a_pos, 1.0);\\ngl_Position = vec4(w * pos.xy, 0.0, w);\\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() {\\nvec4 color = 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);\\ngl_FragColor = clamp(color, 0.0, 1.0);\\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\\ngl_FragColor = vec4(color.rgb * u_opacity, color.a * u_opacity);\\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}\",\"common.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}\",\"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}\",\"inverse.glsl\":\"float invertValue(float value) {\\nfloat s = sign(value);\\nreturn (s * s) / (value + abs(s) - 1.0);\\n}\",\"mirror.glsl\":\"vec2 mirror(vec2 pos) {\\nvec2 pos1 = abs(pos);\\nreturn step(pos1, vec2(1.0, 1.0)) * pos1 + step(1.0, pos1) * (2.0 - pos1);\\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}\"},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}\"},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}\"},rfx:{aspect:{\"aspect.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\nuniform vec2 u_cellSize;\\nuniform vec2 u_srcImageSize;\\n#include \\nconst float pi = 3.14159265359;\\nvoid main() {\\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;\\nvec4 va = texture2D(u_image, mirror(v_texcoord + onePixel * axy));\\nvec4 vb = texture2D(u_image, mirror(v_texcoord + onePixel * bxy));\\nvec4 vc = texture2D(u_image, mirror(v_texcoord + onePixel * cxy));\\nvec4 vd = texture2D(u_image, mirror(v_texcoord + onePixel * dxy));\\nvec4 ve = texture2D(u_image, mirror(v_texcoord + onePixel * vec2(0, 0)));\\nvec4 vf = texture2D(u_image, mirror(v_texcoord + onePixel * fxy));\\nvec4 vg = texture2D(u_image, mirror(v_texcoord + onePixel * gxy));\\nvec4 vh = texture2D(u_image, mirror(v_texcoord + onePixel * hxy));\\nvec4 vi = texture2D(u_image, mirror(v_texcoord + onePixel * ixy));\\nfloat dzx = (vc + 2.0 * vf + vi - va - 2.0 * vd - vg).r / (8.0 * u_cellSize[0]);\\nfloat dzy = -(vg + 2.0 * vh + vi - va - 2.0 * vb - vc).r / (8.0 * u_cellSize[1]);\\nfloat alpha = va.a * vb.a * vc.a * vd.a * ve.a * vf.a * vg.a * vh.a * vi.a * sign(abs(dzx) + abs(dzy));\\nfloat aspect_rad = (dzx == 0.0) ? (step(0.0, dzy) * 0.5 * pi + step(dzy, 0.0) * 1.5 * pi) : mod((2.5 * pi + atan(dzy, -dzx)), 2.0 * pi);\\nfloat aspect = aspect_rad * 180.0 / pi;\\ngl_FragColor = vec4(aspect, aspect, aspect, 1.0) * alpha;\\n}\"},bandarithmetic:{\"bandarithmetic.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\nuniform mediump mat3 u_bandIndexMat3;\\nuniform float u_adjustments[3];\\n#include \\nvoid main() {\\nvec4 pv = texture2D(u_image, v_texcoord);\\nvec3 pv2 = u_bandIndexMat3 * pv.rgb;\\nfloat nir = pv2.r;\\nfloat red = pv2.g;\\nfloat index;\\n#ifdef NDXI\\nindex = (nir - red) * invertValue(nir + red);\\n#elif defined(SR)\\nindex = nir * invertValue(red);\\n#elif defined(CI)\\nindex = nir * invertValue(red) - 1.0;\\n#elif defined(SAVI)\\nindex = (nir - red) * invertValue(nir + red + u_adjustments[0]) * (1.0 + u_adjustments[0]);\\n#elif defined(TSAVI)\\nfloat s = u_adjustments[0];\\nfloat a = u_adjustments[1];\\nfloat x = u_adjustments[2];\\nfloat y = -a * s + x * (1.0 + s * s);\\nindex = (s * (nir - s * red - a)) * invertValue(a * nir + red + y);\\n#elif defined(MAVI)\\nindex = 0.5 * (2.0 * (nir + 1.0) - sqrt(pow((2.0 * nir + 1.0), 2.0) - 8.0 * (nir - red)));\\n#elif defined(GEMI)\\nfloat eta = (2.0 * (nir * nir - red * red) + 1.5 * nir + 0.5 * red) * invertValue(nir + red + 0.5);\\nindex = eta * (1.0 - 0.25 * eta) - (red - 0.125) * invertValue(1.0 - red);\\n#elif defined(PVI)\\nfloat a = u_adjustments[0];\\nfloat b = u_adjustments[1];\\nfloat y = sqrt(1.0 + a * a);\\nindex = (nir - a * red - b) * invertValue(y);\\n#elif defined(VARI)\\nindex = (pv2.g - pv2.r) * invertValue(pv2.g + pv2.r - pv2.b);\\n#elif defined(MTVI2)\\nfloat green = pv2.b;\\nfloat v = pow(sqrt((2.0 * nir + 1.0), 2.0) - 6.0 * nir - 5.0 * sqrt(red) - 0.5);\\nindex = 1.5 * (1.2 * (nir - green) - 2.5 * (red - green)) * v;\\n#elif defined(RTVICORE)\\nfloat green = pv2.b;\\nindex = 100.0 * (nir - red) - 10.0 * (nir - green);\\n#elif defined(EVI)\\nfloat blue = pv2.b;\\nfloat denom = nir + 6.0 * red - 7.5 * blue + 1.0;\\nindex = (2.5 * (nir - red)) * invertValue(denom);\\n#elif defined(WNDWI)\\nfloat g = pv2.r;\\nfloat n = pv2.g;\\nfloat s = pv2.s;\\nfloat a = u_adjustments[0];\\nfloat denom = g + a * n + (1.0 - a) * s;\\nindex = (g - a * n - (1 - a) * s) * invertValue(denom);\\n#elif defined(BAI)\\nindex = invertValue(pow((0.1 - red), 2.0) + pow((0.06 - nir), 2.0));\\n#else\\ngl_FragColor = pv;\\nreturn;\\n#endif\\ngl_FragColor = vec4(index, index, index, pv.a);\\n}\"},compositeband:{\"compositeband.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nuniform sampler2D u_image1;\\nuniform sampler2D u_image2;\\nvarying vec2 v_texcoord;\\nvoid main() {\\nvec4 p0 = texture2D(u_image, v_texcoord);\\nvec4 p1 = texture2D(u_image1, v_texcoord);\\nvec4 p2 = texture2D(u_image2, v_texcoord);\\ngl_FragColor = vec4(p0.r, p1.r, p2.r, p0.a * p1.a * p2.a);\\n}\"},convolution:{\"convolution.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\nuniform vec2 u_srcImageSize;\\n#define KERNEL_SIZE_ROWS ROWS\\n#define KERNEL_SIZE_COLS COLS\\nuniform vec2 u_clampRange;\\nuniform float u_kernel[25];\\n#include \\nvoid main() {\\nvec3 rgb = vec3(0.0, 0.0, 0.0);\\nvec2 resolution = 1.0 / u_srcImageSize;\\nfloat rowOffset = -float(floor(float(KERNEL_SIZE_ROWS) / 2.0));\\nfloat colOffset = -float(floor(float(KERNEL_SIZE_COLS) / 2.0));\\nfloat alpha = 1.0;\\nfor (int row = 0; row < KERNEL_SIZE_ROWS; row++) {\\nfloat pos_row = rowOffset + float(row);\\nfor (int col = 0; col < KERNEL_SIZE_COLS; col++) {\\nvec2 pos = v_texcoord + vec2(colOffset + float(col), pos_row) * resolution;\\nvec4 pv = texture2D(u_image, mirror(pos));\\nrgb += pv.rgb * u_kernel[row * KERNEL_SIZE_COLS + col];\\nalpha *= pv.a;\\n}\\n}\\nrgb = clamp(rgb, u_clampRange.s, u_clampRange.t);\\ngl_FragColor = vec4(rgb * alpha, alpha);\\n}\"},extractband:{\"extractband.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\nuniform mediump mat3 u_bandIndexMat3;\\nvoid main() {\\nvec4 pv = texture2D(u_image, v_texcoord);\\nvec3 pv2 = u_bandIndexMat3 * pv.rgb;\\ngl_FragColor = vec4(pv2, pv.a);\\n}\"},local:{\"local.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nuniform sampler2D u_image1;\\n#ifdef ONE_CONSTANT\\nuniform float u_image1Const;\\n#ifdef TWO_CONSTANT\\nuniform float u_image2Const;\\n#endif\\nuniform mat3 u_imageSwap;\\n#endif\\nvarying vec2 v_texcoord;\\nuniform vec2 u_domainRange;\\n#include \\nvoid main() {\\nvec4 pv0 = texture2D(u_image, v_texcoord);\\nfloat a = pv0.r;\\n#ifdef TWO_IMAGES\\n#ifdef ONE_CONSTANT\\nfloat b = u_image1Const;\\nvec3 abc = u_imageSwap * vec3(a, b, 0);\\na = abc.s;\\nb = abc.t;\\n#else\\nvec4 pv1 = texture2D(u_image1, v_texcoord);\\nfloat b = pv1.r;\\n#endif\\n#elif defined(CONDITIONAL)\\n#ifdef TWO_CONSTANT\\nfloat b = u_image1Const;\\nfloat c = u_image2Const;\\nvec3 abc = u_imageSwap * vec3(a, b, c);\\na = abc.s;\\nb = abc.t;\\nc = abc.p;\\n#elif defined(ONE_CONSTANT)\\nvec4 pv1 = texture2D(u_image1, v_texcoord);\\nfloat b = pv1.r;\\nfloat c = u_image1Const;\\nvec3 abc = u_imageSwap * vec3(a, b, c);\\na = abc.s;\\nb = abc.t;\\nc = abc.p;\\n#else\\nvec4 pv1 = texture2D(u_image1, v_texcoord);\\nvec4 pv2 = texture2D(u_image2, v_texcoord);\\nfloat b = pv1.r;\\nfloat c = pv2.r;\\n#endif\\n#endif\\nfloat result = a;\\nfloat alpha = pv0.a;\\n#ifdef PLUS\\nresult = a + b;\\n#elif defined(MINUS)\\nresult = a - b;\\n#elif defined(TIMES)\\nresult = a * b;\\n#elif defined(DIVIDE)\\nresult = a * invertValue(b);\\nalpha *= float(abs(sign(b)));\\n#elif defined(FLOATDIVIDE)\\nresult = a * invertValue(b);\\nalpha *= float(abs(sign(b)));\\n#elif defined(FLOORDIVIDE)\\nresult = floor(a * invertValue(b));\\nalpha *= float(abs(sign(b)));\\n#elif defined(SQUARE)\\nresult = a * a;\\n#elif defined(SQRT)\\nresult = sqrt(a);\\n#elif defined(POWER)\\nresult = pow(a, b);\\n#elif defined(LN)\\nresult = a <= 0.0 ? 0.0: log(a);\\nalpha *= float(a > 0.0);\\n#elif defined(LOG_1_0)\\nresult = a <= 0.0 ? 0.0: log2(a) * invertValue(log2(10.0));\\nalpha *= float(a > 0.0);\\n#elif defined(LOG_2)\\nresult = a <= 0.0 ? 0.0: log2(a);\\nalpha *= float(a > 0.0);\\n#elif defined(EXP)\\nresult = exp(a);\\n#elif defined(EXP_1_0)\\nresult = pow(10.0, a);\\n#elif defined(EXP_2)\\nresult = pow(2.0, a);\\n#elif defined(ROUNDDOWN)\\nresult = floor(a);\\n#elif defined(ROUNDUP)\\nresult = ceil(a);\\n#elif defined(INT)\\nresult = float(sign(a)) * floor(abs(a));\\n#elif defined(MOD)\\nresult = mod(a, b);\\n#elif defined(NEGATE)\\nresult = -a;\\n#elif defined(ABS)\\nresult = abs(a);\\n#elif defined(ACOS)\\nresult = abs(a) > 1.0 ? 0.0: acos(a);\\nalpha *= step(abs(a), 1.00001);\\n#elif defined(ACOSH)\\nresult = acosh(a);\\n#elif defined(POLYFILLACOSH)\\nresult = log(a + sqrt(a * a - 1.0));\\n#elif defined(ASIN)\\nresult = abs(a) > 1.0 ? 0.0: asin(a);\\nalpha *= step(abs(a), 1.00001);\\n#elif defined(ASINH)\\nresult = asinh(a);\\n#elif defined(POLYFILLASINH)\\nresult = log(a + sqrt(a * a + 1.0));\\n#elif defined(ATAN)\\nresult = atan(a);\\n#elif defined(ATANH)\\nresult = abs(a) > 1.0 ? 0.0: atanh(a);\\nalpha *= step(abs(a), 1.0);\\n#elif defined(POLYFILLATANH)\\nresult = a == 1.0 ? 0.0 : 0.5 * log((1.0 + a)/(1.0 -a));\\n#elif defined(ATAN_2)\\nresult = atan(a, b);\\n#elif defined(COS)\\nresult = cos(a);\\n#elif defined(COSH)\\nresult = cosh(a);\\n#elif defined(POLYFILLCOSH)\\nfloat halfexp = exp(a) / 2.0;\\nresult = halfexp + 1.0 / halfexp;\\n#elif defined(SIN)\\nresult = sin(a);\\n#elif defined(SINH)\\nresult = sinh(a);\\n#elif defined(POLYFILLSINH)\\nfloat halfexp = exp(a) / 2.0;\\nresult = halfexp - 1.0 / halfexp;\\n#elif defined(TAN)\\nresult = tan(a);\\n#elif defined(TANH)\\nresult = tanh(a);\\n#elif defined(POLYFILLTANH)\\nfloat expx = exp(a);\\nresult = (expx - 1.0 / expx) / (expx + 1.0 / expx);\\n#elif defined(BITWISEAND)\\nresult = a & b;\\n#elif defined(BITWISEOR)\\nresult = a | b;\\n#elif defined(BITWISELEFTSHIFT)\\nresult = a << b;\\n#elif defined(BITWISERIGHTSHIFT)\\nresult = a >> b;\\n#elif defined(BITWISENOT)\\nresult = ~a;\\n#elif defined(BITWISEXOR)\\nresult = a ^ b;\\n#elif defined(BOOLEANAND)\\nresult = float((a != 0.0) && (b != 0.0));\\n#elif defined(BOOLEANNOT)\\nresult = float(a == 0.0);\\n#elif defined(BOOLEANOR)\\nresult = float((a != 0.0) || (b != 0.0));\\n#elif defined(BOOLEANXOR)\\nresult = float((a != 0.0) ^^ (b != 0.0));\\n#elif defined(GREATERTHAN)\\nresult = float(a > b);\\n#elif defined(GREATERTHANEQUAL)\\nresult = float(a >= b);\\n#elif defined(LESSTHAN)\\nresult = float(a < b);\\n#elif defined(LESSTHANEQUAL)\\nresult = float(a <= b);\\n#elif defined(EQUALTO)\\nresult = float(a == b);\\n#elif defined(NOTEQUAL)\\nresult = float(a != b);\\n#elif defined(ISNULL)\\nresult = float(alpha == 0.0);\\nalpha = 1.0;\\n#elif defined(SETNULL)\\nfloat maskValue = float(a == 0.0);\\nresult = maskValue * b;\\nalpha *= maskValue;\\n#elif defined(CONDITIONAL)\\nfloat weight = float(abs(sign(a)));\\nresult = weight * b + (1.0 - weight) * c;\\n#endif\\nbool isInvalid = result < u_domainRange.s || result > u_domainRange.t;\\nresult = isInvalid ? 0.0 : result;\\nalpha *= float(!isInvalid);\\n#ifdef ROUND_OUTPUT\\nresult = floor(result + 0.5);\\n#endif\\ngl_FragColor = vec4(result, result, result, alpha);\\n}\"},mask:{\"mask.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\n#define LEN_INCLUDED_RANGES 6\\n#define LEN_NODATA_VALUES 6\\nuniform highp float u_includedRanges[6];\\nuniform highp float u_noDataValues[6];\\nfloat maskFactor(float bandValue, float fromValue, float to) {\\nfloat factor = 1.0;\\nfor (int i = 0; i < LEN_NODATA_VALUES; i++) {\\nfactor *= float(u_noDataValues[i] != bandValue);\\n}\\nfactor *= step(fromValue, bandValue) * step(bandValue, to);\\nreturn factor;\\n}\\nvoid main() {\\nvec4 pv = texture2D(u_image, v_texcoord);\\nfloat redFactor = maskFactor(pv.r, u_includedRanges[0], u_includedRanges[1]);\\n#ifdef MULTI_BAND\\nfloat greenFactor = maskFactor(pv.g, u_includedRanges[2], u_includedRanges[3]);\\nfloat blueFactor = maskFactor(pv.b, u_includedRanges[4], u_includedRanges[5]);\\nfloat maskFactor = redFactor * greenFactor * blueFactor;\\ngl_FragColor = pv * maskFactor;\\n#else\\ngl_FragColor = pv * redFactor;\\n#endif\\n}\"},ndvi:{\"ndvi.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\nuniform mediump mat3 u_bandIndexMat3;\\n#include \\nvoid main() {\\nvec4 pv = texture2D(u_image, v_texcoord);\\nvec3 pv2 = u_bandIndexMat3 * pv.rgb;\\nfloat nir = pv2.r;\\nfloat red = pv2.g;\\nfloat index = (nir - red) * invertValue(nir + red);\\n#ifdef SCALED\\nindex = floor((index + 1.0) * 100.0 + 0.5);\\n#endif\\ngl_FragColor = vec4(index, index, index, pv.a);\\n}\"},remap:{\"remap.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\n#define LEN_REMAP_RANGES 18\\n#define LEN_NODATA_RANGES 12\\nuniform highp float u_rangeMaps[18];\\nuniform highp float u_noDataRanges[12];\\nuniform highp float u_unmatchMask;\\nuniform vec2 u_clampRange;\\nvoid main() {\\nvec4 pv = texture2D(u_image, v_texcoord);\\nfloat factor = 1.0;\\nfloat bandValue = pv.r;\\nfor (int i = 0; i < LEN_NODATA_RANGES; i+=2) {\\nfloat inside = 1.0 - step(u_noDataRanges[i], bandValue) * step(bandValue, u_noDataRanges[i+1]);\\nfactor *= inside;\\n}\\nfloat mapValue = 0.0;\\nfloat includeMask = 0.0;\\nfor (int i = 0; i < LEN_REMAP_RANGES; i+=3) {\\nfloat stepMask = step(u_rangeMaps[i], bandValue) * step(bandValue, u_rangeMaps[i+1]);\\nincludeMask = (1.0 - stepMask) * includeMask + stepMask;\\nmapValue = (1.0 - stepMask) * mapValue + stepMask * u_rangeMaps[i+2];\\n}\\nbandValue = factor * (mapValue + (1.0 - includeMask) * u_unmatchMask * pv.r);\\nfloat bandMask = factor * max(u_unmatchMask, includeMask);\\nbandValue = clamp(bandValue, u_clampRange.s, u_clampRange.t);\\ngl_FragColor = vec4(bandValue, bandValue, bandValue, bandMask * pv.a);\\n}\"},slope:{\"slope.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying vec2 v_texcoord;\\nuniform vec2 u_cellSize;\\nuniform float u_zFactor;\\nuniform vec2 u_srcImageSize;\\nuniform float u_pixelSizePower;\\nuniform float u_pixelSizeFactor;\\n#include \\nvoid main() {\\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;\\nvec4 va = texture2D(u_image, mirror(v_texcoord + onePixel * axy));\\nvec4 vb = texture2D(u_image, mirror(v_texcoord + onePixel * bxy));\\nvec4 vc = texture2D(u_image, mirror(v_texcoord + onePixel * cxy));\\nvec4 vd = texture2D(u_image, mirror(v_texcoord + onePixel * dxy));\\nvec4 ve = texture2D(u_image, mirror(v_texcoord + onePixel * vec2(0, 0)));\\nvec4 vf = texture2D(u_image, mirror(v_texcoord + onePixel * fxy));\\nvec4 vg = texture2D(u_image, mirror(v_texcoord + onePixel * gxy));\\nvec4 vh = texture2D(u_image, mirror(v_texcoord + onePixel * hxy));\\nvec4 vi = texture2D(u_image, mirror(v_texcoord + onePixel * ixy));\\nfloat xf = (u_zFactor + pow(u_cellSize[0], u_pixelSizePower) * u_pixelSizeFactor) / (8.0 * u_cellSize[0]);\\nfloat yf = (u_zFactor + pow(u_cellSize[1], u_pixelSizePower) * u_pixelSizeFactor) / (8.0 * u_cellSize[1]);\\nfloat dzx = (vc + 2.0 * vf + vi - va - 2.0 * vd - vg).r * xf;\\nfloat dzy = -(vg + 2.0 * vh + vi - va - 2.0 * vb - vc).r * yf;\\nfloat alpha = va.a * vb.a * vc.a * vd.a * ve.a * vf.a * vg.a * vh.a * vi.a;\\nfloat rise2run = sqrt(dzx * dzx + dzy * dzy);\\n#ifdef PERCENT_RISE\\nfloat percentRise = rise2run * 100.0;\\ngl_FragColor = vec4(percentRise, percentRise, percentRise, alpha);\\n#else\\nfloat degree = atan(rise2run) * 57.2957795;\\ngl_FragColor = vec4(degree, degree, degree, alpha);\\n#endif\\n}\"},stretch:{\"stretch.frag\":\"precision mediump float;\\nuniform sampler2D u_image;\\nvarying highp vec2 v_texcoord;\\nuniform float u_minCutOff[3];\\nuniform float u_maxCutOff[3];\\nuniform float u_minOutput;\\nuniform float u_maxOutput;\\nuniform float u_factor[3];\\nuniform float u_gamma[3];\\nuniform float u_gammaCorrection[3];\\nfloat stretchOneValue(float val, float minCutOff, float maxCutOff, float minOutput, float maxOutput, float factor, float gamma, float gammaCorrection) {\\nval = clamp(val, minCutOff, maxCutOff);\\nfloat stretchedVal;\\n#ifdef USE_GAMMA\\nfloat tempf = 1.0;\\nfloat outRange = maxOutput - minOutput;\\nfloat relativeVal = (val - minCutOff) / (maxCutOff - minCutOff);\\ntempf -= step(1.0, gamma) * sign(gamma - 1.0) * pow(1.0 / outRange, relativeVal * gammaCorrection);\\nstretchedVal = tempf * outRange * pow(relativeVal, 1.0 / gamma) + minOutput;\\nstretchedVal = clamp(stretchedVal, minOutput, maxOutput);\\n#else\\nstretchedVal = minOutput + (val - minCutOff) * factor;\\n#endif\\n#ifdef ROUND_OUTPUT\\nstretchedVal = floor(stretchedVal + 0.5);\\n#endif\\nreturn stretchedVal;\\n}\\nvoid main() {\\nvec4 currentPixel = texture2D(u_image, v_texcoord);\\nfloat redVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_gamma[0], u_gammaCorrection[0]);\\n#ifdef MULTI_BAND\\nfloat greenVal = stretchOneValue(currentPixel.g, u_minCutOff[1], u_maxCutOff[1], u_minOutput, u_maxOutput, u_factor[1], 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_gamma[2], u_gammaCorrection[2]);\\ngl_FragColor = vec4(redVal, greenVal, blueVal, currentPixel.a);\\n#else\\ngl_FragColor = vec4(redVal, redVal, redVal, currentPixel.a);\\n#endif\\n}\"},vs:{\"vs.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}\"}},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}\"}},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.26/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"],"names":["n","Float32Array","r","t","e","a","o","u","s","c","i","f","l","_","y","w","N","Object","freeze","defineProperty","__proto__","ONES","UNIT_W","UNIT_X","UNIT_Y","UNIT_Z","ZEROS","clone","create","createView","fromValues","ones","unitW","unitX","unitY","unitZ","zeros","Symbol","toStringTag","value","d","constructor","super","arguments","this","_color","dispose","_program","prepareState","context","setStencilTestEnabled","setBlendingEnabled","setFaceCullingEnabled","setColorMask","setStencilOp","setStencilWriteMask","setStencilFunction","m","draw","state","requestRender","allowDelayedRender","geometry","location","name","count","type","p","g","getVAO","attributes","bufferLayouts","indexBuffer","compiled","useProgram","setUniform2fv","setUniform4fv","setUniformMatrix3fv","displayMat3","bindVAO","drawElements","size","_desc","vsPath","fsPath","Map","setBlendFunctionSeparate","painter","isReady","computedOpacity","dvsMat3","isWrapAround","perspectiveTransform","texture","timeline","begin","materialManager","getProgram","v","tex","bindTexture","setUniform1i","setUniform1f","A","drawArrays","end","getGeometryType","supportsSymbology","drawGeometry","rendererInfo","requiredLevel","passOptions","E","S","materialKey","data","T","shader","I","vertexLayout","U","hittestAttributes","x","programSpec","normalized","symbologyType","splice","L","h","_getTriangleDesc","G","O","b","getMaterialProgram","_setSharedUniforms","setUniform2f","key","col","row","textureBinding","textureManager","bindTextures","level","D","pixelRatio","_setSizeVVUniforms","_setColorAndOpacityVVUniforms","R","target","indexCount","j","indexFrom","Uint32Array","BYTES_PER_ELEMENT","_drawFills","_drawMarkers","rendererSchema","colors","defaultColor","othersColor","outlineColor","holePercentage","sectorThreshold","outlineWidth","_patternMatrix","_programOptions","id","pattern","_vao","drawMany","styleLayerUID","_loadWGLResources","displayLevel","styleLayer","backgroundMaterial","vectorTilesMaterialManager","getPaintValue","M","window","devicePixelRatio","spriteMosaic","P","drawPhase","k","getMosaicItemPosition","tl","br","page","getPageSize","bind","setUniform4f","z","rangeX","transforms","dvs","Math","max","round","width","Int8Array","getAttributeLocations","getLayoutInfo","some","layerData","get","circleIndexCount","circleMaterial","displayViewMat3","has","setDataUniforms","prepareForRendering","circleVertexArrayObject","stencilRef","circleIndexStart","triangleCount","_fillProgramOptions","_outlineProgramOptions","renderPass","fillIndexCount","outlineIndexCount","getPaintProperty","isDataDriven","getValue","_drawFill","hasDataDrivenOutlineColor","outlineUsesFillColor","_drawOutline","fillMaterial","V","C","fillVertexArrayObject","patternMap","fillIndexStart","outlineMaterial","outlineVertexArrayObject","outlineIndexStart","sdf","lineIndexCount","lineMaterial","getDashKey","getLayoutValue","lineVertexArrayObject","lineIndexStart","_iconProgramOptions","_sdfProgramOptions","_spritesTextureSize","_drawIcons","_drawText","iconMaterial","iconPerPageElementsMap","isIconSDF","rotation","updateOpacityInfo","iconVertexArrayObject","performance","now","lastOpacityUpdate","_renderIconRange","getWidth","getHeight","glyphMosaic","textMaterial","glyphPerPageElementsMap","W","F","_glyphTextureSize","height","B","H","Y","q","textVertexArrayObject","forEach","_renderGlyphRange","mapAligned","abs","floor","_setRotationVVUniforms","marker","line","fill","text","label","clip","stencil","bitmap","overlay","tileInfo","vtlBackground","vtlFill","vtlLine","vtlCircle","vtlSymbol","dotDensity","_dotTextureSize","_dotTextures","_dotSamplers","Int32Array","_dotVAO","_dotDesc","_disposeTextures","_dotFBO","_drawDotLocations","_drawDotDensity","_createDotDensityMesh","divisor","offset","stride","dotSize","getViewport","dotScale","activeDots","backgroundColor","dotValue","setViewport","getBoundFramebufferObject","_createFBO","bindFramebuffer","setClearColor","clear","gl","COLOR_BUFFER_BIT","STENCIL_BUFFER_BIT","scale","setUniformMatrix4fv","_bindDotDensityTextures","colorTexture","pixelFormat","dataType","samplingMode","wrapMode","colorTarget","depthStencilTarget","internalFormat","length","_createDotDensityTextures","seed","setUniform1iv","Int16Array","_seed","_allocDotDensityTexture","getFloat","heatmap","pieChart","PI","LN2","log","_rctx","_vertexBuffer","Uint16Array","_count","unbind","coords","lengths","push","slice","_cache","vertices","indices","primitiveType","isMapSpace","fromScreenExtent","xmin","ymin","xmax","ymax","path","fromPolygon","fromMapExtent","error","fromRect","toScreen","destroy","vertexBuffers","elementType","getIndexBuffer","getVertexBuffers","keys","reduce","parseFloat","_clip","stage","_handle","version","_invalidate","ready","_destroyGL","mesh","vao","remove","_lastWidth","_lastHeight","_createMesh","_createTransforms","_createScreenRect","left","right","top","bottom","clips","_clips","children","_updateClippingInfo","beforeRender","updateTransforms","doRender","createRenderParams","globalOpacity","profiler","recordContainerStart","beforeRenderLayer","_clippingInfos","renderChildren","compositeLayer","recordContainerEnd","_renderPasses","prepareRenderPasses","render","requireFBO","requiresDedicatedFBO","registerRenderPass","brushes","setTransform","onAttach","onDetach","items","map","nearest","defines","mips","bilinear","bicubic","trilinear","resolution","isSourceScaled","_quad","renderingOptions","source","blendFunction","coordScale","setSamplingProfile","brushEffect","visible","loadQualityProfile","referenceScale","radius","isFieldActive","createOptions","_prevFBO","_accumulateOutputTexture","_accumulateFramebuffer","detachDepthStencilBuffer","_accumulateOutputStencilBuffer","_resolveGradientTexture","_tileQuad","_prevViewport","_loadResources","_updateResources","setBlendFunction","minDensity","densityRange","shadingRate","requiresSharedStencilBuffer","getSharedStencilBuffer","gradientHash","gradient","_prevGradientHash","resize","setData","depthStencilAttachment","descriptor","errorOnce","blitFramebuffer","_qualityProfile","textureFloat","colorBufferFloat","capabilities","textureFloatLinear","textureHalfFloat","textureHalfFloatLinear","HALF_FLOAT","floatBlend","driverTest","floatBufferBlend","result","R32F","R16F","warnOnce","_outlineProgram","_tileInfoProgram","_outlineVertexArrayObject","_tileInfoVertexArrayObject","_canvas","rangeY","_getTexture","triangleCountReportedInDebug","document","createElement","setAttribute","getContext","font","textAlign","textBaseline","clearRect","fillStyle","fillRect","fillText","_initialized","_solidProgram","_solidVertexArrayObject","setDepthWriteEnabled","setDepthTestEnabled","_initialize","setStencilFunctionSeparate","_computeDesc","includes","commit","getGeometry","attributeView","forEachCommand","position","distance","tileMat3","viewMat3","vvSizeMinMaxValue","vvSizeScaleStops","vvSizeScaleStopsValue","vvSizeFieldStops","getSizeVVFieldStops","setUniform1fv","values","sizes","vvSizeUnitValue","vvSizeUnitValueToPixelsRatio","vvColor","vvColorValues","vvColors","vvOpacity","vvOpacityValues","vvOpacities","vvRotation","vvMaterialParameters","vvRotationType","findIndex","join","strides","set","shaders","vertexShader","fragmentShader","background","bitBlit","blend","debug","dot","filtering","fx","integrate","heatmapResolve","highlight","magnifier","materials","hittest","icon","heatmapAccumulate","pie","shared","blit","bloom","composite","gaussianBlur","luminosityHighPass","blur","dra","sobel","filterEffect","pp","raster","common","flow","imagery","particles","streamlines","hillshade","lut","magdir","reproject","rfx","aspect","bandarithmetic","compositeband","convolution","extractband","local","mask","ndvi","remap","slope","stretch","vs","scalar","util","split","resolveIncludes"],"sourceRoot":""}