UNPKG

@arcgis/core

Version:

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

6 lines (5 loc) 1.56 kB
/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.33/esri/copyright.txt for details. */ import{disposeMaybe as r}from"../../../../core/maybe.js";import{PosTex2b as t}from"./DefaultVertexAttributeLayouts.js";import{bitBlit as e}from"./shaders/BitBlitPrograms.js";import{BufferObject as i}from"../../../webgl/BufferObject.js";import{BlendFactor as s,PrimitiveType as a,Usage as o}from"../../../webgl/enums.js";import{createProgram as m}from"../../../webgl/ProgramTemplate.js";import{VertexArrayObject as n}from"../../../webgl/VertexArrayObject.js";class _{constructor(){this._initialized=!1}dispose(){this._program=r(this._program),this._vertexArrayObject=r(this._vertexArrayObject)}render(r,t,e,i){r&&(this._initialized||this._initialize(r),r.setBlendFunctionSeparate(s.ONE,s.ONE_MINUS_SRC_ALPHA,s.ONE,s.ONE_MINUS_SRC_ALPHA),r.bindVAO(this._vertexArrayObject),r.useProgram(this._program),t.setSamplingMode(e),r.bindTexture(t,0),this._program.setUniform1i("u_tex",0),this._program.setUniform1f("u_opacity",i),r.drawArrays(a.TRIANGLE_STRIP,0,4),r.bindTexture(null,0),r.bindVAO())}_initialize(r){if(this._initialized)return!0;const s=m(r,e);if(!s)return!1;const a=new Int8Array(16);a[0]=-1,a[1]=-1,a[2]=0,a[3]=0,a[4]=1,a[5]=-1,a[6]=1,a[7]=0,a[8]=-1,a[9]=1,a[10]=0,a[11]=1,a[12]=1,a[13]=1,a[14]=1,a[15]=1;const _=e.attributes,p=new n(r,_,t,new Map([["geometry",i.createVertex(r,o.STATIC_DRAW,a)]]));return this._program=s,this._vertexArrayObject=p,this._initialized=!0,!0}}export{_ as BitBlitRenderer};