UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

3 lines (2 loc) 1.69 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../core/accessorSupport/decorators.js";import{glLayout as t}from"../../support/buffer/glUtil.js";import{layout as i}from"../../terrain/TerrainAttributes.js";import{isColor as s}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as n}from"../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as l,depthOnlyOutputBuffersOr as o}from"../core/shaderTechnique/ShaderTechnique.js";import{drawBuffers as p,depthWrite as a,depthTest as c,blending as u}from"../lib/OrderIndependentTransparency.js";import{renderWhenBitIsNotSet as d}from"../lib/StencilUtils.js";import{a as h}from"../../../../chunks/Terrain.glsl.js";import{makePipelineState as m,defaultColorWrite as f,defaultDepthWrite as T,premultipliedAlpha as b}from"../../../webgl/renderState.js";let j=class extends l{constructor(e,r){super(e,r,t(i)),this.shader=new n(h,()=>import("./Terrain.glsl.js")),this.useStencil=!1}initializePipeline(e){return this._stencilPipelineState=this._createPipeline(e,!0),this._createPipeline(e,!1)}_createPipeline(e,r){const{renderOccluded:t,output:i,oitPass:n,hasEmission:l}=e;return m(0===n?{blending:t?b:null,depthTest:t?null:{func:513},depthWrite:t?null:T,colorWrite:f,stencilTest:r?d(1):null,drawBuffers:o(i)}:{blending:s(i)?u(n,t):null,depthTest:c(n,t?519:513),depthWrite:t?null:a(e),drawBuffers:o(i,p(n,l)),colorWrite:f,stencilTest:r?d(1):null})}getPipeline(e){return this.useStencil?this._stencilPipelineState:super.getPipeline(e)}};j=e([r("esri.views.3d.webgl-engine.shaders.TerrainTechnique")],j);export{j as TerrainTechnique};