UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.83 kB
import{ViewingMode as e}from"../../../ViewingMode.js";import{a as i}from"../../../../chunks/Terrain.glsl.js";import{ReloadableShaderModule as r}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as t}from"../core/shaderTechnique/ShaderTechnique.js";import{StencilBits as n}from"../lib/basicInterfaces.js";import{Program as l}from"../lib/Program.js";import{renderWhenBitIsNotSet as s}from"../lib/StencilUtils.js";import{VertexAttribute as o}from"../lib/VertexAttribute.js";import{ContextType as a}from"../../../webgl/context-util.js";import{BlendFactor as c,CompareFunction as u}from"../../../webgl/enums.js";import{makePipelineState as d,simpleBlendingParams as p,backFaceCullingParams as m,defaultDepthWriteParams as h,defaultColorWriteParams as g}from"../../../webgl/renderState.js";class b extends t{constructor(){super(...arguments),this.useStencil=!1}initializeConfiguration(i,r){r.hasWebGL2Context=i.rctx.type===a.WEBGL2,r.spherical=i.viewingMode===e.Global}initializeProgram(e){return new l(e.rctx,b.shader.get().build(this.configuration),f)}initializePipeline(){return this._stencilPipelineState=this._createPipeline(!0),this._createPipeline(!1)}_createPipeline(e){const i=this.configuration,r=i.backfaceCullingEnabled&&!i.renderOccluded;return d({blending:i.renderOccluded?p(c.ONE,c.ONE_MINUS_SRC_ALPHA):null,culling:r?m:null,depthTest:i.renderOccluded?null:{func:u.LESS},depthWrite:i.renderOccluded?null:h,colorWrite:g,stencilTest:e?s(n.IntegratedMeshMaskExcluded):null})}getPipelineState(e,i){return this.useStencil?this._stencilPipelineState:super.getPipelineState(e,i)}}b.shader=new r(i,(()=>import("../core/shaderLibrary/terrain/Terrain.glsl.js")));const f=new Map([[o.POSITION,0],[o.UV0,1],[o.NORMALCOMPRESSED,2]]);export{b as TerrainTechnique,f as terrainVertexAttributeLocations};