@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.53 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.33/esri/copyright.txt for details.
*/
import{ReloadableShaderModule as e}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as i,depthOnlyOutputBuffersOr as t}from"../core/shaderTechnique/ShaderTechnique.js";import{StencilBits as r}from"../lib/basicInterfaces.js";import{renderWhenBitIsNotSet as l}from"../lib/StencilUtils.js";import{VertexAttribute as n}from"../lib/VertexAttribute.js";import{a as s}from"../../../../chunks/Terrain.glsl.js";import{CompareFunction as c}from"../../../webgl/enums.js";import{makePipelineState as o,defaultColorWrite as u,defaultDepthWrite as a,backFaceCullingParams as p,premultipliedAlpha as d}from"../../../webgl/renderState.js";class h extends i{constructor(i,t){super(i,t,new e(s,(()=>import("./Terrain.glsl.js"))),m),this.type="TerrainTechnique",this.useStencil=!1}initializePipeline(e){return this._stencilPipelineState=this._createPipeline(e,!0),this._createPipeline(e,!1)}_createPipeline(e,i){const{renderOccluded:n,output:s}=e,h=e.backfaceCullingEnabled&&!n;return o({blending:n?d:null,culling:h?p:null,depthTest:n?null:{func:c.LESS},depthWrite:n?null:a,colorWrite:u,stencilTest:i?l(r.IntegratedMeshMaskExcluded):null,drawBuffers:t(s)})}getPipeline(){return this.useStencil?this._stencilPipelineState:super.getPipeline()}}const m=new Map([[n.POSITION,0],[n.UV0,1],[n.NORMALCOMPRESSED,2]]);export{h as TerrainTechnique,m as vertexAttributeLocations};