/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["require","exports","../../../chunks/_rollupPluginBabelHelpers","../../../chunks/tslib.es6","../../../chunks/vec3f64","./BlendModeTechniqueConfiguration","../webgl-engine/core/shaderLibrary/output/BlendOptions","../webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl","../../../chunks/BlendLayers.glsl","../webgl-engine/core/shaderTechnique/ReloadableShaderModule","../webgl-engine/core/shaderTechnique/ShaderTechnique","../webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration","../webgl-engine/lib/DefaultVertexAttributeLocations","../webgl-engine/lib/Program","../../webgl/enums","../../webgl/renderState"],(function(e,r,n,t,i,o,a,l,u,s,d,c,p,h,g,b){"use strict";let y=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).opacity=1,r.baseOpacity=1,r.texture=null,r.fboTexture=null,r.blendMode=a.LayerBlendMode.Normal,r.backgroundColor=i.ZEROS,r}return n._inheritsLoose(r,e),r}(l.TileCompositePassParameters),f=function(e){function r(){return e.apply(this,arguments)||this}n._inheritsLoose(r,e);var t=r.prototype;return t.initializeProgram=function(e){const n=r.shader.get().build(this.configuration);return new h.Program(e.rctx,n,p.Default3D)},t.initializePipeline=function(){return b.makePipelineState({blending:b.simpleBlendingParams(g.BlendFactor.ONE,g.BlendFactor.ONE_MINUS_SRC_ALPHA),colorWrite:b.defaultColorWriteParams})},r}(d.ShaderTechnique);f.shader=new s.ReloadableShaderModule(u.BlendLayers,(()=>new Promise(((r,n)=>e(["../webgl-engine/core/shaderLibrary/util/BlendLayers.glsl"],r,n)))));let m=function(e){function r(){var r;return(r=e.apply(this,arguments)||this).output=u.BlendLayersOutput.Composite,r.baseOpacityMode=u.BaseOpacityMode.One,r.premultipliedSource=!1,r}return n._inheritsLoose(r,e),r}(o.BlendModeTechniqueConfiguration);t.__decorate([c.parameter({count:u.BlendLayersOutput.COUNT})],m.prototype,"output",void 0),t.__decorate([c.parameter({count:u.BaseOpacityMode.COUNT})],m.prototype,"baseOpacityMode",void 0),t.__decorate([c.parameter()],m.prototype,"premultipliedSource",void 0),r.BlendLayersPassParameters=y,r.BlendLayersTechnique=f,r.BlendLayersTechniqueConfiguration=m,Object.defineProperties(r,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
