UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

6 lines (5 loc) 1.17 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{create as e}from"../../../geometry/support/aaBoundingRect.js";import{BitmapTile as i}from"./BitmapTile.js";import{WGLDrawPhase as t}from"./webgl/enums.js";import n from"./webgl/TileContainer.js";import{BitmapTechnique as r}from"./webgl/shaderGraph/techniques/bitmap/BitmapTechnique.js";class s extends n{constructor(){super(...arguments),this._bitmapTechnique=null}get requiresDedicatedFBO(){return this.children.some((e=>"additive"===e.bitmap.blendFunction))}createTile(t){const n=this.tileInfoView.getTileBounds(e(),t),r=this.tileInfoView.getTileResolution(t.level),[s,o]=this.tileInfoView.tileInfo.size;return new i(t,r,n[0],n[3],s,o)}onAttach(){super.onAttach(),this._bitmapTechnique=new r}onDetach(){super.onDetach(),this._bitmapTechnique?.shutdown(),this._bitmapTechnique=null}renderChildren(e){if(super.renderChildren(e),!this.visible||e.drawPhase!==t.MAP||null==this._bitmapTechnique)return;const i=this.children.map((e=>e.bitmap));this._bitmapTechnique.render(e,{bitmaps:i})}}export{s as BitmapTileContainer};