{"version":3,"sources":["webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/GeometryUtils.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/shaders/BackgroundPrograms.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/RasterBitmap.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/BrushBitmap.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/BrushClip.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLBackground.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushVTLSymbol.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrush.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushFill.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushLabel.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushLine.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushMarker.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLGeometryBrushText.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/raster/BrushRasterBitmap.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/brushes.js","webpack:///./node_modules/@arcgis/core/views/webgl/ShaderCompiler.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/shaders/TileInfoPrograms.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushInfo.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/VertexStream.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/shaders/sources/shaderRepository.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/shaders/sources/resolver.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/raster/BrushVectorField.js","webpack:///./node_modules/@arcgis/core/views/webgl/programUtils.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrushStencil.js","webpack:///./node_modules/@arcgis/core/views/2d/engine/webgl/brushes/WGLBrush.js"],"names":["Number","POSITIVE_INFINITY","t","Math","PI","o","c","N","LN2","a","n","h","M","P","log","g","r","e","shaders","vertexShader","fragmentShader","attributes","Map","m","bandCount","outMin","outMax","minCutOff","maxCutOff","factor","useGamma","gamma","gammaCorrection","colormap","colormapOffset","stretchType","type","x","super","this","_textureInvalidated","_colormapTextureInvalidated","_supportsBilinearTexture","stencilRef","coordScale","_symbolizerParameters","height","isRendereredSource","pixelRatio","resolution","rotation","_source","rawPixelData","_suspended","_bandIds","_interpolation","_transformGrid","width","y","source","transformGrid","interpolation","getTextures","textures","forEach","dispose","_rasterTexture","_transformGridTexture","_colormapTexture","_rasterTextureBandIds","invalidateTexture","stage","ready","requestRender","_isBandIdschanged","setSamplingMode","_getTextureSamplingMethod","dvs","transforms","l","toScreenNoRotation","d","_","displayViewMat3","push","names","context","s","i","_isValidSource","_updateColormapTexture","_createOrDestroyRasterTexture","setData","suspended","bandIds","capabilities","textureFloat","textureFloatLinear","u","join","pixels","length","symbolizerParameters","_colormap","some","nearest","defines","samplingMode","mips","bilinear","bicubic","trilinear","state","round","isSourceScaled","arguments","_desc","vsPath","fsPath","_quad","setBlendingEnabled","blendFunction","setBlendFunctionSeparate","setColorMask","setStencilWriteMask","setStencilTestEnabled","setStencilFunction","renderingOptions","painter","timeline","begin","name","materialManager","getProgram","computedOpacity","p","setSamplingProfile","bind","useProgram","setUniformMatrix3fv","setUniform1i","setUniform2fv","setUniform1f","draw","end","geometry","location","count","_color","_program","setFaceCullingEnabled","setStencilOp","getVAO","bufferLayouts","indexBuffer","setUniform4fv","displayMat3","bindVAO","drawElements","size","_patternMatrix","_programOptions","id","pattern","_vao","styleLayerUID","f","_loadWGLResources","displayLevel","styleLayer","backgroundMaterial","vectorTilesMaterialManager","getPaintValue","b","j","v","window","devicePixelRatio","spriteMosaic","w","U","drawPhase","HITTEST","k","L","getMaterialProgram","getMosaicItemPosition","tl","br","page","getPageSize","setUniform4f","z","rangeX","max","key","level","drawArrays","Int8Array","createVertex","getAttributeLocations","getLayoutInfo","requiredLevel","layerData","get","circleIndexCount","circleMaterial","has","setDataUniforms","prepareForRendering","circleVertexArrayObject","Uint32Array","BYTES_PER_ELEMENT","circleIndexStart","triangleCount","_fillProgramOptions","_outlineProgramOptions","renderPass","fillIndexCount","outlineIndexCount","getPaintProperty","isDataDriven","getValue","_drawFill","hasDataDrivenOutlineColor","outlineUsesFillColor","_drawOutline","fillMaterial","E","T","D","I","S","fillVertexArrayObject","patternMap","fillIndexStart","outlineMaterial","outlineVertexArrayObject","outlineIndexStart","sdf","lineIndexCount","lineMaterial","V","getDashKey","getLayoutValue","lineVertexArrayObject","lineIndexStart","_iconProgramOptions","_sdfProgramOptions","_spritesTextureSize","_drawIcons","_drawText","iconMaterial","iconPerPageElementsMap","isIconSDF","updateOpacityInfo","iconVertexArrayObject","performance","now","lastOpacityUpdate","_renderIconRange","getWidth","getHeight","glyphMosaic","textMaterial","glyphPerPageElementsMap","O","_glyphTextureSize","R","A","F","W","textVertexArrayObject","_renderGlyphRange","indexOf","getGeometryType","commit","getGeometry","attributeView","bindTextures","forEachCommand","drawGeometry","data","dotDensity","normalized","_dotTextureSize","_dotTextures","_dotSamplers","Int32Array","_disposeTextures","FILL","rendererInfo","load","materialKey","_setSharedUniforms","textureBinding","textureManager","vvColor","setUniform1fv","vvColorValues","vvColors","vvOpacity","vvOpacityValues","vvOpacities","ddDotSize","ddDotScale","scale","setUniformMatrix4fv","ddColors","ddActiveDots","ddBackgroundColor","ddDotValue","_bindDotDensityTextures","_createDotDensityTextures","ddSeed","setUniform1iv","bindTexture","_seed","_allocDotDensityTexture","Float32Array","getFloat","wrapMode","pixelFormat","dataType","LABEL","mapAligned","abs","vvSizeMinMaxValue","vvSizeScaleStops","vvSizeScaleStopsValue","vvSizeFieldStops","getSizeVVFieldStops","values","sizes","vvSizeUnitValue","vvSizeUnitValueToPixelsRatio","floor","LINE","MARKER","vvRotation","vvMaterialParameters","vvRotationType","TEXT","lut","stretch","hillshade","_rendererUniformInfos","updateTexture","getShaderVariations","drawWithProgram","opacity","getUniformInfos","u_coordScale","u_dvsMat3","set","G","marker","line","fill","text","label","clip","stencil","bitmap","raster","rasterVF","tileInfo","vtlBackground","vtlFill","vtlLine","vtlCircle","vtlSymbol","readFile","resolve","read","Error","exec","path","start","index","slice","_outlineProgram","_tileInfoProgram","_outlineVertexArrayObject","_tileInfoVertexArrayObject","_canvas","isReady","setUniform2f","rangeY","_getTexture","descriptor","offset","stride","divisor","texture","triangleCountReportedInDebug","document","createElement","setAttribute","getContext","font","textAlign","textBaseline","clearRect","fillStyle","fillRect","fillText","target","rctx","_vertexBuffer","Uint16Array","_count","unbind","background","bitBlit","blend","filtering","fx","integrate","highlight","magnifier","materials","icon","blit","bloom","composite","gaussianBlur","luminosityHighPass","blur","dra","sobel","filterEffect","pp","common","magdir","reproject","scalar","util","split","resolveIncludes","beaufort_ft","beaufort_m","beaufort_km","beaufort_mi","beaufort_kn","classified_arrow","ocean_current_m","ocean_current_kn","single_arrow","wind_speed","validPixelCount","updateVectorFieldVAO","vaoData","_drawScalars","vao","elementCount","_drawTriangles","dataRange","rotationType","style","symbolPercentRange","_getSymbolSize","symbolTileSize","toFixed","options","value","_initialized","_solidProgram","_solidVertexArrayObject","setDepthWriteEnabled","setDepthTestEnabled","setStencilFunctionSeparate","_initialize","constructor"],"mappings":"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","file":"js/chunk-58ef9dc4.492e2aaf.js","sourcesContent":["/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nconst n=Number.POSITIVE_INFINITY,t=Math.PI,r=2*t,u=t/2,o=128/t,e=t/128,c=256/360,f=t/180,i=1.414213562,I=1/i,N=1/Math.LN2;function a(n,t){return(n%=t)>=0?n:n+t}function h(n){return a(n*o,256)}function M(n){return a(n*c,256)}function P(n){return Math.log(n)*N}function T(n){return n*n}function b(n,t,r){return n*(1-r)+t*r}function g(n,t,r){return n>=t&&n<=r||n>=r&&n<=t}export{e as C_256_TO_RAD,r as C_2PI,c as C_DEG_TO_256,f as C_DEG_TO_RAD,n as C_INFINITY,t as C_PI,u as C_PI_BY_2,o as C_RAD_TO_256,i as C_SQRT2,I as C_SQRT2_INV,g as between,M as degToByte,b as interpolate,P as log2,a as positiveMod,h as radToByte,T as sqr};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/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.21/esri/copyright.txt for details.\n*/\nimport{isSome as t}from\"../../../core/maybe.js\";import{b as e,c as r,r as s,j as i,m as a}from\"../../../chunks/mat3.js\";import{c as o}from\"../../../chunks/mat3f32.js\";import{f as u}from\"../../../chunks/vec2f32.js\";import{extractBands as n}from\"../../../layers/support/rasterFunctions/pixelUtils.js\";import{DisplayObject as l}from\"./DisplayObject.js\";import{createTransformTexture as h,createRasterTexture as d,createColormapTexture as _}from\"../../webgl/rasterUtils.js\";const m={bandCount:3,outMin:0,outMax:1,minCutOff:[0,0,0],maxCutOff:[255,255,255],factor:[1/255,1/255,1/255],useGamma:!1,gamma:[1,1,1],gammaCorrection:[1,1,1],colormap:null,colormapOffset:null,stretchType:\"none\",type:\"stretch\"};class x extends l{constructor(t=null,e=null,r=null){super(),this._textureInvalidated=!0,this._colormapTextureInvalidated=!0,this._supportsBilinearTexture=!0,this.stencilRef=0,this.coordScale=[1,1],this._symbolizerParameters=null,this.height=null,this.isRendereredSource=!1,this.pixelRatio=1,this.resolution=0,this.rotation=0,this._source=null,this.rawPixelData=null,this._suspended=!1,this._bandIds=null,this._interpolation=null,this._transformGrid=null,this.width=null,this.x=0,this.y=0,this.source=t,this.transformGrid=e,this.interpolation=r}destroy(){const t=this.getTextures();null==t||t.textures.forEach((t=>t.dispose())),this._rasterTexture=null,this._transformGridTexture=null,this._colormapTexture=null}get symbolizerParameters(){return this._symbolizerParameters||m}set symbolizerParameters(t){this._symbolizerParameters!==t&&(this._symbolizerParameters=t,this._colormapTextureInvalidated=!0)}get source(){return this._source}set source(t){this._source!==t&&(this._source=t,this._rasterTexture&&(this._rasterTexture.dispose(),this._rasterTexture=null,this._rasterTextureBandIds=null),this.invalidateTexture())}get suspended(){return this._suspended}set suspended(t){this._suspended&&!t&&this.stage&&(this.ready(),this.requestRender()),this._suspended=t}get bandIds(){return this._bandIds}set bandIds(t){this._bandIds=t,this._isBandIdschanged(t)&&this.invalidateTexture()}get interpolation(){return this._interpolation||\"nearest\"}set interpolation(t){this._interpolation=t,this._rasterTexture&&this._rasterTexture.setSamplingMode(\"bilinear\"===this._getTextureSamplingMethod(t)?9729:9728)}get transformGrid(){return this._transformGrid}set transformGrid(t){this._transformGrid=t,this._transformGridTexture&&(this._transformGridTexture.dispose(),this._transformGridTexture=null)}invalidateTexture(){this._textureInvalidated||(this._textureInvalidated=!0,this.requestRender())}_createTransforms(){return{dvs:o()}}setTransform(t){const o=e(this.transforms.dvs),[n,l]=t.toScreenNoRotation([0,0],[this.x,this.y]),h=this.resolution/this.pixelRatio/t.resolution,d=h*this.width,_=h*this.height,m=Math.PI*this.rotation/180;r(o,o,u(n,l)),r(o,o,u(d/2,_/2)),s(o,o,-m),r(o,o,u(-d/2,-_/2)),i(o,o,u(d,_)),a(this.transforms.dvs,t.displayViewMat3,o)}getTextures(){if(!this._rasterTexture)return null;const t=[],e=[];return this._transformGridTexture&&(e.push(this._transformGridTexture),t.push(\"u_transformGrid\")),this._rasterTexture&&(e.push(this._rasterTexture),t.push(\"u_image\")),this._colormapTexture&&(e.push(this._colormapTexture),t.push(\"u_colormap\")),{names:t,textures:e}}onAttach(){this.invalidateTexture()}onDetach(){this.invalidateTexture()}updateTexture({context:t}){var e,r,s;if(!this.stage)return null==(e=this._rasterTexture)||e.dispose(),null==(r=this._transformGridTexture)||r.dispose(),null==(s=this._colormapTexture)||s.dispose(),this._rasterTexture=null,this._rasterTextureBandIds=null,this._transformGridTexture=null,void(this._colormapTexture=null);const i=this._isValidSource(this.source);i&&this._colormapTextureInvalidated&&(this._colormapTextureInvalidated=!1,this._updateColormapTexture(t)),this._textureInvalidated&&(this._textureInvalidated=!1,this._createOrDestroyRasterTexture(t),this._rasterTexture&&(i?this.transformGrid&&!this._transformGridTexture&&(this._transformGridTexture=h(t,this.transformGrid)):this._rasterTexture.setData(null)),this.suspended||(this.ready(),this.requestRender()))}_createOrDestroyRasterTexture(e){var r,s;const i=t(this.source)?n(this.source,this.bandIds):null;if(!this._isValidSource(i))return void(this._rasterTexture&&(this._rasterTexture.dispose(),this._rasterTextureBandIds=null,this._rasterTexture=null));const a=!this._isBandIdschanged(this.bandIds);if(this._rasterTexture){if(a)return;this._rasterTexture.dispose(),this._rasterTextureBandIds=null,this._rasterTexture=null}this._supportsBilinearTexture=null==(r=e.capabilities.textureFloat)?void 0:r.textureFloatLinear;const o=this._getTextureSamplingMethod(this.interpolation),u=this.isRendereredSource||!(null!=(s=e.capabilities.textureFloat)&&s.textureFloat);this._rasterTexture=d(e,i,o,u),this._rasterTextureBandIds=this.bandIds?[...this.bandIds]:null}_isBandIdschanged(t){const e=this._rasterTextureBandIds;return!(null==e&&null==t||e&&t&&e.join(\"\")===t.join(\"\"))}_isValidSource(e){var r;return t(e)&&(null==(r=e.pixels)?void 0:r.length)>0}_getTextureSamplingMethod(e){const{type:r,colormap:s}=this.symbolizerParameters,i=\"lut\"===r||\"stretch\"===r&&t(s);return!this._supportsBilinearTexture||i||\"bilinear\"!==e&&\"cubic\"!==e?\"nearest\":\"bilinear\"}_updateColormapTexture(t){const e=this._colormap,r=this.symbolizerParameters.colormap;return r?e?r.length!==e.length||r.some(((t,r)=>t!==e[r]))?(this._colormapTexture&&(this._colormapTexture.dispose(),this._colormapTexture=null),this._colormapTexture=_(t,r),void(this._colormap=r)):void 0:(this._colormapTexture=_(t,r),void(this._colormap=r)):(this._colormapTexture&&(this._colormapTexture.dispose(),this._colormapTexture=null),void(this._colormap=null))}}class p extends x{get source(){return this._source}}function c(e){return t(e.source)}export{x as RasterBitmap,p as RasterBitmapWithSource,c as hasSource};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{TEXTURE_BINDING_BITMAP as e}from\"../definitions.js\";import t from\"../VertexStream.js\";import i from\"./WGLBrush.js\";const s={nearest:{defines:[],samplingMode:9728,mips:!1},bilinear:{defines:[],samplingMode:9729,mips:!1},bicubic:{defines:[\"bicubic\"],samplingMode:9729,mips:!1},trilinear:{defines:[],samplingMode:9987,mips:!0}},n=(e,t,i)=>{if(\"dynamic\"===i.samplingMode){const{state:i}=e,n=t.resolution/t.pixelRatio/i.resolution,a=Math.round(e.pixelRatio)!==e.pixelRatio,r=n>1.05||n<.95;return i.rotation||r||a||t.isSourceScaled||t.rotation?s.bilinear:s.nearest}return s[i.samplingMode]};class a extends i{constructor(){super(...arguments),this._desc={vsPath:\"raster/bitmap\",fsPath:\"raster/bitmap\",attributes:new Map([[\"a_position\",0],[\"a_texcoord\",1]])}}dispose(){this._quad&&this._quad.dispose()}prepareState({context:e},t){e.setBlendingEnabled(!0),\"additive\"===t.blendFunction?e.setBlendFunctionSeparate(1,1,1,1):e.setBlendFunctionSeparate(1,771,1,771),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(514,t.stencilRef,255)}draw(i,s){const{context:a,renderingOptions:r,painter:o}=i;if(!s.source)return;i.timeline.begin(this.name),this._quad||(this._quad=new t(a,[0,0,1,0,0,1,1,1]));const d=n(i,s,r),c=o.materialManager.getProgram(i,this._desc,d.defines),{coordScale:l,computedOpacity:m,transforms:p}=s;s.setSamplingProfile(d),s.bind(i.context,e),a.useProgram(c),c.setUniformMatrix3fv(\"u_dvsMat3\",p.dvs),c.setUniform1i(\"u_texture\",e),c.setUniform2fv(\"u_coordScale\",l),c.setUniform1f(\"u_opacity\",m),this._quad.draw(),i.timeline.end(this.name)}}export{a as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{isNone as t}from\"../../../../../core/maybe.js\";import{f as r}from\"../../../../../chunks/vec4f32.js\";import{createProgramDescriptor as s}from\"../Utils.js\";import e from\"./WGLBrush.js\";import{background as o}from\"../shaders/BackgroundPrograms.js\";import{createProgram as i}from\"../../../../webgl/programUtils.js\";const a=()=>s(\"clip\",{geometry:[{location:0,name:\"a_pos\",count:2,type:5122}]});class n extends e{constructor(){super(...arguments),this._color=r(0,1,0,1)}dispose(){this._program&&this._program.dispose()}prepareState({context:t}){t.setStencilTestEnabled(!0),t.setBlendingEnabled(!1),t.setFaceCullingEnabled(!1),t.setColorMask(!1,!1,!1,!1),t.setStencilOp(7680,7680,7681),t.setStencilWriteMask(255),t.setStencilFunction(519,0,255)}draw(r,s){const{context:e,state:n}=r,m=a(),p=s.getVAO(e,n,m.attributes,m.bufferLayouts);t(p.indexBuffer)||(this._program||(this._program=i(e,o)),e.useProgram(this._program),this._program.setUniform2fv(\"u_coord_range\",[1,1]),this._program.setUniform4fv(\"u_color\",this._color),this._program.setUniformMatrix3fv(\"u_dvsMat3\",n.displayMat3),e.bindVAO(p),e.drawElements(4,p.indexBuffer.size,5125,0),e.bindVAO())}}export{n as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/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 i from\"../../../../webgl/BufferObject.js\";import\"../../../../webgl/FramebufferObject.js\";import\"../../../../../core/has.js\";import\"../../../../webgl/checkWebGLError.js\";import\"../../../../webgl/enums.js\";import\"../../../../../chunks/builtins.js\";import\"../../../../webgl/renderState.js\";import\"../../../../webgl/Texture.js\";import s from\"../../../../webgl/VertexArrayObject.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as a,VTL_HIGH_RES_CUTOFF as n}from\"../definitions.js\";import{WGLDrawPhase as c}from\"../enums.js\";import{u32to4Xu8 as m}from\"../number.js\";import f from\"./WGLBrush.js\";class l extends f{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:i,painter:s,styleLayerUID:f}=e;this._loadWGLResources(e);const l=e.displayLevel,u=e.styleLayer,p=u.backgroundMaterial,_=s.vectorTilesMaterialManager,h=u.getPaintValue(\"background-color\",l),d=u.getPaintValue(\"background-opacity\",l),g=u.getPaintValue(\"background-pattern\",l),b=void 0!==g,j=h[3]*d,v=1|window.devicePixelRatio,x=e.spriteMosaic;let y,M;const w=v>n?2:1,U=e.drawPhase===c.HITTEST,k=this._programOptions;k.id=U,k.pattern=b;const L=_.getMaterialProgram(i,p,k);if(i.bindVAO(this._vao),i.useProgram(L),b){const t=x.getMosaicItemPosition(g,!0);if(r(t)){const{tl:e,br:o,page:s}=t;y=o[0]-e[0],M=o[1]-e[1];const n=x.getPageSize(s);r(n)&&(x.bind(i,9729,s,a),L.setUniform4f(\"u_tlbr\",e[0],e[1],o[0],o[1]),L.setUniform2fv(\"u_mosaicSize\",n),L.setUniform1i(\"u_texture\",a))}L.setUniform1f(\"u_opacity\",d)}else this._color[0]=j*h[0],this._color[1]=j*h[1],this._color[2]=j*h[2],this._color[3]=j,L.setUniform4fv(\"u_color\",this._color);if(L.setUniform1f(\"u_depth\",u.z||0),U){const t=m(f+1);L.setUniform4fv(\"u_id\",t)}for(const r of o){if(L.setUniform1f(\"u_coord_range\",r.rangeX),L.setUniformMatrix3fv(\"u_dvsMat3\",r.transforms.dvs),b){const e=Math.max(2**(Math.round(l)-r.key.level),1),o=w*r.width*e,i=o/t(y),s=o/t(M);this._patternMatrix[0]=i,this._patternMatrix[4]=s,L.setUniformMatrix3fv(\"u_pattern_matrix\",this._patternMatrix)}i.setStencilFunction(514,r.stencilRef,255),i.drawArrays(5,0,4)}}_loadWGLResources(t){if(this._vao)return;const{context:r,styleLayer:e}=t,o=e.backgroundMaterial,a=new Int8Array([0,0,1,0,0,1,1,1]),n=i.createVertex(r,35044,a),c=new s(r,o.getAttributeLocations(),o.getLayoutInfo(),{geometry:n});this._vao=c}}export{l as WGLBrushVTLBackground};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{isNone as e}from\"../../../../../core/maybe.js\";import{WGLDrawPhase as t}from\"../enums.js\";import{u32to4Xu8 as r}from\"../number.js\";import a from\"./WGLBrush.js\";class i extends a{constructor(){super(...arguments),this._programOptions={id:!1}}dispose(){}drawMany(a,i){const{context:n,displayLevel:s,requiredLevel:o,state:l,drawPhase:c,painter:u,spriteMosaic:d,styleLayerUID:f}=a;if(!i.some((e=>{var t,r;return null!=(t=null==(r=e.layerData.get(f))?void 0:r.circleIndexCount)&&t})))return;const m=a.styleLayer,p=m.circleMaterial,y=u.vectorTilesMaterialManager,v=1.2,g=m.getPaintValue(\"circle-translate\",s),M=m.getPaintValue(\"circle-translate-anchor\",s),x=c===t.HITTEST,_=this._programOptions;_.id=x;const U=y.getMaterialProgram(n,p,_);n.useProgram(U),U.setUniformMatrix3fv(\"u_displayMat3\",1===M?l.displayMat3:l.displayViewMat3),U.setUniform2fv(\"u_circleTranslation\",g),U.setUniform1f(\"u_depth\",m.z),U.setUniform1f(\"u_antialiasingWidth\",v);let h=-1;if(x){const e=r(f+1);U.setUniform4fv(\"u_id\",e)}for(const t of i){if(!t.layerData.has(f))continue;t.key.level!==h&&(h=t.key.level,p.setDataUniforms(U,s,m,h,d));const r=t.layerData.get(f);if(!r.circleIndexCount)continue;r.prepareForRendering(n);const a=r.circleVertexArrayObject;e(a)||(n.bindVAO(a),U.setUniformMatrix3fv(\"u_dvsMat3\",t.transforms.dvs),o!==t.key.level?n.setStencilFunction(514,t.stencilRef,255):n.setStencilFunction(516,255,255),n.drawElements(4,r.circleIndexCount,5125,Uint32Array.BYTES_PER_ELEMENT*r.circleIndexStart),t.triangleCount+=r.circleIndexCount/3)}}}export{i as WGLBrushVTLCircle};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{isNone as t,isSome as e}from\"../../../../../core/maybe.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as i,VTL_HIGH_RES_CUTOFF as a}from\"../definitions.js\";import{WGLDrawPhase as n}from\"../enums.js\";import{u32to4Xu8 as r}from\"../number.js\";import o from\"./WGLBrush.js\";const l=1/65536;class s extends o{constructor(){super(...arguments),this._fillProgramOptions={id:!1,pattern:!1},this._outlineProgramOptions={id:!1}}dispose(){}drawMany(t,e){const{displayLevel:i,drawPhase:a,renderPass:o,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,c=u.getPaintProperty(\"fill-pattern\"),d=void 0!==c,m=d&&c.isDataDriven;let p;if(d&&!m){const t=c.getValue(i);p=l.getMosaicItemPosition(t,!0)}const y=!d&&u.getPaintValue(\"fill-antialias\",i);let g=!0,M=1;if(!d){const t=u.getPaintProperty(\"fill-color\"),e=u.getPaintProperty(\"fill-opacity\");if(!(null!=t&&t.isDataDriven||null!=e&&e.isDataDriven)){const t=u.getPaintValue(\"fill-color\",i);M=u.getPaintValue(\"fill-opacity\",i)*t[3],M>=1&&(g=!1)}}if(g&&\"opaque\"===o)return;let _;a===n.HITTEST&&(_=r(s+1));const v=u.getPaintValue(\"fill-translate\",i),P=u.getPaintValue(\"fill-translate-anchor\",i);(g||\"translucent\"!==o)&&this._drawFill(t,s,u,e,v,P,d,p,m,_);const x=!u.hasDataDrivenOutlineColor&&u.outlineUsesFillColor&&M<1;y&&\"opaque\"!==o&&!x&&this._drawOutline(t,s,u,e,v,P,_)}_drawFill(r,o,s,f,u,c,d,m,p,y){if(d&&!p&&t(m))return;const{context:g,displayLevel:M,state:_,drawPhase:v,painter:P,pixelRatio:x,spriteMosaic:U}=r,h=s.fillMaterial,E=P.vectorTilesMaterialManager,T=x>a?2:1,D=v===n.HITTEST,w=this._fillProgramOptions;w.id=D,w.pattern=d;const I=E.getMaterialProgram(g,h,w);if(g.useProgram(I),e(m)){const{page:t}=m,a=U.getPageSize(t);e(a)&&(U.bind(g,9729,t,i),I.setUniform2fv(\"u_mosaicSize\",a),I.setUniform1i(\"u_texture\",i))}I.setUniformMatrix3fv(\"u_displayMat3\",1===c?_.displayMat3:_.displayViewMat3),I.setUniform2fv(\"u_fillTranslation\",u),I.setUniform1f(\"u_depth\",s.z+l),D&&I.setUniform4fv(\"u_id\",y);let S=-1;for(const a of f){if(!a.layerData.has(o))continue;a.key.level!==S&&(S=a.key.level,h.setDataUniforms(I,M,s,S,U));const n=a.layerData.get(o);if(!n.fillIndexCount)continue;n.prepareForRendering(g);const r=n.fillVertexArrayObject;if(!t(r)){if(g.bindVAO(r),I.setUniformMatrix3fv(\"u_dvsMat3\",a.transforms.dvs),g.setStencilFunction(514,a.stencilRef,255),d){const t=Math.max(2**(Math.round(M)-a.key.level),1),e=a.rangeX/(T*a.width*t);I.setUniform1f(\"u_patternFactor\",e)}if(p){const t=n.patternMap;if(!t)continue;for(const[a,n]of t){const t=U.getPageSize(a);e(t)&&(U.bind(g,9729,a,i),I.setUniform2fv(\"u_mosaicSize\",t),I.setUniform1i(\"u_texture\",i),g.drawElements(4,n[1],5125,Uint32Array.BYTES_PER_ELEMENT*n[0]))}}else g.drawElements(4,n.fillIndexCount,5125,Uint32Array.BYTES_PER_ELEMENT*n.fillIndexStart);a.triangleCount+=n.fillIndexCount/3}}}_drawOutline(e,i,a,r,o,s,f){const{context:u,displayLevel:c,state:d,drawPhase:m,painter:p,pixelRatio:y,spriteMosaic:g}=e,M=a.outlineMaterial,_=p.vectorTilesMaterialManager,v=.75/y,P=m===n.HITTEST,x=this._outlineProgramOptions;x.id=P;const U=_.getMaterialProgram(u,M,x);u.useProgram(U),U.setUniformMatrix3fv(\"u_displayMat3\",1===s?d.displayMat3:d.displayViewMat3),U.setUniform2fv(\"u_fillTranslation\",o),U.setUniform1f(\"u_depth\",a.z+l),U.setUniform1f(\"u_outline_width\",v),P&&U.setUniform4fv(\"u_id\",f);let h=-1;for(const n of r){if(!n.layerData.has(i))continue;n.key.level!==h&&(h=n.key.level,M.setDataUniforms(U,c,a,h,g));const e=n.layerData.get(i);if(e.prepareForRendering(u),!e.outlineIndexCount)continue;const r=e.outlineVertexArrayObject;t(r)||(u.bindVAO(r),U.setUniformMatrix3fv(\"u_dvsMat3\",n.transforms.dvs),u.setStencilFunction(514,n.stencilRef,255),u.drawElements(4,e.outlineIndexCount,5125,Uint32Array.BYTES_PER_ELEMENT*e.outlineIndexStart),n.triangleCount+=e.outlineIndexCount/3)}}}export{s as WGLBrushVTLFill};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{isSome as e,isNone as t}from\"../../../../../core/maybe.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as i}from\"../definitions.js\";import{WGLDrawPhase as n}from\"../enums.js\";import{u32to4Xu8 as a}from\"../number.js\";import r from\"./WGLBrush.js\";class o extends r{constructor(){super(...arguments),this._programOptions={id:!1,pattern:!1,sdf:!1}}dispose(){}drawMany(r,o){const{context:s,displayLevel:l,state:f,drawPhase:m,painter:u,pixelRatio:c,spriteMosaic:d,styleLayerUID:p}=r;if(!o.some((e=>{var t,i;return null!=(t=null==(i=e.layerData.get(p))?void 0:i.lineIndexCount)&&t})))return;const g=r.styleLayer,y=g.lineMaterial,M=u.vectorTilesMaterialManager,v=g.getPaintValue(\"line-translate\",l),_=g.getPaintValue(\"line-translate-anchor\",l),U=g.getPaintProperty(\"line-pattern\"),x=void 0!==U,P=x&&U.isDataDriven;let E,D;if(x&&!P){const e=U.getValue(l);E=d.getMosaicItemPosition(e)}let V=!1;if(!x){const e=g.getPaintProperty(\"line-dasharray\");if(D=void 0!==e,V=D&&e.isDataDriven,D&&!V){const t=e.getValue(l),i=g.getDashKey(t,g.getLayoutValue(\"line-cap\",l));E=d.getMosaicItemPosition(i)}}const h=1/c,I=m===n.HITTEST,S=this._programOptions;S.id=I,S.pattern=x,S.sdf=D;const T=M.getMaterialProgram(s,y,S);if(s.useProgram(T),T.setUniformMatrix3fv(\"u_displayViewMat3\",f.displayViewMat3),T.setUniformMatrix3fv(\"u_displayMat3\",1===_?f.displayMat3:f.displayViewMat3),T.setUniform2fv(\"u_lineTranslation\",v),T.setUniform1f(\"u_depth\",g.z),T.setUniform1f(\"u_antialiasing\",h),I){const e=a(p+1);T.setUniform4fv(\"u_id\",e)}if(E&&e(E)){const{page:t}=E,n=d.getPageSize(t);e(n)&&(d.bind(s,9729,t,i),T.setUniform2fv(\"u_mosaicSize\",n),T.setUniform1i(\"u_texture\",i))}let w=-1;for(const n of o){if(!n.layerData.has(p))continue;n.key.level!==w&&(w=n.key.level,y.setDataUniforms(T,l,g,w,d));const a=2**(l-w)/c;T.setUniform1f(\"u_zoomFactor\",a);const r=n.layerData.get(p);if(!r.lineIndexCount)continue;r.prepareForRendering(s);const o=r.lineVertexArrayObject;if(!t(o)){if(s.bindVAO(o),T.setUniformMatrix3fv(\"u_dvsMat3\",n.transforms.dvs),s.setStencilFunction(514,n.stencilRef,255),P||V){const t=r.patternMap;if(!t)continue;for(const[n,a]of t){const t=d.getPageSize(n);e(t)&&(d.bind(s,9729,n,i),T.setUniform2fv(\"u_mosaicSize\",t),T.setUniform1i(\"u_texture\",i),s.drawElements(4,a[1],5125,Uint32Array.BYTES_PER_ELEMENT*a[0]))}}else s.drawElements(4,r.lineIndexCount,5125,Uint32Array.BYTES_PER_ELEMENT*r.lineIndexStart);n.triangleCount+=r.lineIndexCount/3}}}}export{o as WGLBrushVTLLine};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{isNone as e}from\"../../../../../core/maybe.js\";import{c as t,f as a}from\"../../../../../chunks/vec2f32.js\";import{FADE_DURATION as i}from\"../../vectorTiles/decluttering/config.js\";import{VTL_TEXTURE_BINDING_UNIT_SPRITES as r,VTL_TEXTURE_BINDING_UNIT_GLYPHS as s}from\"../definitions.js\";import{WGLDrawPhase as n}from\"../enums.js\";import{degToByte as o}from\"../GeometryUtils.js\";import{u32to4Xu8 as l}from\"../number.js\";import f from\"./WGLBrush.js\";const c=1/65536;class p extends f{constructor(){super(...arguments),this._iconProgramOptions={id:!1,sdf:!1},this._sdfProgramOptions={id:!1},this._spritesTextureSize=t()}dispose(){}drawMany(e,t){const{drawPhase:a,styleLayerUID:i}=e,r=e.styleLayer;let s;a===n.HITTEST&&(s=l(i+1)),this._drawIcons(e,r,t,s),this._drawText(e,r,t,s)}_drawIcons(t,a,s,l){const{context:f,displayLevel:c,drawPhase:p,painter:u,spriteMosaic:m,state:g,styleLayerUID:y}=t,d=a.iconMaterial,_=u.vectorTilesMaterialManager;let h,M=!1;for(const e of s)if(e.layerData.has(y)&&(h=e.layerData.get(y),h.iconPerPageElementsMap.size>0)){M=!0;break}if(!M)return;const U=a.getPaintValue(\"icon-translate\",c),P=a.getPaintValue(\"icon-translate-anchor\",c);let x=a.getLayoutValue(\"icon-rotation-alignment\",c);2===x&&(x=0===a.getLayoutValue(\"symbol-placement\",c)?1:0);const v=0===x,T=a.getLayoutValue(\"icon-keep-upright\",c)&&v,E=h.isIconSDF,D=p===n.HITTEST,V=this._iconProgramOptions;V.id=D,V.sdf=E;const S=_.getMaterialProgram(f,d,V);f.useProgram(S),S.setUniformMatrix3fv(\"u_displayViewMat3\",0===x?g.displayViewMat3:g.displayMat3),S.setUniformMatrix3fv(\"u_displayMat3\",1===P?g.displayMat3:g.displayViewMat3),S.setUniform2fv(\"u_iconTranslation\",U),S.setUniform1f(\"u_depth\",a.z),S.setUniform1f(\"u_mapRotation\",o(g.rotation)),S.setUniform1f(\"u_keepUpright\",T?1:0),S.setUniform1f(\"u_level\",10*c),S.setUniform1i(\"u_texture\",r),S.setUniform1f(\"u_fadeDuration\",i/1e3),D&&S.setUniform4fv(\"u_id\",l);let w=-1;for(const i of s){if(!i.layerData.has(y))continue;if(i.key.level!==w&&(w=i.key.level,d.setDataUniforms(S,c,a,w,m)),h=i.layerData.get(y),0===h.iconPerPageElementsMap.size)continue;h.prepareForRendering(f),h.updateOpacityInfo();const r=h.iconVertexArrayObject;if(!e(r)){f.bindVAO(r),S.setUniformMatrix3fv(\"u_dvsMat3\",i.transforms.dvs),S.setUniform1f(\"u_time\",(performance.now()-h.lastOpacityUpdate)/1e3);for(const[e,a]of h.iconPerPageElementsMap)this._renderIconRange(t,S,a,e,i)}}}_renderIconRange(e,t,a,i,s){const{context:n,spriteMosaic:o}=e;this._spritesTextureSize[0]=o.getWidth(i)/4,this._spritesTextureSize[1]=o.getHeight(i)/4,t.setUniform2fv(\"u_mosaicSize\",this._spritesTextureSize),o.bind(n,9729,i,r),n.setStencilTestEnabled(!0),n.setStencilFunction(516,255,255),n.setStencilWriteMask(0),n.drawElements(4,a[1],5125,Uint32Array.BYTES_PER_ELEMENT*a[0]),s.triangleCount+=a[1]/3}_drawText(t,r,l,f){const{context:p,displayLevel:u,drawPhase:m,glyphMosaic:g,painter:y,pixelRatio:d,spriteMosaic:_,state:h,styleLayerUID:M}=t,U=r.textMaterial,P=y.vectorTilesMaterialManager;let x,v=!1;for(const e of l)if(e.layerData.has(M)&&(x=e.layerData.get(M),x.glyphPerPageElementsMap.size>0)){v=!0;break}if(!v)return;const T=r.getPaintProperty(\"text-opacity\");if(T&&!T.isDataDriven&&0===T.getValue(u))return;const E=r.getPaintProperty(\"text-color\"),D=!E||E.isDataDriven||E.getValue(u)[3]>0,V=r.getPaintProperty(\"text-halo-width\"),S=r.getPaintProperty(\"text-halo-color\"),w=(!V||V.isDataDriven||V.getValue(u)>0)&&(!S||S.isDataDriven||S.getValue(u)[3]>0);if(!D&&!w)return;const L=24/8;let z=r.getLayoutValue(\"text-rotation-alignment\",u);2===z&&(z=0===r.getLayoutValue(\"symbol-placement\",u)?1:0);const b=0===z,k=r.getLayoutValue(\"text-keep-upright\",u)&&b,I=m===n.HITTEST,O=.8*L/d;this._glyphTextureSize||(this._glyphTextureSize=a(g.width/4,g.height/4));const R=r.getPaintValue(\"text-translate\",u),j=r.getPaintValue(\"text-translate-anchor\",u),A=this._sdfProgramOptions;A.id=I;const F=P.getMaterialProgram(p,U,A);p.useProgram(F),F.setUniformMatrix3fv(\"u_displayViewMat3\",0===z?h.displayViewMat3:h.displayMat3),F.setUniformMatrix3fv(\"u_displayMat3\",1===j?h.displayMat3:h.displayViewMat3),F.setUniform2fv(\"u_textTranslation\",R),F.setUniform1f(\"u_depth\",r.z+c),F.setUniform2fv(\"u_mosaicSize\",this._glyphTextureSize),F.setUniform1f(\"u_mapRotation\",o(h.rotation)),F.setUniform1f(\"u_keepUpright\",k?1:0),F.setUniform1f(\"u_level\",10*u),F.setUniform1i(\"u_texture\",s),F.setUniform1f(\"u_antialiasingWidth\",O),F.setUniform1f(\"u_fadeDuration\",i/1e3),I&&F.setUniform4fv(\"u_id\",f);let W=-1;for(const a of l){if(!a.layerData.has(M))continue;if(a.key.level!==W&&(W=a.key.level,U.setDataUniforms(F,u,r,W,_)),x=a.layerData.get(M),0===x.glyphPerPageElementsMap.size)continue;x.prepareForRendering(p),x.updateOpacityInfo();const t=x.textVertexArrayObject;if(e(t))continue;p.bindVAO(t),F.setUniformMatrix3fv(\"u_dvsMat3\",a.transforms.dvs),p.setStencilTestEnabled(!0),p.setStencilFunction(516,255,255),p.setStencilWriteMask(0);const i=(performance.now()-x.lastOpacityUpdate)/1e3;F.setUniform1f(\"u_time\",i),x.glyphPerPageElementsMap.forEach(((e,t)=>{this._renderGlyphRange(p,e,t,g,F,w,D,a)}))}}_renderGlyphRange(e,t,a,i,r,n,o,l){i.bind(e,9729,a,s),n&&(r.setUniform1f(\"u_halo\",1),e.drawElements(4,t[1],5125,Uint32Array.BYTES_PER_ELEMENT*t[0]),l.triangleCount+=t[1]/3),o&&(r.setUniform1f(\"u_halo\",0),e.drawElements(4,t[1],5125,Uint32Array.BYTES_PER_ELEMENT*t[0]),l.triangleCount+=t[1]/3)}}export{p as WGLBrushVTLSymbol};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{isNone as t}from\"../../../../../core/maybe.js\";import{MIN_MAX_ZOOM_PRECISION_FACTOR as e,TEXTURE_BINDING_ATTRIBUTE_DATA_0 as i,TEXTURE_BINDING_ATTRIBUTE_DATA_1 as r,TEXTURE_BINDING_ATTRIBUTE_DATA_2 as s,TEXTURE_BINDING_ATTRIBUTE_DATA_3 as a}from\"../definitions.js\";import n from\"./WGLBrush.js\";class o extends n{prepareState({context:t},e,i){const r=i&&-1!==i.indexOf(\"id\");t.setBlendingEnabled(!r),t.setBlendFunctionSeparate(1,771,1,771),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!0),t.setStencilFunction(514,e.stencilRef,255)}draw(e,i,r){const s=this.getGeometryType();i.commit(e);const a=i.getGeometry(s);t(a)||(e.timeline.begin(this.name),e.attributeView.bindTextures(e.context),a.forEachCommand((t=>this.drawGeometry(e,i,t,r))))}_setSharedUniforms(t,n,o){const{displayLevel:m,pixelRatio:u,state:f}=n;t.setUniform1f(\"u_pixelRatio\",u),t.setUniformMatrix3fv(\"u_dvsMat3\",o.transforms.dvs,!1,!0),t.setUniformMatrix3fv(\"u_displayViewMat3\",f.displayViewMat3,!1,!0),t.setUniform1f(\"u_currentZoom\",Math.round(m*e)),t.setUniform1i(\"u_attributeTextureSize\",n.attributeView.size),t.setUniform1i(\"u_attributeData0\",i),t.setUniform1i(\"u_attributeData1\",r),t.setUniform1i(\"u_attributeData2\",s),t.setUniform1i(\"u_attributeData3\",a)}}export{o as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport e from\"../../../../../core/RandomLCG.js\";import\"../../../../webgl/BufferObject.js\";import\"../../../../webgl/FramebufferObject.js\";import\"../../../../../core/has.js\";import\"../../../../webgl/checkWebGLError.js\";import\"../../../../webgl/enums.js\";import\"../../../../../chunks/builtins.js\";import\"../../../../webgl/renderState.js\";import t from\"../../../../webgl/Texture.js\";import\"../../../../webgl/VertexArrayObject.js\";import{TEXTURE_BINDING_RENDERER_0 as o,TEXTURE_BINDING_RENDERER_1 as r,TILE_SIZE as i}from\"../definitions.js\";import{WGLGeometryType as s}from\"../enums.js\";import{createProgramDescriptor as a}from\"../Utils.js\";import n from\"./WGLGeometryBrush.js\";import{FillMaterialKey as l}from\"../materialKey/MaterialKey.js\";const u=e=>a(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:5122},{location:1,name:\"a_id\",count:4,type:5121},...e.dotDensity?[]:[{location:2,name:\"a_color\",count:4,type:5121,normalized:!0},{location:3,name:\"a_tlbr\",count:4,type:5123},{location:4,name:\"a_aux1\",count:4,type:5121},{location:5,name:\"a_aux2\",count:2,type:5123},{location:6,name:\"a_aux3\",count:4,type:5121},{location:7,name:\"a_zoomRange\",count:2,type:5123}],...e.dotDensity?[{location:2,name:\"a_inverseArea\",count:1,type:5126}]:[]]});class d extends n{constructor(){super(...arguments),this._dotTextureSize=0,this._dotTextures=null,this._dotSamplers=new Int32Array([o,r])}dispose(){this._disposeTextures()}getGeometryType(){return s.FILL}drawGeometry(e,t,o,r){const{context:s,painter:a,rendererInfo:n,requiredLevel:d}=e,m=l.load(o.materialKey),{bufferLayouts:c,attributes:f}=u(m),_=a.materialManager.getMaterialProgram(e,m,\"materials/fill\",f,r);if(s.useProgram(_),this._setSharedUniforms(_,e,t),m.textureBinding){a.textureManager.bindTextures(s,_,m);const o=1/2**(d-t.key.level)/e.pixelRatio;_.setUniform1f(\"u_zoomFactor\",o)}if(m.vvColor&&(_.setUniform1fv(\"u_vvColorValues\",n.vvColorValues),_.setUniform4fv(\"u_vvColors\",n.vvColors)),m.vvOpacity&&(_.setUniform1fv(\"u_vvOpacityValues\",n.vvOpacityValues),_.setUniform1fv(\"u_vvOpacities\",n.vvOpacities)),m.dotDensity){const o=i/n.ddDotSize,r=o*window.devicePixelRatio*o*window.devicePixelRatio,a=1/2**(d-t.key.level),l=1/a*(1/a),u=n.ddDotScale?e.state.scale/n.ddDotScale:1;_.setUniform1f(\"u_tileZoomFactor\",a),_.setUniform1f(\"u_tileDotsOverArea\",r/(i*window.devicePixelRatio*i*window.devicePixelRatio)),_.setUniformMatrix4fv(\"u_dotColors\",n.ddColors),_.setUniform4fv(\"u_isActive\",n.ddActiveDots),_.setUniform4fv(\"u_dotBackgroundColor\",n.ddBackgroundColor),_.setUniform1f(\"u_dotValue\",Math.max(1,n.ddDotValue*u*l)),this._bindDotDensityTextures(s,_,n,o)}o.draw(s,c,f)}_disposeTextures(){if(this._dotTextures){for(let e=0;et(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:5122},{location:1,name:\"a_id\",count:4,type:5121},{location:2,name:\"a_color\",count:4,type:5121,normalized:!0},{location:3,name:\"a_haloColor\",count:4,type:5121,normalized:!0},{location:4,name:\"a_texAndSize\",count:4,type:5121},{location:5,name:\"a_refSymbolAndPlacementOffset\",count:4,type:5121},{location:6,name:\"a_glyphData\",count:4,type:5121},{location:7,name:\"a_vertexOffset\",count:2,type:5122},{location:8,name:\"a_texCoords\",count:2,type:5123}]});class n extends a{dispose(){}getGeometryType(){return e.LABEL}drawGeometry(e,t,a,n){const{context:s,painter:l,state:r,rendererInfo:m}=e,u=o.load(a.materialKey),f=u.mapAligned?1:0;if(!f&&Math.abs(t.key.level-Math.round(100*e.displayLevel)/100)>=1)return;const{bufferLayouts:c,attributes:p}=i(u),v=l.materialManager.getMaterialProgram(e,u,\"materials/label\",p,n);e.context.setStencilFunction(514,0,255),s.useProgram(v),this._setSharedUniforms(v,e,t),l.textureManager.bindTextures(s,v,u);const d=1===f?r.displayViewMat3:r.displayMat3;if(u.vvSizeMinMaxValue&&v.setUniform4fv(\"u_vvSizeMinMaxValue\",m.vvSizeMinMaxValue),u.vvSizeScaleStops&&v.setUniform1f(\"u_vvSizeScaleStopsValue\",m.vvSizeScaleStopsValue),u.vvSizeFieldStops){const e=m.getSizeVVFieldStops(t.key.level);v.setUniform1fv(\"u_vvSizeFieldStopsValues\",e.values),v.setUniform1fv(\"u_vvSizeFieldStopsSizes\",e.sizes)}u.vvSizeUnitValue&&v.setUniform1f(\"u_vvSizeUnitValueWorldToPixelsRatio\",m.vvSizeUnitValueToPixelsRatio),v.setUniform1f(\"u_mapRotation\",Math.floor(r.rotation/360*254)),v.setUniform1f(\"u_mapAligned\",f),v.setUniformMatrix3fv(\"u_displayMat3\",d),v.setUniform1f(\"u_opacity\",1),v.setUniform2fv(\"u_screenSize\",e.state.size),v.setUniform1f(\"u_isHalo\",1),a.draw(s,c,p),v.setUniform1f(\"u_isHalo\",0),a.draw(s,c,p),s.setStencilTestEnabled(!0),s.setBlendingEnabled(!0)}}export{n as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{WGLGeometryType as e}from\"../enums.js\";import{createProgramDescriptor as t}from\"../Utils.js\";import a from\"./WGLGeometryBrush.js\";import{LineMaterialKey as o}from\"../materialKey/MaterialKey.js\";const i=e=>t(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:5122},{location:1,name:\"a_id\",count:4,type:5121},{location:2,name:\"a_color\",count:4,type:5121,normalized:!0},{location:3,name:\"a_offsetAndNormal\",count:4,type:5120},{location:4,name:\"a_accumulatedDistanceAndHalfWidth\",count:2,type:5123},{location:5,name:\"a_tlbr\",count:4,type:5123},{location:6,name:\"a_segmentDirection\",count:4,type:5120},{location:7,name:\"a_aux\",count:2,type:5123},{location:8,name:\"a_zoomRange\",count:2,type:5123}]});class n extends a{dispose(){}getGeometryType(){return e.LINE}drawGeometry(e,t,a,n){const{context:l,painter:r,rendererInfo:s,displayLevel:v}=e,u=o.load(a.materialKey),{bufferLayouts:m,attributes:c}=i(u),f=r.materialManager.getMaterialProgram(e,u,\"materials/line\",c,n),p=1/e.pixelRatio,S=0;l.useProgram(f),this._setSharedUniforms(f,e,t),u.textureBinding&&r.textureManager.bindTextures(l,f,u);const d=2**(v-t.key.level)/e.pixelRatio;if(f.setUniform1f(\"u_zoomFactor\",d),f.setUniform1f(\"u_blur\",S+p),f.setUniform1f(\"u_antialiasing\",p),u.vvSizeMinMaxValue&&f.setUniform4fv(\"u_vvSizeMinMaxValue\",s.vvSizeMinMaxValue),u.vvSizeScaleStops&&f.setUniform1f(\"u_vvSizeScaleStopsValue\",s.vvSizeScaleStopsValue),u.vvSizeFieldStops){const e=s.getSizeVVFieldStops(t.key.level);f.setUniform1fv(\"u_vvSizeFieldStopsValues\",e.values),f.setUniform1fv(\"u_vvSizeFieldStopsSizes\",e.sizes)}u.vvSizeUnitValue&&f.setUniform1f(\"u_vvSizeUnitValueWorldToPixelsRatio\",s.vvSizeUnitValueToPixelsRatio),u.vvColor&&(f.setUniform1fv(\"u_vvColorValues\",s.vvColorValues),f.setUniform4fv(\"u_vvColors\",s.vvColors)),u.vvOpacity&&(f.setUniform1fv(\"u_vvOpacityValues\",s.vvOpacityValues),f.setUniform1fv(\"u_vvOpacities\",s.vvOpacities)),l.setFaceCullingEnabled(!1),a.draw(l,m,c)}}export{n as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{WGLGeometryType as e}from\"../enums.js\";import{createProgramDescriptor as t}from\"../Utils.js\";import o from\"./WGLGeometryBrush.js\";import{MarkerMaterialKey as a}from\"../materialKey/MaterialKey.js\";const i=e=>t(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:5122},{location:1,name:\"a_vertexOffset\",count:2,type:5122},{location:2,name:\"a_texCoords\",count:2,type:5123},{location:3,name:\"a_bitSetAndDistRatio\",count:2,type:5123},{location:4,name:\"a_id\",count:4,type:5121},{location:5,name:\"a_color\",count:4,type:5121,normalized:!0},{location:6,name:\"a_outlineColor\",count:4,type:5121,normalized:!0},{location:7,name:\"a_sizeAndOutlineWidth\",count:4,type:5121},{location:8,name:\"a_zoomRange\",count:2,type:5123}]});class n extends o{dispose(){}getGeometryType(){return e.MARKER}drawGeometry(e,t,o,n){const{context:r,painter:s,rendererInfo:v,state:l}=e,u=a.load(o.materialKey),{bufferLayouts:m,attributes:p}=i(u),c=s.materialManager.getMaterialProgram(e,u,\"materials/icon\",p,n);r.useProgram(c),u.textureBinding&&s.textureManager.bindTextures(r,c,u,!0),this._setSharedUniforms(c,e,t);const f=u.vvRotation?l.displayViewMat3:l.displayMat3;if(c.setUniformMatrix3fv(\"u_displayMat3\",f),u.vvSizeMinMaxValue&&c.setUniform4fv(\"u_vvSizeMinMaxValue\",v.vvSizeMinMaxValue),u.vvSizeScaleStops&&c.setUniform1f(\"u_vvSizeScaleStopsValue\",v.vvSizeScaleStopsValue),u.vvSizeFieldStops){const e=v.getSizeVVFieldStops(t.key.level);c.setUniform1fv(\"u_vvSizeFieldStopsValues\",e.values),c.setUniform1fv(\"u_vvSizeFieldStopsSizes\",e.sizes)}u.vvSizeUnitValue&&c.setUniform1f(\"u_vvSizeUnitValueWorldToPixelsRatio\",v.vvSizeUnitValueToPixelsRatio),u.vvColor&&(c.setUniform1fv(\"u_vvColorValues\",v.vvColorValues),c.setUniform4fv(\"u_vvColors\",v.vvColors)),u.vvOpacity&&(c.setUniform1fv(\"u_vvOpacityValues\",v.vvOpacityValues),c.setUniform1fv(\"u_vvOpacities\",v.vvOpacities)),u.vvRotation&&c.setUniform1f(\"u_vvRotationType\",\"geographic\"===v.vvMaterialParameters.vvRotationType?0:1),o.draw(r,m,p)}}export{n as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{WGLGeometryType as e}from\"../enums.js\";import{createProgramDescriptor as t}from\"../Utils.js\";import a from\"./WGLGeometryBrush.js\";import{TextMaterialKey as o}from\"../materialKey/MaterialKey.js\";const i=e=>t(e.data,{geometry:[{location:0,name:\"a_pos\",count:2,type:5122},{location:1,name:\"a_id\",count:4,type:5121},{location:2,name:\"a_color\",count:4,type:5121,normalized:!0},{location:3,name:\"a_haloColor\",count:4,type:5121,normalized:!0},{location:4,name:\"a_texFontSize\",count:4,type:5121},{location:5,name:\"a_aux\",count:4,type:5120},{location:6,name:\"a_zoomRange\",count:2,type:5123},{location:7,name:\"a_vertexOffset\",count:2,type:5122},{location:8,name:\"a_texCoords\",count:2,type:5123}]});class r extends a{dispose(){}getGeometryType(){return e.TEXT}drawGeometry(e,t,a,r){const{context:s,painter:n,rendererInfo:v,state:l}=e,u=o.load(a.materialKey),{bufferLayouts:m,attributes:f}=i(u),p=n.materialManager.getMaterialProgram(e,u,\"materials/text\",f,r);if(s.useProgram(p),this._setSharedUniforms(p,e,t),n.textureManager.bindTextures(s,p,u),p.setUniformMatrix3fv(\"u_displayMat3\",l.displayMat3),p.setUniformMatrix3fv(\"u_displayViewMat3\",l.displayViewMat3),u.vvSizeMinMaxValue&&p.setUniform4fv(\"u_vvSizeMinMaxValue\",v.vvSizeMinMaxValue),u.vvSizeScaleStops&&p.setUniform1f(\"u_vvSizeScaleStopsValue\",v.vvSizeScaleStopsValue),u.vvSizeFieldStops){const e=v.getSizeVVFieldStops(t.key.level);p.setUniform1fv(\"u_vvSizeFieldStopsValues\",e.values),p.setUniform1fv(\"u_vvSizeFieldStopsSizes\",e.sizes)}u.vvSizeUnitValue&&p.setUniform1f(\"u_vvSizeUnitValueWorldToPixelsRatio\",v.vvSizeUnitValueToPixelsRatio),u.vvColor&&(p.setUniform1fv(\"u_vvColorValues\",v.vvColorValues),p.setUniform4fv(\"u_vvColors\",v.vvColors)),u.vvOpacity&&(p.setUniform1fv(\"u_vvOpacityValues\",v.vvOpacityValues),p.setUniform1fv(\"u_vvOpacities\",v.vvOpacities)),u.vvRotation&&p.setUniform1f(\"u_vvRotationType\",\"geographic\"===v.vvMaterialParameters.vvRotationType?0:1),p.setUniform1f(\"u_isHalo\",1),a.draw(s,m,f),p.setUniform1f(\"u_isHalo\",0),a.draw(s,m,f)}}export{r as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{hasSource as t}from\"../../../RasterBitmap.js\";import e from\"../../VertexStream.js\";import r from\"../WGLBrush.js\";import{setTextures as s,getCommonUniforms as a,setUniforms as i,getColormapUniforms as o,getStretchUniforms as n,getShadedReliefUniforms as h,getUniformLocationInfos as l,getBasicGridUniforms as c}from\"../../../../../webgl/rasterUtils.js\";class d extends r{constructor(){super(...arguments),this._desc={lut:{vsPath:\"raster/lut\",fsPath:\"raster/lut\",attributes:new Map([[\"a_position\",0],[\"a_texcoord\",1]])},stretch:{vsPath:\"raster/stretch\",fsPath:\"raster/stretch\",attributes:new Map([[\"a_position\",0],[\"a_texcoord\",1]])},hillshade:{vsPath:\"raster/hillshade\",fsPath:\"raster/hillshade\",attributes:new Map([[\"a_position\",0],[\"a_texcoord\",1]])}},this._rendererUniformInfos=new Map}dispose(){this._quad&&this._quad.dispose()}prepareState({context:t},e){t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(1,771,1,771),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!0),t.setStencilFunction(514,e.stencilRef,255)}draw(e,r){var s;if(!t(r)||r.suspended)return;e.timeline.begin(this.name);const a=!(null!=(s=e.context.capabilities.textureFloat)&&s.textureFloatLinear);r.updateTexture(e);const i=this.getShaderVariations(r,a),o=e.painter.materialManager.getProgram(e,this._desc[r.symbolizerParameters.type],i);this.drawWithProgram(e.context,o,r),e.timeline.end(this.name)}drawWithProgram(t,r,l,d=1,p=[0,0],u=!1){this._quad||(this._quad=new e(t,[0,0,1,0,0,1,1,1]));const{symbolizerParameters:m,transformGrid:f,width:g,height:_,opacity:b}=l,x=m.type;t.useProgram(r);const P=this.getShaderVariations(l),w=this.getUniformInfos(x,t,r,P),{names:S,textures:y}=l.getTextures();s(t,r,S,y);const M=c(d,p),U=a(f,[g,_],[l.source.width,l.source.height],b,u);if(i(r,w,{u_coordScale:l.coordScale,u_dvsMat3:l.transforms.dvs,...M,...U}),m.colormap){const{colormap:t,colormapOffset:e}=m,s=o(t,e);i(r,w,s)}if(\"stretch\"===m.type){const t=n(m);i(r,w,t)}else if(\"hillshade\"===m.type){const t=h(m);i(r,w,t)}this._quad.draw()}getUniformInfos(t,e,r,s){const a=s.length>0?t+\"-\"+s.join(\"-\"):t;if(this._rendererUniformInfos.has(a))return this._rendererUniformInfos.get(a);const i=l(e,r);return this._rendererUniformInfos.set(a,i),i}getShaderVariations(t,e=!1){const r=[],{interpolation:s}=t,{type:a,colormap:i}=t.symbolizerParameters;return\"cubic\"===s?r.push(\"bicubic\"):\"bilinear\"===s&&\"stretch\"===a&&null!=i?(r.push(\"bilinear\"),r.push(\"nnedge\")):e&&\"bilinear\"===s&&r.push(\"bilinear\"),t.isRendereredSource?r.push(\"noop\"):i&&r.push(\"applyColormap\"),t.transformGrid&&r.push(\"applyProjection\"),r}}export{d as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/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/WGLBrushInfo.js\";import l from\"./webgl/brushes/WGLBrushStencil.js\";import{WGLBrushVTLBackground as o}from\"./webgl/brushes/WGLBrushVTLBackground.js\";import{WGLBrushVTLCircle as t}from\"./webgl/brushes/WGLBrushVTLCircle.js\";import{WGLBrushVTLFill as m}from\"./webgl/brushes/WGLBrushVTLFill.js\";import{WGLBrushVTLLine as b}from\"./webgl/brushes/WGLBrushVTLLine.js\";import{WGLBrushVTLSymbol as i}from\"./webgl/brushes/WGLBrushVTLSymbol.js\";import u from\"./webgl/brushes/WGLGeometryBrushFill.js\";import h from\"./webgl/brushes/WGLGeometryBrushLabel.js\";import p from\"./webgl/brushes/WGLGeometryBrushLine.js\";import L from\"./webgl/brushes/WGLGeometryBrushMarker.js\";import B from\"./webgl/brushes/WGLGeometryBrushText.js\";import f from\"./webgl/brushes/raster/BrushRasterBitmap.js\";import g from\"./webgl/brushes/raster/BrushVectorField.js\";const G={marker:L,line:p,fill:u,text:B,label:h,clip:s,stencil:l,bitmap:r,raster:f,rasterVF:g,tileInfo:e,vtlBackground:o,vtlFill:m,vtlLine:b,vtlCircle:t,vtlSymbol:i},j={vtlBackground:o,vtlFill:m,vtlLine:b,vtlCircle:t,vtlSymbol:i};export{G as brushes,j as vtlBrushes};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nclass e{constructor(e){this.readFile=e}resolveIncludes(e){return this.resolve(e)}resolve(e,t=new Map){if(t.has(e))return t.get(e);const r=this.read(e);if(!r)throw new Error(`cannot find shader file ${e}`);const s=/^[^\\S\\n]*#include\\s+<(\\S+)>[^\\S\\n]?/gm;let n=s.exec(r);const l=[];for(;null!=n;)l.push({path:n[1],start:n.index,length:n[0].length}),n=s.exec(r);let a=0,h=\"\";return l.forEach((e=>{h+=r.slice(a,e.start),h+=t.has(e.path)?\"\":this.resolve(e.path,t),a=e.start+e.length})),h+=r.slice(a),t.set(e,h),h}read(e){return this.readFile(e)}}export{e as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/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.21/esri/copyright.txt for details.\n*/\nimport{f as t}from\"../../../../../chunks/vec4f32.js\";import e from\"../../../../webgl/BufferObject.js\";import\"../../../../webgl/FramebufferObject.js\";import\"../../../../../core/has.js\";import\"../../../../webgl/checkWebGLError.js\";import\"../../../../webgl/enums.js\";import\"../../../../../chunks/builtins.js\";import{createProgram as r}from\"../../../../webgl/programUtils.js\";import\"../../../../webgl/renderState.js\";import i from\"../../../../webgl/Texture.js\";import s from\"../../../../webgl/VertexArrayObject.js\";import o from\"./WGLBrush.js\";import{background as n}from\"../shaders/BackgroundPrograms.js\";import{tileInfo as a}from\"../shaders/TileInfoPrograms.js\";const l=300,u=32;class m extends o{constructor(){super(...arguments),this._color=t(1,0,0,1)}dispose(){this._outlineProgram&&(this._outlineProgram.dispose(),this._outlineProgram=null),this._tileInfoProgram&&(this._tileInfoProgram.dispose(),this._tileInfoProgram=null),this._outlineVertexArrayObject&&(this._outlineVertexArrayObject.dispose(),this._outlineVertexArrayObject=null),this._tileInfoVertexArrayObject&&(this._tileInfoVertexArrayObject.dispose(),this._tileInfoVertexArrayObject=null),this._canvas=null}prepareState({context:t}){t.setBlendingEnabled(!0),t.setBlendFunctionSeparate(1,771,1,771),t.setColorMask(!0,!0,!0,!0),t.setStencilWriteMask(0),t.setStencilTestEnabled(!1)}draw(t,e){const{context:r}=t;if(!e.isReady)return;this._loadWGLResources(r),r.bindVAO(this._outlineVertexArrayObject),r.useProgram(this._outlineProgram),this._outlineProgram.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),this._outlineProgram.setUniform2f(\"u_coord_range\",e.rangeX,e.rangeY),this._outlineProgram.setUniform1f(\"u_depth\",0),this._outlineProgram.setUniform4fv(\"u_color\",this._color),r.drawArrays(3,0,4),r.bindVAO();const i=this._getTexture(r,e);i&&(r.bindVAO(this._tileInfoVertexArrayObject),r.useProgram(this._tileInfoProgram),r.bindTexture(i,0),this._tileInfoProgram.setUniformMatrix3fv(\"u_dvsMat3\",e.transforms.dvs),this._tileInfoProgram.setUniform1f(\"u_depth\",0),this._tileInfoProgram.setUniform2f(\"u_coord_ratio\",e.rangeX/e.width,e.rangeY/e.height),this._tileInfoProgram.setUniform2f(\"u_delta\",8,8),this._tileInfoProgram.setUniform2f(\"u_dimensions\",i.descriptor.width,i.descriptor.height),r.drawArrays(5,0,4),r.bindVAO())}_loadWGLResources(t){if(this._outlineProgram&&this._tileInfoProgram)return;const i=r(t,n),o=r(t,a),l={geometry:[{name:\"a_pos\",count:2,type:5120,offset:0,stride:2,normalized:!1,divisor:0}]},u=new Int8Array([0,0,1,0,1,1,0,1]),m=e.createVertex(t,35044,u),f=new s(t,n.attributes,l,{geometry:m}),c=new Int8Array([0,0,1,0,0,1,1,1]),g=e.createVertex(t,35044,c),h=new s(t,a.attributes,l,{geometry:g});this._outlineProgram=i,this._tileInfoProgram=o,this._outlineVertexArrayObject=f,this._tileInfoVertexArrayObject=h}_getTexture(t,e){if(e.texture&&e.triangleCountReportedInDebug===e.triangleCount)return e.texture;e.triangleCountReportedInDebug=e.triangleCount,this._canvas||(this._canvas=document.createElement(\"canvas\"),this._canvas.setAttribute(\"id\",\"canvas2d\"),this._canvas.setAttribute(\"width\",`${l}`),this._canvas.setAttribute(\"height\",`${u}`),this._canvas.setAttribute(\"style\",\"display:none\"));const r=e.triangleCount;let s=e.key.id;e.triangleCount>0&&(s+=`, ${r}`);const o=this._canvas,n=o.getContext(\"2d\");return n.font=\"24px sans-serif\",n.textAlign=\"left\",n.textBaseline=\"top\",n.clearRect(0,0,l,u),r>1e5?(n.fillStyle=\"red\",n.fillRect(0,0,l,u),n.fillStyle=\"black\"):(n.clearRect(0,0,l,u),n.fillStyle=\"blue\"),n.fillText(s,0,0),e.texture=new i(t,{target:3553,pixelFormat:6408,dataType:5121,samplingMode:9728,wrapMode:33071},o),e.texture}}export{m as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport e from\"../../../webgl/BufferObject.js\";import\"../../../webgl/FramebufferObject.js\";import\"../../../../core/has.js\";import\"../../../webgl/checkWebGLError.js\";import\"../../../webgl/enums.js\";import\"../../../../chunks/builtins.js\";import\"../../../webgl/renderState.js\";import\"../../../webgl/Texture.js\";import t from\"../../../webgl/VertexArrayObject.js\";class r{constructor(r,s){this.rctx=r,this._vertexBuffer=e.createVertex(r,35044,new Uint16Array(s)),this._vao=new t(r,new Map([[\"a_position\",0]]),{geometry:[{name:\"a_position\",count:2,type:5122,offset:0,stride:4,normalized:!1}]},{geometry:this._vertexBuffer}),this._count=s.length/2}bind(){this._vao.bind()}unbind(){this._vao.unbind()}dispose(){this._vao.dispose(!1),this._vertexBuffer.dispose()}draw(){this.rctx.bindVAO(this._vao),this.rctx.drawArrays(5,0,this._count)}}export{r as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nvar e={background:{\"background.frag\":\"uniform lowp vec4 u_color;\\nvoid main() {\\ngl_FragColor = u_color;\\n}\",\"background.vert\":\"attribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform mediump vec2 u_coord_range;\\nuniform mediump float u_depth;\\nvoid main() {\\nvec3 v_pos = u_dvsMat3 * vec3(u_coord_range * a_pos, 1.0);\\ngl_Position = vec4(v_pos.xy, 0.0, 1.0);\\n}\"},bitBlit:{\"bitBlit.frag\":\"uniform lowp sampler2D u_tex;\\nuniform lowp float u_opacity;\\nvarying mediump vec2 v_uv;\\nvoid main() {\\nlowp vec4 color = texture2D(u_tex, v_uv);\\ngl_FragColor = color * u_opacity;\\n}\",\"bitBlit.vert\":\"attribute vec2 a_pos;\\nattribute vec2 a_tex;\\nvarying mediump vec2 v_uv;\\nvoid main(void) {\\ngl_Position = vec4(a_pos, 0.0, 1.0);\\nv_uv = a_tex;\\n}\"},blend:{\"blend.frag\":\"precision mediump float;\\nuniform sampler2D u_layerTexture;\\nuniform lowp float u_opacity;\\nuniform lowp float u_inFadeOpacity;\\n#ifndef NORMAL\\nuniform sampler2D u_backbufferTexture;\\n#endif\\nvarying mediump vec2 v_uv;\\nfloat rgb2v(in vec3 c) {\\nreturn max(c.x, max(c.y, c.z));\\n}\\nvec3 rgb2hsv(in vec3 c) {\\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\nvec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\\nvec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\\nfloat d = q.x - min(q.w, q.y);\\nfloat e = 1.0e-10;\\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\\n}\\nvec3 hsv2rgb(in vec3 c) {\\nvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\nvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\nreturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n}\\nvec3 tint(in vec3 Cb, in vec3 Cs) {\\nfloat vIn = rgb2v(Cb);\\nvec3 hsvTint = rgb2hsv(Cs);\\nvec3 hsvOut = vec3(hsvTint.x, hsvTint.y, vIn * hsvTint.z);\\nreturn hsv2rgb(hsvOut);\\n}\\nfloat overlay(in float Cb, in float Cs) {\\nreturn (1.0 - step(0.5, Cs)) * (1.0 - 2.0 * (1.0 - Cs ) * (1.0 - Cb)) + step(0.5, Cs) * (2.0 * Cs * Cb);\\n}\\nfloat colorDodge(in float Cb, in float Cs) {\\nreturn (Cb == 0.0) ? 0.0 : (Cs == 1.0) ? 1.0 : min(1.0, Cb / (1.0 - Cs));\\n}\\nfloat colorBurn(in float Cb, in float Cs) {\\nreturn (Cb == 1.0) ? 1.0 : (Cs == 0.0) ? 0.0 : 1.0 - min(1.0, (1.0 - Cb) / Cs);\\n}\\nfloat hardLight(in float Cb, in float Cs) {\\nreturn (1.0 - step(0.5, Cs)) * (2.0 * Cs * Cb) + step(0.5, Cs) * (1.0 - 2.0 * (1.0 - Cs) * (1.0 - Cb));\\n}\\nfloat reflectBlend(in float Cb, in float Cs) {\\nreturn (Cs == 1.0) ? Cs : min(Cb * Cb / (1.0 - Cs), 1.0);\\n}\\nfloat softLight(in float Cb, in float Cs) {\\nif (Cs <= 0.5) {\\nreturn Cb - (1.0 - 2.0 * Cs) * Cb * (1.0 - Cb);\\n}\\nif (Cb <= 0.25) {\\nreturn Cb + (2.0 * Cs - 1.0) * Cb * ((16.0 * Cb - 12.0) * Cb + 3.0);\\n}\\nreturn Cb + (2.0 * Cs - 1.0) * (sqrt(Cb) - Cb);\\n}\\nfloat vividLight(in float Cb, in float Cs) {\\nreturn (1.0 - step(0.5, Cs)) * colorBurn(Cb, 2.0 * Cs) + step(0.5, Cs) * colorDodge(Cb, (2.0 * (Cs - 0.5)));\\n}\\nfloat minv3(in vec3 c) {\\nreturn min(min(c.r, c.g), c.b);\\n}\\nfloat maxv3(in vec3 c) {\\nreturn max(max(c.r, c.g), c.b);\\n}\\nfloat lumv3(in vec3 c) {\\nreturn dot(c, vec3(0.3, 0.59, 0.11));\\n}\\nfloat satv3(vec3 c) {\\nreturn maxv3(c) - minv3(c);\\n}\\nvec3 clipColor(vec3 color) {\\nfloat lum = lumv3(color);\\nfloat mincol = minv3(color);\\nfloat maxcol = maxv3(color);\\nif (mincol < 0.0) {\\ncolor = lum + ((color - lum) * lum) / (lum - mincol);\\n}\\nif (maxcol > 1.0) {\\ncolor = lum + ((color - lum) * (1.0 - lum)) / (maxcol - lum);\\n}\\nreturn color;\\n}\\nvec3 setLum(vec3 cbase, vec3 clum) {\\nfloat lbase = lumv3(cbase);\\nfloat llum = lumv3(clum);\\nfloat ldiff = llum - lbase;\\nvec3 color = cbase + vec3(ldiff);\\nreturn clipColor(color);\\n}\\nvec3 setLumSat(vec3 cbase, vec3 csat, vec3 clum)\\n{\\nfloat minbase = minv3(cbase);\\nfloat sbase = satv3(cbase);\\nfloat ssat = satv3(csat);\\nvec3 color;\\nif (sbase > 0.0) {\\ncolor = (cbase - minbase) * ssat / sbase;\\n} else {\\ncolor = vec3(0.0);\\n}\\nreturn setLum(color, clum);\\n}\\nvoid main() {\\nvec4 src = texture2D(u_layerTexture, v_uv);\\n#ifdef NORMAL\\ngl_FragColor = src * u_opacity;\\n#else\\nvec4 dst = texture2D(u_backbufferTexture, v_uv);\\nvec3 Cs = src.a == 0.0 ? src.rgb : vec3(src.rgb / src.a);\\nvec3 Cb = dst.a == 0.0 ? dst.rgb : vec3(dst.rgb / dst.a);\\nfloat as = u_opacity * src.a;\\nfloat ab = dst.a;\\n#ifdef DESTINATION_OVER\\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb, as + ab - as * ab);\\n#endif\\n#ifdef SOURCE_IN\\nvec4 color = vec4(as * Cs * ab, as * ab);\\nvec4 fadeColor = (1.0 - u_opacity) * u_inFadeOpacity * vec4(ab * Cb, ab);\\ngl_FragColor = color + fadeColor;\\n#endif\\n#ifdef DESTINATION_IN\\nvec4 color = vec4(ab * Cb * as, ab * as);\\nvec4 fadeColor = (1.0 - u_opacity) * u_inFadeOpacity * vec4(ab * Cb, ab);\\ngl_FragColor = color + fadeColor;\\n#endif\\n#ifdef SOURCE_OUT\\ngl_FragColor = vec4(as * Cs * (1.0 - ab), as * (1.0 - ab));\\n#endif\\n#ifdef DESTINATION_OUT\\ngl_FragColor = vec4(ab * Cb * (1.0 - as), ab * (1.0 - as));\\n#endif\\n#ifdef SOURCE_ATOP\\ngl_FragColor = vec4(as * Cs * ab + ab * Cb * (1.0 - as), ab);\\n#endif\\n#ifdef DESTINATION_ATOP\\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb * as, as);\\n#endif\\n#ifdef XOR\\ngl_FragColor = vec4(as * Cs * (1.0 - ab) + ab * Cb * (1.0 - as),\\nas * (1.0 - ab) + ab * (1.0 - as));\\n#endif\\n#ifdef MULTIPLY\\ngl_FragColor = vec4(as * Cs * ab * Cb + (1.0 - ab) * as * Cs + (1.0 - as) * ab * Cb,\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef SCREEN\\ngl_FragColor = vec4((Cs + Cb - Cs * Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef OVERLAY\\nvec3 f = vec3(overlay(Cb.r, Cs.r), overlay(Cb.g, Cs.g), overlay(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef DARKEN\\ngl_FragColor = vec4(min(Cs, Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef LIGHTER\\ngl_FragColor = vec4(as * Cs + ab * Cb, as + ab);\\n#endif\\n#ifdef LIGHTEN\\ngl_FragColor = vec4(max(Cs, Cb) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef COLOR_DODGE\\nvec3 f = vec3(colorDodge(Cb.r, Cs.r), colorDodge(Cb.g, Cs.g), colorDodge(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef COLOR_BURN\\nvec3 f = vec3(colorBurn(Cb.r, Cs.r), colorBurn(Cb.g, Cs.g), colorBurn(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef HARD_LIGHT\\nvec3 f = vec3(hardLight(Cb.r, Cs.r), hardLight(Cb.g, Cs.g), hardLight(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef SOFT_LIGHT\\nvec3 f = vec3(softLight(Cb.r, Cs.r), softLight(Cb.g, Cs.g), softLight(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef DIFFERENCE\\ngl_FragColor = vec4(abs(Cb - Cs) * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef EXCLUSION\\nvec3 f = Cs + Cb - 2.0 * Cs * Cb;\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef INVERT\\ngl_FragColor = vec4((1.0 - Cb) * as * ab + Cb * ab * (1.0 - as), ab);\\n#endif\\n#ifdef VIVID_LIGHT\\nvec3 f = vec3(vividLight(Cb.r, Cs.r),\\nvividLight(Cb.g, Cs.g),\\nvividLight(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef HUE\\nvec3 f = setLumSat(Cs,Cb,Cb);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef SATURATION\\nvec3 f = setLumSat(Cb,Cs,Cb);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef COLOR\\nvec3 f = setLum(Cs,Cb);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef LUMINOSITY\\nvec3 f = setLum(Cb,Cs);\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef PLUS\\ngl_FragColor = clamp(vec4(src.r + Cb.r, src.g + Cb.g, src.b + Cb.b, as + ab), 0.0, 1.0);\\n#endif\\n#ifdef MINUS\\ngl_FragColor = vec4(clamp(vec3(Cb.r - src.r, Cb.g - src.g, Cb.b - src.b), 0.0, 1.0), ab * as);\\n#endif\\n#ifdef AVERAGE\\nvec3 f = (Cb + Cs) / 2.0;\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#ifdef REFLECT\\nvec3 f = vec3(reflectBlend(Cb.r, Cs.r),\\nreflectBlend(Cb.g, Cs.g),\\nreflectBlend(Cb.b, Cs.b));\\ngl_FragColor = vec4(f * as * ab + Cs * as * (1.0 - ab) + Cb * ab *(1.0 - as),\\nas + ab * (1.0 - as));\\n#endif\\n#endif\\n}\",\"blend.vert\":\"attribute vec2 a_position;\\nvarying mediump vec2 v_uv;\\nvoid main(void) {\\ngl_Position = vec4(a_position , 0.0, 1.0);\\nv_uv = (a_position + 1.0) / 2.0;\\n}\"},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}\"}},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 int u_attributeTextureSize;\\nhighp vec2 getAttributeDataCoords(in highp vec4 id) {\\nhighp vec4 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 + int(texel.a) * 256 * 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 vec4 getAttributeData0(in highp vec4 id) {\\nvec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData0, coords);\\n}\\nhighp vec4 getAttributeData1(in highp vec4 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData1, coords);\\n}\\nhighp vec4 getAttributeData2(in highp vec4 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData2, coords);\\n}\\nhighp vec4 getAttributeData3(in highp vec4 id) {\\nhighp vec2 coords = getAttributeDataCoords(id);\\nreturn texture2D(u_attributeData3, 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}\",\"constants.glsl\":\"const float C_DEG_TO_RAD = 3.14159265359 / 180.0;\\nconst float C_256_TO_RAD = 3.14159265359 / 128.0;\\nconst float SIGNED_BYTE_TO_UNSIGNED = 128.0;\\nconst float POSITION_PRECISION = 1.0 / 8.0;\\nconst float FILL_POSITION_PRECISION = 1.0 / 1.0;\\nconst float SOFT_EDGE_RATIO = 1.0;\\nconst float THIN_LINE_WIDTH_FACTOR = 1.1;\\nconst float THIN_LINE_HALF_WIDTH = 1.0;\\nconst float EXTRUDE_SCALE_PLACEMENT_PADDING = 1.0 / 4.0;\\nconst float OFFSET_PRECISION = 1.0 / 8.0;\\nconst float OUTLINE_SCALE = 1.0 / 5.0;\\nconst float SDF_FONT_SIZE = 24.0;\\nconst float MAX_SDF_DISTANCE = 8.0;\\nconst float PLACEMENT_PADDING = 8.0;\\nconst float EPSILON = 0.0000001;\\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;\",fill:{\"common.glsl\":\"#ifdef PATTERN\\nuniform mediump vec2 u_mosaicSize;\\n#endif\\n#ifdef 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 vec3 v_pos;\\nvarying lowp float v_opacity;\\nvarying lowp vec4 v_color;\\nvarying highp vec4 v_id;\\nvarying highp float v_flags;\\n#ifdef PATTERN\\nvarying mediump vec4 v_tlbr;\\nvarying mediump vec2 v_tileTextureCoord;\\n#endif\\n#ifdef 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#ifdef DOT_DENSITY\\nuniform mediump mat4 u_dotColors[ 2 ];\\nuniform sampler2D u_dotTextures[ 2 ];\\nuniform vec4 u_dotBackgroundColor;\\n#endif\\nvoid main() {\\n#ifdef ID\\ngl_FragColor = v_id;\\n#elif defined(PATTERN)\\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);\\ngl_FragColor = v_opacity * v_color * color;\\n#elif defined(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\\ngl_FragColor = preEffectColor;\\n#else\\ngl_FragColor = v_opacity * v_color;\\n#endif\\n#ifdef HIGHLIGHT\\ngl_FragColor.a = 1.0;\\n#endif\\n}\",\"fill.vert\":\"precision highp float;\\n#ifdef DOT_DENSITY\\nattribute float a_inverseArea;\\nvec4 a_color = vec4(0.0, 0.0, 0.0, 1.0);\\nvec4 a_aux3 = vec4(0.0);\\nvec2 a_zoomRange = vec2(0.0, 10000.0);\\n#else\\nattribute vec4 a_color;\\nattribute vec4 a_tlbr;\\nattribute vec4 a_aux1;\\nattribute vec2 a_aux2;\\nattribute vec4 a_aux3;\\nattribute vec2 a_zoomRange;\\n#endif\\n#include \\n#include \\n#ifdef DOT_DENSITY\\nvec4 dotThreshold(vec4 featureAttrOverFeatureArea, float dotValue, float tileDotsOverArea) {\\nreturn featureAttrOverFeatureArea * (1.0 / dotValue) * (1.0 / tileDotsOverArea);\\n}\\n#endif\\nvoid main()\\n{\\nINIT;\\nfloat a_bitSet = a_aux3.a;\\nv_color = getColor(a_color, a_bitSet, 0);\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\nv_pos = u_dvsMat3 * vec3(a_pos * FILL_POSITION_PRECISION, 1.);\\nv_flags = getFilterFlags();\\n#ifdef PATTERN\\nvec2 aux2 = (1.0 / SIGNED_BYTE_TO_UNSIGNED) * a_aux2;\\nfloat width = u_pixelRatio * u_zoomFactor * a_aux1.x * aux2.x;\\nfloat height = u_pixelRatio * u_zoomFactor * a_aux1.y * aux2.y;\\nfloat angle = C_256_TO_RAD * a_aux3.z;\\nfloat sinA = sin(angle);\\nfloat cosA = cos(angle);\\nmat3 patternMatrix = mat3(cosA / width, sinA / height, 0,\\n-sinA / width, cosA / height, 0,\\n0, 0, 1);\\nvec2 symbolOffset = (a_aux1.zw - SIGNED_BYTE_TO_UNSIGNED) / vec2(width, height);\\nv_tileTextureCoord = (patternMatrix * vec3(a_pos * FILL_POSITION_PRECISION, 1.0)).xy - symbolOffset;\\nv_tlbr = a_tlbr / u_mosaicSize.xyxy;\\n#elif defined(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\\ngl_Position = vec4(clip(v_color, v_pos, v_flags, a_zoomRange), 1.0);\\n}\"},icon:{\"common.glsl\":\"uniform lowp vec2 u_mosaicSize;\\nvarying lowp vec4 v_color;\\nvarying highp vec4 v_id;\\nvarying highp vec4 v_sizeTex;\\nvarying mediump vec3 v_pos;\\nvarying highp float v_filters;\\nvarying lowp float v_opacity;\\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\",\"icon.frag\":\"precision mediump float;\\n#include \\n#include \\n#include \\n#include \\n#include \\nuniform lowp sampler2D u_texture;\\nvoid main()\\n{\\nvec2 v_size = v_sizeTex.xy;\\nvec2 v_tex = v_sizeTex.zw;\\n#ifdef SDF\\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);\\ngl_FragColor = v_opacity * ((1.0 - outlinePixelColor.a) * fillPixelColor + outlinePixelColor);\\n}\\nelse {\\ngl_FragColor = v_opacity * fillPixelColor;\\n}\\n#else\\nlowp vec4 texColor = texture2D(u_texture, v_tex);\\ngl_FragColor = v_opacity * texColor * v_color;\\n#endif\\n#ifdef HIGHLIGHT\\ngl_FragColor.a = step(1.0 / 255.0, gl_FragColor.a);\\n#endif\\n#ifdef ID\\nif (gl_FragColor.a < 1.0 / 255.0) {\\ndiscard;\\n}\\ngl_FragColor = v_id;\\n#endif\\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 \\nvec2 getMarkerSize(inout vec2 offset, inout vec2 baseSize, inout float outlineSize, in float referenceSize, in float bitSet) {\\n#ifdef VV_SIZE\\nfloat r = getSize(baseSize.y) / referenceSize;\\nbaseSize.xy *= r;\\noffset.xy *= r;\\nfloat scaleSymbolProportionally = getBit(bitSet, 3);\\noutlineSize *= scaleSymbolProportionally * (r - 1.0) + 1.0;\\n#endif\\nreturn baseSize;\\n}\\nvec3 getOffset(in vec2 in_offset, float a_bitSet) {\\nfloat isMapAligned = getBit(a_bitSet, 0);\\nvec3 offset = getRotation() * vec3(in_offset, 0.0);\\nreturn getMatrix(isMapAligned) * offset;\\n}\\nvoid main()\\n{\\nINIT;\\nvec2 a_size = a_sizeAndOutlineWidth.xy * a_sizeAndOutlineWidth.xy / 128.0;\\nvec2 a_offset = a_vertexOffset / 16.0;\\nfloat a_outlineSize = a_sizeAndOutlineWidth.z * a_sizeAndOutlineWidth.z / 128.0;\\nfloat a_bitSet = a_bitSetAndDistRatio.x;\\nvec2 v_size = getMarkerSize(a_offset, a_size, a_outlineSize, a_sizeAndOutlineWidth.w * a_sizeAndOutlineWidth.w / 128.0, a_bitSet);\\nvec2 v_tex = a_texCoords / u_mosaicSize;\\nv_color = getColor(a_color, a_bitSet, 1);\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\nv_filters = getFilterFlags();\\nv_pos = u_dvsMat3 * vec3(a_pos * POSITION_PRECISION, 1.0) + getOffset(a_offset, a_bitSet);\\nv_sizeTex = vec4(v_size.xy, v_tex.xy);\\n#ifdef SDF\\nv_isThin = getBit(a_bitSet, 2);\\n#ifdef VV_COLOR\\nv_overridingOutlineColor = v_isThin;\\n#else\\nv_overridingOutlineColor = 0.0;\\n#endif\\nv_outlineWidth = min(a_outlineSize, max(max(v_size.x, v_size.y) - 0.99, 0.0));\\nv_outlineColor = a_outlineColor;\\nv_distRatio = a_bitSetAndDistRatio.y / 126.0;\\n#endif\\ngl_Position = vec4(clip(v_color, v_pos, v_filters, a_zoomRange), 1.0);\\n}\"},label:{\"common.glsl\":\"uniform mediump float u_zoomLevel;\\nuniform mediump float u_mapRotation;\\nuniform mediump float u_mapAligned;\\nuniform mediump vec2 u_mosaicSize;\\nvarying mediump float v_antialiasingWidth;\\nvarying mediump float v_edgeDistanceOffset;\\nvarying mediump vec2 v_tex;\\nvarying mediump vec4 v_color;\\nvarying lowp vec4 v_animation;\",\"label.frag\":\"#include \",\"label.vert\":\"precision highp float;\\n#include \\n#include \\nattribute vec4 a_color;\\nattribute vec4 a_haloColor;\\nattribute vec4 a_texAndSize;\\nattribute vec4 a_refSymbolAndPlacementOffset;\\nattribute vec4 a_glyphData;\\nattribute vec2 a_vertexOffset;\\nattribute vec2 a_texCoords;\\nuniform float u_isHalo;\\nuniform float u_mapRotation;\\nuniform float u_mapAligned;\\nfloat getZ(in float minZoom, in float maxZoom, in float angle) {\\nfloat glyphAngle = angle * 360.0 / 254.0;\\nfloat mapAngle = u_mapRotation * 360.0 / 254.0;\\nfloat diffAngle = min(360.0 - abs(mapAngle - glyphAngle), abs(mapAngle - glyphAngle));\\nfloat z = 0.0;\\nz += u_mapAligned * (2.0 * (1.0 - step(minZoom, u_currentZoom)));\\nz += u_mapAligned * 2.0 * step(90.0, diffAngle);\\nz += 2.0 * (1.0 - step(u_currentZoom, maxZoom));\\nreturn z;\\n}\\nvoid main()\\n{\\nINIT;\\nfloat groupMinZoom = getMinZoom();\\nfloat glyphMinZoom = a_glyphData.x;\\nfloat glyphMaxZoom = a_glyphData.y;\\nfloat glyphAngle = a_glyphData.z;\\nfloat a_minZoom = max(groupMinZoom, glyphMinZoom);\\nfloat a_placementPadding = a_refSymbolAndPlacementOffset.x * EXTRUDE_SCALE_PLACEMENT_PADDING;\\nvec2 a_placementDir = unpack_u8_nf32(a_refSymbolAndPlacementOffset.zw);\\nfloat a_refSymbolSize = a_refSymbolAndPlacementOffset.y;\\nfloat fontSize = a_texAndSize.z;\\nfloat haloSize = a_texAndSize.w * OUTLINE_SCALE;\\nvec2 vertexOffset = a_vertexOffset * OFFSET_PRECISION;\\nvec3 pos = vec3(a_pos * POSITION_PRECISION, 1.0);\\nfloat z = getZ(a_minZoom, glyphMaxZoom, glyphAngle);\\nfloat fontScale = fontSize / SDF_FONT_SIZE;\\nfloat halfSize = getSize(a_refSymbolSize) / 2.0;\\nfloat animation = pow(getAnimationState(), vec4(2.0)).r;\\nv_color = animation * ((1.0 - u_isHalo) * a_color + (u_isHalo * a_haloColor));\\nv_opacity = 1.0;\\nv_tex = a_texCoords / u_mosaicSize;\\nv_edgeDistanceOffset = u_isHalo * haloSize / fontScale / MAX_SDF_DISTANCE;\\nv_antialiasingWidth = 0.105 * SDF_FONT_SIZE / fontSize / u_pixelRatio;\\nvec2 placementOffset = a_placementDir * (halfSize + a_placementPadding);\\nvec3 glyphOffset = u_displayMat3 * vec3(vertexOffset + placementOffset, 0.0);\\nvec3 v_pos = vec3((u_dvsMat3 * pos + glyphOffset).xy, z);\\ngl_Position = vec4(applyFilterLabels(v_color, v_pos, getFilterFlags()), 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 vec4 v_id;\\nvarying mediump vec2 v_normal;\\nvarying mediump float v_lineHalfWidth;\\nvarying lowp float v_opacity;\\nvarying highp vec3 v_pos;\\n#ifdef PATTERN\\nuniform mediump vec2 u_mosaicSize;\\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\",\"line.frag\":\"precision lowp float;\\n#include \\n#include \\n#include \\nuniform lowp float u_blur;\\n#if defined(PATTERN) || defined(SDF)\\nuniform sampler2D u_texture;\\nuniform highp float u_pixelRatio;\\n#endif\\n#ifdef SDF\\nconst float sdfPatternHalfWidth = 15.5;\\nuniform mediump float u_antialiasing;\\n#endif\\nvoid main()\\n{\\nmediump float thinLineFactor = max(THIN_LINE_WIDTH_FACTOR * step(v_lineHalfWidth, THIN_LINE_HALF_WIDTH), 1.0);\\nmediump float fragDist = length(v_normal) * v_lineHalfWidth;\\nlowp float alpha = clamp(thinLineFactor * (v_lineHalfWidth - fragDist) / (u_blur + thinLineFactor - 1.0), 0.0, 1.0);\\n#if defined(SDF) && !defined(HIGHLIGHT)\\nmediump float lineHalfWidth = v_lineHalfWidth;\\nmediump float lineWidthRatio = max(lineHalfWidth - 0.55 * u_antialiasing, 0.25) / sdfPatternHalfWidth;\\nmediump float relativeTexX = fract(u_pixelRatio * v_accumulatedDistance * 0.5 / (lineWidthRatio * v_patternSize.x));\\nmediump float relativeTexY = 0.5 + 0.25 * v_normal.y;\\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexX, relativeTexY));\\nmediump float d = rgba2float(texture2D(u_texture, texCoord)) - 0.5;\\nfloat dist = d * lineHalfWidth;\\nlowp vec4 fillPixelColor = v_opacity * alpha * clamp(0.5 - dist, 0.0, 1.0) * v_color;\\ngl_FragColor = fillPixelColor;\\n#elif defined(PATTERN) && !defined(HIGHLIGHT)\\nmediump float lineHalfWidth = v_lineHalfWidth;\\nmediump float adjustedPatternWidth = v_patternSize.x * 2.0 * lineHalfWidth / v_patternSize.y;\\nmediump float relativeTexX = fract(u_pixelRatio * v_accumulatedDistance / adjustedPatternWidth);\\nmediump float relativeTexY = 0.5 + 0.5 * v_normal.y;\\nmediump vec2 texCoord = mix(v_tlbr.xy, v_tlbr.zw, vec2(relativeTexY, relativeTexX));\\nlowp vec4 color = texture2D(u_texture, texCoord);\\ngl_FragColor = v_opacity * alpha * v_color * color;\\n#else\\ngl_FragColor = v_opacity * alpha * v_color;\\n#endif\\n#ifdef HIGHLIGHT\\ngl_FragColor.a = step(1.0 / 255.0, gl_FragColor.a);\\n#endif\\n#ifdef ID\\nif (gl_FragColor.a < 1.0 / 255.0) {\\ndiscard;\\n}\\ngl_FragColor = v_id;\\n#endif\\n}\",\"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 \\nconst float SCALE = 1.0 / 31.0;\\nconst float WIDTH_SCALE = 1.0 / 1024.0;\\nfloat getBaseLineHalfWidth(in float in_lineHalfWidth) {\\n#ifdef VV_SIZE\\nfloat referenceHalfWidth = a_aux.x * WIDTH_SCALE;\\nfloat lineWidth = 2.0 * in_lineHalfWidth;\\nreturn 0.5 * (in_lineHalfWidth / referenceHalfWidth) * getSize(lineWidth);\\n#else\\nreturn in_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 * SCALE;\\n}\\nvoid main()\\n{\\nINIT;\\nfloat a_bitSet = a_segmentDirection.w;\\nfloat a_accumulatedDist = a_accumulatedDistanceAndHalfWidth.x;\\nfloat a_lineHalfWidth = a_accumulatedDistanceAndHalfWidth.y * WIDTH_SCALE;\\nfloat aa = 0.5 * u_antialiasing;\\nvec2 a_offset = a_offsetAndNormal.xy;\\nfloat baseWidth = getBaseLineHalfWidth(a_lineHalfWidth);\\nfloat halfWidth = getLineHalfWidth(baseWidth, aa);\\nfloat z = 2.0 * step(baseWidth, 0.0);\\nvec2 dist = getDist(a_offset, halfWidth);\\nvec3 offset = u_displayViewMat3 * vec3(dist, 0.0);\\nvec3 pos = u_dvsMat3 * vec3(a_pos * POSITION_PRECISION, 1.0) + offset;\\nv_color = getColor(a_color, a_bitSet, 0);\\nv_opacity = getOpacity();\\nv_lineHalfWidth = halfWidth;\\nv_id = norm(a_id);\\nv_normal = a_offsetAndNormal.zw * SCALE;\\nv_pos = vec3(pos.xy, z);\\n#ifdef PATTERN\\nv_tlbr = a_tlbr / u_mosaicSize.xyxy;\\nv_patternSize = vec2(a_tlbr.z - a_tlbr.x, a_tlbr.w - a_tlbr.y);\\n#endif\\n#if defined(PATTERN) || defined(SDF)\\nv_accumulatedDistance = a_accumulatedDist * u_zoomFactor + dot(SCALE * a_segmentDirection.xy, dist);\\n#endif\\ngl_Position = vec4(clip(v_color, v_pos, getFilterFlags(), a_zoomRange), 1.0);\\n}\"},text:{\"common.glsl\":\"uniform highp vec2 u_mosaicSize;\\nvarying highp vec4 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;\",\"text.frag\":\"precision mediump float;\\n#include \\nuniform lowp sampler2D u_texture;\\nvoid main()\\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);\\ngl_FragColor = alpha * v_color * v_opacity;\\n#ifdef ID\\nif (gl_FragColor.a < 1.0 / 255.0) {\\ndiscard;\\n}\\ngl_FragColor = v_id;\\n#endif\\n}\",\"text.vert\":\"precision highp float;\\n#include \\n#include \\n#include \\nattribute vec4 a_color;\\nattribute vec4 a_haloColor;\\nattribute vec4 a_texFontSize;\\nattribute vec4 a_aux;\\nattribute vec2 a_zoomRange;\\nattribute vec2 a_vertexOffset;\\nattribute vec2 a_texCoords;\\nuniform float u_isHalo;\\nfloat getTextSize(in float baseSize, in float referenceSize) {\\n#ifdef VV_SIZE\\nreturn getSize(baseSize);\\n#endif\\nreturn baseSize;\\n}\\nvoid main()\\n{\\nINIT;\\nfloat a_referenceSize = a_aux.z * a_aux.z / 256.0;\\nfloat a_bitSet = a_aux.w;\\nfloat a_fontSize = a_texFontSize.z;\\nvec2 a_offset = a_vertexOffset * OFFSET_PRECISION;\\nvec3 in_pos = vec3(a_pos * POSITION_PRECISION, 1.0);\\nfloat fontSize = getTextSize(a_fontSize, a_referenceSize);\\nfloat scaleFactor = fontSize / a_fontSize;\\nfloat fontScale = fontSize / SDF_FONT_SIZE;\\nvec3 offset = getRotation() * vec3(scaleFactor * a_offset, 0.0);\\nmat3 extrudeMatrix = getBit(a_bitSet, 0) == 1.0 ? u_displayViewMat3 : u_displayMat3;\\nv_color = u_isHalo * a_haloColor + (1.0 - u_isHalo) * getColor(a_color, a_bitSet, 1);\\nv_opacity = getOpacity();\\nv_id = norm(a_id);\\nv_tex = a_texCoords / u_mosaicSize;\\nv_pos = u_dvsMat3 * in_pos + extrudeMatrix * offset;\\nv_edgeDistanceOffset = u_isHalo * OUTLINE_SCALE * a_texFontSize.w / fontScale / MAX_SDF_DISTANCE;\\nv_antialiasingWidth = 0.105 * SDF_FONT_SIZE / fontSize / u_pixelRatio;\\ngl_Position = vec4(clip(v_color, v_pos, getFilterFlags(), a_zoomRange), 1.0);\\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 vec4 unpackDisplayIdTexel(in highp vec4 bitset) {\\nfloat isAggregate = getBit(bitset.a, 7);\\nreturn (1.0 - isAggregate) * bitset + isAggregate * (vec4(bitset.rgba) - vec4(0.0, 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}\\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}\",\"vcommon.glsl\":\"#include \\n#include \\n#include \\n#include \\nattribute vec2 a_pos;\\nattribute highp vec4 a_id;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp mat3 u_displayMat3;\\nuniform highp mat3 u_displayViewMat3;\\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 OES_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 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}\\nvec3 applyFilterLabels(inout vec4 color, inout vec3 pos, in float filterFlags) {\\npos.z += 2.0 * (1.0 - getFilterBit(filterFlags, 0));\\n#ifndef OUTSIDE_LABELS_VISIBLE\\npos.z += 2.0 * (1.0 - getFilterBit(filterFlags, 1));\\n#endif\\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}\"},\"post-processing\":{blit:{\"blit.frag\":\"precision mediump float;\\nuniform sampler2D u_texture;\\nvarying vec2 v_uv;\\nvoid main() {\\ngl_FragColor = texture2D(u_texture, v_uv);\\n}\"},bloom:{composite:{\"composite.frag\":\"precision mediump float;\\nvarying vec2 v_uv;\\nuniform sampler2D u_blurTexture1;\\nuniform sampler2D u_blurTexture2;\\nuniform sampler2D u_blurTexture3;\\nuniform sampler2D u_blurTexture4;\\nuniform sampler2D u_blurTexture5;\\nuniform float u_bloomStrength;\\nuniform float u_bloomRadius;\\nuniform float u_bloomFactors[NUMMIPS];\\nuniform vec3 u_bloomTintColors[NUMMIPS];\\nfloat lerpBloomFactor(const in float factor) {\\nfloat mirrorFactor = 1.2 - factor;\\nreturn mix(factor, mirrorFactor, u_bloomRadius);\\n}\\nvoid main() {\\ngl_FragColor = u_bloomStrength * (\\nlerpBloomFactor(u_bloomFactors[0]) * vec4(u_bloomTintColors[0], 1.0) * texture2D(u_blurTexture1, v_uv) +\\nlerpBloomFactor(u_bloomFactors[1]) * vec4(u_bloomTintColors[1], 1.0) * texture2D(u_blurTexture2, v_uv) +\\nlerpBloomFactor(u_bloomFactors[2]) * vec4(u_bloomTintColors[2], 1.0) * texture2D(u_blurTexture3, v_uv) +\\nlerpBloomFactor(u_bloomFactors[3]) * vec4(u_bloomTintColors[3], 1.0) * texture2D(u_blurTexture4, v_uv) +\\nlerpBloomFactor(u_bloomFactors[4]) * vec4(u_bloomTintColors[4], 1.0) * texture2D(u_blurTexture5, v_uv)\\n);\\n}\"},gaussianBlur:{\"gaussianBlur.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform vec2 u_texSize;\\nuniform vec2 u_direction;\\nvarying vec2 v_uv;\\n#define KERNEL_RADIUS RADIUS\\n#define SIGMA RADIUS\\nfloat gaussianPdf(in float x, in float sigma) {\\nreturn 0.39894 * exp(-0.5 * x * x / ( sigma * sigma)) / sigma;\\n}\\nvoid main() {\\nvec2 invSize = 1.0 / u_texSize;\\nfloat fSigma = float(SIGMA);\\nfloat weightSum = gaussianPdf(0.0, fSigma);\\nvec4 pixelColorSum = texture2D(u_colorTexture, v_uv) * weightSum;\\nfor (int i = 1; i < KERNEL_RADIUS; i ++) {\\nfloat x = float(i);\\nfloat w = gaussianPdf(x, fSigma);\\nvec2 uvOffset = u_direction * invSize * x;\\nvec4 sample1 = texture2D(u_colorTexture, v_uv + uvOffset);\\nvec4 sample2 = texture2D(u_colorTexture, v_uv - uvOffset);\\npixelColorSum += (sample1 + sample2) * w;\\nweightSum += 2.0 * w;\\n}\\ngl_FragColor = pixelColorSum /weightSum;\\n}\"},luminosityHighPass:{\"luminosityHighPass.frag\":\"precision mediump float;\\nuniform sampler2D u_texture;\\nuniform vec3 u_defaultColor;\\nuniform float u_defaultOpacity;\\nuniform float u_luminosityThreshold;\\nuniform float u_smoothWidth;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 texel = texture2D(u_texture, v_uv);\\nvec3 luma = vec3(0.299, 0.587, 0.114);\\nfloat v = dot(texel.xyz, luma);\\nvec4 outputColor = vec4(u_defaultColor.rgb, u_defaultOpacity);\\nfloat alpha = smoothstep(u_luminosityThreshold, u_luminosityThreshold + u_smoothWidth, v);\\ngl_FragColor = mix(outputColor, texel, alpha);\\n}\"}},blur:{gaussianBlur:{\"gaussianBlur.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform vec2 u_texSize;\\nuniform vec2 u_direction;\\nuniform float u_sigma;\\nvarying vec2 v_uv;\\n#define KERNEL_RADIUS RADIUS\\nfloat gaussianPdf(in float x, in float sigma) {\\nreturn 0.39894 * exp(-0.5 * x * x / ( sigma * sigma)) / sigma;\\n}\\nvoid main() {\\nvec2 invSize = 1.0 / u_texSize;\\nfloat fSigma = u_sigma;\\nfloat weightSum = gaussianPdf(0.0, fSigma);\\nvec4 pixelColorSum = texture2D(u_colorTexture, v_uv) * weightSum;\\nfor (int i = 1; i < KERNEL_RADIUS; i ++) {\\nfloat x = float(i);\\nfloat w = gaussianPdf(x, fSigma);\\nvec2 uvOffset = u_direction * invSize * x;\\nvec4 sample1 = texture2D(u_colorTexture, v_uv + uvOffset);\\nvec4 sample2 = texture2D(u_colorTexture, v_uv - uvOffset);\\npixelColorSum += (sample1 + sample2) * w;\\nweightSum += 2.0 * w;\\n}\\ngl_FragColor = pixelColorSum /weightSum;\\n}\"},\"radial-blur\":{\"radial-blur.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nvarying vec2 v_uv;\\nconst float sampleDist = 1.0;\\nconst float sampleStrength = 2.2;\\nvoid main(void) {\\nfloat samples[10];\\nsamples[0] = -0.08;\\nsamples[1] = -0.05;\\nsamples[2] = -0.03;\\nsamples[3] = -0.02;\\nsamples[4] = -0.01;\\nsamples[5] = 0.01;\\nsamples[6] = 0.02;\\nsamples[7] = 0.03;\\nsamples[8] = 0.05;\\nsamples[9] = 0.08;\\nvec2 dir = 0.5 - v_uv;\\nfloat dist = sqrt(dir.x * dir.x + dir.y * dir.y);\\ndir = dir / dist;\\nvec4 color = texture2D(u_colorTexture,v_uv);\\nvec4 sum = color;\\nfor (int i = 0; i < 10; i++) {\\nsum += texture2D(u_colorTexture, v_uv + dir * samples[i] * sampleDist);\\n}\\nsum *= 1.0 / 11.0;\\nfloat t = dist * sampleStrength;\\nt = clamp(t, 0.0, 1.0);\\ngl_FragColor = mix(color, sum, t);\\n}\"}},dra:{\"dra.frag\":\"precision mediump float;\\nuniform sampler2D u_minColor;\\nuniform sampler2D u_maxColor;\\nuniform sampler2D u_texture;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 minColor = texture2D(u_minColor, vec2(0.5));\\nvec4 maxColor = texture2D(u_maxColor, vec2(0.5));\\nvec4 color = texture2D(u_texture, v_uv);\\nvec3 minColorUnpremultiply = minColor.rgb / minColor.a;\\nvec3 maxColorUnpremultiply = maxColor.rgb / maxColor.a;\\nvec3 colorUnpremultiply = color.rgb / color.a;\\nvec3 range = maxColorUnpremultiply - minColorUnpremultiply;\\ngl_FragColor = vec4(color.a * (colorUnpremultiply - minColorUnpremultiply) / range, color.a);\\n}\",\"min-max\":{\"min-max.frag\":\"#extension GL_EXT_draw_buffers : require\\nprecision mediump float;\\n#define CELL_SIZE 2\\nuniform sampler2D u_minTexture;\\nuniform sampler2D u_maxTexture;\\nuniform vec2 u_srcResolution;\\nuniform vec2 u_dstResolution;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec2 srcPixel = floor(gl_FragCoord.xy) * float(CELL_SIZE);\\nvec2 onePixel = vec2(1.0) / u_srcResolution;\\nvec2 uv = (srcPixel + 0.5) / u_srcResolution;\\nvec4 minColor = vec4(1.0);\\nvec4 maxColor = vec4(0.0);\\nfor (int y = 0; y < CELL_SIZE; ++y) {\\nfor (int x = 0; x < CELL_SIZE; ++x) {\\nvec2 offset = uv + vec2(x, y) * onePixel;\\nminColor = min(minColor, texture2D(u_minTexture, offset));\\nmaxColor = max(maxColor, texture2D(u_maxTexture, offset));\\n}\\n}\\ngl_FragData[0] = minColor;\\ngl_FragData[1] = maxColor;\\n}\"}},\"drop-shadow\":{composite:{\"composite.frag\":\"precision mediump float;\\nuniform sampler2D u_layerFBOTexture;\\nuniform sampler2D u_blurTexture;\\nuniform vec4 u_shadowColor;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 layerColor = texture2D(u_layerFBOTexture, v_uv);\\nvec4 blurColor = texture2D(u_blurTexture, v_uv);\\ngl_FragColor = ((1.0 - layerColor.a) * blurColor.a * u_shadowColor + layerColor);\\n}\"},\"drop-shadow.vert\":\"precision mediump float;\\nattribute vec2 a_position;\\nuniform highp mat3 u_displayViewMat3;\\nuniform highp vec2 u_offset;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec3 offset = u_displayViewMat3 * vec3(u_offset, 0.0);\\ngl_Position = vec4(a_position, 0.0, 1.0) + vec4(offset, 0.0);\\nv_uv = (a_position + 1.0) / 2.0;\\n}\"},\"edge-detect\":{\"frei-chen\":{\"frei-chen.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform vec2 u_texSize;\\nvarying vec2 v_uv;\\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\\nmat3 G[9];\\nconst mat3 g0 = mat3( 0.3535533845424652, 0, -0.3535533845424652, 0.5, 0, -0.5, 0.3535533845424652, 0, -0.3535533845424652 );\\nconst mat3 g1 = mat3( 0.3535533845424652, 0.5, 0.3535533845424652, 0, 0, 0, -0.3535533845424652, -0.5, -0.3535533845424652 );\\nconst mat3 g2 = mat3( 0, 0.3535533845424652, -0.5, -0.3535533845424652, 0, 0.3535533845424652, 0.5, -0.3535533845424652, 0 );\\nconst mat3 g3 = mat3( 0.5, -0.3535533845424652, 0, -0.3535533845424652, 0, 0.3535533845424652, 0, 0.3535533845424652, -0.5 );\\nconst mat3 g4 = mat3( 0, -0.5, 0, 0.5, 0, 0.5, 0, -0.5, 0 );\\nconst mat3 g5 = mat3( -0.5, 0, 0.5, 0, 0, 0, 0.5, 0, -0.5 );\\nconst mat3 g6 = mat3( 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.6666666865348816, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204 );\\nconst mat3 g7 = mat3( -0.3333333432674408, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, 0.6666666865348816, 0.1666666716337204, -0.3333333432674408, 0.1666666716337204, -0.3333333432674408 );\\nconst mat3 g8 = mat3( 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408, 0.3333333432674408 );\\nvoid main() {\\nG[0] = g0,\\nG[1] = g1,\\nG[2] = g2,\\nG[3] = g3,\\nG[4] = g4,\\nG[5] = g5,\\nG[6] = g6,\\nG[7] = g7,\\nG[8] = g8;\\nmat3 I;\\nfloat cnv[9];\\nvec3 sample;\\nfor (float i = 0.0; i < 3.0; i++) {\\nfor (float j = 0.0; j < 3.0; j++) {\\nsample = texture2D(u_colorTexture, v_uv + texel * vec2(i - 1.0,j - 1.0)).rgb;\\nI[int(i)][int(j)] = length(sample);\\n}\\n}\\nfor (int i = 0; i < 9; i++) {\\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\\ncnv[i] = dp3 * dp3;\\n}\\nfloat M = (cnv[0] + cnv[1]) + (cnv[2] + cnv[3]);\\nfloat S = (cnv[4] + cnv[5]) + (cnv[6] + cnv[7]) + (cnv[8] + M);\\ngl_FragColor = vec4(vec3(sqrt(M / S)), texture2D(u_colorTexture, v_uv).a);\\n}\"},sobel:{\"sobel.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nvarying vec2 v_uv;\\nuniform vec2 u_texSize;\\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\\nmat3 G[2];\\nconst mat3 g0 = mat3( 1.0, 2.0, 1.0, 0.0, 0.0, 0.0, -1.0, -2.0, -1.0 );\\nconst mat3 g1 = mat3( 1.0, 0.0, -1.0, 2.0, 0.0, -2.0, 1.0, 0.0, -1.0 );\\nvoid main() {\\nmat3 I;\\nfloat cnv[2];\\nvec3 sample;\\nG[0] = g0;\\nG[1] = g1;\\nfor (float i = 0.0; i < 3.0; i++) {\\nfor (float j = 0.0; j < 3.0; j++) {\\nsample = texture2D( u_colorTexture, v_uv + texel * vec2(i-1.0,j-1.0) ).rgb;\\nI[int(i)][int(j)] = length(sample);\\n}\\n}\\nfor (int i = 0; i < 2; i++) {\\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\\ncnv[i] = dp3 * dp3;\\n}\\ngl_FragColor = vec4(vec3(0.5 * sqrt(cnv[0] * cnv[0] + cnv[1] * cnv[1])), texture2D(u_colorTexture, v_uv).a);\\n}\"}},\"edge-enhance\":{\"edge-enhance.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nvarying vec2 v_uv;\\nuniform vec2 u_texSize;\\nvec2 texel = vec2(1.0 / u_texSize.x, 1.0 / u_texSize.y);\\nmat3 G[2];\\nconst mat3 g0 = mat3( 1.0, 0.0, -1.0, 1.0, 0.0, -1.0, 1.0, 0.0, -1.0 );\\nconst mat3 g1 = mat3( 1.0, 1.0, 1.0, 0.0, 0.0, 0.0, -1.0, -1.0, -1.0 );\\nvoid main() {\\nmat3 I;\\nfloat cnv[2];\\nvec3 sample;\\nG[0] = g0;\\nG[1] = g1;\\nfor (float i = 0.0; i < 3.0; i++) {\\nfor (float j = 0.0; j < 3.0; j++) {\\nsample = texture2D( u_colorTexture, v_uv + texel * vec2(i-1.0,j-1.0) ).rgb;\\nI[int(i)][int(j)] = length(sample);\\n}\\n}\\nfor (int i = 0; i < 2; i++) {\\nfloat dp3 = dot(G[i][0], I[0]) + dot(G[i][1], I[1]) + dot(G[i][2], I[2]);\\ncnv[i] = dp3 * dp3;\\n}\\nvec4 color = texture2D(u_colorTexture, v_uv);\\ngl_FragColor = vec4(0.5 * sqrt(cnv[0] * cnv[0] + cnv[1] * cnv[1]) * color);\\n}\"},filterEffect:{\"filterEffect.frag\":\"precision mediump float;\\nuniform sampler2D u_colorTexture;\\nuniform mat4 u_coefficients;\\nvarying vec2 v_uv;\\nvoid main() {\\nvec4 color = texture2D(u_colorTexture, v_uv);\\nvec4 rgbw = u_coefficients * vec4(color.a > 0.0 ? color.rgb / color.a : vec3(0.0), 1.0);\\nfloat a = color.a;\\ngl_FragColor = vec4(a * rgbw.rgb, a);\\n}\"},pp:{\"pp.vert\":\"precision mediump float;\\nattribute vec2 a_position;\\nvarying vec2 v_uv;\\nvoid main() {\\ngl_Position = vec4(a_position, 0.0, 1.0);\\nv_uv = (a_position + 1.0) / 2.0;\\n}\"}},raster:{bitmap:{\"bitmap.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\nuniform sampler2D u_texture;\\nuniform highp vec2 u_coordScale;\\nuniform lowp float u_opacity;\\n#include \\nvoid main() {\\n#ifdef BICUBIC\\nvec4 color = sampleBicubicBSpline(u_texture, v_texcoord, u_coordScale);\\n#else\\nvec4 color = texture2D(u_texture, v_texcoord);\\n#endif\\nfloat alpha = u_opacity * color.a;\\ngl_FragColor = vec4(alpha * color.rgb, alpha);\\n}\",\"bitmap.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"},common:{\"common.glsl\":\"uniform sampler2D u_image;\\nuniform int u_bandCount;\\nuniform bool u_isFloatTexture;\\nuniform bool u_flipY;\\nuniform float u_opacity;\\nuniform int u_resampling;\\nuniform vec2 u_srcImageSize;\\n#ifdef APPLY_PROJECTION\\n#include \\n#endif\\n#ifdef BICUBIC\\n#include \\n#endif\\n#ifdef BILINEAR\\n#include \\n#endif\\nvec2 getPixelLocation(vec2 coords) {\\nvec2 targetLocation = u_flipY ? vec2(coords.s, 1.0 - coords.t) : coords;\\n#ifdef APPLY_PROJECTION\\ntargetLocation = projectPixelLocation(targetLocation);\\n#endif\\nreturn targetLocation;\\n}\\nbool isOutside(vec2 coords){\\nif (coords.t>1.00001 ||coords.t<-0.00001 || coords.s>1.00001 ||coords.s<-0.00001) {\\nreturn true;\\n} else {\\nreturn false;\\n}\\n}\\nvec4 getPixel(vec2 pixelLocation) {\\n#ifdef BICUBIC\\nvec4 color = sampleBicubicBSpline(u_image, pixelLocation, u_srcImageSize);\\n#elif defined(BILINEAR)\\nvec4 color = sampleBilinear(u_image, pixelLocation, u_srcImageSize);\\n#else\\nvec4 color = texture2D(u_image, pixelLocation);\\n#endif\\nreturn color;\\n}\",\"contrastBrightness.glsl\":\"uniform float u_contrastOffset;\\nuniform float u_brightnessOffset;\\nvec4 adjustContrastBrightness(vec4 currentPixel, bool isFloat) {\\nvec4 pixelValue = isFloat ? currentPixel * 255.0 : currentPixel;\\nfloat maxI = 255.0;\\nfloat mid = 128.0;\\nfloat c = u_contrastOffset;\\nfloat b = u_brightnessOffset;\\nvec4 v;\\nif (c > 0.0 && c < 100.0) {\\nv = (200.0 * pixelValue - 100.0 * maxI + 2.0 * maxI * b) / (2.0 * (100.0 - c)) + mid;\\n} else if (c <= 0.0 && c > -100.0) {\\nv = (200.0 * pixelValue - 100.0 * maxI + 2.0 * maxI * b) * (100.0 + c) / 20000.0 + mid;\\n} else if (c == 100.0) {\\nv = (200.0 * pixelValue - 100.0 * maxI + (maxI + 1.0) * (100.0 - c) + 2.0 * maxI * b);\\nv = (sign(v) + 1.0) / 2.0;\\n} else if (c == -100.0) {\\nv = vec4(mid, mid, mid, currentPixel.a);\\n}\\nreturn vec4(v.r / 255.0, v.g / 255.0, v.b / 255.0, currentPixel.a);\\n}\",\"projection.glsl\":\"uniform sampler2D u_transformGrid;\\nuniform vec2 u_transformSpacing;\\nuniform vec2 u_transformGridSize;\\nuniform vec2 u_targetImageSize;\\nvec2 projectPixelLocation(vec2 coords) {\\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}\"},hillshade:{\"hillshade.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\n#include \\nuniform int u_hillshadeType;\\nuniform float u_sinZcosAs[6];\\nuniform float u_sinZsinAs[6];\\nuniform float u_cosZs[6];\\nuniform float u_weights[6];\\nuniform vec2 u_factor;\\nuniform float u_minValue;\\nuniform float u_maxValue;\\n#include \\nfloat getNeighborHoodAlpha(float a, float b, float c, float d, float e, float f, float g, float h, float i){\\nif (a == 0.0 || a == 0.0 || a==0.0 || a == 0.0 || a == 0.0 || a==0.0 || a == 0.0 || a == 0.0 || a==0.0) {\\nreturn 0.0;\\n}\\nelse {\\nreturn e;\\n}\\n}\\nvec3 rgb2hsv(vec3 c) {\\nvec4 K = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\\nvec4 p = c.g < c.b ? vec4(c.bg, K.wz) : vec4(c.gb, K.xy);\\nvec4 q = c.r < p.x ? vec4(p.xyw, c.r) : vec4(c.r, p.yzx);\\nfloat d = q.x - min(q.w, q.y);\\nfloat e = 1.0e-10;\\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + e)), min(d / (q.x + e), 1.0), q.x);\\n}\\nvec3 hsv2rgb(vec3 c) {\\nvec4 K = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\\nvec3 p = abs(fract(c.xxx + K.xyz) * 6.0 - K.www);\\nreturn c.z * mix(K.xxx, clamp(p - K.xxx, 0.0, 1.0), c.y);\\n}\\nvec4 overlay(float val, float minValue, float maxValue, float hillshade) {\\nval = clamp((val - minValue) / (maxValue - minValue), 0.0, 1.0);\\nvec4 rgb = colorize(vec4(val, val, val, 1.0), 255.0);\\nvec3 hsv = rgb2hsv(rgb.xyz);\\nhsv.z = hillshade;\\nreturn vec4(hsv2rgb(hsv), 1.0) * rgb.a;\\n}\\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\nif (currentPixel.a == 0.0) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec2 axy = vec2(-1.0, -1.0);\\nvec2 bxy = vec2(0.0, -1.0);\\nvec2 cxy = vec2(1.0, -1.0);\\nvec2 dxy = vec2(-1.0, 0.0);\\nvec2 fxy = vec2(1.0, 0.0);\\nvec2 gxy = vec2(-1.0, 1.0);\\nvec2 hxy = vec2(0.0, 1.0);\\nvec2 ixy = vec2(1.0, 1.0);\\nvec2 onePixel = 1.0 / u_srcImageSize;\\nif (pixelLocation.s < onePixel.s) {\\naxy[0] = 1.0;\\ndxy[0] = 1.0;\\ngxy[0] = 1.0;\\n}\\nif (pixelLocation.t < onePixel.t) {\\naxy[1] = 1.0;\\nbxy[1] = 1.0;\\ncxy[1] = 1.0;\\n}\\nif (pixelLocation.s > 1.0 - onePixel.s) {\\ncxy[0] = -1.0;\\nfxy[0] = -1.0;\\nixy[0] = -1.0;\\n}\\nif (pixelLocation.t > 1.0 - onePixel.t) {\\ngxy[1] = -1.0;\\nhxy[1] = -1.0;\\nixy[1] = -1.0;\\n}\\nvec4 va = texture2D(u_image, pixelLocation + onePixel * axy);\\nvec4 vb = texture2D(u_image, pixelLocation + onePixel * bxy);\\nvec4 vc = texture2D(u_image, pixelLocation + onePixel * cxy);\\nvec4 vd = texture2D(u_image, pixelLocation + onePixel * dxy);\\nvec4 ve = texture2D(u_image, pixelLocation);\\nvec4 vf = texture2D(u_image, pixelLocation + onePixel * fxy);\\nvec4 vg = texture2D(u_image, pixelLocation + onePixel * gxy);\\nvec4 vh = texture2D(u_image, pixelLocation + onePixel * hxy);\\nvec4 vi = texture2D(u_image, pixelLocation + onePixel * ixy);\\nfloat dzx = (vc + 2.0 * vf + vi - va - 2.0 * vd - vg).r * u_factor.s;\\nfloat dzy = (vg + 2.0 * vh + vi - va - 2.0 * vb - vc).r * u_factor.t;\\nfloat dzd = sqrt(1.0 + dzx * dzx + dzy * dzy);\\nfloat hillshade = 0.0;\\nif (u_hillshadeType == 0){\\nfloat cosDelta = u_sinZsinAs[0] * dzy - u_sinZcosAs[0] * dzx;\\nfloat z = (u_cosZs[0] + cosDelta) / dzd;\\nif (z < 0.0) z = 0.0;\\nhillshade = z;\\n} else {\\nfor (int k = 0; k < 6; k++) {\\nfloat cosDelta = u_sinZsinAs[k] * dzy - u_sinZcosAs[k] * dzx;\\nfloat z = (u_cosZs[k] + cosDelta) / dzd;\\nif (z < 0.0) z = 0.0;\\nhillshade = hillshade + z * u_weights[k];\\nif (k == 5) break;\\n}\\n}\\nfloat alpha = getNeighborHoodAlpha(va.a, vb.a, vc.a, vd.a, ve.a, vf.a, vg.a, vh.a, vi.a);\\n#ifdef APPLY_COLORMAP\\ngl_FragColor = overlay(ve.r, u_minValue, u_maxValue, hillshade) * alpha * u_opacity;\\n#else\\ngl_FragColor = vec4(hillshade, hillshade, hillshade, 1.0) * alpha * u_opacity;\\n#endif\\n}\",\"hillshade.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"},lut:{\"colorize.glsl\":\"uniform sampler2D u_colormap;\\nuniform float u_colormapOffset;\\nuniform float u_colormapMaxIndex;\\nvec4 colorize(vec4 currentPixel, float scaleFactor) {\\nfloat clrIndex = clamp(currentPixel.r * scaleFactor - u_colormapOffset, 0.0, u_colormapMaxIndex);\\nvec2 clrPosition = vec2((clrIndex + 0.5) / (u_colormapMaxIndex + 1.0), 0.0);\\nvec4 color = texture2D(u_colormap, clrPosition);\\nvec4 result = vec4(color.rgb, color.a * currentPixel.a);\\nreturn result;\\n}\",\"lut.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\n#include \\n#include \\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\nvec4 result = colorize(currentPixel, 1.0);\\ngl_FragColor = vec4(result.xyz, 1.0) * result.a * u_opacity;\\n}\",\"lut.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform highp float u_scale;\\nuniform highp vec2 u_offset;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos * u_scale + u_offset;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"},magdir:{\"magdir.frag\":\"precision mediump float;\\nvarying vec4 v_color;\\nuniform lowp float u_opacity;\\nvoid main() {\\ngl_FragColor = v_color * u_opacity;\\n}\",\"magdir.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nattribute vec2 a_offset;\\nattribute vec2 a_vv;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform vec2 u_symbolSize;\\nuniform vec2 u_symbolPercentRange;\\nuniform vec2 u_dataRange;\\nuniform float u_rotation;\\nuniform vec4 u_colors[12];\\nvarying vec4 v_color;\\nvoid main()\\n{\\nfloat angle = a_offset.y + u_rotation;\\n#ifdef ROTATION_GEOGRAPHIC\\nangle = 3.14159265359 * 2.0 - angle - 3.14159265359 / 2.0;\\n#endif\\nvec2 offset = vec2(cos(angle), sin(angle)) * a_offset.x;\\n#ifdef DATA_RANGE\\nfloat valuePercentage = clamp((a_vv.y - u_dataRange.x) / (u_dataRange.y - u_dataRange.x), 0.0, 1.0);\\nfloat sizeRatio = u_symbolPercentRange.x + valuePercentage * (u_symbolPercentRange.y - u_symbolPercentRange.x);\\nfloat sizePercentage = clamp(sizeRatio, u_symbolPercentRange.x, u_symbolPercentRange.y);\\n#else\\nfloat sizePercentage = (u_symbolPercentRange.x + u_symbolPercentRange.y) / 2.0;\\n#endif\\nvec2 pos = a_pos + offset * sizePercentage * u_symbolSize;\\nv_color = u_colors[int(a_vv.x)];\\ngl_Position = vec4(u_dvsMat3 * vec3(pos * u_coordScale, 1.0), 1.0);\\n}\"},reproject:{\"reproject.frag\":\"precision mediump float;\\nvarying vec2 v_texcoord;\\n#include \\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 1.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\ngl_FragColor = vec4(currentPixel.rgb, 1.0) * currentPixel.a * u_opacity;\\n}\",\"reproject.vert\":\"precision mediump float;\\nattribute vec2 a_position;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_position;\\ngl_Position = vec4(2.0 * (a_position - 0.5), 0.0, 1.0);\\n}\"},scalar:{\"scalar.frag\":\"precision mediump float;\\nuniform lowp float u_opacity;\\nvarying vec2 v_pos;\\nconst vec4 outlineColor = vec4(0.2, 0.2, 0.2, 1.0);\\nconst float outlineSize = 0.02;\\nconst float innerRadius = 0.25;\\nconst float outerRadius = 0.42;\\nconst float innerSquareLength = 0.15;\\nvoid main() {\\nmediump float dist = length(v_pos);\\nmediump float fillalpha1 = smoothstep(outerRadius, outerRadius + outlineSize, dist);\\nfillalpha1 *= (1.0-smoothstep(outerRadius + outlineSize, outerRadius + 0.1 + outlineSize, dist));\\n#ifdef INNER_CIRCLE\\nmediump float fillalpha2 = smoothstep(innerRadius, innerRadius + outlineSize, dist);\\nfillalpha2 *= (1.0-smoothstep(innerRadius + outlineSize, innerRadius + 0.1 + outlineSize, dist));\\n#else\\nmediump float fillalpha2 = (abs(v_pos.x) < innerSquareLength ? 1.0 : 0.0) * (abs(v_pos.y) < innerSquareLength ? 1.0 : 0.0);\\n#endif\\ngl_FragColor = (fillalpha2 + fillalpha1) * outlineColor * u_opacity;\\n}\",\"scalar.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nattribute vec2 a_offset;\\nattribute vec2 a_vv;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform vec2 u_symbolSize;\\nuniform vec2 u_symbolPercentRange;\\nuniform vec2 u_dataRange;\\nvarying vec2 v_pos;\\nvoid main()\\n{\\n#ifdef DATA_RANGE\\nfloat valuePercentage = clamp((a_vv.y - u_dataRange.x) / (u_dataRange.y - u_dataRange.x), 0.0, 1.0);\\nfloat sizeRatio = u_symbolPercentRange.x + valuePercentage * (u_symbolPercentRange.y - u_symbolPercentRange.x);\\nfloat sizePercentage = clamp(sizeRatio, u_symbolPercentRange.x, u_symbolPercentRange.y);\\n#else\\nfloat sizePercentage = (u_symbolPercentRange.x + u_symbolPercentRange.y) / 2.0;\\n#endif\\nvec2 size = u_symbolSize * sizePercentage;\\nvec2 pos = a_pos + a_offset * size;\\nv_pos = a_offset;\\ngl_Position = vec4(u_dvsMat3 * vec3(pos * u_coordScale, 1.0), 1.0);\\n}\"},stretch:{\"stretch.frag\":\"precision mediump float;\\nvarying highp vec2 v_texcoord;\\n#include \\nuniform float u_minCutOff[3];\\nuniform float u_maxCutOff[3];\\nuniform float u_minOutput;\\nuniform float u_maxOutput;\\nuniform float u_factor[3];\\nuniform bool u_useGamma;\\nuniform float u_gamma[3];\\nuniform float u_gammaCorrection[3];\\n#include \\nfloat stretchOneValue(float val, float minCutOff, float maxCutOff, float minOutput, float maxOutput, float factor, bool useGamma, float gamma, float gammaCorrection) {\\nif (val >= maxCutOff) {\\nreturn maxOutput;\\n} else if (val <= minCutOff) {\\nreturn minOutput;\\n}\\nfloat stretchedVal;\\nif (useGamma) {\\nfloat tempf = 1.0;\\nfloat outRange = maxOutput - minOutput;\\nfloat relativeVal = (val - minCutOff) / (maxCutOff - minCutOff);\\nif (gamma > 1.0) {\\ntempf -= pow(1.0 / outRange, relativeVal * gammaCorrection);\\n}\\nstretchedVal = (tempf * outRange * pow(relativeVal, 1.0 / gamma) + minOutput) / 255.0;\\n} else {\\nstretchedVal = minOutput + (val - minCutOff) * factor;\\n}\\nreturn stretchedVal;\\n}\\nvoid main() {\\nvec2 pixelLocation = getPixelLocation(v_texcoord);\\nif (isOutside(pixelLocation)) {\\ngl_FragColor = vec4(0.0, 0.0, 0.0, 0.0);\\nreturn;\\n}\\nvec4 currentPixel = getPixel(pixelLocation);\\n#ifdef NOOP\\ngl_FragColor = vec4(currentPixel.rgb, 1.0) * currentPixel.a * u_opacity;\\nreturn;\\n#endif\\nif (u_bandCount == 1) {\\nfloat grayVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_useGamma, u_gamma[0], u_gammaCorrection[0]);\\n#ifdef APPLY_COLORMAP\\nvec4 result = colorize(vec4(grayVal, grayVal, grayVal, 1.0), u_useGamma ? 255.0 : 1.0);\\ngl_FragColor = vec4(result.xyz, 1.0) * result.a * currentPixel.a * u_opacity;\\n#else\\ngl_FragColor = vec4(grayVal, grayVal, grayVal, 1.0) * currentPixel.a * u_opacity;\\n#endif\\n} else {\\nfloat redVal = stretchOneValue(currentPixel.r, u_minCutOff[0], u_maxCutOff[0], u_minOutput, u_maxOutput, u_factor[0], u_useGamma, u_gamma[0], u_gammaCorrection[0]);\\nfloat greenVal = stretchOneValue(currentPixel.g, u_minCutOff[1], u_maxCutOff[1], u_minOutput, u_maxOutput, u_factor[1], u_useGamma, u_gamma[1], u_gammaCorrection[1]);\\nfloat blueVal = stretchOneValue(currentPixel.b, u_minCutOff[2], u_maxCutOff[2], u_minOutput, u_maxOutput, u_factor[2], u_useGamma, u_gamma[2], u_gammaCorrection[2]);\\ngl_FragColor = vec4(redVal, greenVal, blueVal, 1.0) * currentPixel.a * u_opacity;\\n}\\n}\",\"stretch.vert\":\"precision mediump float;\\nattribute vec2 a_pos;\\nuniform highp mat3 u_dvsMat3;\\nuniform highp vec2 u_coordScale;\\nuniform highp float u_scale;\\nuniform highp vec2 u_offset;\\nvarying highp vec2 v_texcoord;\\nvoid main()\\n{\\nv_texcoord = a_pos * u_scale + u_offset;\\ngl_Position = vec4(u_dvsMat3 * vec3(a_pos * u_coordScale, 1.0), 1.0);\\n}\"}},stencil:{\"stencil.frag\":\"void main() {\\ngl_FragColor = vec4(1.0, 1.0, 1.0, 1.0);\\n}\",\"stencil.vert\":\"attribute vec2 a_pos;\\nvoid main() {\\ngl_Position = vec4(a_pos, 0.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:{\"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.21/esri/copyright.txt for details.\n*/\nimport\"../../../../../webgl/BufferObject.js\";import\"../../../../../webgl/FramebufferObject.js\";import\"../../../../../../core/has.js\";import\"../../../../../webgl/checkWebGLError.js\";import\"../../../../../webgl/enums.js\";import\"../../../../../../chunks/builtins.js\";import\"../../../../../webgl/renderState.js\";import\"../../../../../webgl/Texture.js\";import e from\"../../../../../webgl/ShaderCompiler.js\";import\"../../../../../webgl/VertexArrayObject.js\";import r from\"./shaderRepository.js\";function t(e){let t=r;return e.split(\"/\").forEach((e=>{t&&(t=t[e])})),t}const o=new e(t);function s(e){return o.resolveIncludes(e)}export{s as resolveIncludes};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{isNone as e}from\"../../../../../../core/maybe.js\";import a from\"../WGLBrush.js\";const t=new Float32Array([.27058823529411763,.4588235294117647,.7098039215686275,1,.396078431372549,.5372549019607843,.7215686274509804,1,.5176470588235295,.6196078431372549,.7294117647058823,1,.6352941176470588,.7058823529411765,.7411764705882353,1,.7529411764705882,.8,.7450980392156863,1,.8705882352941177,.8901960784313725,.7490196078431373,1,1,1,.7490196078431373,1,1,.8627450980392157,.6313725490196078,1,.9803921568627451,.7254901960784313,.5176470588235295,1,.9607843137254902,.596078431372549,.4117647058823529,1,.9294117647058824,.4588235294117647,.3176470588235294,1,.9098039215686274,.08235294117647059,.08235294117647059,1]),r={beaufort_ft:t,beaufort_m:t,beaufort_km:t,beaufort_mi:t,beaufort_kn:new Float32Array([.1568627450980392,.5725490196078431,.7803921568627451,1,.34901960784313724,.6352941176470588,.7294117647058823,1,.5058823529411764,.7019607843137254,.6705882352941176,1,.6274509803921569,.7607843137254902,.6078431372549019,1,.7490196078431373,.8313725490196079,.5411764705882353,1,.8549019607843137,.9019607843137255,.4666666666666667,1,.9803921568627451,.9803921568627451,.39215686274509803,1,.9882352941176471,.8352941176470589,.3254901960784314,1,.9882352941176471,.7019607843137254,.4,1,.9803921568627451,.5529411764705883,.20392156862745098,1,.9686274509803922,.43137254901960786,.16470588235294117,1,.9411764705882353,.2784313725490196,.11372549019607843,1]),classified_arrow:new Float32Array([.2196078431372549,.6588235294117647,0,1,.5450980392156862,1.2117647058823529,0,1,1,1,0,1,1,.5019607843137255,0,1,1,0,0,1]),ocean_current_m:new Float32Array([.3058823529411765,.10196078431372549,.6,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),ocean_current_kn:new Float32Array([0,0,0,1,0,.1450980392156863,.39215686274509803,1,.3058823529411765,.10196078431372549,.6,1,.592156862745098,0,.39215686274509803,1,.7019607843137254,.10588235294117647,.10196078431372549,1,.6941176470588235,.3058823529411765,.10196078431372549,1,.792156862745098,.5019607843137255,.10196078431372549,1,.6941176470588235,.7019607843137254,.20392156862745098,1,.6941176470588235,.6941176470588235,.6941176470588235,1]),single_arrow:new Float32Array([0,92/255,230/255,1]),wind_speed:new Float32Array([0,0,0,1])};class s extends a{constructor(){super(...arguments),this._desc={magdir:{vsPath:\"raster/magdir\",fsPath:\"raster/magdir\",attributes:new Map([[\"a_pos\",0],[\"a_offset\",1],[\"a_vv\",2]])},scalar:{vsPath:\"raster/scalar\",fsPath:\"raster/scalar\",attributes:new Map([[\"a_pos\",0],[\"a_offset\",1],[\"a_vv\",2]])}}}dispose(){}prepareState({context:e},a){e.setBlendingEnabled(!0),e.setBlendFunctionSeparate(1,771,1,771),e.setColorMask(!0,!0,!0,!0),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilOp(7680,7680,7681),e.setStencilFunction(514,a.stencilRef,255)}draw(a,t){if(e(t.source)||0===t.source.validPixelCount)return;const{timeline:r}=a;if(r.begin(this.name),t.updateVectorFieldVAO(a),\"scalar\"===a.renderPass){const e=t.vaoData.scalar;e&&this._drawScalars(a,t,e.vao,e.elementCount)}else{const e=t.vaoData.magdir;e&&this._drawTriangles(a,t,e.vao,e.elementCount)}r.end(this.name)}_drawTriangles(e,a,t,s){const{context:o,painter:n}=e,{symbolizerParameters:i}=a,c=i.dataRange?[\"dataRange\"]:[];\"geographic\"===i.rotationType&&c.push(\"rotationGeographic\");const l=n.materialManager.getProgram(e,this._desc.magdir,c);o.useProgram(l);const{coordScale:m,opacity:d,transforms:f}=a;l.setUniform2fv(\"u_coordScale\",m),l.setUniform1f(\"u_opacity\",d),l.setUniformMatrix3fv(\"u_dvsMat3\",f.dvs);const{style:u,dataRange:_,rotation:g,symbolPercentRange:p}=i;l.setUniform4fv(\"u_colors\",r[u]||r.single_arrow),l.setUniform2fv(\"u_dataRange\",_),l.setUniform1f(\"u_rotation\",g),l.setUniform2fv(\"u_symbolPercentRange\",p);const y=this._getSymbolSize(e,a);l.setUniform2fv(\"u_symbolSize\",y),o.bindVAO(t),o.drawElements(4,s,5125,0)}_drawScalars(e,a,t,r){const{context:s,painter:o}=e,{symbolizerParameters:n}=a,i=[];\"wind_speed\"===n.style?i.push(\"innerCircle\"):n.dataRange&&i.push(\"dataRange\"),\"geographic\"===n.rotationType&&i.push(\"rotationGeographic\");const c=o.materialManager.getProgram(e,this._desc.scalar,i);s.useProgram(c);const{coordScale:l,opacity:m,transforms:d}=a;c.setUniform2fv(\"u_coordScale\",l),c.setUniform1f(\"u_opacity\",m),c.setUniformMatrix3fv(\"u_dvsMat3\",d.dvs);const{dataRange:f,symbolPercentRange:u}=n;c.setUniform2fv(\"u_dataRange\",f),c.setUniform2fv(\"u_symbolPercentRange\",u);const _=this._getSymbolSize(e,a);c.setUniform2fv(\"u_symbolSize\",_),s.bindVAO(t),s.drawElements(4,r,5125,0)}_getSymbolSize(e,a){const t=2**(e.displayLevel-a.key.level),{symbolTileSize:r}=a.symbolizerParameters;return[r/(Math.round((a.width-a.offset[0])/r)*r)/t,r/(Math.round((a.height-a.offset[1])/r)*r)/t]}}export{s as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{Program as e}from\"./Program.js\";function n(e){let n=\"\";for(const t in e){const o=e[t];if(\"boolean\"==typeof o)o&&(n+=`#define ${t}\\n`);else if(\"number\"==typeof o)n+=`#define ${t} ${o.toFixed()}\\n`;else if(\"object\"==typeof o){const e=o.options;let r=0;for(const t in e)n+=`#define ${e[t]} ${(r++).toFixed()}\\n`;n+=`#define ${t} ${e[o.value]}\\n`}}return n}function t(n,t,o,r){o=o||{},r=r||\"\";const f=\"function\"==typeof t.shaders?t.shaders(o):t.shaders;return new e(n,r+f.vertexShader,r+f.fragmentShader,t.attributes)}export{t as createProgram,n as glslifyDefineMap};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nimport{f as r}from\"../../../../../chunks/vec4f32.js\";import t from\"../../../../webgl/BufferObject.js\";import\"../../../../webgl/FramebufferObject.js\";import\"../../../../../core/has.js\";import\"../../../../webgl/checkWebGLError.js\";import\"../../../../webgl/enums.js\";import\"../../../../../chunks/builtins.js\";import{createProgram as e}from\"../../../../webgl/programUtils.js\";import\"../../../../webgl/renderState.js\";import\"../../../../webgl/Texture.js\";import s from\"../../../../webgl/VertexArrayObject.js\";import i from\"./WGLBrush.js\";import{background as o}from\"../shaders/BackgroundPrograms.js\";class a extends i{constructor(){super(...arguments),this._color=r(1,0,0,1),this._initialized=!1}dispose(){this._solidProgram&&(this._solidProgram.dispose(),this._solidProgram=null),this._solidVertexArrayObject&&(this._solidVertexArrayObject.dispose(),this._solidVertexArrayObject=null)}prepareState({context:r},t){r.setDepthWriteEnabled(!1),r.setDepthTestEnabled(!1),r.setStencilTestEnabled(!0),r.setBlendingEnabled(!1),r.setColorMask(!1,!1,!1,!1),r.setStencilOp(7680,7680,7681),r.setStencilWriteMask(255),r.setStencilFunctionSeparate(1032,516,t.stencilRef,255)}draw(r,t){const{context:e}=r;this._initialized||this._initialize(e),e.bindVAO(this._solidVertexArrayObject),e.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),e.drawArrays(5,0,4),e.bindVAO()}_initialize(r){if(this._initialized)return!0;const i=e(r,o);if(!i)return!1;const a={geometry:[{name:\"a_pos\",count:2,type:5120,offset:0,stride:2,normalized:!1,divisor:0}]},n=new Int8Array([0,0,1,0,0,1,1,1]),l=t.createVertex(r,35044,n),d=new s(r,o.attributes,a,{geometry:l});return this._solidProgram=i,this._solidVertexArrayObject=d,this._initialized=!0,!0}}export{a as default};\n","/*\nAll material copyright ESRI, All Rights Reserved, unless otherwise specified.\nSee https://js.arcgis.com/4.21/esri/copyright.txt for details.\n*/\nclass a{constructor(){this.name=this.constructor.name||\"UnnamedBrush\"}prepareState(a,r,t){}draw(a,r,t){}drawMany(a,r,t){for(const s of r)this.draw(a,s,t)}}export{a as default};\n"],"sourceRoot":""}