chunk-FQZKJNXZ.js 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384
  1. import {
  2. O
  3. } from "./chunk-RUM3DXFX.js";
  4. import {
  5. f,
  6. n
  7. } from "./chunk-K7B6OWCU.js";
  8. import {
  9. r as r2
  10. } from "./chunk-E3G7BRZB.js";
  11. import {
  12. s2 as s,
  13. s3 as s2
  14. } from "./chunk-E5O6P5I2.js";
  15. import {
  16. r,
  17. t
  18. } from "./chunk-YXWMMD76.js";
  19. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderModules/interfaces.js
  20. var t2 = class {
  21. };
  22. function n2(t4, ...n4) {
  23. let o4 = "";
  24. for (let r4 = 0; r4 < n4.length; r4++)
  25. o4 += t4[r4] + n4[r4];
  26. return o4 += t4[t4.length - 1], o4;
  27. }
  28. !function(t4) {
  29. function n4(t5) {
  30. return Math.round(t5).toString();
  31. }
  32. function o4(t5) {
  33. return t5.toPrecision(8);
  34. }
  35. t4.int = n4, t4.float = o4;
  36. }(n2 || (n2 = {}));
  37. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderLibrary/ScreenSpacePass.js
  38. function o(o4, t4 = true) {
  39. o4.attributes.add(O.POSITION, "vec2"), t4 && o4.varyings.add("uv", "vec2"), o4.vertex.code.add(n2`
  40. void main(void) {
  41. gl_Position = vec4(position, 0.0, 1.0);
  42. ${t4 ? n2`uv = position * 0.5 + vec2(0.5);` : ""}
  43. }
  44. `);
  45. }
  46. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderModules/ShaderBuilder.js
  47. var s3 = s.getLogger("esri.views.3d.webgl-engine.core.shaderModules.shaderBuilder");
  48. var i = class {
  49. constructor() {
  50. this._includedModules = /* @__PURE__ */ new Map();
  51. }
  52. include(e3, r4) {
  53. if (this._includedModules.has(e3)) {
  54. const t4 = this._includedModules.get(e3);
  55. if (t4 !== r4) {
  56. s3.error("Trying to include shader module multiple times with different sets of options.");
  57. const r5 = /* @__PURE__ */ new Set();
  58. for (const n4 of Object.keys(t4))
  59. t4[n4] !== e3[n4] && r5.add(n4);
  60. for (const n4 of Object.keys(e3))
  61. t4[n4] !== e3[n4] && r5.add(n4);
  62. r5.forEach((r6) => console.error(` ${r6}: current ${t4[r6]} new ${e3[r6]}`));
  63. }
  64. } else
  65. this._includedModules.set(e3, r4), e3(this.builder, r4);
  66. }
  67. };
  68. var o2 = class extends i {
  69. constructor() {
  70. super(...arguments), this.vertex = new u(), this.fragment = new u(), this.attributes = new m(), this.varyings = new h(), this.extensions = new d(), this.constants = new l();
  71. }
  72. get fragmentUniforms() {
  73. return this.fragment.uniforms.entries;
  74. }
  75. get builder() {
  76. return this;
  77. }
  78. generate(e3) {
  79. const r4 = this.extensions.generateSource(e3), t4 = this.attributes.generateSource(e3), n4 = this.varyings.generateSource(), s4 = "vertex" === e3 ? this.vertex : this.fragment, i4 = s4.uniforms.generateSource(), o4 = s4.code.generateSource(), a6 = "vertex" === e3 ? f2 : _, c2 = this.constants.generateSource().concat(s4.constants.generateSource());
  80. return `
  81. ${r4.join("\n")}
  82. ${a6}
  83. ${c2.join("\n")}
  84. ${i4.join("\n")}
  85. ${t4.join("\n")}
  86. ${n4.join("\n")}
  87. ${o4.join("\n")}`;
  88. }
  89. generateBind(e3, r4) {
  90. const n4 = /* @__PURE__ */ new Map();
  91. this.vertex.uniforms.entries.forEach((r5) => {
  92. const s5 = r5.bind[e3];
  93. r(s5) && n4.set(r5.name, s5);
  94. }), this.fragment.uniforms.entries.forEach((r5) => {
  95. const s5 = r5.bind[e3];
  96. r(s5) && n4.set(r5.name, s5);
  97. });
  98. const s4 = Array.from(n4.values()), i4 = s4.length;
  99. return (e4, t4, n5) => {
  100. for (let o4 = 0; o4 < i4; ++o4)
  101. s4[o4](r4, e4, t4, n5);
  102. };
  103. }
  104. };
  105. var a = class {
  106. constructor() {
  107. this._entries = /* @__PURE__ */ new Map();
  108. }
  109. add(e3) {
  110. if (!Array.isArray(e3))
  111. return this._add(e3);
  112. for (const r4 of e3)
  113. this._add(r4);
  114. }
  115. get(e3) {
  116. return this._entries.get(e3);
  117. }
  118. _add(r4) {
  119. if (t(r4))
  120. s3.error(`Trying to add null Uniform from ${new Error().stack}.`);
  121. else {
  122. if (this._entries.has(r4.name) && !this._entries.get(r4.name).equals(r4))
  123. throw new s2(`Duplicate uniform name ${r4.name} for different uniform type`);
  124. this._entries.set(r4.name, r4);
  125. }
  126. }
  127. generateSource() {
  128. return Array.from(this._entries.values()).map((e3) => r(e3.arraySize) ? `uniform ${e3.type} ${e3.name}[${e3.arraySize}];` : `uniform ${e3.type} ${e3.name};`);
  129. }
  130. get entries() {
  131. return Array.from(this._entries.values());
  132. }
  133. };
  134. var c = class {
  135. constructor() {
  136. this._entries = new Array();
  137. }
  138. add(e3) {
  139. this._entries.push(e3);
  140. }
  141. generateSource() {
  142. return this._entries;
  143. }
  144. };
  145. var u = class extends i {
  146. constructor() {
  147. super(...arguments), this.uniforms = new a(), this.code = new c(), this.constants = new l();
  148. }
  149. get builder() {
  150. return this;
  151. }
  152. };
  153. var m = class {
  154. constructor() {
  155. this._entries = new Array();
  156. }
  157. add(e3, r4) {
  158. this._entries.push([e3, r4]);
  159. }
  160. generateSource(e3) {
  161. return "fragment" === e3 ? [] : this._entries.map((e4) => `attribute ${e4[1]} ${e4[0]};`);
  162. }
  163. };
  164. var h = class {
  165. constructor() {
  166. this._entries = new Array();
  167. }
  168. add(e3, r4) {
  169. this._entries.push([e3, r4]);
  170. }
  171. generateSource() {
  172. return this._entries.map((e3) => `varying ${e3[1]} ${e3[0]};`);
  173. }
  174. };
  175. var d = class {
  176. constructor() {
  177. this._entries = /* @__PURE__ */ new Set();
  178. }
  179. add(e3) {
  180. this._entries.add(e3);
  181. }
  182. generateSource(e3) {
  183. const r4 = "vertex" === e3 ? d.ALLOWLIST_VERTEX : d.ALLOWLIST_FRAGMENT;
  184. return Array.from(this._entries).filter((e4) => r4.includes(e4)).map((e4) => `#extension ${e4} : enable`);
  185. }
  186. };
  187. d.ALLOWLIST_FRAGMENT = ["GL_EXT_shader_texture_lod", "GL_OES_standard_derivatives"], d.ALLOWLIST_VERTEX = [];
  188. var l = class {
  189. constructor() {
  190. this._entries = /* @__PURE__ */ new Set();
  191. }
  192. add(e3, r4, t4) {
  193. let n4 = "ERROR_CONSTRUCTOR_STRING";
  194. switch (r4) {
  195. case "float":
  196. n4 = l._numberToFloatStr(t4);
  197. break;
  198. case "int":
  199. n4 = l._numberToIntStr(t4);
  200. break;
  201. case "bool":
  202. n4 = t4.toString();
  203. break;
  204. case "vec2":
  205. n4 = `vec2(${l._numberToFloatStr(t4[0])}, ${l._numberToFloatStr(t4[1])})`;
  206. break;
  207. case "vec3":
  208. n4 = `vec3(${l._numberToFloatStr(t4[0])}, ${l._numberToFloatStr(t4[1])}, ${l._numberToFloatStr(t4[2])})`;
  209. break;
  210. case "vec4":
  211. n4 = `vec4(${l._numberToFloatStr(t4[0])}, ${l._numberToFloatStr(t4[1])}, ${l._numberToFloatStr(t4[2])}, ${l._numberToFloatStr(t4[3])})`;
  212. break;
  213. case "ivec2":
  214. n4 = `ivec2(${l._numberToIntStr(t4[0])}, ${l._numberToIntStr(t4[1])})`;
  215. break;
  216. case "ivec3":
  217. n4 = `ivec3(${l._numberToIntStr(t4[0])}, ${l._numberToIntStr(t4[1])}, ${l._numberToIntStr(t4[2])})`;
  218. break;
  219. case "ivec4":
  220. n4 = `ivec4(${l._numberToIntStr(t4[0])}, ${l._numberToIntStr(t4[1])}, ${l._numberToIntStr(t4[2])}, ${l._numberToIntStr(t4[3])})`;
  221. break;
  222. case "mat2":
  223. case "mat3":
  224. case "mat4":
  225. n4 = `${r4}(${Array.prototype.map.call(t4, (e4) => l._numberToFloatStr(e4)).join(", ")})`;
  226. }
  227. return this._entries.add(`const ${r4} ${e3} = ${n4};`), this;
  228. }
  229. static _numberToIntStr(e3) {
  230. return e3.toFixed(0);
  231. }
  232. static _numberToFloatStr(e3) {
  233. return Number.isInteger(e3) ? e3.toFixed(1) : e3.toString();
  234. }
  235. generateSource() {
  236. return Array.from(this._entries);
  237. }
  238. };
  239. var _ = "#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n precision highp sampler2D;\n#else\n precision mediump float;\n precision mediump sampler2D;\n#endif";
  240. var f2 = "precision highp float;\nprecision highp sampler2D;";
  241. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderTechnique/BindType.js
  242. var a2;
  243. !function(a6) {
  244. a6[a6.Pass = 0] = "Pass", a6[a6.Draw = 1] = "Draw";
  245. }(a2 || (a2 = {}));
  246. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderModules/Uniform.js
  247. var i2 = class {
  248. constructor(i4, s4, t4, a6, n4 = null) {
  249. this.name = i4, this.type = s4, this.arraySize = n4, this.bind = { [a2.Pass]: null, [a2.Draw]: null }, r(t4) && r(a6) && (this.bind[t4] = a6);
  250. }
  251. equals(e3) {
  252. return this.type === e3.type && this.name === e3.name && this.arraySize === e3.arraySize;
  253. }
  254. };
  255. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderModules/Float2PassUniform.js
  256. var e = class extends i2 {
  257. constructor(r4, e3) {
  258. super(r4, "vec2", a2.Pass, (s4, o4, t4) => s4.setUniform2fv(r4, e3(o4, t4)));
  259. }
  260. };
  261. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderLibrary/util/WebGL2Utils.js
  262. var t3 = "Size";
  263. var n3 = "InvSize";
  264. function r3(r4, i4, o4 = false, u3 = 0) {
  265. if (r4.hasWebGL2Context) {
  266. const t4 = n2`vec2(textureSize(${i4}, ${n2.int(u3)}))`;
  267. return o4 ? "(1.0 / " + t4 + ")" : t4;
  268. }
  269. return o4 ? i4 + n3 : i4 + t3;
  270. }
  271. function i3(t4, r4, i4, o4 = null, u3 = 0) {
  272. if (t4.hasWebGL2Context)
  273. return n2`texelFetch(${r4}, ivec2(${i4}), ${n2.int(u3)})`;
  274. let $ = n2`texture2D(${r4}, ${i4} * `;
  275. return $ += o4 ? n2`(${o4}))` : n2`${r4 + n3})`, $;
  276. }
  277. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderModules/TextureSizeUniformType.js
  278. var e2;
  279. !function(e3) {
  280. e3[e3.None = 0] = "None", e3[e3.Size = 1] = "Size", e3[e3.InvSize = 2] = "InvSize";
  281. }(e2 || (e2 = {}));
  282. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderModules/Texture2DPassUniform.js
  283. var f3 = class extends i2 {
  284. constructor(r4, s4) {
  285. super(r4, "sampler2D", a2.Pass, (e3, o4, t4) => e3.bindTexture(r4, s4(o4, t4)));
  286. }
  287. };
  288. function u2(o4, c2, p = e2.None) {
  289. const u3 = [new f3(o4, c2)];
  290. if (p & e2.Size) {
  291. const i4 = o4 + t3;
  292. u3.push(new e(i4, (o5, t4) => {
  293. const i5 = c2(o5, t4);
  294. return r(i5) ? r2(a3, i5.descriptor.width, i5.descriptor.height) : f;
  295. }));
  296. }
  297. if (p & e2.InvSize) {
  298. const t4 = o4 + n3;
  299. u3.push(new e(t4, (o5, t5) => {
  300. const i4 = c2(o5, t5);
  301. return r(i4) ? r2(a3, 1 / i4.descriptor.width, 1 / i4.descriptor.height) : f;
  302. }));
  303. }
  304. return u3;
  305. }
  306. var a3 = n();
  307. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderModules/FloatPassUniform.js
  308. var o3 = class extends i2 {
  309. constructor(r4, o4) {
  310. super(r4, "float", a2.Pass, (s4, e3, t4) => s4.setUniform1f(r4, o4(e3, t4)));
  311. }
  312. };
  313. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderLibrary/util/RgbaFloatEncoding.glsl.js
  314. function a4(a6) {
  315. a6.code.add(n2`const float MAX_RGBA_FLOAT =
  316. 255.0 / 256.0 +
  317. 255.0 / 256.0 / 256.0 +
  318. 255.0 / 256.0 / 256.0 / 256.0 +
  319. 255.0 / 256.0 / 256.0 / 256.0 / 256.0;
  320. const vec4 FIXED_POINT_FACTORS = vec4(1.0, 256.0, 256.0 * 256.0, 256.0 * 256.0 * 256.0);
  321. vec4 float2rgba(const float value) {
  322. float valueInValidDomain = clamp(value, 0.0, MAX_RGBA_FLOAT);
  323. vec4 fixedPointU8 = floor(fract(valueInValidDomain * FIXED_POINT_FACTORS) * 256.0);
  324. const float toU8AsFloat = 1.0 / 255.0;
  325. return fixedPointU8 * toU8AsFloat;
  326. }
  327. const vec4 RGBA_2_FLOAT_FACTORS = vec4(
  328. 255.0 / (256.0),
  329. 255.0 / (256.0 * 256.0),
  330. 255.0 / (256.0 * 256.0 * 256.0),
  331. 255.0 / (256.0 * 256.0 * 256.0 * 256.0)
  332. );
  333. float rgba2float(vec4 rgba) {
  334. return dot(rgba, RGBA_2_FLOAT_FACTORS);
  335. }`);
  336. }
  337. // node_modules/@arcgis/core/views/3d/webgl-engine/core/shaderLibrary/output/ReadLinearDepth.glsl.js
  338. function a5(a6) {
  339. a6.include(a4), a6.code.add(n2`float linearDepthFromFloat(float depth, vec2 nearFar) {
  340. return -(depth * (nearFar[1] - nearFar[0]) + nearFar[0]);
  341. }
  342. float linearDepthFromTexture(sampler2D depthTex, vec2 uv, vec2 nearFar) {
  343. return linearDepthFromFloat(rgba2float(texture2D(depthTex, uv)), nearFar);
  344. }`);
  345. }
  346. export {
  347. t2 as t,
  348. n2 as n,
  349. o,
  350. a2 as a,
  351. i2 as i,
  352. o2,
  353. t3 as t2,
  354. n3 as n2,
  355. r3 as r,
  356. i3 as i2,
  357. e,
  358. e2,
  359. f3 as f,
  360. u2 as u,
  361. a4 as a2,
  362. o3,
  363. a5 as a3
  364. };
  365. //# sourceMappingURL=chunk-FQZKJNXZ.js.map