@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 2.1 kB
JavaScript
/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.32/esri/copyright.txt for details.
*/
import{isColorOrColorEmission as e,ShaderOutput as t}from"../core/shaderLibrary/ShaderOutput.js";import{ReloadableShaderModule as r}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as i}from"../core/shaderTechnique/ShaderTechnique.js";import{olidEnabled as s}from"../effects/geometry/olidUtils.js";import{OITPass as l}from"../lib/OITPass.js";import{blending as n,oitDepthTest as o,depthWrite as p,getDrawBuffers as a,getOITPolygonOffset as u}from"../lib/OrderIndependentTransparency.js";import{stencilWriteMaskOn as c,stencilToolMaskBaseParams as O,stencilBaseAllZerosParams as f}from"../lib/StencilUtils.js";import{VertexAttribute as m}from"../lib/VertexAttribute.js";import{P as d}from"../../../../chunks/Pattern.glsl.js";import{SpecialDrawBuffers as T}from"../../../webgl/enums.js";import{makePipelineState as P,cullingParams as h,defaultColorWrite as E}from"../../../webgl/renderState.js";class S extends i{constructor(e,t){super(e,t,new r(d,(()=>import("./Pattern.glsl.js"))),s()?j:b)}_setPipelineState(r,i){const{oitPass:s,output:m,cullFace:d,draped:S,hasOccludees:b,polygonOffset:j,enableOffset:g}=r,A=s===l.NONE,I=s===l.FrontFace;return P({blending:e(m)?n(s):null,culling:h(d),depthTest:S?null:{func:o(s)},depthWrite:p(r),drawBuffers:m===t.Depth?{buffers:[T.NONE]}:a(s,m),colorWrite:E,stencilWrite:b?c:null,stencilTest:b?i?O:f:null,polygonOffset:A||I?j?R:null:u(g)})}initializePipeline(e){return this._occludeePipelineState=this._setPipelineState(e,!0),this._setPipelineState(e,!1)}getPipeline(e){return e?this._occludeePipelineState:super.getPipeline()}}const R={factor:1,units:1},b=new Map([[m.POSITION,0],[m.COLOR,3],[m.UVMAPSPACE,4],[m.COLORFEATUREATTRIBUTE,5],[m.BOUNDINGRECT,6]]),j=new Map([[m.POSITION,0],[m.COLOR,3],[m.UVMAPSPACE,4],[m.COLORFEATUREATTRIBUTE,5],[m.BOUNDINGRECT,6],[m.OBJECTANDLAYERIDCOLOR,9]]);export{S as PatternTechnique,b as vertexAttributeLocations,j as vertexAttributeLocationsOID};