UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.42 kB
import e from"../../ViewState.js";import{Container as t}from"../../engine/Container.js";import{WGLDrawPhase as r}from"../../engine/webgl/enums.js";class i extends t{constructor(t){super(),this.layerView=t,this._childrenRenderParameters={context:null,pixelRatio:1,state:new e,stationary:!0,painter:null},this._name=this.constructor.name,this.requestRender=this.requestRender.bind(this)}doRender(e){if(e.drawPhase!==r.MAP)return;const t=window.devicePixelRatio,{stationary:i,context:a,painter:n,profiler:s}=e,o=this._childrenRenderParameters;o.context=a.gl,o.state.copy(e.state),o.state.pixelRatio=t,o.stationary=i,o.painter=n;const d=this.createRenderParams(e);n.beforeRenderLayer(d,this.clips?255:0,d.globalOpacity),s.recordContainerStart(this._name);const l=a.getBoundFramebufferObject(),c=a.getViewport();a.resetState(),a.bindFramebuffer(l),a.setViewport(c.x,c.y,c.width,c.height),this.layerView._renderTarget.framebuffer=l.glName,this.layerView._renderTarget.viewport[0]=c.x,this.layerView._renderTarget.viewport[1]=c.y,this.layerView._renderTarget.viewport[2]=c.width,this.layerView._renderTarget.viewport[3]=c.height,this.layerView.render(o),a.enforceState(),n.compositeLayer(d,d.globalOpacity),s.recordContainerEnd()}createRenderParams(e){return{...e,blendMode:this.blendMode,effects:this.computedEffects,globalOpacity:e.globalOpacity*this.opacity,inFadeTransition:this.inFadeTransition}}}export{i as default};