UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.38 kB
import{ReloadableShaderModule as e}from"../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../core/shaderTechnique/ShaderTechnique.js";import{Default3D as t}from"../lib/DefaultVertexAttributeLocations.js";import{oitBlending as i,oitDepthTest as n,oitDepthWrite as o}from"../lib/OrderIndependentTransparency.js";import{Program as s}from"../lib/Program.js";import{TransparencyPassType as a}from"../lib/TransparencyPassType.js";import{C as l}from"../../../../chunks/CheckerBoard.glsl.js";import{BlendFactor as p}from"../../../webgl/enums.js";import{separateBlendingParams as c,makePipelineState as m,defaultDepthWriteParams as u,defaultColorWriteParams as f}from"../../../webgl/renderState.js";class d extends r{initializeProgram(e){return new s(e.rctx,d.shader.get().build(this.configuration),t)}_setPipelineState(e){const r=this.configuration,t=e===a.NONE,s=e===a.FrontFace;return m({blending:r.transparent?t?g:i(e):null,depthTest:{func:n(e)},depthWrite:t?r.writeDepth?u:null:o(e),colorWrite:f,polygonOffset:t||s?r.polygonOffset?h:null:{factor:-1,units:-25}})}initializePipeline(){return this._setPipelineState(this.configuration.transparencyPassType)}}d.shader=new e(l,(()=>import("./CheckerBoard.glsl.js")));const h={factor:0,units:-25},g=c(p.SRC_ALPHA,p.ONE,p.ONE_MINUS_SRC_ALPHA,p.ONE_MINUS_SRC_ALPHA);export{d as CheckerBoardTechnique};