UNPKG

regl-shape

Version:
42 lines (41 loc) 1.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateDashTextureAndGetLength = void 0; const dashMult = 2; const defaultDashData = new Uint8Array(8).fill(255); function updateDashTextureAndGetLength(texture, dashes) { let dashLength = 0; let dashData = null; if (dashes.length < 2) { dashLength = 1; dashData = defaultDashData; } else { dashLength = 0; for (let i = 0; i < dashes.length; ++i) { dashLength += dashes[i]; } dashData = new Uint8Array(dashLength * dashMult); let ptr = 0; let fillColor = 255; // repeat texture two times to provide smooth 0-step for (let k = 0; k < 2; k++) { for (let i = 0; i < dashes.length; ++i) { for (let j = 0, l = dashes[i] * dashMult * 0.5; j < l; ++j) { dashData[ptr++] = fillColor; } fillColor ^= 255; } } } texture({ channels: 1, data: dashData, width: dashData.length, height: 1, mag: "linear", min: "linear", }); return dashLength; } exports.updateDashTextureAndGetLength = updateDashTextureAndGetLength;