/* COPYRIGHT Esri - https://js.arcgis.com/5.0/LICENSE.txt */
import{invert as e,multiply as t}from"../../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as i}from"../../../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{animationDebugFlags as a}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{FeatureTechnique as o}from"../FeatureTechnique.js";import{isHittest as r,getSelectionDefines as n,getLocalTileOffset as s,getFeatureUniforms as m,resolveDynamicUniforms as l,getFeaturePipelineState as u}from"../featureTechniqueUtils.js";import{getAntialiasingControls as c}from"../line/utils.js";class f extends o{render(o,f){const{context:g,painter:p,pixelRatio:d}=o,{target:x}=f,{freezeGlobalTime:b}=a,h=0,D=p.textureManager.animationStore.getTexture(g,h),T=[2/o.state.size[0],0,0,0,-2/o.state.size[1],0,-1,1,1],R=Array.from(e(i(),T)),j=Array.from(t(i(),R,x.transforms.displayViewScreenMat3)),y=f.instance.getInput(),z=p.textureManager.getMosaicInfo(o,f.textureKey,!1),{optionalAttributes:S}=y,A=S.zoomRange,I=S.value1Position2Value2,M="accumulatedDistance"in S&&S.accumulatedDistance,q="segmentDirection"in S&&S.segmentDirection,w="normal"in S&&S.normal;p.setShader({shader:this.shaders.geometry,uniforms:{...l(o,f.target,y.uniforms),...m(o,f.target),antialiasingControls:c(d),mosaicInfo:z,animationInfo:{globalTime:o.animationsEnabled?!1===b?o.time/1e3:b:0,animationTextureSize:[D.descriptor.width,D.descriptor.height],animationTexture:{unit:6,texture:D},toScreen:j,toNdc:T,mapRotation:o.state.rotation,pixelRatio:o.state.pixelRatio},localTileOffset:s(f.target)},defines:{...n(o)},optionalAttributes:{zoomRange:A,value1Position2Value2:I,accumulatedDistance:M,segmentDirection:q,normal:w},useComputeBuffer:r(o)}),p.setPipelineState({...u(o)}),p.submitDraw(o,f),!1===b&&o.animationsEnabled&&x.requestRender()}}export{f as AnimatedTechnique};
