@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.5 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{invert as e,multiply as t}from"../../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../../../../../core/libs/gl-matrix-2/factories/mat3f32.js";import{animationDebugFlags as i}from"../../../../../../../symbols/cim/animationDebugFlags.js";import{FeatureTechnique as a}from"../FeatureTechnique.js";import{resolveDynamicUniforms as o,getFeatureUniforms as s,getSelectionDefines as n,getFeaturePipelineState as m}from"../featureTechniqueUtils.js";class u extends a{render(a,u){const{context:f,painter:c}=a,{target:l}=u,{freezeGlobalTime:p}=i,g=0,x=c.textureManager.animationStore.getTexture(f,g),d=[2/a.state.size[0],0,0,0,-2/a.state.size[1],0,-1,1,1],h=Array.from(e(r(),d)),b=Array.from(t(r(),h,l.transforms.displayViewScreenMat3)),T=u.instance.getInput();c.setShader({shader:this.shaders.geometry,uniforms:{...o(a,u.target,T.uniforms),...s(a,u.target),mosaicInfo:c.textureManager.getMosaicInfo(f,u.textureKey,!0),animationInfo:{globalTime:!1===p?a.time/1e3:p,animationTextureSize:[x.descriptor.width,x.descriptor.height],animationTexture:{unit:6,texture:x},toScreen:b,toNdc:d,mapRotation:a.state.rotation,pixelRatio:a.state.pixelRatio}},defines:{...n(a)},optionalAttributes:{zoomRange:!0},useComputeBuffer:!0}),c.setPipelineState({...m(a)}),c.submitDraw(a,u),!1===p&&l.requestRender()}}export{u as AnimatedTechnique};