UNPKG

@arcgis/core

Version:

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

3 lines (2 loc) 1.98 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.8/LICENSE.txt */ import{__decorate as e}from"tslib";import{subclass as r}from"../../../../../../core/accessorSupport/decorators.js";import{C as t}from"../../../../../../chunks/ComponentShader.glsl.js";import{isColor as i}from"../../../core/shaderLibrary/ShaderOutput.js";import{ReloadableShader as n}from"../../../core/shaderTechnique/ReloadableShader.js";import{ShaderTechnique as o,depthOnlyOutputBuffersOr as l}from"../../../core/shaderTechnique/ShaderTechnique.js";import{OITPolygonOffset as s,drawBuffers as a,depthTest as d,blending as p}from"../../../lib/OrderIndependentTransparency.js";import{stencilBaseAllZerosParams as u,stencilWriteMaskOn as c,replaceBitWhenDepthTestPasses as m}from"../../../lib/StencilUtils.js";import{IndexGlLayout as h}from"../../../materials/DefaultLayouts.js";import{makePipelineState as f,defaultColorWrite as b,defaultDepthWrite as g,premultipliedAlpha as P,cullingParams as j}from"../../../../../webgl/renderState.js";let w=class extends o{constructor(e,r,i){super(e,r,i.concat(h)),this.shader=new n(t,()=>import("./ComponentShader.glsl.js"))}getPipeline(e){return e.camera.aboveGround||null==this._belowGroundPipeline?super.getPipeline(e):this._belowGroundPipeline}initializePipeline(e){return this._belowGroundPipeline=0===e.integratedMeshMode?null:this._makePipeline(e,!0),this._makePipeline(e,!1)}_makePipeline(e,r){const{integratedMeshMode:t,output:n,blendingEnabled:o,cullFace:h,hasEmission:w,hasOccludees:S,hasPolygonOffset:T,oitPass:O,renderOccluded:_}=e,y=0!==t,C=0===O,M=2===O;let k=j(h);return r&&k&&(k={...k,mode:2304}),f({blending:_?P:i(n)&&o?p(O):null,culling:k,depthTest:_?null:d(O),depthWrite:_||!C&&!M?null:g,drawBuffers:l(n,a(O,w)),colorWrite:b,stencilWrite:!_&&y||S?c:null,stencilTest:y?m(1):S?u:null,polygonOffset:C||M?T?{factor:2,units:2}:null:s})}};w=e([r("esri.views.3d.webgl-engine.collections.Component.Material.ComponentTechnique")],w);export{w as ComponentTechnique};