/*
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","./DisjointTimerQuery","./DrawBuffers","./Instancing","./load","./LoseContext","./VertexArrayObjects"],(function(e,t,i,s,r,n,o,a){"use strict";let l=function(){function e(e,t){this.gl=e,this._depthTexture=null,this._standardDerivatives=null,this._shaderTextureLOD=null,this._fragDepth=null,this._textureFloatLinear=null,this._disabledExtensions=t.disabledExtensions||{},this._debugWebGLExtensions=t.debugWebGLExtensions||{}}return e.prototype.enable=function(e){return this[e]},t._createClass(e,[{key:"drawBuffers",get:function(){return this._drawBuffers||(this._drawBuffers=s.load(this.gl,this._disabledExtensions)),this._drawBuffers}},{key:"instancing",get:function(){return this._instancing||(this._instancing=r.load(this.gl)),this._instancing}},{key:"vao",get:function(){return this._vertexArrayObject||(this._vertexArrayObject=a.load(this.gl,this._disabledExtensions)),this._vertexArrayObject}},{key:"compressedTextureETC",get:function(){return this._compressedTextureETC||(this._compressedTextureETC=n.loadCompressedTextureETC(this.gl,this._disabledExtensions)),this._compressedTextureETC}},{key:"compressedTextureS3TC",get:function(){return this._compressedTextureS3TC||(this._compressedTextureS3TC=n.loadCompressedTextureS3TC(this.gl,this._disabledExtensions)),this._compressedTextureS3TC}},{key:"textureFilterAnisotropic",get:function(){return this._textureFilterAnisotropic||(this._textureFilterAnisotropic=n.loadTextureFilterAnisotropicCapability(this.gl,this._disabledExtensions)),this._textureFilterAnisotropic}},{key:"disjointTimerQuery",get:function(){return this._disjointTimerQuery||(this._disjointTimerQuery=i.createDisjointTimerQuery(this.gl,this._disabledExtensions)),this._disjointTimerQuery}},{key:"textureFloat",get:function(){return this._textureFloat||(this._textureFloat=n.loadTextureFloat(this.gl,this._disabledExtensions)),this._textureFloat}},{key:"colorBufferFloat",get:function(){return this._colorBufferFloat||(this._colorBufferFloat=n.loadColorBufferFloat(this.gl,this._disabledExtensions)),this._colorBufferFloat}},{key:"blendMinMax",get:function(){return this._minMaxBlending||(this._minMaxBlending=n.loadMinMaxBlending(this.gl,this._disabledExtensions)),this._minMaxBlending}},{key:"depthTexture",get:function(){return null===this._depthTexture&&(this._depthTexture=n.loadBooleanExtension(this.gl,this._disabledExtensions,"depthTexture",!0,["WEBGL_depth_texture","MOZ_WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"])),this._depthTexture}},{key:"standardDerivatives",get:function(){return null===this._standardDerivatives&&(this._standardDerivatives=n.loadBooleanExtension(this.gl,this._disabledExtensions,"standardDerivatives",!0,["OES_standard_derivatives"])),this._standardDerivatives}},{key:"shaderTextureLOD",get:function(){return null===this._shaderTextureLOD&&(this._shaderTextureLOD=n.loadBooleanExtension(this.gl,this._disabledExtensions,"shaderTextureLOD",!0,["EXT_shader_texture_lod"])),this._shaderTextureLOD}},{key:"fragDepth",get:function(){return null===this._fragDepth&&(this._fragDepth=n.loadBooleanExtension(this.gl,this._disabledExtensions,"fragDepth",!0,["EXT_frag_depth"])),this._fragDepth}},{key:"loseContext",get:function(){return this._loseContext||(this._loseContext=o.load(this.gl,this._debugWebGLExtensions)),this._loseContext}},{key:"textureNorm16",get:function(){return this._textureNorm16||(this._textureNorm16=n.loadTextureNorm16(this.gl,this._disabledExtensions)),this._textureNorm16}},{key:"textureFloatLinear",get:function(){return null===this._textureFloatLinear&&(this._textureFloatLinear=n.loadBooleanExtension(this.gl,this._disabledExtensions,"textureFloatLinear",!1,["OES_texture_float_linear"])),this._textureFloatLinear}}]),e}();e.Capabilities=l,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
