@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
6 lines (5 loc) • 1.76 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{C as i}from"../../../../chunks/Compositing.glsl.js";import{CompositingTechnique as t}from"../shaders/CompositingTechnique.js";import{CompositingTechniqueConfiguration as s,BlitMode as e}from"../shaders/CompositingTechniqueConfiguration.js";import{H as o}from"../../../../chunks/HUDCompositing.glsl.js";import{HUDCompositingTechnique as h}from"../shaders/HUDCompositingTechnique.js";class r{constructor(r,c){this._rctx=r,this._techniques=c,this._configuration=new s,this._passParameters=new i,this._hudParameters=new o,this._configuration.blitMode=e.PremultipliedAlpha,this._techniques.precompile(t,this._configuration),this._configuration.hasOpacityFactor=!0,this._techniques.precompile(t,this._configuration),this._configuration.hasOpacityFactor=!1,this._configuration.blitMode=e.Alpha,this._techniques.precompile(t,this._configuration),this._configuration.blitMode=e.Depth,this._techniques.precompile(t,this._configuration),this._techniques.precompile(h)}compositeHUD(i,t){this._hudParameters.texture=t;const s=this._techniques.get(h);this._rctx.bindTechnique(s,i,this._hudParameters),this._rctx.screen.draw()}compositePreMultipliedAlpha(i,t,s=1){this._composite(i,t,e.PremultipliedAlpha,s)}composite(i,t){this._composite(i,t,e.Alpha,1)}blitDepthToLinearDepth(i,t){this._composite(i,t,e.Depth,1)}_composite(i,s,e,o){this._configuration.blitMode=e,this._configuration.hasOpacityFactor=1!==o,this._passParameters.texture=s,this._passParameters.opacity=o;const h=this._techniques.get(t,this._configuration);this._rctx.bindTechnique(h,i,this._passParameters),this._rctx.screen.draw()}}export{r as default};