@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.37 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{ZEROS as r}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{setTextures as t}from"../../../../webgl/rasterUtils.js";const e={vsPath:"raster/common",fsPath:"raster/reproject",attributes:new Map([["a_position",0],["a_texcoord",1]])};function i(r,t){const{painter:i}=r,o=[],{interpolation:s,transformGrid:n}=t,a=r.rasterFunction?.parameters;return"cubic"===s?o.push("bicubic"):"bilinear"===s&&(o.push("bilinear"),a?.requireNNEdge&&o.push("nnedge")),n&&(o.push("applyProjection"),1===n.spacing[0]&&o.push("lookupProjection")),i.materialManager.getProgram(e,o)}function o(e,i,o){const{names:s,textures:n}=o.getTextures({forProcessing:!0});t(e.context,i,s,n),i.setUniform1f("u_scale",1),i.setUniform2fv("u_offset",[0,0]),i.setUniform2fv("u_coordScale",[1,1]),i.setUniformMatrix3fv("u_dvsMat3",[2,0,0,0,2,0,-1,-1,0]),i.setUniform1i("u_flipY",0),i.setUniform1f("u_opacity",1);const{width:a,height:f,source:c,transformGrid:m}=o;i.setUniform2fv("u_srcImageSize",[c.width,c.height]),i.setUniform2fv("u_targetImageSize",[a,f]),i.setUniform2fv("u_transformSpacing",m?m.spacing:r),i.setUniform2fv("u_transformGridSize",m?m.size:r)}const s={createProgram:i,bindTextureAndUniforms:o};export{s as default};