/*
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
*/
define(["exports","../../../../../chunks/_rollupPluginBabelHelpers","../../../../../core/maybe","../../../../webgl/enums"],(function(i,t,e,n){"use strict";let r=function(){function i(i,t,e){this.release=e,t&&(this.initializeConfiguration(i,t),this._configuration=t.snapshot()),this._program=this.initializeProgram(i),this._pipeline=this.initializePipeline(i.rctx.capabilities)}var r=i.prototype;return r.destroy=function(){this._program=e.disposeMaybe(this._program),this._pipeline=this._configuration=null},r.reload=function(i){e.disposeMaybe(this._program),this._program=this.initializeProgram(i),this._pipeline=this.initializePipeline(i.rctx.capabilities)},r.bindPass=function(i,t){this.program.bindPass(i,t)},r.bindDraw=function(i,t){this.program.bindDraw(i,t),this.program.rebindTextures()},r.bindPipelineState=function(i,t=null,e){i.setPipelineState(this.getPipelineState(t,e))},r.ensureAttributeLocations=function(i){this.program.assertCompatibleVertexAttributeLocations(i)},r.getPipelineState=function(i,t){return this._pipeline},r.initializeConfiguration=function(i,t){},t._createClass(i,[{key:"program",get:function(){return this._program}},{key:"compiled",get:function(){return this.program.isCompiled}},{key:"key",get:function(){return this._configuration.key}},{key:"configuration",get:function(){return this._configuration}},{key:"primitiveType",get:function(){return n.PrimitiveType.TRIANGLES}}]),i}();i.ShaderTechnique=r,Object.defineProperties(i,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
