UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 1.54 kB
import{isSome as e}from"../../../../../core/maybe.js";import{TEXTURE_BINDING_BITMAP as t}from"../definitions.js";import{createProgramDescriptor as r}from"../Utils.js";import s from"./WGLBrush.js";import{BlendFactor as o,CompareFunction as n,PrimitiveType as a,DataType as i}from"../../../../webgl/enums.js";const c=()=>r("overlay",{geometry:[{location:0,name:"a_pos",count:2,type:i.FLOAT}],tex:[{location:1,name:"a_uv",count:2,type:i.UNSIGNED_SHORT}]});class m extends s{constructor(){super(...arguments),this._desc={vsPath:"overlay/overlay",fsPath:"overlay/overlay",attributes:new Map([["a_pos",0],["a_uv",1]])}}dispose(){}prepareState({context:e}){e.setBlendingEnabled(!0),e.setColorMask(!0,!0,!0,!0),e.setBlendFunctionSeparate(o.ONE,o.ONE_MINUS_SRC_ALPHA,o.ONE,o.ONE_MINUS_SRC_ALPHA),e.setStencilWriteMask(0),e.setStencilTestEnabled(!0),e.setStencilFunction(n.GREATER,255,255)}draw(r,s){const{context:o,painter:n,requestRender:i,allowDelayedRender:m}=r;if(!s.isReady)return;const{computedOpacity:u,dvsMat3:d,isWrapAround:l,perspectiveTransform:p,texture:f}=s;r.timeline.begin(this.name);const _=n.materialManager.getProgram(this._desc);if(m&&e(i)&&!_.compiled)return void i();const v=c(),y=s.getVAO(o,v.bufferLayouts,v.attributes);if(!y)return;o.bindVAO(y),o.useProgram(_),o.bindTexture(f,t),_.setUniformMatrix3fv("u_dvsMat3",d),_.setUniform1i("u_texture",t),_.setUniform1f("u_opacity",u),_.setUniform2fv("u_perspective",p);const A=l?10:4;o.drawArrays(a.TRIANGLE_STRIP,0,A),o.bindVAO(),r.timeline.end(this.name)}}export{m as default};