@deck.gl/extensions 9.0.40 → 9.1.0-beta.3

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.
Files changed (160) hide show
  1. package/dist/brushing/brushing-extension.d.ts +1 -0
  2. package/dist/brushing/brushing-extension.d.ts.map +1 -1
  3. package/dist/brushing/brushing-extension.js +16 -19
  4. package/dist/brushing/brushing-extension.js.map +1 -0
  5. package/dist/brushing/shader-module.d.ts +8 -2
  6. package/dist/brushing/shader-module.d.ts.map +1 -1
  7. package/dist/brushing/shader-module.js +75 -50
  8. package/dist/brushing/shader-module.js.map +1 -0
  9. package/dist/clip/clip-extension.d.ts +5 -2
  10. package/dist/clip/clip-extension.d.ts.map +1 -1
  11. package/dist/clip/clip-extension.js +37 -42
  12. package/dist/clip/clip-extension.js.map +1 -0
  13. package/dist/collision-filter/collision-filter-effect.d.ts +4 -4
  14. package/dist/collision-filter/collision-filter-effect.d.ts.map +1 -1
  15. package/dist/collision-filter/collision-filter-effect.js +28 -13
  16. package/dist/collision-filter/collision-filter-effect.js.map +1 -0
  17. package/dist/collision-filter/collision-filter-extension.d.ts +1 -1
  18. package/dist/collision-filter/collision-filter-extension.d.ts.map +1 -1
  19. package/dist/collision-filter/collision-filter-extension.js +6 -6
  20. package/dist/collision-filter/collision-filter-extension.js.map +1 -0
  21. package/dist/collision-filter/collision-filter-pass.d.ts +9 -5
  22. package/dist/collision-filter/collision-filter-pass.d.ts.map +1 -1
  23. package/dist/collision-filter/collision-filter-pass.js +15 -4
  24. package/dist/collision-filter/collision-filter-pass.js.map +1 -0
  25. package/dist/collision-filter/shader-module.d.ts +3 -2
  26. package/dist/collision-filter/shader-module.d.ts.map +1 -1
  27. package/dist/collision-filter/shader-module.js +75 -52
  28. package/dist/collision-filter/shader-module.js.map +1 -0
  29. package/dist/data-filter/aggregator.d.ts +4 -10
  30. package/dist/data-filter/aggregator.d.ts.map +1 -1
  31. package/dist/data-filter/aggregator.js +15 -8
  32. package/dist/data-filter/aggregator.js.map +1 -0
  33. package/dist/data-filter/data-filter-extension.d.ts.map +1 -1
  34. package/dist/data-filter/data-filter-extension.js +49 -39
  35. package/dist/data-filter/data-filter-extension.js.map +1 -0
  36. package/dist/data-filter/shader-module.d.ts +12 -5
  37. package/dist/data-filter/shader-module.d.ts.map +1 -1
  38. package/dist/data-filter/shader-module.js +190 -131
  39. package/dist/data-filter/shader-module.js.map +1 -0
  40. package/dist/dist.dev.js +2720 -2037
  41. package/dist/fill-style/fill-style-extension.d.ts.map +1 -1
  42. package/dist/fill-style/fill-style-extension.js +12 -4
  43. package/dist/fill-style/fill-style-extension.js.map +1 -0
  44. package/dist/fill-style/shader-module.d.ts +64 -6
  45. package/dist/fill-style/shader-module.d.ts.map +1 -1
  46. package/dist/fill-style/shader-module.js +74 -51
  47. package/dist/fill-style/shader-module.js.map +1 -0
  48. package/dist/fp64/fp64-extension.d.ts +1 -0
  49. package/dist/fp64/fp64-extension.d.ts.map +1 -1
  50. package/dist/fp64/fp64-extension.js +8 -19
  51. package/dist/fp64/fp64-extension.js.map +1 -0
  52. package/dist/fp64/project64.d.ts +2 -2
  53. package/dist/fp64/project64.d.ts.map +1 -1
  54. package/dist/fp64/project64.glsl.d.ts +1 -1
  55. package/dist/fp64/project64.glsl.d.ts.map +1 -1
  56. package/dist/fp64/project64.glsl.js +19 -21
  57. package/dist/fp64/project64.glsl.js.map +1 -0
  58. package/dist/fp64/project64.js +25 -24
  59. package/dist/fp64/project64.js.map +1 -0
  60. package/dist/index.cjs +1034 -528
  61. package/dist/index.cjs.map +4 -4
  62. package/dist/index.d.ts +1 -0
  63. package/dist/index.d.ts.map +1 -1
  64. package/dist/index.js +4 -0
  65. package/dist/index.js.map +1 -0
  66. package/dist/mask/mask-effect.d.ts +5 -3
  67. package/dist/mask/mask-effect.d.ts.map +1 -1
  68. package/dist/mask/mask-effect.js +13 -5
  69. package/dist/mask/mask-effect.js.map +1 -0
  70. package/dist/mask/mask-extension.d.ts +1 -1
  71. package/dist/mask/mask-extension.d.ts.map +1 -1
  72. package/dist/mask/mask-extension.js +14 -8
  73. package/dist/mask/mask-extension.js.map +1 -0
  74. package/dist/mask/mask-pass.d.ts +2 -43
  75. package/dist/mask/mask-pass.d.ts.map +1 -1
  76. package/dist/mask/mask-pass.js +5 -1
  77. package/dist/mask/mask-pass.js.map +1 -0
  78. package/dist/mask/shader-module.d.ts +60 -3
  79. package/dist/mask/shader-module.d.ts.map +1 -1
  80. package/dist/mask/shader-module.js +74 -46
  81. package/dist/mask/shader-module.js.map +1 -0
  82. package/dist/path-style/path-style-extension.d.ts.map +1 -1
  83. package/dist/path-style/path-style-extension.js +21 -24
  84. package/dist/path-style/path-style-extension.js.map +1 -0
  85. package/dist/path-style/shaders.glsl.d.ts.map +1 -1
  86. package/dist/path-style/shaders.glsl.js +12 -7
  87. package/dist/path-style/shaders.glsl.js.map +1 -0
  88. package/dist/terrain/height-map-builder.d.ts.map +1 -1
  89. package/dist/terrain/height-map-builder.js +4 -0
  90. package/dist/terrain/height-map-builder.js.map +1 -0
  91. package/dist/terrain/shader-module.d.ts +60 -6
  92. package/dist/terrain/shader-module.d.ts.map +1 -1
  93. package/dist/terrain/shader-module.js +70 -61
  94. package/dist/terrain/shader-module.js.map +1 -0
  95. package/dist/terrain/terrain-cover.d.ts.map +1 -1
  96. package/dist/terrain/terrain-cover.js +4 -0
  97. package/dist/terrain/terrain-cover.js.map +1 -0
  98. package/dist/terrain/terrain-effect.d.ts +4 -2
  99. package/dist/terrain/terrain-effect.d.ts.map +1 -1
  100. package/dist/terrain/terrain-effect.js +32 -18
  101. package/dist/terrain/terrain-effect.js.map +1 -0
  102. package/dist/terrain/terrain-extension.d.ts.map +1 -1
  103. package/dist/terrain/terrain-extension.js +4 -0
  104. package/dist/terrain/terrain-extension.js.map +1 -0
  105. package/dist/terrain/terrain-pass.d.ts +6 -41
  106. package/dist/terrain/terrain-pass.d.ts.map +1 -1
  107. package/dist/terrain/terrain-pass.js +12 -1
  108. package/dist/terrain/terrain-pass.js.map +1 -0
  109. package/dist/terrain/terrain-picking-pass.d.ts +7 -1
  110. package/dist/terrain/terrain-picking-pass.d.ts.map +1 -1
  111. package/dist/terrain/terrain-picking-pass.js +12 -1
  112. package/dist/terrain/terrain-picking-pass.js.map +1 -0
  113. package/dist/terrain/utils.d.ts.map +1 -1
  114. package/dist/terrain/utils.js +4 -0
  115. package/dist/terrain/utils.js.map +1 -0
  116. package/dist/utils/debug.d.ts +2 -2
  117. package/dist/utils/debug.d.ts.map +1 -1
  118. package/dist/utils/debug.js +4 -1
  119. package/dist/utils/debug.js.map +1 -0
  120. package/dist/utils/projection-utils.d.ts.map +1 -1
  121. package/dist/utils/projection-utils.js +4 -0
  122. package/dist/utils/projection-utils.js.map +1 -0
  123. package/dist.min.js +1102 -817
  124. package/package.json +8 -8
  125. package/src/brushing/brushing-extension.ts +17 -20
  126. package/src/brushing/shader-module.ts +58 -47
  127. package/src/clip/clip-extension.ts +38 -40
  128. package/src/collision-filter/collision-filter-effect.ts +31 -20
  129. package/src/collision-filter/collision-filter-extension.ts +6 -7
  130. package/src/collision-filter/collision-filter-pass.ts +17 -6
  131. package/src/collision-filter/shader-module.ts +40 -22
  132. package/src/data-filter/aggregator.ts +23 -11
  133. package/src/data-filter/data-filter-extension.ts +76 -49
  134. package/src/data-filter/shader-module.ts +150 -90
  135. package/src/fill-style/fill-style-extension.ts +13 -5
  136. package/src/fill-style/shader-module.ts +84 -52
  137. package/src/fp64/fp64-extension.ts +8 -19
  138. package/src/fp64/project64.glsl.ts +18 -21
  139. package/src/fp64/project64.ts +27 -28
  140. package/src/index.ts +5 -0
  141. package/src/mask/mask-effect.ts +17 -7
  142. package/src/mask/mask-extension.ts +16 -9
  143. package/src/mask/mask-pass.ts +17 -3
  144. package/src/mask/shader-module.ts +63 -27
  145. package/src/path-style/path-style-extension.ts +27 -28
  146. package/src/path-style/shaders.glsl.ts +13 -7
  147. package/src/terrain/height-map-builder.ts +4 -0
  148. package/src/terrain/shader-module.ts +62 -44
  149. package/src/terrain/terrain-cover.ts +4 -0
  150. package/src/terrain/terrain-effect.ts +36 -19
  151. package/src/terrain/terrain-extension.ts +4 -0
  152. package/src/terrain/terrain-pass.ts +19 -3
  153. package/src/terrain/terrain-picking-pass.ts +15 -2
  154. package/src/terrain/utils.ts +4 -0
  155. package/src/utils/debug.ts +4 -0
  156. package/src/utils/projection-utils.ts +4 -0
  157. package/dist/utils/syntax-tags.d.ts +0 -6
  158. package/dist/utils/syntax-tags.d.ts.map +0 -1
  159. package/dist/utils/syntax-tags.js +0 -5
  160. package/src/utils/syntax-tags.ts +0 -5
package/dist/index.d.ts CHANGED
@@ -16,4 +16,5 @@ export type { ClipExtensionProps } from "./clip/clip-extension.js";
16
16
  export type { CollisionFilterExtensionProps } from "./collision-filter/collision-filter-extension.js";
17
17
  export type { MaskExtensionProps } from "./mask/mask-extension.js";
18
18
  export type { TerrainExtensionProps } from "./terrain/terrain-extension.js";
19
+ export type { TerrainModuleProps } from "./terrain/shader-module.js";
19
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,yCAAsC;AAC3E,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,+CAA4C;AACnF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,yDAAsD;AAClG,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AAGzE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,4BAAyB;AAGtD,YAAY,EAAC,sBAAsB,EAAC,yCAAsC;AAC1E,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,+CAA4C;AAC7C,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,6CAA0C;AAC3C,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,6CAA0C;AAC3C,YAAY,EAAC,kBAAkB,EAAC,iCAA8B;AAC9D,YAAY,EAAC,6BAA6B,EAAC,yDAAsD;AACjG,YAAY,EAAC,kBAAkB,EAAC,iCAA8B;AAC9D,YAAY,EAAC,qBAAqB,EAAC,uCAAoC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,yCAAsC;AAC3E,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,+CAA4C;AACnF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,yDAAsD;AAClG,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AAGzE,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,4BAAyB;AAGtD,YAAY,EAAC,sBAAsB,EAAC,yCAAsC;AAC1E,YAAY,EACV,wBAAwB,EACxB,0BAA0B,EAC3B,+CAA4C;AAC7C,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,6CAA0C;AAC3C,YAAY,EACV,uBAAuB,EACvB,yBAAyB,EAC1B,6CAA0C;AAC3C,YAAY,EAAC,kBAAkB,EAAC,iCAA8B;AAC9D,YAAY,EAAC,6BAA6B,EAAC,yDAAsD;AACjG,YAAY,EAAC,kBAAkB,EAAC,iCAA8B;AAC9D,YAAY,EAAC,qBAAqB,EAAC,uCAAoC;AACvE,YAAY,EAAC,kBAAkB,EAAC,mCAAgC"}
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  export { default as BrushingExtension } from "./brushing/brushing-extension.js";
2
5
  export { default as DataFilterExtension } from "./data-filter/data-filter-extension.js";
3
6
  export { default as Fp64Extension } from "./fp64/fp64-extension.js";
@@ -9,3 +12,4 @@ export { default as MaskExtension } from "./mask/mask-extension.js";
9
12
  export { default as _TerrainExtension } from "./terrain/terrain-extension.js";
10
13
  // Shader module
11
14
  export { default as project64 } from "./fp64/project64.js";
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,yCAAsC;AAC3E,OAAO,EAAC,OAAO,IAAI,mBAAmB,EAAC,+CAA4C;AACnF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,kBAAkB,EAAC,6CAA0C;AAChF,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,wBAAwB,EAAC,yDAAsD;AAClG,OAAO,EAAC,OAAO,IAAI,aAAa,EAAC,iCAA8B;AAC/D,OAAO,EAAC,OAAO,IAAI,iBAAiB,EAAC,uCAAoC;AAEzE,gBAAgB;AAChB,OAAO,EAAC,OAAO,IAAI,SAAS,EAAC,4BAAyB"}
@@ -33,9 +33,11 @@ export default class MaskEffect implements Effect {
33
33
  * Returns a map from mask layer id to channel info
34
34
  */
35
35
  private _sortMaskChannels;
36
- getModuleParameters(): {
37
- maskMap: Texture;
38
- maskChannels: Record<string, Mask> | null;
36
+ getShaderModuleProps(): {
37
+ mask: {
38
+ maskMap: Texture;
39
+ maskChannels: Record<string, Mask> | null;
40
+ };
39
41
  };
40
42
  cleanup(): void;
41
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mask-effect.d.ts","sourceRoot":"","sources":["../../src/mask/mask-effect.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAiD,MAAM,EAAC,qCAAkC;AAGjG,KAAK,IAAI,GAAG;IACV,wBAAwB;IACxB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAaF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAGF,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,MAAM;IAC/C,EAAE,SAAiB;IACnB,KAAK,OAAQ;IACb,YAAY,UAAQ;IACpB,KAAK,SAAK;IAEV,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,YAAY,CAAC,CAAW;IAEhC,KAAK,CAAC,EAAC,MAAM,EAAC,EAAE,aAAa;IAU7B,SAAS,CAAC,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,SAAS,EACV,EAAE,gBAAgB,GAAG,kBAAkB;IA2CxC,OAAO,CAAC,cAAc;IAgGtB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA4CzB,mBAAmB,IAAI;QACrB,OAAO,EAAE,OAAO,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;KAC3C;IAOD,OAAO,IAAI,IAAI;CAgBhB"}
1
+ {"version":3,"file":"mask-effect.d.ts","sourceRoot":"","sources":["../../src/mask/mask-effect.ts"],"names":[],"mappings":"AAIA,OAAO,EAGL,MAAM,EACN,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAG3C,OAAO,EAAiD,MAAM,EAAC,qCAAkC;AAGjG,KAAK,IAAI,GAAG;IACV,wBAAwB;IACxB,KAAK,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3C,gBAAgB,EAAE,gBAAgB,CAAC;CACpC,CAAC;AAaF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;CACpB,CAAC;AAGF,MAAM,CAAC,OAAO,OAAO,UAAW,YAAW,MAAM;IAC/C,EAAE,SAAiB;IACnB,KAAK,OAAQ;IACb,YAAY,UAAQ;IACpB,KAAK,SAAK;IAEV,OAAO,CAAC,YAAY,CAAC,CAAU;IAC/B,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,KAAK,CAAqC;IAClD,OAAO,CAAC,QAAQ,CAAC,CAAW;IAC5B,OAAO,CAAC,OAAO,CAAC,CAAU;IAC1B,OAAO,CAAC,YAAY,CAAC,CAAW;IAEhC,KAAK,CAAC,EAAC,MAAM,EAAC,EAAE,aAAa;IAU7B,SAAS,CAAC,EACR,MAAM,EACN,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,SAAS,EACV,EAAE,gBAAgB,GAAG,kBAAkB;IA2CxC,OAAO,CAAC,cAAc;IAkGtB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IA4CzB,oBAAoB,IAAI;QACtB,IAAI,EAAE;YACJ,OAAO,EAAE,OAAO,CAAC;YACjB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC;SAC3C,CAAC;KACH;IASD,OAAO,IAAI,IAAI;CAgBhB"}
@@ -1,3 +1,6 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { log } from '@deck.gl/core';
2
5
  import { equals } from '@math.gl/core';
3
6
  import MaskPass from "./mask-pass.js";
@@ -106,8 +109,10 @@ export default class MaskEffect {
106
109
  viewports: maskViewport ? [maskViewport] : [],
107
110
  onViewportActive,
108
111
  views,
109
- moduleParameters: {
110
- devicePixelRatio: 1
112
+ shaderModuleProps: {
113
+ project: {
114
+ devicePixelRatio: 1
115
+ }
111
116
  }
112
117
  });
113
118
  didRender = true;
@@ -169,10 +174,12 @@ export default class MaskEffect {
169
174
  }
170
175
  return channelMap;
171
176
  }
172
- getModuleParameters() {
177
+ getShaderModuleProps() {
173
178
  return {
174
- maskMap: this.masks ? this.maskMap : this.dummyMaskMap,
175
- maskChannels: this.masks
179
+ mask: {
180
+ maskMap: this.masks ? this.maskMap : this.dummyMaskMap,
181
+ maskChannels: this.masks
182
+ }
176
183
  };
177
184
  }
178
185
  cleanup() {
@@ -190,3 +197,4 @@ export default class MaskEffect {
190
197
  this.channels.length = 0;
191
198
  }
192
199
  }
200
+ //# sourceMappingURL=mask-effect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-effect.js","sourceRoot":"","sources":["../../src/mask/mask-effect.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,6 @@ export default class MaskExtension extends LayerExtension {
25
25
  static extensionName: string;
26
26
  initializeState(this: Layer<MaskExtensionProps>): void;
27
27
  getShaders(this: Layer<MaskExtensionProps>): any;
28
- draw(this: Layer<Required<MaskExtensionProps>>, { uniforms, context, moduleParameters }: any): void;
28
+ draw(this: Layer<Required<MaskExtensionProps>>, { context, shaderModuleProps }: any): void;
29
29
  }
30
30
  //# sourceMappingURL=mask-extension.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"mask-extension.d.ts","sourceRoot":"","sources":["../../src/mask/mask-extension.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,KAAK,EAAE,cAAc,EAAM,MAAM,eAAe,CAAC;AAU5E,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,CAAC,YAAY;;;;MAAgB;IACnC,MAAM,CAAC,aAAa,SAAmB;IAEvC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC;IAI/C,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG;IAehD,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAC,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAC,EAAE,GAAG;CA4B3F"}
1
+ {"version":3,"file":"mask-extension.d.ts","sourceRoot":"","sources":["../../src/mask/mask-extension.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,EAAE,cAAc,EAAM,MAAM,eAAe,CAAC;AAU5E,MAAM,MAAM,kBAAkB,GAAG;IAC/B;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;OAEG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AAEF,wDAAwD;AACxD,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,cAAc;IACvD,MAAM,CAAC,YAAY;;;;MAAgB;IACnC,MAAM,CAAC,aAAa,SAAmB;IAEvC,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC;IAI/C,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAAC,GAAG,GAAG;IAehD,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EAAE,EAAC,OAAO,EAAE,iBAAiB,EAAC,EAAE,GAAG;CA+BlF"}
@@ -1,3 +1,6 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { COORDINATE_SYSTEM, LayerExtension, log } from '@deck.gl/core';
2
5
  import mask from "./shader-module.js";
3
6
  import MaskEffect from "./mask-effect.js";
@@ -24,17 +27,18 @@ class MaskExtension extends LayerExtension {
24
27
  };
25
28
  }
26
29
  /* eslint-disable camelcase */
27
- draw({ uniforms, context, moduleParameters }) {
28
- uniforms.mask_maskByInstance = this.state.maskByInstance;
30
+ draw({ context, shaderModuleProps }) {
31
+ const maskProps = {};
32
+ maskProps.maskByInstance = Boolean(this.state.maskByInstance);
29
33
  const { maskId, maskInverted } = this.props;
30
- const { maskChannels } = moduleParameters;
34
+ const { maskChannels } = shaderModuleProps.mask || {};
31
35
  const { viewport } = context;
32
36
  if (maskChannels && maskChannels[maskId]) {
33
37
  const { index, bounds, coordinateOrigin: fromCoordinateOrigin } = maskChannels[maskId];
34
38
  let { coordinateSystem: fromCoordinateSystem } = maskChannels[maskId];
35
- uniforms.mask_enabled = true;
36
- uniforms.mask_channel = index;
37
- uniforms.mask_inverted = maskInverted;
39
+ maskProps.enabled = true;
40
+ maskProps.channel = index;
41
+ maskProps.inverted = maskInverted;
38
42
  if (fromCoordinateSystem === COORDINATE_SYSTEM.DEFAULT) {
39
43
  fromCoordinateSystem = viewport.isGeospatial
40
44
  ? COORDINATE_SYSTEM.LNGLAT
@@ -43,16 +47,18 @@ class MaskExtension extends LayerExtension {
43
47
  const opts = { modelMatrix: null, fromCoordinateOrigin, fromCoordinateSystem };
44
48
  const bl = this.projectPosition([bounds[0], bounds[1], 0], opts);
45
49
  const tr = this.projectPosition([bounds[2], bounds[3], 0], opts);
46
- uniforms.mask_bounds = [bl[0], bl[1], tr[0], tr[1]];
50
+ maskProps.bounds = [bl[0], bl[1], tr[0], tr[1]];
47
51
  }
48
52
  else {
49
53
  if (maskId) {
50
54
  log.warn(`Could not find a mask layer with id: ${maskId}`)();
51
55
  }
52
- uniforms.mask_enabled = false;
56
+ maskProps.enabled = false;
53
57
  }
58
+ this.setShaderModuleProps({ mask: maskProps });
54
59
  }
55
60
  }
56
61
  MaskExtension.defaultProps = defaultProps;
57
62
  MaskExtension.extensionName = 'MaskExtension';
58
63
  export default MaskExtension;
64
+ //# sourceMappingURL=mask-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-extension.js","sourceRoot":"","sources":["../../src/mask/mask-extension.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { Device, Framebuffer, Texture } from '@luma.gl/core';
1
+ import type { Device, Framebuffer, Parameters, Texture } from '@luma.gl/core';
2
2
  import { Layer, _LayersPass as LayersPass, LayersPassRenderOptions, Viewport } from '@deck.gl/core';
3
3
  type MaskPassRenderOptions = LayersPassRenderOptions & {
4
4
  /** The channel to render into, 0:red, 1:green, 2:blue, 3:alpha */
@@ -12,48 +12,7 @@ export default class MaskPass extends LayersPass {
12
12
  mapSize?: number;
13
13
  });
14
14
  render(options: MaskPassRenderOptions): void;
15
- protected getLayerParameters(layer: Layer<{}>, layerIndex: number, viewport: Viewport): {
16
- cullMode?: import("@luma.gl/core").CullMode | undefined;
17
- frontFace?: import("@luma.gl/core").FrontFace | undefined;
18
- depthBias?: number | undefined;
19
- depthBiasSlopeScale?: number | undefined;
20
- depthBiasClamp?: number | undefined;
21
- unclippedDepth?: boolean | undefined;
22
- provokingVertex?: "first" | "last" | undefined;
23
- polygonMode?: "fill" | "line" | undefined;
24
- polygonOffsetLine?: boolean | undefined;
25
- clipDistance0?: boolean | undefined;
26
- clipDistance1?: boolean | undefined;
27
- clipDistance2?: boolean | undefined;
28
- clipDistance3?: boolean | undefined;
29
- clipDistance4?: boolean | undefined;
30
- clipDistance5?: boolean | undefined;
31
- clipDistance6?: boolean | undefined;
32
- clipDistance7?: boolean | undefined;
33
- topology?: import("@luma.gl/core").PrimitiveTopology | undefined;
34
- stripIndexFormat?: import("@luma.gl/core").IndexFormat | undefined;
35
- depthWriteEnabled?: boolean | undefined;
36
- depthCompare?: import("@luma.gl/core").CompareFunction | undefined;
37
- depthFormat?: import("@luma.gl/core").DepthStencilTextureFormat | undefined;
38
- stencilReadMask?: number | undefined;
39
- stencilWriteMask?: number | undefined;
40
- stencilCompare?: import("@luma.gl/core").CompareFunction | undefined;
41
- stencilPassOperation?: import("@luma.gl/core").StencilOperation | undefined;
42
- stencilFailOperation?: import("@luma.gl/core").StencilOperation | undefined;
43
- stencilDepthFailOperation?: import("@luma.gl/core").StencilOperation | undefined;
44
- blendColorOperation?: import("@luma.gl/core").BlendOperation | undefined;
45
- blendColorSrcFactor?: import("@luma.gl/core").BlendFactor | undefined;
46
- blendColorDstFactor?: import("@luma.gl/core").BlendFactor | undefined;
47
- blendAlphaOperation?: import("@luma.gl/core").BlendOperation | undefined;
48
- blendAlphaSrcFactor?: import("@luma.gl/core").BlendFactor | undefined;
49
- blendAlphaDstFactor?: import("@luma.gl/core").BlendFactor | undefined;
50
- colorMask?: number | undefined;
51
- sampleCount?: number | undefined;
52
- sampleMask?: number | undefined;
53
- sampleAlphaToCoverageEnabled?: boolean | undefined;
54
- blend: boolean;
55
- depthTest: boolean;
56
- };
15
+ protected getLayerParameters(layer: Layer<{}>, layerIndex: number, viewport: Viewport): Parameters;
57
16
  shouldDrawLayer(layer: any): any;
58
17
  delete(): void;
59
18
  }
@@ -1 +1 @@
1
- {"version":3,"file":"mask-pass.d.ts","sourceRoot":"","sources":["../../src/mask/mask-pass.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,MAAM,EAAE,WAAW,EAA4B,OAAO,EAAC,MAAM,eAAe,CAAC;AAC1F,OAAO,EAAC,KAAK,EAAE,WAAW,IAAI,UAAU,EAAE,uBAAuB,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAElG,KAAK,qBAAqB,GAAG,uBAAuB,GAAG;IACrD,kEAAkE;IAClE,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACxB,CAAC;AAWF,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,WAAW,CAAC;gBAEL,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC;IAyBjE,MAAM,CAAC,OAAO,EAAE,qBAAqB;IAMrC,SAAS,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IASrF,eAAe,CAAC,KAAK,KAAA;IAIrB,MAAM;CAIP"}
1
+ {"version":3,"file":"mask-pass.d.ts","sourceRoot":"","sources":["../../src/mask/mask-pass.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,MAAM,EACN,WAAW,EACX,UAAU,EAEV,OAAO,EACR,MAAM,eAAe,CAAC;AACvB,OAAO,EAAC,KAAK,EAAE,WAAW,IAAI,UAAU,EAAE,uBAAuB,EAAE,QAAQ,EAAC,MAAM,eAAe,CAAC;AAElG,KAAK,qBAAqB,GAAG,uBAAuB,GAAG;IACrD,kEAAkE;IAClE,OAAO,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;CACxB,CAAC;AAWF,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAC9C,OAAO,EAAE,OAAO,CAAC;IACjB,GAAG,EAAE,WAAW,CAAC;gBAEL,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;QAAC,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAC;IAyBjE,MAAM,CAAC,OAAO,EAAE,qBAAqB;IAMrC,SAAS,CAAC,kBAAkB,CAC1B,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC,EAChB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,QAAQ,GACjB,UAAU;IASb,eAAe,CAAC,KAAK,KAAA;IAIrB,MAAM;CAIP"}
@@ -1,3 +1,6 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { _LayersPass as LayersPass } from '@deck.gl/core';
2
5
  const MASK_BLENDING = {
3
6
  blendColorOperation: 'subtract',
@@ -38,7 +41,7 @@ export default class MaskPass extends LayersPass {
38
41
  return {
39
42
  ...layer.props.parameters,
40
43
  blend: true,
41
- depthTest: false,
44
+ depthCompare: 'always',
42
45
  ...MASK_BLENDING
43
46
  };
44
47
  }
@@ -50,3 +53,4 @@ export default class MaskPass extends LayersPass {
50
53
  this.maskMap.delete();
51
54
  }
52
55
  }
56
+ //# sourceMappingURL=mask-pass.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mask-pass.js","sourceRoot":"","sources":["../../src/mask/mask-pass.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AASpC,OAAO,EAAQ,WAAW,IAAI,UAAU,EAAoC,MAAM,eAAe,CAAC;AAOlG,MAAM,aAAa,GAA6B;IAC9C,mBAAmB,EAAE,UAAU;IAC/B,mBAAmB,EAAE,MAAM;IAC3B,mBAAmB,EAAE,KAAK;IAC1B,mBAAmB,EAAE,UAAU;IAC/B,mBAAmB,EAAE,MAAM;IAC3B,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,QAAS,SAAQ,UAAU;IAI9C,YAAY,MAAc,EAAE,KAAqC;QAC/D,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QAErB,MAAM,EAAC,OAAO,GAAG,IAAI,EAAC,GAAG,KAAK,CAAC;QAE/B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC;YAClC,MAAM,EAAE,YAAY;YACpB,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,OAAO,EAAE;gBACP,SAAS,EAAE,QAAQ;gBACnB,SAAS,EAAE,QAAQ;gBACnB,YAAY,EAAE,eAAe;gBAC7B,YAAY,EAAE,eAAe;aAC9B;SACF,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;YAClC,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,OAAO;YACf,gBAAgB,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;SACjC,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,OAA8B;QACnC,MAAM,SAAS,GAAG,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC;QACvC,MAAM,UAAU,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACxC,KAAK,CAAC,MAAM,CAAC,EAAC,GAAG,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAC,CAAC,CAAC;IACpF,CAAC;IAES,kBAAkB,CAC1B,KAAgB,EAChB,UAAkB,EAClB,QAAkB;QAElB,OAAO;YACL,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU;YACzB,KAAK,EAAE,IAAI;YACX,YAAY,EAAE,QAAQ;YACtB,GAAG,aAAa;SACjB,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,KAAK;QACnB,OAAO,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChD,CAAC;IAED,MAAM;QACJ,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACxB,CAAC;CACF"}
@@ -1,8 +1,65 @@
1
- import type { ShaderModule } from '@luma.gl/shadertools';
2
1
  import type { Texture } from '@luma.gl/core';
3
- type MaskModuleSettings = {
2
+ type MaskBindingProps = {
4
3
  maskMap?: Texture;
5
4
  };
6
- declare const _default: ShaderModule<MaskModuleSettings>;
5
+ type MaskUniformProps = {
6
+ bounds: [number, number, number, number];
7
+ channel: number;
8
+ enabled: boolean;
9
+ inverted: boolean;
10
+ maskByInstance: boolean;
11
+ };
12
+ export type MaskProps = MaskBindingProps & MaskUniformProps;
13
+ declare const _default: {
14
+ readonly name: "mask";
15
+ readonly dependencies: [{
16
+ readonly name: "project";
17
+ readonly dependencies: [{
18
+ name: string;
19
+ vs: string;
20
+ }, {
21
+ readonly name: "geometry";
22
+ readonly vs: "\n#define SMOOTH_EDGE_RADIUS 0.5\n\nstruct VertexGeometry {\n vec4 position;\n vec3 worldPosition;\n vec3 worldPositionAlt;\n vec3 normal;\n vec2 uv;\n vec3 pickingColor;\n} geometry = VertexGeometry(\n vec4(0.0, 0.0, 1.0, 0.0),\n vec3(0.0),\n vec3(0.0),\n vec3(0.0),\n vec2(0.0),\n vec3(0.0)\n);\n";
23
+ readonly fs: "\n#define SMOOTH_EDGE_RADIUS 0.5\n\nstruct FragmentGeometry {\n vec2 uv;\n} geometry;\n\nfloat smoothedge(float edge, float x) {\n return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x);\n}\n";
24
+ }];
25
+ readonly vs: string;
26
+ readonly getUniforms: (opts?: import("@deck.gl/core").ProjectProps | {}) => {};
27
+ readonly uniformTypes: {
28
+ readonly wrapLongitude: "f32";
29
+ readonly coordinateSystem: "i32";
30
+ readonly commonUnitsPerMeter: "vec3<f32>";
31
+ readonly projectionMode: "i32";
32
+ readonly scale: "f32";
33
+ readonly commonUnitsPerWorldUnit: "vec3<f32>";
34
+ readonly commonUnitsPerWorldUnit2: "vec3<f32>";
35
+ readonly center: "vec4<f32>";
36
+ readonly modelMatrix: "mat4x4<f32>";
37
+ readonly viewProjectionMatrix: "mat4x4<f32>";
38
+ readonly viewportSize: "vec2<f32>";
39
+ readonly devicePixelRatio: "f32";
40
+ readonly focalDistance: "f32";
41
+ readonly cameraPosition: "vec3<f32>";
42
+ readonly coordinateOrigin: "vec3<f32>";
43
+ readonly commonOrigin: "vec3<f32>";
44
+ readonly pseudoMeters: "f32";
45
+ };
46
+ }];
47
+ readonly vs: "\nuniform maskUniforms {\n vec4 bounds;\n highp int channel;\n bool enabled;\n bool inverted;\n bool maskByInstance;\n} mask;\n\n\nvec2 mask_getCoords(vec4 position) {\n return (position.xy - mask.bounds.xy) / (mask.bounds.zw - mask.bounds.xy);\n}\n\n";
48
+ readonly fs: "\nuniform maskUniforms {\n vec4 bounds;\n highp int channel;\n bool enabled;\n bool inverted;\n bool maskByInstance;\n} mask;\n\n\nuniform sampler2D mask_texture;\n\nbool mask_isInBounds(vec2 texCoords) {\n if (!mask.enabled) {\n return true;\n }\n vec4 maskColor = texture(mask_texture, texCoords);\n float maskValue = 1.0;\n if (mask.channel == 0) {\n maskValue = maskColor.r;\n } else if (mask.channel == 1) {\n maskValue = maskColor.g;\n } else if (mask.channel == 2) {\n maskValue = maskColor.b;\n } else if (mask.channel == 3) {\n maskValue = maskColor.a;\n }\n\n if (mask.inverted) {\n return maskValue >= 0.5;\n } else {\n return maskValue < 0.5;\n }\n}\n\n";
49
+ readonly inject: {
50
+ 'vs:#decl': string;
51
+ 'vs:#main-end': string;
52
+ 'fs:#decl': string;
53
+ 'fs:#main-start': string;
54
+ };
55
+ readonly getUniforms: (opts?: MaskProps | {}) => Record<string, any>;
56
+ readonly uniformTypes: {
57
+ readonly bounds: "vec4<f32>";
58
+ readonly channel: "i32";
59
+ readonly enabled: "i32";
60
+ readonly inverted: "i32";
61
+ readonly maskByInstance: "i32";
62
+ };
63
+ };
7
64
  export default _default;
8
65
  //# sourceMappingURL=shader-module.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/mask/shader-module.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,sBAAsB,CAAC;AAEvD,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAqE3C,KAAK,kBAAkB,GAAG;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;;AAYF,wBAOsC"}
1
+ {"version":3,"file":"shader-module.d.ts","sourceRoot":"","sources":["../../src/mask/shader-module.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAoF3C,KAAK,gBAAgB,GAAG;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,KAAK,gBAAgB,GAAG;IACtB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,gBAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kCAG5B,SAAS,GAAG,EAAE,KAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;;;;;;AASpE,wBAc6C"}
@@ -1,61 +1,81 @@
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
1
4
  import { project } from '@deck.gl/core';
2
- import { glsl } from "../utils/syntax-tags.js";
3
- const vs = `
4
- uniform vec4 mask_bounds;
5
- uniform bool mask_maskByInstance;
5
+ const uniformBlock = /* glsl */ `\
6
+ uniform maskUniforms {
7
+ vec4 bounds;
8
+ highp int channel;
9
+ bool enabled;
10
+ bool inverted;
11
+ bool maskByInstance;
12
+ } mask;
13
+ `;
14
+ const vertex = /* glsl */ `
6
15
  vec2 mask_getCoords(vec4 position) {
7
- return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
16
+ return (position.xy - mask.bounds.xy) / (mask.bounds.zw - mask.bounds.xy);
8
17
  }
9
18
  `;
10
- const fs = `
19
+ const vs = `
20
+ ${uniformBlock}
21
+ ${vertex}
22
+ `;
23
+ const fragment = /* glsl */ `
11
24
  uniform sampler2D mask_texture;
12
- uniform int mask_channel;
13
- uniform bool mask_enabled;
14
- uniform bool mask_inverted;
25
+
15
26
  bool mask_isInBounds(vec2 texCoords) {
16
- if (!mask_enabled) {
17
- return true;
18
- }
19
- vec4 maskColor = texture(mask_texture, texCoords);
20
- float maskValue = 1.0;
21
- if (mask_channel == 0) {
22
- maskValue = maskColor.r;
23
- } else if (mask_channel == 1) {
24
- maskValue = maskColor.g;
25
- } else if (mask_channel == 2) {
26
- maskValue = maskColor.b;
27
- } else if (mask_channel == 3) {
28
- maskValue = maskColor.a;
29
- }
30
- if (mask_inverted) {
31
- return maskValue >= 0.5;
32
- } else {
33
- return maskValue < 0.5;
34
- }
27
+ if (!mask.enabled) {
28
+ return true;
29
+ }
30
+ vec4 maskColor = texture(mask_texture, texCoords);
31
+ float maskValue = 1.0;
32
+ if (mask.channel == 0) {
33
+ maskValue = maskColor.r;
34
+ } else if (mask.channel == 1) {
35
+ maskValue = maskColor.g;
36
+ } else if (mask.channel == 2) {
37
+ maskValue = maskColor.b;
38
+ } else if (mask.channel == 3) {
39
+ maskValue = maskColor.a;
40
+ }
41
+
42
+ if (mask.inverted) {
43
+ return maskValue >= 0.5;
44
+ } else {
45
+ return maskValue < 0.5;
46
+ }
35
47
  }
36
48
  `;
49
+ const fs = `
50
+ ${uniformBlock}
51
+ ${fragment}
52
+ `;
37
53
  const inject = {
38
- 'vs:#decl': `
54
+ 'vs:#decl': /* glsl */ `
39
55
  out vec2 mask_texCoords;
40
56
  `,
41
- 'vs:#main-end': `
42
- vec4 mask_common_position;
43
- if (mask_maskByInstance) {
44
- mask_common_position = project_position(vec4(geometry.worldPosition, 1.0));
45
- } else {
46
- mask_common_position = geometry.position;
47
- }
48
- mask_texCoords = mask_getCoords(mask_common_position);
57
+ 'vs:#main-end': /* glsl */ `
58
+ vec4 mask_common_position;
59
+ if (mask.maskByInstance) {
60
+ mask_common_position = project_position(vec4(geometry.worldPosition, 1.0));
61
+ } else {
62
+ mask_common_position = geometry.position;
63
+ }
64
+ mask_texCoords = mask_getCoords(mask_common_position);
49
65
  `,
50
- 'fs:#decl': `
66
+ 'fs:#decl': /* glsl */ `
51
67
  in vec2 mask_texCoords;
52
68
  `,
53
- 'fs:#main-start': `
54
- if (mask_enabled) {
55
- bool mask = mask_isInBounds(mask_texCoords);
56
- fragColor = texture(mask_texture, mask_texCoords);
57
- if (!mask) discard;
58
- }
69
+ 'fs:#main-start': /* glsl */ `
70
+ if (mask.enabled) {
71
+ bool mask = mask_isInBounds(mask_texCoords);
72
+
73
+ // Debug: show extent of render target
74
+ // fragColor = vec4(mask_texCoords, 0.0, 1.0);
75
+ // fragColor = texture(mask_texture, mask_texCoords);
76
+
77
+ if (!mask) discard;
78
+ }
59
79
  `
60
80
  };
61
81
  /* eslint-disable camelcase */
@@ -65,7 +85,7 @@ const getMaskUniforms = (opts) => {
65
85
  mask_texture: opts.maskMap
66
86
  };
67
87
  }
68
- return {};
88
+ return opts || {};
69
89
  };
70
90
  export default {
71
91
  name: 'mask',
@@ -73,5 +93,13 @@ export default {
73
93
  vs,
74
94
  fs,
75
95
  inject,
76
- getUniforms: getMaskUniforms
96
+ getUniforms: getMaskUniforms,
97
+ uniformTypes: {
98
+ bounds: 'vec4<f32>',
99
+ channel: 'i32',
100
+ enabled: 'i32',
101
+ inverted: 'i32',
102
+ maskByInstance: 'i32'
103
+ }
77
104
  };
105
+ //# sourceMappingURL=shader-module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shader-module.js","sourceRoot":"","sources":["../../src/mask/shader-module.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAGpC,OAAO,EAAC,OAAO,EAAC,MAAM,eAAe,CAAC;AAGtC,MAAM,YAAY,GAAG,UAAU,CAAC;;;;;;;;CAQ/B,CAAC;AAEF,MAAM,MAAM,GAAG,UAAU,CAAC;;;;CAIzB,CAAC;AAEF,MAAM,EAAE,GAAG;EACT,YAAY;EACZ,MAAM;CACP,CAAC;AAEF,MAAM,QAAQ,GAAG,UAAU,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;CAyB3B,CAAC;AAEF,MAAM,EAAE,GAAG;EACT,YAAY;EACZ,QAAQ;CACT,CAAC;AAEF,MAAM,MAAM,GAAG;IACb,UAAU,EAAE,UAAU,CAAC;;CAExB;IACC,cAAc,EAAE,UAAU,CAAC;;;;;;;;CAQ5B;IACC,UAAU,EAAE,UAAU,CAAC;;CAExB;IACC,gBAAgB,EAAE,UAAU,CAAC;;;;;;;;;;CAU9B;CACA,CAAC;AAgBF,8BAA8B;AAC9B,MAAM,eAAe,GAAG,CAAC,IAAqB,EAAuB,EAAE;IACrE,IAAI,IAAI,IAAI,SAAS,IAAI,IAAI,EAAE,CAAC;QAC9B,OAAO;YACL,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC,CAAC;AAEF,eAAe;IACb,IAAI,EAAE,MAAM;IACZ,YAAY,EAAE,CAAC,OAAO,CAAC;IACvB,EAAE;IACF,EAAE;IACF,MAAM;IACN,WAAW,EAAE,eAAe;IAC5B,YAAY,EAAE;QACZ,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,KAAK;QACd,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;KACtB;CACyC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"path-style-extension.d.ts","sourceRoot":"","sources":["../../src/path-style/path-style-extension.ts"],"names":[],"mappings":"AAoBA,OAAO,EAAC,cAAc,EAAgC,MAAM,eAAe,CAAC;AAI5E,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAUnF,MAAM,MAAM,uBAAuB,CAAC,KAAK,GAAG,GAAG,IAAI;IACjD;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,kGAAkG;AAClG,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc,CAAC,yBAAyB,CAAC;IACvF,MAAM,CAAC,YAAY;;;;;;;;;;;MAAgB;IACnC,MAAM,CAAC,aAAa,SAAwB;gBAEhC,EACV,IAAY,EACZ,MAAc,EACd,iBAAyB,EAC1B,GAAE,OAAO,CAAC,yBAAyB,CAAM;IAI1C,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC,GAAG,OAAO;IAIzD,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,GAAG;IAiBtE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI;IAgC5F,WAAW,CACT,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EACpC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,EACxD,SAAS,EAAE,IAAI;IAgBjB,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;CAqB5F"}
1
+ {"version":3,"file":"path-style-extension.d.ts","sourceRoot":"","sources":["../../src/path-style/path-style-extension.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,cAAc,EAAgC,MAAM,eAAe,CAAC;AAI5E,OAAO,KAAK,EAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAC,MAAM,eAAe,CAAC;AAenF,MAAM,MAAM,uBAAuB,CAAC,KAAK,GAAG,GAAG,IAAI;IACjD;;;OAGG;IACH,YAAY,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACjD;;;;OAIG;IACH,SAAS,CAAC,EAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACpC;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,yBAAyB,GAAG;IACtC;;;OAGG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;OAGG;IACH,MAAM,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,iBAAiB,EAAE,OAAO,CAAC;CAC5B,CAAC;AAEF,kGAAkG;AAClG,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc,CAAC,yBAAyB,CAAC;IACvF,MAAM,CAAC,YAAY;;;;;;;;;;;MAAgB;IACnC,MAAM,CAAC,aAAa,SAAwB;gBAEhC,EACV,IAAY,EACZ,MAAc,EACd,iBAAyB,EAC1B,GAAE,OAAO,CAAC,yBAAyB,CAAM;IAI1C,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,uBAAuB,CAAC,GAAG,OAAO;IAIzD,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,SAAS,EAAE,IAAI,GAAG,GAAG;IA4BtE,eAAe,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,IAAI;IAgC5F,WAAW,CACT,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EACpC,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,EACxD,SAAS,EAAE,IAAI;IAejB,cAAc,CAAC,IAAI,EAAE,KAAK,CAAC,uBAAuB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,EAAE,GAAG,MAAM,EAAE;CAqB5F"}
@@ -1,22 +1,6 @@
1
- // Copyright (c) 2015 - 2017 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
1
+ // deck.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
20
4
  import { LayerExtension, _mergeShaders as mergeShaders } from '@deck.gl/core';
21
5
  import { vec3 } from '@math.gl/core';
22
6
  import { dashShaders, offsetShaders } from "./shaders.glsl.js";
@@ -46,7 +30,18 @@ class PathStyleExtension extends LayerExtension {
46
30
  if (extension.opts.offset) {
47
31
  result = mergeShaders(result, offsetShaders);
48
32
  }
49
- return result;
33
+ const { inject } = result;
34
+ const pathStyle = {
35
+ name: 'pathStyle',
36
+ inject,
37
+ uniformTypes: {
38
+ dashAlignMode: 'f32',
39
+ dashGapPickable: 'i32'
40
+ }
41
+ };
42
+ return {
43
+ modules: [pathStyle]
44
+ };
50
45
  }
51
46
  initializeState(context, extension) {
52
47
  const attributeManager = this.getAttributeManager();
@@ -82,12 +77,13 @@ class PathStyleExtension extends LayerExtension {
82
77
  if (!extension.isEnabled(this)) {
83
78
  return;
84
79
  }
85
- const uniforms = {};
86
80
  if (extension.opts.dash) {
87
- uniforms.dashAlignMode = this.props.dashJustified ? 1 : 0;
88
- uniforms.dashGapPickable = Boolean(this.props.dashGapPickable);
81
+ const pathStyleProps = {
82
+ dashAlignMode: this.props.dashJustified ? 1 : 0,
83
+ dashGapPickable: Boolean(this.props.dashGapPickable)
84
+ };
85
+ this.setShaderModuleProps({ pathStyle: pathStyleProps });
89
86
  }
90
- this.state.model?.setUniforms(uniforms);
91
87
  }
92
88
  getDashOffsets(path) {
93
89
  const result = [0];
@@ -111,3 +107,4 @@ class PathStyleExtension extends LayerExtension {
111
107
  PathStyleExtension.defaultProps = defaultProps;
112
108
  PathStyleExtension.extensionName = 'PathStyleExtension';
113
109
  export default PathStyleExtension;
110
+ //# sourceMappingURL=path-style-extension.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path-style-extension.js","sourceRoot":"","sources":["../../src/path-style/path-style-extension.ts"],"names":[],"mappings":"AAAA,UAAU;AACV,+BAA+B;AAC/B,oCAAoC;AAEpC,OAAO,EAAC,cAAc,EAAE,aAAa,IAAI,YAAY,EAAC,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,IAAI,EAAC,MAAM,eAAe,CAAC;AACnC,OAAO,EAAC,WAAW,EAAE,aAAa,EAAC,0BAAuB;AAK1D,MAAM,YAAY,GAAG;IACnB,YAAY,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAC;IAC/C,SAAS,EAAE,EAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAC;IACvC,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,KAAK;CACvB,CAAC;AAiDF,kGAAkG;AAClG,MAAqB,kBAAmB,SAAQ,cAAyC;IAIvF,YAAY,EACV,IAAI,GAAG,KAAK,EACZ,MAAM,GAAG,KAAK,EACd,iBAAiB,GAAG,KAAK,KACa,EAAE;QACxC,KAAK,CAAC,EAAC,IAAI,EAAE,IAAI,IAAI,iBAAiB,EAAE,MAAM,EAAE,iBAAiB,EAAC,CAAC,CAAC;IACtE,CAAC;IAED,SAAS,CAAC,KAAqC;QAC7C,OAAO,gBAAgB,IAAI,KAAK,CAAC,KAAK,CAAC;IACzC,CAAC;IAED,UAAU,CAAuC,SAAe;QAC9D,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,yBAAyB;QACzB,IAAI,MAAM,GAAG,EAAsC,CAAC;QACpD,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QAC/C,CAAC;QAED,MAAM,EAAC,MAAM,EAAC,GAAG,MAAM,CAAC;QACxB,MAAM,SAAS,GAAiC;YAC9C,IAAI,EAAE,WAAW;YACjB,MAAM;YACN,YAAY,EAAE;gBACZ,aAAa,EAAE,KAAK;gBACpB,eAAe,EAAE,KAAK;aACvB;SACF,CAAC;QACF,OAAO;YACL,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB,CAAC;IACJ,CAAC;IAED,eAAe,CAAuC,OAAqB,EAAE,SAAe;QAC1F,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,EAAE,CAAC;QACpD,IAAI,CAAC,gBAAgB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YACpD,+CAA+C;YAC/C,OAAO;QACT,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,gBAAgB,CAAC,YAAY,CAAC;gBAC5B,kBAAkB,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAC;gBACvD,mBAAmB,EAAE,SAAS,CAAC,IAAI,CAAC,iBAAiB;oBACnD,CAAC,CAAC;wBACE,IAAI,EAAE,CAAC;wBACP,QAAQ,EAAE,SAAS;wBACnB,SAAS,EAAE,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;qBAC/C;oBACH,CAAC,CAAC;wBACE,IAAI,EAAE,CAAC;wBACP,MAAM,EAAE,SAAS,CAAC,EAAE;4BAClB,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC;4BAC1B,SAAS,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;wBACxB,CAAC;qBACF;aACN,CAAC,CAAC;QACL,CAAC;QACD,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YAC1B,gBAAgB,CAAC,YAAY,CAAC;gBAC5B,eAAe,EAAE,EAAC,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAC;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,WAAW,CAET,MAAwD,EACxD,SAAe;QAEf,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;YACxB,MAAM,cAAc,GAAmB;gBACrC,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/C,eAAe,EAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;aACrD,CAAC;YACF,IAAI,CAAC,oBAAoB,CAAC,EAAC,SAAS,EAAE,cAAc,EAAC,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAED,cAAc,CAAuC,IAA2B;QAC9E,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;QACxC,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,YAAY,CAAC;QAEzE,IAAI,CAAC,CAAC;QACN,IAAI,KAAK,CAAC;QACV,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,YAAY,EAAE,CAAC,GAAG,YAAY,GAAG,YAAY,CAAC,CAAC;YACvF,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YAE5B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;gBACV,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC;YAED,KAAK,GAAG,CAAC,CAAC;QACZ,CAAC;QACD,MAAM,CAAC,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;;AAjHM,+BAAY,GAAG,YAAY,CAAC;AAC5B,gCAAa,GAAG,oBAAoB,CAAC;eAFzB,kBAAkB"}
@@ -1 +1 @@
1
- {"version":3,"file":"shaders.glsl.d.ts","sourceRoot":"","sources":["../../src/path-style/shaders.glsl.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,WAAW;;;;;;;CAoEvB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;CAwBzB,CAAC"}
1
+ {"version":3,"file":"shaders.glsl.d.ts","sourceRoot":"","sources":["../../src/path-style/shaders.glsl.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,WAAW;;;;;;;CAsEvB,CAAC;AAEF,eAAO,MAAM,aAAa;;;;;;;CAwBzB,CAAC"}