import LayerRenderer from"../Layer.js";import WebGLHelper from"../../webgl/Helper.js";const WebGLWorkerMessageType={GENERATE_BUFFERS:"GENERATE_BUFFERS"};class WebGLLayerRenderer extends LayerRenderer{constructor(e,t){super(e);e=t||{};this.helper=new WebGLHelper({postProcesses:e.postProcesses,uniforms:e.uniforms})}disposeInternal(){this.helper.disposeInternal(),super.disposeInternal()}getShaderCompileErrors(){return this.helper.getShaderCompileErrors()}}const tmpArray_=[],bufferPositions_={vertexPosition:0,indexPosition:0};function writePointVertex(e,t,r,o,n){e[t+0]=r,e[t+1]=o,e[t+2]=n}function writePointFeatureToBuffers(t,r,e,o,n,s){var i=3+n,a=t[r+0],d=t[r+1];const l=tmpArray_;l.length=n;for(let e=0;e<l.length;e++)l[e]=t[r+2+e];let u=s?s.vertexPosition:0;n=s?s.indexPosition:0,s=u/i;return writePointVertex(e,u,a,d,0),l.length&&e.set(l,u+3),writePointVertex(e,u+=i,a,d,1),l.length&&e.set(l,u+3),writePointVertex(e,u+=i,a,d,2),l.length&&e.set(l,u+3),writePointVertex(e,u+=i,a,d,3),l.length&&e.set(l,u+3),u+=i,o[n++]=s,o[n++]=1+s,o[n++]=3+s,o[n++]=1+s,o[n++]=2+s,o[n++]=3+s,bufferPositions_.vertexPosition=u,bufferPositions_.indexPosition=n,bufferPositions_}function getBlankImageData(){const e=document.createElement("canvas"),t=e.getContext("2d").createImageData(1,1);return t.data[0]=t.data[1]=t.data[2]=t.data[3]=255,t}function colorEncodeId(e,t){const r=t||[];var t=256,o=255;return r[0]=Math.floor(e/t/t/t)/o,r[1]=Math.floor(e/t/t)%t/o,r[2]=Math.floor(e/t)%t/o,r[3]=e%t/o,r}function colorDecodeId(e){var t=0,r=256,o=255;return(t+=Math.round(e[0]*r*r*r*o))+Math.round(e[1]*r*r*o)+Math.round(e[2]*r*o)+Math.round(e[3]*o)}export default WebGLLayerRenderer;export{WebGLWorkerMessageType,writePointFeatureToBuffers,getBlankImageData,colorEncodeId,colorDecodeId};