@doegis/core
Version:
DOE GIS API
3 lines (1 loc) • 2.54 kB
JavaScript
import{disposeMaybe as e,isNone as s}from"../../../../core/maybe.js";import{createQuadVAO as t}from"./glUtil3D.js";import{C as r}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as i}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as o,AlphaMode as a}from"../shaders/CompositingTechniqueConfiguration.js";import{H as h}from"../../../../chunks/HUDCompositing.glsl.js";import{HUDCompositingTechnique as n}from"../shaders/HUDCompositingTechnique.js";import{O as m}from"../../../../chunks/OITCompositing.glsl.js";import{OITCompositingTechnique as c}from"../shaders/OITCompositingTechnique.js";import{O as _}from"../../../../chunks/OverlayCompositing.glsl.js";import{OverlayCompositingTechnique as u}from"../shaders/OverlayCompositingTechnique.js";import{PrimitiveType as p}from"../../../webgl/enums.js";import{vertexCount as l}from"../../../webgl/Util.js";class y{constructor(e,s){this._rctx=e,this._techniqueRepository=s,this._configuration=new o,this._passParameters=new r,this._oitParameters=new m,this._hudParameters=new h,this._overlayParameters=new _}destroy(){this._vao=e(this._vao)}compositeOIT(e,s,t,r){this._oitParameters.colorTexture=s,this._oitParameters.alphaTexture=t,this._oitParameters.frontFaceTexture=r;const i=this._rctx,o=this._techniqueRepository.acquire(c);i.bindTechnique(o,this._oitParameters,e);const a=this._ensureVAO();i.bindVAO(a),i.drawArrays(p.TRIANGLE_STRIP,0,l(a,"geometry")),o.release()}compositeHUD(e,s){this._hudParameters.texture=s;const t=this._rctx,r=this._techniqueRepository.acquire(n);t.bindTechnique(r,this._hudParameters,e);const i=this._ensureVAO();t.bindVAO(i),t.drawArrays(p.TRIANGLE_STRIP,0,l(i,"geometry")),r.release()}compositeOverlay(e,s,t,r){this._overlayParameters.texture=s,this._overlayParameters.opacity=t,this._overlayParameters.overlayIndex=r;const i=this._rctx,o=this._techniqueRepository.acquire(u);i.bindTechnique(o,this._overlayParameters,e);const a=this._ensureVAO();i.bindVAO(a),i.drawArrays(p.TRIANGLE_STRIP,0,l(a,"geometry")),o.release()}composite(e,s,t=a.None,r=1){const o=this._rctx;this._configuration.alphaMode=t,this._configuration.hasOpacityFactor=1!==r,this._passParameters.texture=s,this._passParameters.opacity=r;const h=this._techniqueRepository.acquire(i,this._configuration);o.bindTechnique(h,this._passParameters,e);const n=this._ensureVAO();o.bindVAO(n),o.drawArrays(p.TRIANGLE_STRIP,0,l(n,"geometry")),h.release()}_ensureVAO(){return s(this._vao)&&(this._vao=t(this._rctx)),this._vao}}export{y as default};