@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.65 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{isColorOrColorEmission as e}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShaderModule as t}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../core/shaderTechnique/ShaderTechnique.js";import{OITPass as i}from"../lib/OITPass.js";import{oitPolygonOffset as l,getDrawBuffers as s,depthWrite as n,oitDepthTest as o,oitBlending as a}from"../lib/OrderIndependentTransparency.js";import{stencilToolMaskBaseParams as p,stencilBaseAllZerosParams as c,stencilWriteMaskOn as u}from"../lib/StencilUtils.js";import{VertexAttribute as m}from"../lib/VertexAttribute.js";import{I as d}from"../../../../chunks/ImageMaterial.glsl.js";import{makePipelineState as h,defaultColorWrite as f,cullingParams as g,premultipliedAlpha as P}from"../../../webgl/renderState.js";class j extends r{constructor(e,r){super(e,r,new t(d,(()=>import("./ImageMaterial.glsl.js"))),I)}_getPipelineState(t,r){const{oitPass:m,output:d,hasOccludees:j,cullFace:I}=t,S=m===i.NONE;return h({blending:e(d)?S?P:a(m):null,culling:g(I),depthTest:{func:o(m)},depthWrite:n(t),drawBuffers:s(m,d),colorWrite:f,stencilWrite:j?u:null,stencilTest:j?r?p:c:null,polygonOffset:l(t)})}initializePipeline(e){return this._occludeePipeline=this._getPipelineState(e,!0),this._getPipelineState(e,!1)}getPipeline(e){return e?this._occludeePipeline:super.getPipeline()}}const I=new Map([[m.POSITION,0],[m.UV0,2],[m.PERSPECTIVEDIVIDE,3]]);export{j as ImageMaterialTechnique,I as vertexAttributeLocations};