UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.51 kB
import{nullifyNonNullableForDispose as e}from"../../../../../../core/maybe.js";import{TextureType as s,PixelFormat as r,PixelType as t,TextureWrapMode as i,TextureSamplingMode as h,TargetType as o,DepthStencilTargetType as u}from"../../../../../webgl/enums.js";import{FramebufferObject as d}from"../../../../../webgl/FramebufferObject.js";import{Texture as a}from"../../../../../webgl/Texture.js";function l(e,l,_){const c=new a(e,{target:s.TEXTURE_2D,pixelFormat:r.RGBA,dataType:t.UNSIGNED_BYTE,wrapMode:i.CLAMP_TO_EDGE,width:l,height:_,samplingMode:h.LINEAR});return[c,new d(e,{colorTarget:o.TEXTURE,depthStencilTarget:u.STENCIL_RENDER_BUFFER},c)]}class _{constructor(){this._width=void 0,this._height=void 0,this._resources=null}dispose(){this._resources&&(this._resources.sharedBlur1Tex.dispose(),this._resources.sharedBlur1Fbo.dispose(),this._resources.sharedBlur2Tex.dispose(),this._resources.sharedBlur2Fbo.dispose(),this._resources=e(this._resources))}_initialize(e,s,r){this._width=s,this._height=r;const[t,i]=l(e,s,r),[h,o]=l(e,s,r);this._resources={sharedBlur1Tex:t,sharedBlur1Fbo:i,sharedBlur2Tex:h,sharedBlur2Fbo:o}}setup(e,s,r){!this._resources||this._width===s&&this._height===r||this.dispose(),this._resources||this._initialize(e,s,r)}get sharedBlur1Tex(){return this._resources.sharedBlur1Tex}get sharedBlur1Fbo(){return this._resources.sharedBlur1Fbo}get sharedBlur2Tex(){return this._resources.sharedBlur2Tex}get sharedBlur2Fbo(){return this._resources.sharedBlur2Fbo}}export{_ as default};