@deck.gl/aggregation-layers 9.0.0-alpha.3 → 9.0.0-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dist.dev.js +235 -232
- package/dist.min.js +55 -55
- package/package.json +2 -2
- package/LICENSE +0 -19
package/dist/dist.dev.js
CHANGED
|
@@ -758,21 +758,21 @@ var __exports__ = (() => {
|
|
|
758
758
|
return GL2;
|
|
759
759
|
}({});
|
|
760
760
|
|
|
761
|
-
//
|
|
761
|
+
// ../../../luma.gl/modules/engine/dist/model/model.js
|
|
762
762
|
var import_core3 = __toESM(require_core2(), 1);
|
|
763
763
|
var import_core4 = __toESM(require_core2(), 1);
|
|
764
764
|
|
|
765
|
-
//
|
|
765
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/glsl-utils/highlight.js
|
|
766
766
|
var glsl = (x) => `${x}`;
|
|
767
767
|
|
|
768
|
-
//
|
|
768
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/utils/assert.js
|
|
769
769
|
function assert(condition, message2) {
|
|
770
770
|
if (!condition) {
|
|
771
771
|
throw new Error(message2 || "shadertools: assertion failed.");
|
|
772
772
|
}
|
|
773
773
|
}
|
|
774
774
|
|
|
775
|
-
//
|
|
775
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/filters/prop-types.js
|
|
776
776
|
var DEFAULT_PROP_VALIDATORS = {
|
|
777
777
|
number: {
|
|
778
778
|
type: "number",
|
|
@@ -853,7 +853,7 @@ var __exports__ = (() => {
|
|
|
853
853
|
return typeof value;
|
|
854
854
|
}
|
|
855
855
|
|
|
856
|
-
//
|
|
856
|
+
// ../../../luma.gl/modules/shadertools/dist/module-injectors.js
|
|
857
857
|
var MODULE_INJECTORS_VS = glsl`\
|
|
858
858
|
#ifdef MODULE_LOGDEPTH
|
|
859
859
|
logdepth_adjustPosition(gl_Position);
|
|
@@ -882,7 +882,7 @@ var __exports__ = (() => {
|
|
|
882
882
|
#endif
|
|
883
883
|
`;
|
|
884
884
|
|
|
885
|
-
//
|
|
885
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-assembly/shader-injections.js
|
|
886
886
|
var MODULE_INJECTORS = {
|
|
887
887
|
vertex: MODULE_INJECTORS_VS,
|
|
888
888
|
fragment: MODULE_INJECTORS_FS
|
|
@@ -974,7 +974,7 @@ var __exports__ = (() => {
|
|
|
974
974
|
return source;
|
|
975
975
|
}
|
|
976
976
|
|
|
977
|
-
//
|
|
977
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-module/shader-module-instance.js
|
|
978
978
|
var ShaderModuleInstance = class {
|
|
979
979
|
static instantiateModules(modules) {
|
|
980
980
|
return modules.map((module) => {
|
|
@@ -1004,7 +1004,7 @@ var __exports__ = (() => {
|
|
|
1004
1004
|
vs,
|
|
1005
1005
|
fs,
|
|
1006
1006
|
dependencies = [],
|
|
1007
|
-
|
|
1007
|
+
uniformPropTypes = {},
|
|
1008
1008
|
getUniforms: getUniforms2,
|
|
1009
1009
|
deprecations = [],
|
|
1010
1010
|
defines = {},
|
|
@@ -1019,8 +1019,8 @@ var __exports__ = (() => {
|
|
|
1019
1019
|
this.deprecations = this._parseDeprecationDefinitions(deprecations);
|
|
1020
1020
|
this.defines = defines;
|
|
1021
1021
|
this.injections = normalizeInjections(inject);
|
|
1022
|
-
if (
|
|
1023
|
-
this.uniforms = makePropValidators(
|
|
1022
|
+
if (uniformPropTypes) {
|
|
1023
|
+
this.uniforms = makePropValidators(uniformPropTypes);
|
|
1024
1024
|
}
|
|
1025
1025
|
}
|
|
1026
1026
|
getModuleSource(stage) {
|
|
@@ -1092,7 +1092,7 @@ ${moduleSource}// END MODULE_${this.name}
|
|
|
1092
1092
|
}
|
|
1093
1093
|
};
|
|
1094
1094
|
|
|
1095
|
-
//
|
|
1095
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-assembly/resolve-modules.js
|
|
1096
1096
|
function resolveModules(modules) {
|
|
1097
1097
|
const instances = ShaderModuleInstance.instantiateModules(modules);
|
|
1098
1098
|
return getShaderDependencies(instances);
|
|
@@ -1136,7 +1136,7 @@ ${moduleSource}// END MODULE_${this.name}
|
|
|
1136
1136
|
}
|
|
1137
1137
|
}
|
|
1138
1138
|
|
|
1139
|
-
//
|
|
1139
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-assembly/platform-defines.js
|
|
1140
1140
|
function getPlatformShaderDefines(platformInfo) {
|
|
1141
1141
|
switch (platformInfo === null || platformInfo === void 0 ? void 0 : platformInfo.gpu.toLowerCase()) {
|
|
1142
1142
|
case "apple":
|
|
@@ -1236,7 +1236,7 @@ ${moduleSource}// END MODULE_${this.name}
|
|
|
1236
1236
|
return versionDefines;
|
|
1237
1237
|
}
|
|
1238
1238
|
|
|
1239
|
-
//
|
|
1239
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-transpiler/transpile-glsl-shader.js
|
|
1240
1240
|
function transpileGLSLShader(source, targetGLSLVersion, stage) {
|
|
1241
1241
|
switch (targetGLSLVersion) {
|
|
1242
1242
|
case 300:
|
|
@@ -1302,7 +1302,7 @@ ${match}`).replace(new RegExp(`\\b${ES100_FRAGMENT_OUTPUT_NAME}\\b`, "g"), outpu
|
|
|
1302
1302
|
return new RegExp(`\\b${qualifier}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`, "g");
|
|
1303
1303
|
}
|
|
1304
1304
|
|
|
1305
|
-
//
|
|
1305
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-assembly/shader-hooks.js
|
|
1306
1306
|
function getShaderHooks(hookFunctions, hookInjections) {
|
|
1307
1307
|
let result = "";
|
|
1308
1308
|
for (const hookName in hookFunctions) {
|
|
@@ -1362,7 +1362,7 @@ ${match}`).replace(new RegExp(`\\b${ES100_FRAGMENT_OUTPUT_NAME}\\b`, "g"), outpu
|
|
|
1362
1362
|
return result;
|
|
1363
1363
|
}
|
|
1364
1364
|
|
|
1365
|
-
//
|
|
1365
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-assembly/assemble-shaders.js
|
|
1366
1366
|
var INJECT_SHADER_DECLARATIONS = `
|
|
1367
1367
|
|
|
1368
1368
|
${DECLARATION_INJECT_MARKER}
|
|
@@ -1634,7 +1634,7 @@ ${stage === "fragment" ? FRAGMENT_SHADER_PROLOGUE : ""}
|
|
|
1634
1634
|
return sourceText;
|
|
1635
1635
|
}
|
|
1636
1636
|
|
|
1637
|
-
//
|
|
1637
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-assembly/select-shaders.js
|
|
1638
1638
|
function selectShaders(platformInfo, props) {
|
|
1639
1639
|
if (!props.vs) {
|
|
1640
1640
|
throw new Error("no vertex shader");
|
|
@@ -1668,7 +1668,7 @@ ${stage === "fragment" ? FRAGMENT_SHADER_PROLOGUE : ""}
|
|
|
1668
1668
|
}
|
|
1669
1669
|
}
|
|
1670
1670
|
|
|
1671
|
-
//
|
|
1671
|
+
// ../../../luma.gl/modules/shadertools/dist/lib/shader-assembler.js
|
|
1672
1672
|
var ShaderAssembler = class {
|
|
1673
1673
|
constructor() {
|
|
1674
1674
|
this._hookFunctions = [];
|
|
@@ -1731,216 +1731,7 @@ ${stage === "fragment" ? FRAGMENT_SHADER_PROLOGUE : ""}
|
|
|
1731
1731
|
};
|
|
1732
1732
|
ShaderAssembler.defaultShaderAssembler = void 0;
|
|
1733
1733
|
|
|
1734
|
-
//
|
|
1735
|
-
function fp64ify(a) {
|
|
1736
|
-
let out = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
1737
|
-
let startIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
|
|
1738
|
-
const hiPart = Math.fround(a);
|
|
1739
|
-
const loPart = a - hiPart;
|
|
1740
|
-
out[startIndex] = hiPart;
|
|
1741
|
-
out[startIndex + 1] = loPart;
|
|
1742
|
-
return out;
|
|
1743
|
-
}
|
|
1744
|
-
function fp64LowPart(a) {
|
|
1745
|
-
return a - Math.fround(a);
|
|
1746
|
-
}
|
|
1747
|
-
function fp64ifyMatrix4(matrix) {
|
|
1748
|
-
const matrixFP64 = new Float32Array(32);
|
|
1749
|
-
for (let i = 0; i < 4; ++i) {
|
|
1750
|
-
for (let j = 0; j < 4; ++j) {
|
|
1751
|
-
const index = i * 4 + j;
|
|
1752
|
-
fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
|
|
1753
|
-
}
|
|
1754
|
-
}
|
|
1755
|
-
return matrixFP64;
|
|
1756
|
-
}
|
|
1757
|
-
|
|
1758
|
-
// ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-arithmetic.glsl.js
|
|
1759
|
-
var fp64arithmeticShader = glsl`\
|
|
1760
|
-
uniform float ONE;
|
|
1761
|
-
|
|
1762
|
-
/*
|
|
1763
|
-
About LUMA_FP64_CODE_ELIMINATION_WORKAROUND
|
|
1764
|
-
|
|
1765
|
-
The purpose of this workaround is to prevent shader compilers from
|
|
1766
|
-
optimizing away necessary arithmetic operations by swapping their sequences
|
|
1767
|
-
or transform the equation to some 'equivalent' from.
|
|
1768
|
-
|
|
1769
|
-
The method is to multiply an artifical variable, ONE, which will be known to
|
|
1770
|
-
the compiler to be 1 only at runtime. The whole expression is then represented
|
|
1771
|
-
as a polynomial with respective to ONE. In the coefficients of all terms, only one a
|
|
1772
|
-
and one b should appear
|
|
1773
|
-
|
|
1774
|
-
err = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE
|
|
1775
|
-
*/
|
|
1776
|
-
|
|
1777
|
-
// Divide float number to high and low floats to extend fraction bits
|
|
1778
|
-
vec2 split(float a) {
|
|
1779
|
-
const float SPLIT = 4097.0;
|
|
1780
|
-
float t = a * SPLIT;
|
|
1781
|
-
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
1782
|
-
float a_hi = t * ONE - (t - a);
|
|
1783
|
-
float a_lo = a * ONE - a_hi;
|
|
1784
|
-
#else
|
|
1785
|
-
float a_hi = t - (t - a);
|
|
1786
|
-
float a_lo = a - a_hi;
|
|
1787
|
-
#endif
|
|
1788
|
-
return vec2(a_hi, a_lo);
|
|
1789
|
-
}
|
|
1790
|
-
|
|
1791
|
-
// Divide float number again when high float uses too many fraction bits
|
|
1792
|
-
vec2 split2(vec2 a) {
|
|
1793
|
-
vec2 b = split(a.x);
|
|
1794
|
-
b.y += a.y;
|
|
1795
|
-
return b;
|
|
1796
|
-
}
|
|
1797
|
-
|
|
1798
|
-
// Special sum operation when a > b
|
|
1799
|
-
vec2 quickTwoSum(float a, float b) {
|
|
1800
|
-
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
1801
|
-
float sum = (a + b) * ONE;
|
|
1802
|
-
float err = b - (sum - a) * ONE;
|
|
1803
|
-
#else
|
|
1804
|
-
float sum = a + b;
|
|
1805
|
-
float err = b - (sum - a);
|
|
1806
|
-
#endif
|
|
1807
|
-
return vec2(sum, err);
|
|
1808
|
-
}
|
|
1809
|
-
|
|
1810
|
-
// General sum operation
|
|
1811
|
-
vec2 twoSum(float a, float b) {
|
|
1812
|
-
float s = (a + b);
|
|
1813
|
-
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
1814
|
-
float v = (s * ONE - a) * ONE;
|
|
1815
|
-
float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);
|
|
1816
|
-
#else
|
|
1817
|
-
float v = s - a;
|
|
1818
|
-
float err = (a - (s - v)) + (b - v);
|
|
1819
|
-
#endif
|
|
1820
|
-
return vec2(s, err);
|
|
1821
|
-
}
|
|
1822
|
-
|
|
1823
|
-
vec2 twoSub(float a, float b) {
|
|
1824
|
-
float s = (a - b);
|
|
1825
|
-
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
1826
|
-
float v = (s * ONE - a) * ONE;
|
|
1827
|
-
float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);
|
|
1828
|
-
#else
|
|
1829
|
-
float v = s - a;
|
|
1830
|
-
float err = (a - (s - v)) - (b + v);
|
|
1831
|
-
#endif
|
|
1832
|
-
return vec2(s, err);
|
|
1833
|
-
}
|
|
1834
|
-
|
|
1835
|
-
vec2 twoSqr(float a) {
|
|
1836
|
-
float prod = a * a;
|
|
1837
|
-
vec2 a_fp64 = split(a);
|
|
1838
|
-
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
1839
|
-
float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *
|
|
1840
|
-
a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;
|
|
1841
|
-
#else
|
|
1842
|
-
float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;
|
|
1843
|
-
#endif
|
|
1844
|
-
return vec2(prod, err);
|
|
1845
|
-
}
|
|
1846
|
-
|
|
1847
|
-
vec2 twoProd(float a, float b) {
|
|
1848
|
-
float prod = a * b;
|
|
1849
|
-
vec2 a_fp64 = split(a);
|
|
1850
|
-
vec2 b_fp64 = split(b);
|
|
1851
|
-
float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +
|
|
1852
|
-
a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;
|
|
1853
|
-
return vec2(prod, err);
|
|
1854
|
-
}
|
|
1855
|
-
|
|
1856
|
-
vec2 sum_fp64(vec2 a, vec2 b) {
|
|
1857
|
-
vec2 s, t;
|
|
1858
|
-
s = twoSum(a.x, b.x);
|
|
1859
|
-
t = twoSum(a.y, b.y);
|
|
1860
|
-
s.y += t.x;
|
|
1861
|
-
s = quickTwoSum(s.x, s.y);
|
|
1862
|
-
s.y += t.y;
|
|
1863
|
-
s = quickTwoSum(s.x, s.y);
|
|
1864
|
-
return s;
|
|
1865
|
-
}
|
|
1866
|
-
|
|
1867
|
-
vec2 sub_fp64(vec2 a, vec2 b) {
|
|
1868
|
-
vec2 s, t;
|
|
1869
|
-
s = twoSub(a.x, b.x);
|
|
1870
|
-
t = twoSub(a.y, b.y);
|
|
1871
|
-
s.y += t.x;
|
|
1872
|
-
s = quickTwoSum(s.x, s.y);
|
|
1873
|
-
s.y += t.y;
|
|
1874
|
-
s = quickTwoSum(s.x, s.y);
|
|
1875
|
-
return s;
|
|
1876
|
-
}
|
|
1877
|
-
|
|
1878
|
-
vec2 mul_fp64(vec2 a, vec2 b) {
|
|
1879
|
-
vec2 prod = twoProd(a.x, b.x);
|
|
1880
|
-
// y component is for the error
|
|
1881
|
-
prod.y += a.x * b.y;
|
|
1882
|
-
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
1883
|
-
prod = split2(prod);
|
|
1884
|
-
#endif
|
|
1885
|
-
prod = quickTwoSum(prod.x, prod.y);
|
|
1886
|
-
prod.y += a.y * b.x;
|
|
1887
|
-
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
1888
|
-
prod = split2(prod);
|
|
1889
|
-
#endif
|
|
1890
|
-
prod = quickTwoSum(prod.x, prod.y);
|
|
1891
|
-
return prod;
|
|
1892
|
-
}
|
|
1893
|
-
|
|
1894
|
-
vec2 div_fp64(vec2 a, vec2 b) {
|
|
1895
|
-
float xn = 1.0 / b.x;
|
|
1896
|
-
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
1897
|
-
vec2 yn = mul_fp64(a, vec2(xn, 0));
|
|
1898
|
-
#else
|
|
1899
|
-
vec2 yn = a * xn;
|
|
1900
|
-
#endif
|
|
1901
|
-
float diff = (sub_fp64(a, mul_fp64(b, yn))).x;
|
|
1902
|
-
vec2 prod = twoProd(xn, diff);
|
|
1903
|
-
return sum_fp64(yn, prod);
|
|
1904
|
-
}
|
|
1905
|
-
|
|
1906
|
-
vec2 sqrt_fp64(vec2 a) {
|
|
1907
|
-
if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);
|
|
1908
|
-
if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);
|
|
1909
|
-
|
|
1910
|
-
float x = 1.0 / sqrt(a.x);
|
|
1911
|
-
float yn = a.x * x;
|
|
1912
|
-
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
1913
|
-
vec2 yn_sqr = twoSqr(yn) * ONE;
|
|
1914
|
-
#else
|
|
1915
|
-
vec2 yn_sqr = twoSqr(yn);
|
|
1916
|
-
#endif
|
|
1917
|
-
float diff = sub_fp64(a, yn_sqr).x;
|
|
1918
|
-
vec2 prod = twoProd(x * 0.5, diff);
|
|
1919
|
-
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
1920
|
-
return sum_fp64(split(yn), prod);
|
|
1921
|
-
#else
|
|
1922
|
-
return sum_fp64(vec2(yn, 0.0), prod);
|
|
1923
|
-
#endif
|
|
1924
|
-
}
|
|
1925
|
-
`;
|
|
1926
|
-
|
|
1927
|
-
// ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64.js
|
|
1928
|
-
var CONST_UNIFORMS = {
|
|
1929
|
-
ONE: 1
|
|
1930
|
-
};
|
|
1931
|
-
function getUniforms() {
|
|
1932
|
-
return CONST_UNIFORMS;
|
|
1933
|
-
}
|
|
1934
|
-
var fp64arithmetic = {
|
|
1935
|
-
name: "fp64-arithmetic",
|
|
1936
|
-
vs: fp64arithmeticShader,
|
|
1937
|
-
getUniforms,
|
|
1938
|
-
fp64ify,
|
|
1939
|
-
fp64LowPart,
|
|
1940
|
-
fp64ifyMatrix4
|
|
1941
|
-
};
|
|
1942
|
-
|
|
1943
|
-
// ../../node_modules/@luma.gl/engine/dist/geometry/gpu-geometry.js
|
|
1734
|
+
// ../../../luma.gl/modules/engine/dist/geometry/gpu-geometry.js
|
|
1944
1735
|
var import_core = __toESM(require_core2(), 1);
|
|
1945
1736
|
var GPUGeometry = class {
|
|
1946
1737
|
constructor(props) {
|
|
@@ -2043,7 +1834,7 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
2043
1834
|
};
|
|
2044
1835
|
}
|
|
2045
1836
|
|
|
2046
|
-
//
|
|
1837
|
+
// ../../../luma.gl/modules/engine/dist/lib/pipeline-factory.js
|
|
2047
1838
|
var import_core2 = __toESM(require_core2(), 1);
|
|
2048
1839
|
var PipelineFactory = class {
|
|
2049
1840
|
static getDefaultPipelineFactory(device) {
|
|
@@ -2137,7 +1928,7 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
2137
1928
|
fs: void 0
|
|
2138
1929
|
};
|
|
2139
1930
|
|
|
2140
|
-
//
|
|
1931
|
+
// ../../../luma.gl/modules/engine/dist/model/model.js
|
|
2141
1932
|
var Model = class {
|
|
2142
1933
|
constructor(device, props) {
|
|
2143
1934
|
this.device = void 0;
|
|
@@ -2409,7 +2200,7 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
2409
2200
|
return layouts;
|
|
2410
2201
|
}
|
|
2411
2202
|
|
|
2412
|
-
//
|
|
2203
|
+
// ../../../luma.gl/modules/engine/dist/transform/transform.js
|
|
2413
2204
|
var Transform = class {
|
|
2414
2205
|
static isSupported(device) {
|
|
2415
2206
|
return false;
|
|
@@ -2463,7 +2254,7 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
2463
2254
|
}
|
|
2464
2255
|
};
|
|
2465
2256
|
|
|
2466
|
-
//
|
|
2257
|
+
// ../../../luma.gl/modules/engine/dist/geometry/geometry.js
|
|
2467
2258
|
var import_core5 = __toESM(require_core2(), 1);
|
|
2468
2259
|
var Geometry = class {
|
|
2469
2260
|
constructor(props) {
|
|
@@ -2543,7 +2334,7 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
2543
2334
|
}
|
|
2544
2335
|
};
|
|
2545
2336
|
|
|
2546
|
-
//
|
|
2337
|
+
// ../../../luma.gl/modules/engine/dist/geometries/cube-geometry.js
|
|
2547
2338
|
var import_core6 = __toESM(require_core2(), 1);
|
|
2548
2339
|
var CubeGeometry = class extends Geometry {
|
|
2549
2340
|
constructor() {
|
|
@@ -2612,6 +2403,218 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
2612
2403
|
}
|
|
2613
2404
|
};
|
|
2614
2405
|
|
|
2406
|
+
// ../../node_modules/@luma.gl/shadertools/dist/lib/glsl-utils/highlight.js
|
|
2407
|
+
var glsl2 = (x) => `${x}`;
|
|
2408
|
+
|
|
2409
|
+
// ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-utils.js
|
|
2410
|
+
function fp64ify(a) {
|
|
2411
|
+
let out = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : [];
|
|
2412
|
+
let startIndex = arguments.length > 2 && arguments[2] !== void 0 ? arguments[2] : 0;
|
|
2413
|
+
const hiPart = Math.fround(a);
|
|
2414
|
+
const loPart = a - hiPart;
|
|
2415
|
+
out[startIndex] = hiPart;
|
|
2416
|
+
out[startIndex + 1] = loPart;
|
|
2417
|
+
return out;
|
|
2418
|
+
}
|
|
2419
|
+
function fp64LowPart(a) {
|
|
2420
|
+
return a - Math.fround(a);
|
|
2421
|
+
}
|
|
2422
|
+
function fp64ifyMatrix4(matrix) {
|
|
2423
|
+
const matrixFP64 = new Float32Array(32);
|
|
2424
|
+
for (let i = 0; i < 4; ++i) {
|
|
2425
|
+
for (let j = 0; j < 4; ++j) {
|
|
2426
|
+
const index = i * 4 + j;
|
|
2427
|
+
fp64ify(matrix[j * 4 + i], matrixFP64, index * 2);
|
|
2428
|
+
}
|
|
2429
|
+
}
|
|
2430
|
+
return matrixFP64;
|
|
2431
|
+
}
|
|
2432
|
+
|
|
2433
|
+
// ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64-arithmetic.glsl.js
|
|
2434
|
+
var fp64arithmeticShader = glsl2`\
|
|
2435
|
+
uniform float ONE;
|
|
2436
|
+
|
|
2437
|
+
/*
|
|
2438
|
+
About LUMA_FP64_CODE_ELIMINATION_WORKAROUND
|
|
2439
|
+
|
|
2440
|
+
The purpose of this workaround is to prevent shader compilers from
|
|
2441
|
+
optimizing away necessary arithmetic operations by swapping their sequences
|
|
2442
|
+
or transform the equation to some 'equivalent' from.
|
|
2443
|
+
|
|
2444
|
+
The method is to multiply an artifical variable, ONE, which will be known to
|
|
2445
|
+
the compiler to be 1 only at runtime. The whole expression is then represented
|
|
2446
|
+
as a polynomial with respective to ONE. In the coefficients of all terms, only one a
|
|
2447
|
+
and one b should appear
|
|
2448
|
+
|
|
2449
|
+
err = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE
|
|
2450
|
+
*/
|
|
2451
|
+
|
|
2452
|
+
// Divide float number to high and low floats to extend fraction bits
|
|
2453
|
+
vec2 split(float a) {
|
|
2454
|
+
const float SPLIT = 4097.0;
|
|
2455
|
+
float t = a * SPLIT;
|
|
2456
|
+
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
2457
|
+
float a_hi = t * ONE - (t - a);
|
|
2458
|
+
float a_lo = a * ONE - a_hi;
|
|
2459
|
+
#else
|
|
2460
|
+
float a_hi = t - (t - a);
|
|
2461
|
+
float a_lo = a - a_hi;
|
|
2462
|
+
#endif
|
|
2463
|
+
return vec2(a_hi, a_lo);
|
|
2464
|
+
}
|
|
2465
|
+
|
|
2466
|
+
// Divide float number again when high float uses too many fraction bits
|
|
2467
|
+
vec2 split2(vec2 a) {
|
|
2468
|
+
vec2 b = split(a.x);
|
|
2469
|
+
b.y += a.y;
|
|
2470
|
+
return b;
|
|
2471
|
+
}
|
|
2472
|
+
|
|
2473
|
+
// Special sum operation when a > b
|
|
2474
|
+
vec2 quickTwoSum(float a, float b) {
|
|
2475
|
+
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
2476
|
+
float sum = (a + b) * ONE;
|
|
2477
|
+
float err = b - (sum - a) * ONE;
|
|
2478
|
+
#else
|
|
2479
|
+
float sum = a + b;
|
|
2480
|
+
float err = b - (sum - a);
|
|
2481
|
+
#endif
|
|
2482
|
+
return vec2(sum, err);
|
|
2483
|
+
}
|
|
2484
|
+
|
|
2485
|
+
// General sum operation
|
|
2486
|
+
vec2 twoSum(float a, float b) {
|
|
2487
|
+
float s = (a + b);
|
|
2488
|
+
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
2489
|
+
float v = (s * ONE - a) * ONE;
|
|
2490
|
+
float err = (a - (s - v) * ONE) * ONE * ONE * ONE + (b - v);
|
|
2491
|
+
#else
|
|
2492
|
+
float v = s - a;
|
|
2493
|
+
float err = (a - (s - v)) + (b - v);
|
|
2494
|
+
#endif
|
|
2495
|
+
return vec2(s, err);
|
|
2496
|
+
}
|
|
2497
|
+
|
|
2498
|
+
vec2 twoSub(float a, float b) {
|
|
2499
|
+
float s = (a - b);
|
|
2500
|
+
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
2501
|
+
float v = (s * ONE - a) * ONE;
|
|
2502
|
+
float err = (a - (s - v) * ONE) * ONE * ONE * ONE - (b + v);
|
|
2503
|
+
#else
|
|
2504
|
+
float v = s - a;
|
|
2505
|
+
float err = (a - (s - v)) - (b + v);
|
|
2506
|
+
#endif
|
|
2507
|
+
return vec2(s, err);
|
|
2508
|
+
}
|
|
2509
|
+
|
|
2510
|
+
vec2 twoSqr(float a) {
|
|
2511
|
+
float prod = a * a;
|
|
2512
|
+
vec2 a_fp64 = split(a);
|
|
2513
|
+
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
2514
|
+
float err = ((a_fp64.x * a_fp64.x - prod) * ONE + 2.0 * a_fp64.x *
|
|
2515
|
+
a_fp64.y * ONE * ONE) + a_fp64.y * a_fp64.y * ONE * ONE * ONE;
|
|
2516
|
+
#else
|
|
2517
|
+
float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y;
|
|
2518
|
+
#endif
|
|
2519
|
+
return vec2(prod, err);
|
|
2520
|
+
}
|
|
2521
|
+
|
|
2522
|
+
vec2 twoProd(float a, float b) {
|
|
2523
|
+
float prod = a * b;
|
|
2524
|
+
vec2 a_fp64 = split(a);
|
|
2525
|
+
vec2 b_fp64 = split(b);
|
|
2526
|
+
float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y +
|
|
2527
|
+
a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y;
|
|
2528
|
+
return vec2(prod, err);
|
|
2529
|
+
}
|
|
2530
|
+
|
|
2531
|
+
vec2 sum_fp64(vec2 a, vec2 b) {
|
|
2532
|
+
vec2 s, t;
|
|
2533
|
+
s = twoSum(a.x, b.x);
|
|
2534
|
+
t = twoSum(a.y, b.y);
|
|
2535
|
+
s.y += t.x;
|
|
2536
|
+
s = quickTwoSum(s.x, s.y);
|
|
2537
|
+
s.y += t.y;
|
|
2538
|
+
s = quickTwoSum(s.x, s.y);
|
|
2539
|
+
return s;
|
|
2540
|
+
}
|
|
2541
|
+
|
|
2542
|
+
vec2 sub_fp64(vec2 a, vec2 b) {
|
|
2543
|
+
vec2 s, t;
|
|
2544
|
+
s = twoSub(a.x, b.x);
|
|
2545
|
+
t = twoSub(a.y, b.y);
|
|
2546
|
+
s.y += t.x;
|
|
2547
|
+
s = quickTwoSum(s.x, s.y);
|
|
2548
|
+
s.y += t.y;
|
|
2549
|
+
s = quickTwoSum(s.x, s.y);
|
|
2550
|
+
return s;
|
|
2551
|
+
}
|
|
2552
|
+
|
|
2553
|
+
vec2 mul_fp64(vec2 a, vec2 b) {
|
|
2554
|
+
vec2 prod = twoProd(a.x, b.x);
|
|
2555
|
+
// y component is for the error
|
|
2556
|
+
prod.y += a.x * b.y;
|
|
2557
|
+
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
2558
|
+
prod = split2(prod);
|
|
2559
|
+
#endif
|
|
2560
|
+
prod = quickTwoSum(prod.x, prod.y);
|
|
2561
|
+
prod.y += a.y * b.x;
|
|
2562
|
+
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
2563
|
+
prod = split2(prod);
|
|
2564
|
+
#endif
|
|
2565
|
+
prod = quickTwoSum(prod.x, prod.y);
|
|
2566
|
+
return prod;
|
|
2567
|
+
}
|
|
2568
|
+
|
|
2569
|
+
vec2 div_fp64(vec2 a, vec2 b) {
|
|
2570
|
+
float xn = 1.0 / b.x;
|
|
2571
|
+
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
2572
|
+
vec2 yn = mul_fp64(a, vec2(xn, 0));
|
|
2573
|
+
#else
|
|
2574
|
+
vec2 yn = a * xn;
|
|
2575
|
+
#endif
|
|
2576
|
+
float diff = (sub_fp64(a, mul_fp64(b, yn))).x;
|
|
2577
|
+
vec2 prod = twoProd(xn, diff);
|
|
2578
|
+
return sum_fp64(yn, prod);
|
|
2579
|
+
}
|
|
2580
|
+
|
|
2581
|
+
vec2 sqrt_fp64(vec2 a) {
|
|
2582
|
+
if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0);
|
|
2583
|
+
if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0);
|
|
2584
|
+
|
|
2585
|
+
float x = 1.0 / sqrt(a.x);
|
|
2586
|
+
float yn = a.x * x;
|
|
2587
|
+
#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
|
|
2588
|
+
vec2 yn_sqr = twoSqr(yn) * ONE;
|
|
2589
|
+
#else
|
|
2590
|
+
vec2 yn_sqr = twoSqr(yn);
|
|
2591
|
+
#endif
|
|
2592
|
+
float diff = sub_fp64(a, yn_sqr).x;
|
|
2593
|
+
vec2 prod = twoProd(x * 0.5, diff);
|
|
2594
|
+
#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
|
|
2595
|
+
return sum_fp64(split(yn), prod);
|
|
2596
|
+
#else
|
|
2597
|
+
return sum_fp64(vec2(yn, 0.0), prod);
|
|
2598
|
+
#endif
|
|
2599
|
+
}
|
|
2600
|
+
`;
|
|
2601
|
+
|
|
2602
|
+
// ../../node_modules/@luma.gl/shadertools/dist/modules-webgl1/math/fp64/fp64.js
|
|
2603
|
+
var CONST_UNIFORMS = {
|
|
2604
|
+
ONE: 1
|
|
2605
|
+
};
|
|
2606
|
+
function getUniforms() {
|
|
2607
|
+
return CONST_UNIFORMS;
|
|
2608
|
+
}
|
|
2609
|
+
var fp64arithmetic = {
|
|
2610
|
+
name: "fp64-arithmetic",
|
|
2611
|
+
vs: fp64arithmeticShader,
|
|
2612
|
+
getUniforms,
|
|
2613
|
+
fp64ify,
|
|
2614
|
+
fp64LowPart,
|
|
2615
|
+
fp64ifyMatrix4
|
|
2616
|
+
};
|
|
2617
|
+
|
|
2615
2618
|
// ../../node_modules/@luma.gl/webgl/dist/context/context/create-headless-context.js
|
|
2616
2619
|
var ERR_HEADLESSGL_FAILED = "Failed to create WebGL context in Node.js, headless gl returned null";
|
|
2617
2620
|
var ERR_HEADLESSGL_LOAD = " luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL contexts can not be created. This may not be an error. For example, this is a typical configuration for isorender applications running on the server.";
|