UNPKG

@arcgis/core

Version:

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

3 lines (2 loc) 1.38 kB
/* COPYRIGHT Esri - https://js.arcgis.com/5.0.19/LICENSE.txt */ import{fromValues as e}from"../../../../../core/libs/gl-matrix-2/factories/vec4f32.js";import{createProgramDescriptor as r}from"../Utils.js";import t from"./WGLBrush.js";import{background as o}from"../shaders/BackgroundPrograms.js";import{PrimitiveType as s,DataType as i}from"../../../../webgl/enums.js";import{createProgram as a}from"../../../../webgl/ProgramTemplate.js";const n=()=>r("clip",[{location:0,name:"a_pos",count:2,type:i.SHORT}]);class l extends t{constructor(){super(...arguments),this._color=e(0,1,0,1)}dispose(){this._program&&this._program.dispose()}prepareState({context:e}){e.setStencilTestEnabled(!0),e.setBlendingEnabled(!1),e.setFaceCullingEnabled(!1),e.setColorMask(!1,!1,!1,!1),e.setStencilOp(7680,7680,7681),e.setStencilWriteMask(255),e.setStencilFunction(519,0,255)}draw(e,r){const{context:t,state:l,requestRender:m,allowDelayedRender:p}=e,c=n(),d=r.getVAO(t,l,c.bufferLayout);null!=d.indexBuffer&&(this._program??=a(t,o,d.locations),!p||null==m||this._program.compiled?(t.useProgram(this._program),this._program.setUniform2fv("u_coord_range",[1,1]),this._program.setUniform4fv("u_color",this._color),this._program.setUniformMatrix3fv("u_dvsMat3",l.displayMat3),t.bindVAO(d),t.drawElements(s.TRIANGLES,d.indexBuffer.size,i.UNSIGNED_INT,0),t.bindVAO(null)):m())}}export{l as default};