function b(d,a){var c=this;F(this,b);a=a||{};"bmap"===a.mapType?this.map=new jl(d,a):"blank"===a.mapType?this.map=
new ll(d,a):"cesium"===a.mapType?this.map=new kl(d,a):"three"===a.mapType?this.map=new ml(d,a):(a.mapType="bmapgl",this.map=new il(d,a));this.map.type=a.mapType;this._dpr=window.devicePixelRatio;"bmapgl"===a.mapType&&(this._dpr=this.map.map.config.ratio);this.options=a||{};this.renderArr=[];(d=a.canvas)||(d=document.createElement("canvas"));this.canvas=d;this.gl=a.gl?a.gl:Qf(d,a);["OES_texture_float","OES_element_index_uint","WEBGL_color_buffer_float","EXT_float_blend"].forEach(function(a){c.gl.getExtension(a)});
this.changeSize();this.projectionMatrix=M.create(Float64Array);this.orthoMatrix=M.create(Float64Array);this.matrix=M.create(Float64Array);this.viewMatrix=M.create(Float64Array);this.pointToPixelMatrix=M.create(Float64Array);this.pixelToViewMatrix=M.create(Float64Array);this.fovy=35;this.fps=Math.min(a.fps,60)||60;this.renderTime=(new Date).valueOf();this._animation=this.animation.bind(this);this._update=this.update.bind(this);this.onInitialize(this.options.onInitialize);this.options.onRender&&this.renderArr.push(this.options.onRender);
this.stateManager=new Sh({gl:this.gl});this.pickFBO=new ya(this.gl);this.transferOptions={};this.bind()}
@PSEUDO_GATHER4*This texcoord has been offset by(-0.25,-0.125)in the vertex shader to*sample between edge,thus fetching four edges in a row.*Sampling with different offsets in each direction allows to disambiguate*which edges are active from the four fetched ones.