UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.17 kB
import{disposeMaybe as e}from"../../../../../../core/maybe.js";import{TextureSamplingMode as t,TextureType as r,PixelFormat as s,PixelType as i,TextureWrapMode as a}from"../../../../../webgl/enums.js";import{Texture as l}from"../../../../../webgl/Texture.js";class o{constructor(){this._size=[0,0],this._layerFBOTexture=null}dispose(){this._layerFBOTexture=e(this._layerFBOTexture)}draw(e,r,s){const{width:i,height:a}=r;this._createOrResizeResources(e,i,a);const{context:l,painter:o}=e,{amount:T}=s,h=l.gl,n=this._layerFBOTexture;l.bindFramebuffer(r),r.copyToTexture(0,0,i,a,0,0,n),l.setBlendingEnabled(!0),l.setStencilTestEnabled(!1),l.setDepthTestEnabled(!1),l.setClearColor(0,0,0,0),l.clear(h.COLOR_BUFFER_BIT),o.blitTexture(l,n,t.NEAREST,T)}_createOrResizeResources(e,o,T){const{context:h}=e;this._layerFBOTexture&&this._size[0]===o&&this._size[1]===T||(this._size[0]=o,this._size[1]=T,this._layerFBOTexture?this._layerFBOTexture.resize(o,T):this._layerFBOTexture=new l(h,{target:r.TEXTURE_2D,pixelFormat:s.RGBA,internalFormat:s.RGBA,dataType:i.UNSIGNED_BYTE,wrapMode:a.CLAMP_TO_EDGE,samplingMode:t.NEAREST,flipped:!1,width:o,height:T}))}}export{o as Opacity};