@arcgis/core 5.2.0-next.117 → 5.2.0-next.119

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 (218) hide show
  1. package/analysis/ElevationProfile/ElevationProfileLineQuery.d.ts +1 -1
  2. package/analysis/featureReferenceUtils.js +1 -1
  3. package/arcade.d.ts +1 -1
  4. package/arcade.js +1 -1
  5. package/assets/esri/core/workers/RemoteClient.js +1 -1
  6. package/assets/esri/core/workers/chunks/03918a862455191a8910.js +1 -0
  7. package/assets/esri/core/workers/chunks/{9b9a60f1e0c48aa701f0.js → 066b7f6866d602f963e0.js} +1 -1
  8. package/assets/esri/core/workers/chunks/{564fdf0d663b773806cc.js → 114bc14c49176f64a2c5.js} +1 -1
  9. package/assets/esri/core/workers/chunks/1630913399384030d0b9.js +1 -0
  10. package/assets/esri/core/workers/chunks/{db141122060d8d9b38da.js → 1742dbc6a827cfda471b.js} +1 -1
  11. package/assets/esri/core/workers/chunks/{045ff98313b06a2188b7.js → 1a39335aa2dce6d564d9.js} +1 -1
  12. package/assets/esri/core/workers/chunks/{caf38cf4d8542fb11c46.js → 20e4277a4a6c57957202.js} +1 -1
  13. package/assets/esri/core/workers/chunks/{f42243c62dd0b6993816.js → 24014f3701c31ee74bc2.js} +1 -1
  14. package/assets/esri/core/workers/chunks/{62b1f94f4fa978d4da48.js → 354912041363502c6a89.js} +1 -1
  15. package/assets/esri/core/workers/chunks/37cf4ca2083cd3b6002e.js +1 -0
  16. package/assets/esri/core/workers/chunks/{3b499cfc89c8f87cdb20.js → 3c3e5e952fd6740bb234.js} +1 -1
  17. package/assets/esri/core/workers/chunks/{44d3fe10cb35d16f0b33.js → 4396ef5ab3eb9e9a7df2.js} +1 -1
  18. package/assets/esri/core/workers/chunks/{56989b48c0a5d7fe85e6.js → 4c4ba466e23159991322.js} +1 -1
  19. package/assets/esri/core/workers/chunks/{b9023cc3298ee4fddea7.js → 54f3bc940cea15fce2c7.js} +1 -1
  20. package/assets/esri/core/workers/chunks/{7e42be27ead91a4cc0f1.js → 581285e4d7bbe1b7c27a.js} +1 -1
  21. package/assets/esri/core/workers/chunks/5938d5f6e37f49867d5a.js +1 -0
  22. package/assets/esri/core/workers/chunks/{05584d8828ae7bca0fc5.js → 64ee22134fda2f09c094.js} +1 -1
  23. package/assets/esri/core/workers/chunks/6efc5873747b9cd44fb9.js +1 -0
  24. package/assets/esri/core/workers/chunks/{0463c807b37f01bbc35c.js → 70347d25968975126fa7.js} +1 -1
  25. package/assets/esri/core/workers/chunks/{4bfd63f3cf9208eb839b.js → 723478607badcde5706b.js} +43 -43
  26. package/assets/esri/core/workers/chunks/{42c4d0c1c08bf111e5a4.js → 731ec5de16753e10b963.js} +1 -1
  27. package/assets/esri/core/workers/chunks/{5965a947f68b707eaa6b.js → 82ce034b5ba54de9b970.js} +1 -1
  28. package/assets/esri/core/workers/chunks/{1eafb214519d8fc63ccb.js → 8465e2c7221125fd3cc4.js} +1 -1
  29. package/assets/esri/core/workers/chunks/862e1acd80c4e43831dc.js +1 -0
  30. package/assets/esri/core/workers/chunks/{fd808d38ae2d475ac442.js → 8675ab3c4dec2f13b9c6.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{925a0b29d3ed7165b8dd.js → 8984d02c0ce828fd223a.js} +1 -1
  32. package/assets/esri/core/workers/chunks/{57328c206f1e699ac06f.js → 89edaa1ffa566908ebca.js} +1 -1
  33. package/assets/esri/core/workers/chunks/97fea852f8e93e1286e4.js +1 -0
  34. package/assets/esri/core/workers/chunks/{bb4cbf6b7c35e8c78cc7.js → a917a1df8270860dc514.js} +1 -1
  35. package/assets/esri/core/workers/chunks/{996438b3afec92c5c68e.js → b0058619e0363002ad86.js} +1 -1
  36. package/assets/esri/core/workers/chunks/{9fb46ccd4be4c3b61c31.js → b5a102cf9f4377fb9842.js} +1 -1
  37. package/assets/esri/core/workers/chunks/b6409d89914030d5854a.js +1 -0
  38. package/assets/esri/core/workers/chunks/{fa869977ac2abb063925.js → b9c834e3c0701e9b14a2.js} +1 -1
  39. package/assets/esri/core/workers/chunks/{32dd990a3bd93cbad309.js → c0ec87800faf99cbd8bd.js} +1 -1
  40. package/assets/esri/core/workers/chunks/{20de0ea9fa08a6545978.js → cf1106eda10f3cccb1bd.js} +1 -1
  41. package/assets/esri/core/workers/chunks/{ed988360264574cd8f6b.js → cf7c06702babd6fa88b4.js} +1 -1
  42. package/assets/esri/core/workers/chunks/cfd8317ecd2e63af7c40.js +1 -0
  43. package/assets/esri/core/workers/chunks/d090baaa974e1e83fa44.js +1 -0
  44. package/assets/esri/core/workers/chunks/{c5ceceb0683671f92efa.js → da6583e8d88441a1c02a.js} +1 -1
  45. package/assets/esri/core/workers/chunks/{e1f2b07be33e33117313.js → dd02cc18ebebb90778c6.js} +1 -1
  46. package/assets/esri/core/workers/chunks/de8a3a0796bd115426c0.js +1 -0
  47. package/assets/esri/core/workers/chunks/{05b373a663cb5d4d722f.js → deb5b1d772ca407654d4.js} +1 -1
  48. package/assets/esri/core/workers/chunks/{10fa8fbade8ae084c307.js → e22a013ec38989caf9de.js} +1 -1
  49. package/assets/esri/core/workers/chunks/{c7e6b5594fed5bb16691.js → e4016ae9cb8f16e3efc3.js} +1 -1
  50. package/assets/esri/core/workers/chunks/e5f0c47957a4e9663720.js +1 -0
  51. package/assets/esri/core/workers/chunks/{a3f4818f4190fa92331d.js → edd36e98355f1655e5c8.js} +1 -1
  52. package/assets/esri/core/workers/chunks/ef6e52f9b656751eebaf.js +1 -0
  53. package/assets/esri/core/workers/chunks/f0709c48daca93e759c8.js +1 -0
  54. package/assets/esri/core/workers/chunks/f5423006fb07db7dd6ee.js +1 -0
  55. package/assets/esri/core/workers/chunks/{d926bffc3ff9f87e9081.js → f890359d972cce54459e.js} +1 -1
  56. package/assets/esri/core/workers/chunks/fb11ff3f2eae5f072560.js +1 -0
  57. package/assets/esri/core/workers/chunks/fdad31bbe8aee68a6eaf.js +1 -0
  58. package/assets/esri/core/workers/chunks/fe1787a8d499832996b3.js +1 -0
  59. package/chunks/CloudsComposition.glsl.js +2 -2
  60. package/chunks/ColorMaterial.glsl.js +3 -3
  61. package/chunks/Compositing.glsl.js +4 -4
  62. package/chunks/DeepSky.glsl.js +3 -3
  63. package/chunks/EdgeShader.glsl.js +6 -6
  64. package/chunks/FocusArea.glsl.js +1 -1
  65. package/chunks/GlobalIllumination.glsl.js +7 -7
  66. package/chunks/HUDMaterial.glsl.js +5 -5
  67. package/chunks/LaserlinePath.glsl.js +5 -5
  68. package/chunks/LineCallout.glsl.js +2 -2
  69. package/chunks/LineMarker.glsl.js +30 -30
  70. package/chunks/NavigationDepth.glsl.js +1 -1
  71. package/chunks/OccludedGeometryDepth.glsl.js +2 -2
  72. package/chunks/Path.glsl.js +12 -12
  73. package/chunks/PointRenderer.glsl.js +5 -5
  74. package/chunks/Precipitation.glsl.js +7 -7
  75. package/chunks/RibbonLine.glsl.js +50 -50
  76. package/chunks/SimpleAtmosphere.glsl.js +9 -9
  77. package/chunks/Stars.glsl.js +5 -5
  78. package/chunks/Terrain.glsl.js +18 -16
  79. package/chunks/Viewshed.glsl.js +3 -3
  80. package/chunks/VolumeMask.glsl.js +2 -2
  81. package/chunks/Water.glsl.js +38 -48
  82. package/config.js +1 -1
  83. package/core/NestedMap.js +1 -1
  84. package/kernel.js +1 -1
  85. package/layers/AnnotationFeatureLayer.d.ts +2 -1
  86. package/layers/AnnotationFeatureLayer.js +1 -1
  87. package/layers/CatalogLayer.d.ts +2 -1
  88. package/layers/CatalogLayer.js +1 -1
  89. package/layers/DimensionFeatureLayer.d.ts +2 -1
  90. package/layers/DimensionFeatureLayer.js +1 -1
  91. package/layers/FeatureLayer.d.ts +2 -30
  92. package/layers/FeatureLayer.js +1 -1
  93. package/layers/Lyr3DWasmPerSceneView.js +1 -1
  94. package/layers/SubtypeGroupLayer.d.ts +2 -1
  95. package/layers/SubtypeGroupLayer.js +1 -1
  96. package/layers/graphics/sources/FeatureLayerSource.js +1 -1
  97. package/layers/mixins/FeatureLayerBase.js +1 -1
  98. package/layers/mixins/FeatureLayerReload.d.ts +26 -0
  99. package/layers/mixins/FeatureLayerReload.js +2 -0
  100. package/layers/mixins/PortalLayer.js +1 -1
  101. package/layers/support/TimeInfo.d.ts +2 -2
  102. package/layers/support/TimeInfo.js +1 -1
  103. package/layers/support/fieldUtils.js +1 -1
  104. package/layers/video/VideoController.js +1 -1
  105. package/package.json +3 -3
  106. package/support/revision.js +1 -1
  107. package/symbols/cim/animationUtils.js +1 -1
  108. package/time/timeZoneUtils.js +1 -1
  109. package/views/2d/engine/webgl/animations/instructions.js +1 -1
  110. package/views/3d/analysis/LineOfSight/LineOfSightEditTool.js +1 -1
  111. package/views/3d/analysis/LineOfSight/LineOfSightItemTool.js +1 -1
  112. package/views/3d/analysis/LineOfSight/LineOfSightTool.js +1 -1
  113. package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
  114. package/views/3d/camera/constraintUtils.js +1 -1
  115. package/views/3d/interactive/editingTools/move/MoveTool3D.js +1 -1
  116. package/views/3d/interactive/visualElements/MeasurementArrowVisualElement.js +1 -1
  117. package/views/3d/state/controllers/GroundNavigationController.js +1 -1
  118. package/views/3d/state/controllers/InteractiveController.js +1 -1
  119. package/views/3d/state/controllers/momentum/GroundNavigationMomentumController.js +1 -1
  120. package/views/3d/state/controllers/momentum/MomentumController.js +1 -1
  121. package/views/3d/state/utils/OffsetCorrectionController.js +2 -0
  122. package/views/3d/support/engineContent/line.js +1 -1
  123. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepth.glsl.js +2 -2
  124. package/views/3d/webgl-engine/core/shaderLibrary/ForwardLinearDepthToWriteShadowMap.glsl.js +4 -4
  125. package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
  126. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +9 -9
  127. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +15 -15
  128. package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +3 -3
  129. package/views/3d/webgl-engine/core/shaderLibrary/shading/MarkerSizing.glsl.js +23 -23
  130. package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +3 -3
  131. package/views/3d/webgl-engine/core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js +8 -8
  132. package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterColor.glsl.js +7 -7
  133. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +7 -7
  134. package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
  135. package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +2 -0
  136. package/views/3d/webgl-engine/effects/AmbientIllumination.js +1 -1
  137. package/views/3d/webgl-engine/effects/atmosphere/SimpleAtmosphere.glsl.js +1 -1
  138. package/views/3d/webgl-engine/effects/clouds/CloudsComposition.glsl.js +1 -1
  139. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
  140. package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
  141. package/views/3d/webgl-engine/effects/laserlines/LaserlinePath.glsl.js +1 -1
  142. package/views/3d/webgl-engine/effects/precipitation/Precipitation.glsl.js +1 -1
  143. package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
  144. package/views/3d/webgl-engine/effects/stars/DeepSky.glsl.js +1 -1
  145. package/views/3d/webgl-engine/effects/stars/Stars.glsl.js +1 -1
  146. package/views/3d/webgl-engine/lib/LineMaterial.js +1 -1
  147. package/views/3d/webgl-engine/lib/Program.js +1 -1
  148. package/views/3d/webgl-engine/lib/RenderFeature.js +1 -1
  149. package/views/3d/webgl-engine/lib/edgeRendering/AdjustProjectedPosition.glsl.js +4 -4
  150. package/views/3d/webgl-engine/lib/edgeRendering/EdgeShader.glsl.js +1 -1
  151. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  152. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  153. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  154. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  155. package/views/3d/webgl-engine/materials/Path.glsl.js +1 -1
  156. package/views/3d/webgl-engine/materials/PolygonOffset.js +1 -1
  157. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  158. package/views/3d/webgl-engine/materials/ViewingModeConfiguration.js +1 -1
  159. package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
  160. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  161. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  162. package/views/3d/webgl-engine/materials/renderers/PerBufferData.js +1 -1
  163. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  164. package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
  165. package/views/3d/webgl-engine/shaders/Compositing.glsl.js +1 -1
  166. package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +26 -26
  167. package/views/3d/webgl-engine/shaders/GaussianSplatTechniqueConfiguration.js +1 -1
  168. package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
  169. package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
  170. package/views/3d/webgl-engine/shaders/LineCalloutTechniqueConfiguration.js +1 -1
  171. package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
  172. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  173. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  174. package/views/3d/webgl-engine/shaders/LineTechniqueConfiguration.js +2 -0
  175. package/views/3d/webgl-engine/shaders/MeasurementArrowTechniqueConfiguration.js +1 -1
  176. package/views/3d/webgl-engine/shaders/NativeLineTechniqueConfiguration.js +1 -1
  177. package/views/3d/webgl-engine/shaders/NavigationDepth.glsl.js +1 -1
  178. package/views/3d/webgl-engine/shaders/OccludedGeometryDepth.glsl.js +1 -1
  179. package/views/3d/webgl-engine/shaders/PointRenderer.glsl.js +1 -1
  180. package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
  181. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  182. package/views/3d/webgl-engine/shaders/ScreenSpacePassAtmosphere.glsl.js +1 -1
  183. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  184. package/views/3d/webgl-engine/shaders/Viewshed.glsl.js +1 -1
  185. package/views/3d/webgl-engine/shaders/VolumeMask.glsl.js +1 -1
  186. package/widgets/ElevationProfile/ElevationProfileLineQuery.d.ts +1 -1
  187. package/widgets/Measurement.d.ts +1 -2
  188. package/widgets/Measurement.js +1 -1
  189. package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
  190. package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
  191. package/widgets/Sketch/SketchViewModel.d.ts +13 -0
  192. package/widgets/Sketch/SketchViewModel.js +1 -1
  193. package/widgets/Sketch/VisibleElements.d.ts +8 -1
  194. package/widgets/Sketch/VisibleElements.js +1 -1
  195. package/widgets/Sketch/support/PluginManager.d.ts +11 -1
  196. package/widgets/ValuePicker.d.ts +1 -1
  197. package/widgets/ValuePicker.js +1 -1
  198. package/widgets/VideoPlayer/VideoPlayerViewModel.d.ts +4 -2
  199. package/widgets/VideoPlayer/VideoPlayerViewModel.js +1 -1
  200. package/widgets/VideoPlayer.js +1 -1
  201. package/assets/esri/core/workers/chunks/0630e650abdfea1792e4.js +0 -1
  202. package/assets/esri/core/workers/chunks/0edebc6c516f0b9dac7b.js +0 -1
  203. package/assets/esri/core/workers/chunks/25c5e1b14b184b1228a3.js +0 -1
  204. package/assets/esri/core/workers/chunks/2e0fd0536408053ac6f5.js +0 -1
  205. package/assets/esri/core/workers/chunks/573e8fa0af8711ffec45.js +0 -1
  206. package/assets/esri/core/workers/chunks/5b9925f23d4b10a7087e.js +0 -1
  207. package/assets/esri/core/workers/chunks/66c46c5a7147550ea3ed.js +0 -1
  208. package/assets/esri/core/workers/chunks/6c7cb7974969e3167f2b.js +0 -1
  209. package/assets/esri/core/workers/chunks/729d458e9e28641227cd.js +0 -1
  210. package/assets/esri/core/workers/chunks/7bbc3d22383388d11345.js +0 -1
  211. package/assets/esri/core/workers/chunks/7edf57e31ff07af9032b.js +0 -1
  212. package/assets/esri/core/workers/chunks/8bd187b48a4e4296e3d8.js +0 -1
  213. package/assets/esri/core/workers/chunks/9acaabe950319d031f2e.js +0 -1
  214. package/assets/esri/core/workers/chunks/ac02df176f9ea94278bb.js +0 -1
  215. package/assets/esri/core/workers/chunks/b4222152efaf73b37b53.js +0 -1
  216. package/assets/esri/core/workers/chunks/c0855be20ffcd52c7026.js +0 -1
  217. package/assets/esri/core/workers/chunks/e606be4ece4eac1e9bbe.js +0 -1
  218. package/assets/esri/core/workers/chunks/f05622413cadfd14553e.js +0 -1
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- function n(n){return 5===n||6===n||7===n}function r(r){return n(r)||8===r||9===r}function t(n){return d(n)||4===n}function u(n){return t(n)||r(n)}function e(n){return 10===n||11===n}function o(n){return p(n)||e(n)}function c(n){return 1===n}function f(n){return 2===n}function i(n){return c(n)||f(n)}function p(n){return 0===n||i(n)}function x(n){return 10===n}function a(n){return p(n)||11===n}function b(n){return p(n)||e(n)}function d(n){return b(n)||g(n)}function g(n){return 3===n}export{o as is2DGeometryOutput,t as is3DGeometry,u as is3DGeometryOrShadowLike,p as isColor,d as isColorHighlightOLIDOrDepth,b as isColorHighlightOrOLID,a as isColorOrOLID,g as isDepth,x as isHighlight,e as isHighlightOrOLID,i as isOIT,c as isOITColorAlpha,f as isOITFrontFace,n as isShadow,r as isShadowLike};
2
+ function n(n){return 5===n||6===n||7===n}function r(r){return n(r)||8===r||9===r}function t(n){return g(n)||u(n)}function u(n){return 4===n}function e(n){return t(n)||r(n)}function o(n){return 10===n||11===n}function c(n){return x(n)||o(n)}function f(n){return 1===n}function i(n){return 2===n}function p(n){return f(n)||i(n)}function x(n){return 0===n||p(n)}function a(n){return 10===n}function b(n){return x(n)||11===n}function d(n){return x(n)||o(n)}function g(n){return d(n)||h(n)}function h(n){return 3===n}export{c as is2DGeometryOutput,t as is3DGeometry,e as is3DGeometryOrShadowLike,x as isColor,g as isColorHighlightOLIDOrDepth,d as isColorHighlightOrOLID,b as isColorOrOLID,h as isDepth,a as isHighlight,o as isHighlightOrOLID,u as isNormals,p as isOIT,f as isOITColorAlpha,i as isOITFrontFace,n as isShadow,r as isShadowLike};
@@ -1,24 +1,24 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{normalFromMat4 as e}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{IDENTITY as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as a}from"../../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{DoublePrecision as i}from"../util/DoublePrecision.glsl.js";import{addViewNormal as t}from"../util/View.glsl.js";import{Float3BindUniform as s}from"../../shaderModules/Float3BindUniform.js";import{glsl as l}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as m}from"../../shaderModules/Matrix3PassUniform.js";import{Matrix4PassUniform as c}from"../../shaderModules/Matrix4PassUniform.js";import{encodeDoubleHi as d,encodeDoubleLo as v}from"../../../../../webgl/doublePrecisionUtils.js";import{NoParameters as g}from"../../../../../webgl/NoParameters.js";class x extends g{constructor(){super(...arguments),this.modelTransformation=null}}const u=r();function p(r,n){const{hasModelTransformation:g,instancedDoublePrecision:x,instanced:p,output:f,hasVertexTangents:w}=n;g&&(r.vertex.uniforms.add(new c("model",e=>e.modelTransformation??o)),r.vertex.uniforms.add(new m("normalLocalOriginFromModel",r=>(e(u,r.modelTransformation??o),u)))),p&&x&&(r.attributes.add("instanceModelOriginHi","vec3"),r.attributes.add("instanceModelOriginLo","vec3"),r.attributes.add("instanceModel","mat3"),r.attributes.add("instanceModelNormal","mat3"));const _=r.vertex;x&&(_.include(i),_.uniforms.add(new s("viewOriginHi",e=>d(a(M,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),M)),new s("viewOriginLo",e=>v(a(M,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),M)))),_.code.add(l`
2
+ import{normalFromMat4 as e}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{IDENTITY as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as a}from"../../../../../../core/libs/gl-matrix-2/math/vec3.js";import{create as n}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{viewNormal as i}from"../util/cameraUniforms.js";import{DoublePrecision as t}from"../util/DoublePrecision.glsl.js";import{Float3BindUniform as s}from"../../shaderModules/Float3BindUniform.js";import{glsl as l}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as m}from"../../shaderModules/Matrix3PassUniform.js";import{Matrix4PassUniform as c}from"../../shaderModules/Matrix4PassUniform.js";import{encodeDoubleHi as d,encodeDoubleLo as v}from"../../../../../webgl/doublePrecisionUtils.js";import{NoParameters as g}from"../../../../../webgl/NoParameters.js";class u extends g{constructor(){super(...arguments),this.modelTransformation=null}}const x=r();function p(r,n){const{hasModelTransformation:g,instancedDoublePrecision:u,instanced:p,output:f,hasVertexTangents:w}=n;g&&(r.vertex.uniforms.add(new c("model",e=>e.modelTransformation??o)),r.vertex.uniforms.add(new m("normalLocalOriginFromModel",r=>(e(x,r.modelTransformation??o),x)))),p&&u&&(r.attributes.add("instanceModelOriginHi","vec3"),r.attributes.add("instanceModelOriginLo","vec3"),r.attributes.add("instanceModel","mat3"),r.attributes.add("instanceModelNormal","mat3"));const _=r.vertex;u&&(_.include(t),_.uniforms.add(new s("viewOriginHi",e=>d(a(M,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),M)),new s("viewOriginLo",e=>v(a(M,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),M)))),_.code.add(l`
3
3
  vec3 getVertexInLocalOriginSpace() {
4
- return ${g?x?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":x?"instanceModel * localPosition().xyz":"localPosition().xyz"};
4
+ return ${g?u?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":u?"instanceModel * localPosition().xyz":"localPosition().xyz"};
5
5
  }
6
6
 
7
7
  vec3 subtractOrigin(vec3 _pos) {
8
- ${x?l`
8
+ ${u?l`
9
9
  // Issue: (should be resolved now with invariant position) https://devtopia.esri.com/WebGIS/arcgis-js-api/issues/56280
10
10
  vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -instanceModelOriginHi, -instanceModelOriginLo);
11
11
  return _pos - originDelta;`:"return vpos;"}
12
12
  }
13
13
  `),_.code.add(l`
14
14
  vec3 dpNormal(vec4 _normal) {
15
- return normalize(${g?x?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":x?"instanceModelNormal * _normal.xyz":"_normal.xyz"});
15
+ return normalize(${g?u?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":u?"instanceModelNormal * _normal.xyz":"_normal.xyz"});
16
16
  }
17
- `),4===f&&(t(_),_.code.add(l`
17
+ `),4===f&&_.uniforms.add(i).code.add(l`
18
18
  vec3 dpNormalView(vec4 _normal) {
19
- return normalize((viewNormal * ${g?x?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":x?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz);
19
+ return normalize((viewNormal * ${g?u?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":u?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz);
20
20
  }
21
- `)),w&&_.code.add(l`
21
+ `),w&&_.code.add(l`
22
22
  vec4 dpTransformVertexTangent(vec4 _tangent) {
23
- ${g?x?"return vec4(normalLocalOriginFromModel * (instanceModelNormal * _tangent.xyz), _tangent.w);":"return vec4(normalLocalOriginFromModel * _tangent.xyz, _tangent.w);":x?"return vec4(instanceModelNormal * _tangent.xyz, _tangent.w);":"return _tangent;"}
24
- }`)}const M=n();export{x as InstancedDoublePassParameters,p as InstancedDoublePrecision};
23
+ ${g?u?"return vec4(normalLocalOriginFromModel * (instanceModelNormal * _tangent.xyz), _tangent.w);":"return vec4(normalLocalOriginFromModel * _tangent.xyz, _tangent.w);":u?"return vec4(instanceModelNormal * _tangent.xyz, _tangent.w);":"return _tangent;"}
24
+ }`)}const M=n();export{u as InstancedDoublePassParameters,p as InstancedDoublePrecision};
@@ -1,21 +1,21 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{addNearFar as o}from"../ForwardLinearDepthToWriteShadowMap.glsl.js";import{SliceDraw as e}from"../Slice.glsl.js";import{Transform as r}from"../Transform.glsl.js";import{NormalAttribute as t}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as i}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as a}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as l}from"../attributes/VertexNormal.glsl.js";import{DefaultMaterialExternalColor as s}from"./DefaultMaterialExternalColor.glsl.js";import{outputDepth as d}from"../output/OutputDepth.glsl.js";import{OutputHighlight as n}from"../output/OutputHighlight.glsl.js";import{VisualVariables as c}from"../shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as u}from"../util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as p}from"../util/View.glsl.js";import{glsl as v,If as m}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";function g(g,x){const{vertex:O,fragment:j,varyings:h}=g,{hasColorTexture:C,alphaDiscardMode:w}=x,V=C&&1!==w,{output:b,normalType:A,hasColorTextureTransform:y}=x;switch(b){case 3:p(O,x),g.include(r),j.include(e,x),g.include(a,x),V&&j.uniforms.add(new f("tex",o=>o.texture)),O.main.add(v`vpos = getVertexInLocalOriginSpace();
2
+ import{SliceDraw as o}from"../Slice.glsl.js";import{Transform as e}from"../Transform.glsl.js";import{NormalAttribute as r}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as t}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as i}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as a}from"../attributes/VertexNormal.glsl.js";import{DefaultMaterialExternalColor as l}from"./DefaultMaterialExternalColor.glsl.js";import{outputDepth as s}from"../output/OutputDepth.glsl.js";import{OutputHighlight as d}from"../output/OutputHighlight.glsl.js";import{VisualVariables as n}from"../shading/VisualVariables.glsl.js";import{nearFar as c}from"../util/cameraUniforms.js";import{DiscardOrAdjustAlphaPass as u}from"../util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as p}from"../util/View.glsl.js";import{glsl as m,If as v}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";function g(g,x){const{vertex:O,fragment:j,varyings:h}=g,{hasColorTexture:C,alphaDiscardMode:w}=x,V=C&&1!==w,{output:b,normalType:A,hasColorTextureTransform:y}=x;switch(b){case 3:p(O,x),g.include(e),j.include(o,x),g.include(i,x),V&&j.uniforms.add(new f("tex",o=>o.texture)),O.main.add(m`vpos = getVertexInLocalOriginSpace();
3
3
  vpos = subtractOrigin(vpos);
4
4
  vpos = addVerticalOffset(vpos, localOrigin);
5
5
  gl_Position = transformPosition(proj, view, vpos);
6
- forwardTextureCoordinates();`),g.include(u,x),j.main.add(v`
6
+ forwardTextureCoordinates();`),g.include(u,x),j.main.add(m`
7
7
  discardBySlice(vpos);
8
- ${m(V,v`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
9
- discardOrAdjustAlpha(texColor);`)}`);break;case 5:case 6:case 7:case 8:case 11:p(O,x),g.include(r),g.include(a,x),g.include(c,x),g.include(d,x),j.include(e,x),g.include(i,x),o(g),h.add("depth","float",{invariant:!0}),V&&j.uniforms.add(new f("tex",o=>o.texture)),O.main.add(v`vpos = getVertexInLocalOriginSpace();
8
+ ${v(V,m`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
9
+ discardOrAdjustAlpha(texColor);`)}`);break;case 5:case 6:case 7:case 8:case 11:p(O,x),g.include(e),g.include(i,x),g.include(n,x),g.include(s,x),j.include(o,x),g.include(t,x),h.add("depth","float",{invariant:!0}),V&&j.uniforms.add(new f("tex",o=>o.texture)),O.uniforms.add(c).main.add(m`vpos = getVertexInLocalOriginSpace();
10
10
  vpos = subtractOrigin(vpos);
11
11
  vpos = addVerticalOffset(vpos, localOrigin);
12
12
  gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);
13
13
  forwardTextureCoordinates();
14
- forwardObjectAndLayerIdColor();`),g.include(u,x),j.main.add(v`
14
+ forwardObjectAndLayerIdColor();`),g.include(u,x),j.main.add(m`
15
15
  discardBySlice(vpos);
16
- ${m(V,v`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
16
+ ${v(V,m`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
17
17
  discardOrAdjustAlpha(texColor);`)}
18
- ${11===b?v`outputObjectAndLayerIdColor();`:v`outputDepth(depth);`}`);break;case 4:{p(O,x),g.include(r),g.include(t,x),g.include(l,x),g.include(a,x),g.include(c,x),g.include(s,x),V&&j.uniforms.add(new f("tex",o=>o.texture)),2===A&&h.add("vPositionView","vec3",{invariant:!0});const o=0===A||1===A;O.main.add(v`
18
+ ${11===b?m`outputObjectAndLayerIdColor();`:m`outputDepth(depth);`}`);break;case 4:{p(O,x),g.include(e),g.include(r,x),g.include(a,x),g.include(i,x),g.include(n,x),g.include(l,x),V&&j.uniforms.add(new f("tex",o=>o.texture)),2===A&&h.add("vPositionView","vec3",{invariant:!0});const t=0===A||1===A;O.main.add(m`
19
19
  forwardDefaultMaterialExternalColor();
20
20
 
21
21
  if (shouldCullByOpacity()) {
@@ -24,26 +24,26 @@ forwardObjectAndLayerIdColor();`),g.include(u,x),j.main.add(v`
24
24
  }
25
25
 
26
26
  vpos = getVertexInLocalOriginSpace();
27
- ${o?v`vNormalWorld = dpNormalView(vvLocalNormal(normalModel()));`:v`vPositionView = (view * vec4(vpos, 1.0)).xyz;`}
27
+ ${t?m`vNormalWorld = dpNormalView(vvLocalNormal(normalModel()));`:m`vPositionView = (view * vec4(vpos, 1.0)).xyz;`}
28
28
  vpos = subtractOrigin(vpos);
29
29
  vpos = addVerticalOffset(vpos, localOrigin);
30
30
  gl_Position = transformPosition(proj, view, vpos);
31
- forwardTextureCoordinates();`),j.include(e,x),g.include(u,x),j.main.add(v`
31
+ forwardTextureCoordinates();`),j.include(o,x),g.include(u,x),j.main.add(m`
32
32
  discardBySlice(vpos);
33
- ${m(V,v`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
34
- discardOrAdjustAlpha(texColor);`,v`vec4 texColor = vec4(1.0);`)}
33
+ ${v(V,m`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
34
+ discardOrAdjustAlpha(texColor);`,m`vec4 texColor = vec4(1.0);`)}
35
35
  float opacity = getDefaultMaterialOpacity(texColor.a);
36
36
 
37
- ${2===A?v`vec3 normal = screenDerivativeNormal(vPositionView);`:v`vec3 normal = normalize(vNormalWorld);
37
+ ${2===A?m`vec3 normal = screenDerivativeNormal(vPositionView);`:m`vec3 normal = normalize(vNormalWorld);
38
38
  if (gl_FrontFacing == false){
39
39
  normal = -normal;
40
40
  }`}
41
- fragColor = vec4(0.5 + 0.5 * normal, opacity);`);break}case 10:p(O,x),g.include(r),g.include(a,x),g.include(c,x),V&&j.uniforms.add(new f("tex",o=>o.texture)),O.main.add(v`vpos = getVertexInLocalOriginSpace();
41
+ fragColor = vec4(0.5 + 0.5 * normal, opacity);`);break}case 10:p(O,x),g.include(e),g.include(i,x),g.include(n,x),V&&j.uniforms.add(new f("tex",o=>o.texture)),O.main.add(m`vpos = getVertexInLocalOriginSpace();
42
42
  vpos = subtractOrigin(vpos);
43
43
  vpos = addVerticalOffset(vpos, localOrigin);
44
44
  gl_Position = transformPosition(proj, view, vpos);
45
- forwardTextureCoordinates();`),j.include(e,x),g.include(u,x),g.include(n,x),j.main.add(v`
45
+ forwardTextureCoordinates();`),j.include(o,x),g.include(u,x),g.include(d,x),j.main.add(m`
46
46
  discardBySlice(vpos);
47
- ${m(V,v`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
47
+ ${v(V,m`vec4 texColor = texture(tex, ${y?"colorUV":"vuv0"});
48
48
  discardOrAdjustAlpha(texColor);`)}
49
49
  calculateOcclusionAndOutputHighlight();`)}}export{g as DefaultMaterialAuxiliaryPasses};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{addVerticalOffset as e}from"../attributes/VerticalOffset.glsl.js";import{ScreenSizePerspective as t,addScreenSizePerspectiveAlignment as o}from"../util/ScreenSizePerspective.glsl.js";import{addProjViewLocalOrigin as a,addCameraPosition as s,addViewNormal as i,addPixelRatio as n}from"../util/View.glsl.js";import{Float4BindUniform as r}from"../../shaderModules/Float4BindUniform.js";import{FloatBindUniform as f}from"../../shaderModules/FloatBindUniform.js";import{FloatPassUniform as l}from"../../shaderModules/FloatPassUniform.js";import{glsl as c}from"../../shaderModules/glsl.js";const p=.5;function d(d,u){const v=d.vertex;d.include(t),d.attributes.add("position","vec3"),d.vertex.inputs.add("position",()=>"position"),d.attributes.add("normal","vec3"),u.hasVertexCenterOffset?d.attributes.add("centerOffset","vec3"):v.constants.add("centerOffset","vec3",[0,0,0]),d.attributes.add("groundDistance","float"),a(v,u),s(v,u),v.uniforms.add(new r("viewport",e=>e.camera.fullViewport),new l("polygonOffset",e=>e.shaderPolygonOffset),new f("aboveGround",e=>e.camera.aboveGround?1:-1)),u.hasVerticalOffset&&e(v),v.code.add(c`struct ProjectHUDAux {
2
+ import{addVerticalOffset as e}from"../attributes/VerticalOffset.glsl.js";import{viewport as t,viewNormal as o}from"../util/cameraUniforms.js";import{ScreenSizePerspective as a,addScreenSizePerspectiveAlignment as s}from"../util/ScreenSizePerspective.glsl.js";import{addProjViewLocalOrigin as i,addCameraPosition as n,addPixelRatio as r}from"../util/View.glsl.js";import{FloatBindUniform as f}from"../../shaderModules/FloatBindUniform.js";import{FloatPassUniform as l}from"../../shaderModules/FloatPassUniform.js";import{glsl as c}from"../../shaderModules/glsl.js";const p=.5;function d(d,u){const v=d.vertex;d.include(a),d.attributes.add("position","vec3"),d.vertex.inputs.add("position",()=>"position"),d.attributes.add("normal","vec3"),u.hasVertexCenterOffset?d.attributes.add("centerOffset","vec3"):v.constants.add("centerOffset","vec3",[0,0,0]),d.attributes.add("groundDistance","float"),i(v,u),n(v,u),v.uniforms.add(t,new l("polygonOffset",e=>e.shaderPolygonOffset),new f("aboveGround",e=>e.camera.aboveGround?1:-1)),u.hasVerticalOffset&&e(v),v.code.add(c`struct ProjectHUDAux {
3
3
  vec3 posModel;
4
4
  vec3 posView;
5
5
  vec3 vnormal;
@@ -23,7 +23,7 @@ posView /= factor;
23
23
  }
24
24
  }
25
25
  return groundRelative;
26
- }`),u.draped&&!u.hasVerticalOffset||i(v),u.draped||(v.uniforms.add(new f("perDistancePixelRatio",e=>Math.tan(e.camera.fovY/2)/(e.camera.fullViewport[2]/2))),v.code.add(c`
26
+ }`),u.draped&&!u.hasVerticalOffset||v.uniforms.add(o),u.draped||(v.uniforms.add(new f("perDistancePixelRatio",e=>Math.tan(e.camera.fovY/2)/(e.camera.fullViewport[2]/2))),v.code.add(c`
27
27
  void applyHUDVerticalGroundOffset(vec3 normalModel, inout vec3 posModel, inout vec3 posView) {
28
28
  float distanceToCamera = length(posView);
29
29
 
@@ -39,7 +39,7 @@ return groundRelative;
39
39
  posModel += modelOffset;
40
40
  posView += viewOffset;
41
41
  }
42
- `)),u.screenCenterOffsetUnitsEnabled&&n(v),u.hasScreenSizePerspective&&o(v),v.code.add(c`
42
+ `)),u.screenCenterOffsetUnitsEnabled&&r(v),u.hasScreenSizePerspective&&s(v),v.code.add(c`
43
43
  vec4 projectPositionHUD(out ProjectHUDAux aux) {
44
44
  float pointGroundDistance = groundDistance;
45
45
  aux.posModel = position;
@@ -1,26 +1,26 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{markerSizePerLineWidth as e}from"../../../../support/engineContent/marker.js";import{addPixelRatio as r}from"../util/View.glsl.js";import{FloatBindUniform as o}from"../../shaderModules/FloatBindUniform.js";import{If as t,glsl as a}from"../../shaderModules/glsl.js";function i(i,n){const d=i.vertex,l=n.hasScreenSizePerspective,s=n.worldSized;r(d),s&&d.uniforms.add(new o("worldToScreenRatio",e=>1/e.screenToPCSRatio)),null==d.uniforms.get("markerScale")&&d.constants.add("markerScale","float",1),d.constants.add("markerSizePerLineWidth","float",e).code.add(a`
3
- float getLineWidth(${t(l,"vec3 pos")}) {
4
- float size = max(getSize(${t(l,"pos")}), 1.0);
5
- return ${t(s,"size * pixelRatio * worldToScreenRatio","size * pixelRatio")};
6
- }
2
+ import{__decorate as e}from"tslib";import{markerSizePerLineWidth as r}from"../../../../support/engineContent/marker.js";import{addPixelRatio as o}from"../util/View.glsl.js";import{FloatBindUniform as t}from"../../shaderModules/FloatBindUniform.js";import{FloatPassUniform as i}from"../../shaderModules/FloatPassUniform.js";import{If as a,glsl as n}from"../../shaderModules/glsl.js";import{parameter as s}from"../../shaderTechnique/ShaderTechniqueConfiguration.js";import{ViewingModeConfiguration as d}from"../../../materials/ViewingModeConfiguration.js";import{NoParameters as l}from"../../../../../webgl/NoParameters.js";class c extends d{constructor(){super(...arguments),this.hasScreenSizePerspective=!1,this.worldSized=!1}}e([s()],c.prototype,"hasScreenSizePerspective",void 0),e([s()],c.prototype,"worldSized",void 0);class m extends l{constructor(){super(...arguments),this.markerScale=1}}function p(e,s){const d=e.vertex,l=s.hasScreenSizePerspective,c=s.worldSized;o(d),d.constants.add("markerSizePerLineWidth","float",r).uniforms.add(new t("worldToScreenRatio",e=>1/e.screenToPCSRatio),new i("markerScale",({markerScale:e})=>e)).code.add(n`
3
+ float getLineWidth(${a(l,"vec3 pos")}) {
4
+ float size = max(getSize(${a(l,"pos")}), 1.0);
5
+ return ${a(c,"size * pixelRatio * worldToScreenRatio","size * pixelRatio")};
6
+ }
7
7
 
8
- float getScreenMarkerSize(float lineWidth) {
9
- return markerScale * markerSizePerLineWidth * lineWidth;
10
- }
11
- `),2===n.space&&(d.constants.add("maxSegmentLengthFraction","float",.45),d.uniforms.add(new o("perRenderPixelRatio",e=>e.camera.perRenderPixelRatio)),d.code.add(a`
12
- bool areWorldMarkersHidden(vec3 pos, vec3 other) {
13
- vec3 midPoint = mix(pos, other, 0.5);
14
- float distanceToCamera = length(midPoint);
15
- float screenToWorldRatio = perRenderPixelRatio * distanceToCamera * 0.5;
16
- float worldMarkerSize = getScreenMarkerSize(getLineWidth(${t(l,"pos")})) * screenToWorldRatio;
17
- float segmentLen = length(pos - other);
18
- return worldMarkerSize > maxSegmentLengthFraction * segmentLen;
19
- }
8
+ float getScreenMarkerSize(float lineWidth) {
9
+ return markerScale * markerSizePerLineWidth * lineWidth;
10
+ }
11
+ `),d.constants.add("maxSegmentLengthFraction","float",.45).uniforms.add(new t("perRenderPixelRatio",e=>e.camera.perRenderPixelRatio)).code.add(n`
12
+ bool areWorldMarkersHidden(vec3 pos, vec3 other) {
13
+ vec3 midPoint = mix(pos, other, 0.5);
14
+ float distanceToCamera = length(midPoint);
15
+ float screenToWorldRatio = perRenderPixelRatio * distanceToCamera * 0.5;
16
+ float worldMarkerSize = getScreenMarkerSize(getLineWidth(${a(l,"pos")})) * screenToWorldRatio;
17
+ float segmentLen = length(pos - other);
18
+ return worldMarkerSize > maxSegmentLengthFraction * segmentLen;
19
+ }
20
20
 
21
- float getWorldMarkerSize(vec3 pos) {
22
- float distanceToCamera = length(pos);
23
- float screenToWorldRatio = perRenderPixelRatio * distanceToCamera * 0.5;
24
- return getScreenMarkerSize(getLineWidth(${t(l,"pos")})) * screenToWorldRatio;
25
- }
26
- `))}export{i as MarkerSizing};
21
+ float getWorldMarkerSize(vec3 pos) {
22
+ float distanceToCamera = length(pos);
23
+ float screenToWorldRatio = perRenderPixelRatio * distanceToCamera * 0.5;
24
+ return getScreenMarkerSize(getLineWidth(${a(l,"pos")})) * screenToWorldRatio;
25
+ }
26
+ `)}export{p as MarkerSizing,c as MarkerSizingConfiguration,m as MarkerSizingPassParameters};
@@ -1,10 +1,10 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{glsl as e}from"../../shaderModules/glsl.js";function n(n,{spherical:c}){n.code.add(c?"vec3 getLocalUp(in vec3 pos, in vec3 origin) { return normalize(pos + origin); }\n vec3 getLocalUp(in vec3 pos) { return normalize(pos); }":"vec3 getLocalUp(in vec3 pos, in vec3 origin) { return vec3(0.0, 0.0, 1.0); }\n vec3 getLocalUp(in vec3 pos) { return vec3(0.0, 0.0, 1.0); }"),c?n.code.add(e`mat3 getTBNMatrix(in vec3 n) {
2
+ import{glsl as e}from"../../shaderModules/glsl.js";function c(c,{spherical:r}){c.code.add("vec3 normalize4(vec4 vector){ return normalize(vector.xyz / vector.w); }"),c.code.add(r?"vec3 getLocalUp(in vec3 pos, in vec3 origin) { return normalize(pos + origin); }\n vec3 getLocalUp(in vec3 pos) { return normalize(pos); }":"vec3 getLocalUp(in vec3 pos, in vec3 origin) { return vec3(0.0, 0.0, 1.0); }\n vec3 getLocalUp(in vec3 pos) { return vec3(0.0, 0.0, 1.0); }"),r?c.code.add(e`mat3 getTBNMatrix(in vec3 n) {
3
3
  vec3 t = normalize(cross(vec3(0.0, 0.0, 1.0), n));
4
4
  vec3 b = normalize(cross(n, t));
5
5
  return mat3(t, b, n);
6
- }`):n.code.add(e`mat3 getTBNMatrix(in vec3 n) {
6
+ }`):c.code.add(e`mat3 getTBNMatrix(in vec3 n) {
7
7
  vec3 t = vec3(1.0, 0.0, 0.0);
8
8
  vec3 b = normalize(cross(n, t));
9
9
  return mat3(t, b, n);
10
- }`)}export{n as NormalUtils};
10
+ }`)}export{c as NormalUtils};
@@ -1,5 +1,5 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform as t}from"../../shaderModules/Float2BindUniform.js";import{FloatBindUniform as o}from"../../shaderModules/FloatBindUniform.js";import{If as r,glsl as i}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as a}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as n}from"../../shaderModules/Texture2DBindUniform.js";function c(c,s){const d=c.fragment;d.include(e),d.uniforms.add(new t("nearFar",e=>e.camera.nearFar),new n("depthMap",e=>e.depth?.attachment),new a("proj",e=>e.camera.projectionMatrix),new o("invResolutionHeight",e=>1/e.camera.height),new a("reprojectionMatrix",e=>e.reprojection.matrix)).code.add(i`
2
+ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{projMatrix as t,nearFar as o}from"../util/cameraUniforms.js";import{FloatBindUniform as r}from"../../shaderModules/FloatBindUniform.js";import{If as i,glsl as a}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as n}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as c}from"../../shaderModules/Texture2DBindUniform.js";function s(s,d){const p=s.fragment;p.include(e),p.uniforms.add(t,o,new c("depthMap",e=>e.depth?.attachment),new r("invResolutionHeight",e=>1/e.camera.height),new n("reprojectionMatrix",e=>e.reprojection.matrix)).code.add(a`
3
3
  vec2 reprojectionCoordinate(vec3 projectionCoordinate) {
4
4
  vec4 clipDepthCoordinate = proj * vec4(0.0, 0.0, -projectionCoordinate.z, 1.0);
5
5
  vec4 reprojectedCoordinate = reprojectionMatrix * vec4(
@@ -31,7 +31,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
31
31
  vec2 projectedCoordEnd = applyProjectionMat(proj, startPosition + rayDirection * rayDistanceWorld).xy;
32
32
  vec2 projectedCoordOffset = projectedCoordEnd - projectedCoordStart;
33
33
 
34
- return ${s.useProjectedRayLength?"length(projectedCoordOffset)":"abs(projectedCoordOffset.y)"};
34
+ return ${d.useProjectedRayLength?"length(projectedCoordOffset)":"abs(projectedCoordOffset.y)"};
35
35
  }
36
36
 
37
37
  vec3 screenSpaceIntersectionWithLimits(
@@ -64,7 +64,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
64
64
  vec2 projectedCoordDirection = (projectedCoordEnd.xy - projectedCoordStart.xy);
65
65
  vec2 vanishingPointScreenOffset = (projectedCoordVanishingPoint.xy - projectedCoordStart.xy);
66
66
 
67
- float rayMarchDistance = ${s.useProjectedRayLength?"length(vanishingPointScreenOffset.xy)":"abs(vanishingPointScreenOffset.y)"};
67
+ float rayMarchDistance = ${d.useProjectedRayLength?"length(vanishingPointScreenOffset.xy)":"abs(vanishingPointScreenOffset.y)"};
68
68
  float clampedRayMarchDistance = min(rayMarchDistance, rayMarchMaxReach);
69
69
 
70
70
  float projectedCoordDirectionLength = length(projectedCoordDirection);
@@ -154,7 +154,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
154
154
  }
155
155
  }
156
156
 
157
- ${r(!s.clampRayToScreen,"if (projectedPosition.x <= 0.0 || projectedPosition.x >= 1.0) {\n return firstSegmentHit;\n }")}
157
+ ${i(!d.clampRayToScreen,"if (projectedPosition.x <= 0.0 || projectedPosition.x >= 1.0) {\n return firstSegmentHit;\n }")}
158
158
 
159
159
  // Continue with ray marching
160
160
  projectedPosition = projectedPosition + projectedStep;
@@ -162,7 +162,7 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
162
162
  inverseW += inverseWStep;
163
163
  previousEstimatedDepthDifference = estimatedDepthDifference;
164
164
 
165
- ${r(s.clampRayToScreen,"projectedPosition = clamp(projectedPosition, vec2(0.0), vec2(0.999));")}
165
+ ${i(d.clampRayToScreen,"projectedPosition = clamp(projectedPosition, vec2(0.0), vec2(0.999));")}
166
166
  }
167
167
  return firstSegmentHit;
168
168
  }
@@ -174,8 +174,8 @@ import{ReadDepth as e}from"../output/ReadDepth.glsl.js";import{Float2BindUniform
174
174
  viewDirection,
175
175
  normal,
176
176
  rayStepOffset,
177
- ${i.float(s.rayMarchMaxReach)},
178
- ${i.float(s.rayMarchMaxSteps)}
177
+ ${a.float(d.rayMarchMaxReach)},
178
+ ${a.float(d.rayMarchMaxSteps)}
179
179
  );
180
180
  }
181
- `)}export{c as ScreenSpaceRayMarching};
181
+ `)}export{s as ScreenSpaceRayMarching};
@@ -1,9 +1,9 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRenderingWater as t}from"./PhysicallyBasedRendering.glsl.js";import{distanceFadeStart as r,distanceFadeEnd as i}from"./ScreenSpaceConstants.js";import{ScreenSpaceRayMarching as n}from"./ScreenSpaceRayMarching.glsl.js";import{CloudsParallaxShading as a}from"../util/CloudsParallaxShading.glsl.js";import{FloatBindUniform as l}from"../../shaderModules/FloatBindUniform.js";import{glsl as d}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as c}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{ToneMapping as f}from"../../../shaders/ToneMapping.glsl.js";function m(m,v){const u=m.fragment;u.include(t,v),u.include(o),u.include(e),v.cloudReflections&&m.include(a),v.screenSpaceReflections&&m.include(n,v),u.include(f,v),u.constants.add("fresnelSky","vec3",[.02,1,15]),u.constants.add("fresnelMaterial","vec2",[.02,.1]),u.constants.add("roughness","float",.015),u.constants.add("foamIntensityExternal","float",1.7),u.constants.add("ssrIntensity","float",.65),u.constants.add("ssrHeightFadeStart","float",r),u.constants.add("ssrHeightFadeEnd","float",i),u.constants.add("waterDiffusion","float",.92),u.constants.add("waterSeaColorMod","float",.8),u.constants.add("correctionViewingPowerFactor","float",.4),u.constants.add("skyZenitColor","vec3",[.52,.68,.9]),u.constants.add("skyColor","vec3",[.67,.79,.9]),u.constants.add("cloudFresnelModifier","vec2",[1.2,.01]),u.code.add(d`PBRShadingWater shadingInfo;
2
+ import{FoamColor as e}from"./FoamRendering.glsl.js";import{Gamma as o}from"./Gamma.glsl.js";import{PhysicallyBasedRenderingWater as t}from"./PhysicallyBasedRendering.glsl.js";import{distanceFadeStart as r,distanceFadeEnd as i}from"./ScreenSpaceConstants.js";import{ScreenSpaceRayMarching as n}from"./ScreenSpaceRayMarching.glsl.js";import{viewMatrix as a}from"../util/cameraUniforms.js";import{CloudsParallaxShading as l}from"../util/CloudsParallaxShading.glsl.js";import{FloatBindUniform as d}from"../../shaderModules/FloatBindUniform.js";import{glsl as c}from"../../shaderModules/glsl.js";import{Texture2DBindUniform as s}from"../../shaderModules/Texture2DBindUniform.js";import{ToneMapping as f}from"../../../shaders/ToneMapping.glsl.js";function m(m,v){const u=m.fragment;u.include(t,v),u.include(o),u.include(e),v.cloudReflections&&m.include(l),v.screenSpaceReflections&&m.include(n,v),u.include(f,v),u.constants.add("fresnelSky","vec3",[.02,1,15]),u.constants.add("fresnelMaterial","vec2",[.02,.1]),u.constants.add("roughness","float",.015),u.constants.add("foamIntensityExternal","float",1.7),u.constants.add("ssrIntensity","float",.65),u.constants.add("ssrHeightFadeStart","float",r),u.constants.add("ssrHeightFadeEnd","float",i),u.constants.add("waterDiffusion","float",.92),u.constants.add("waterSeaColorMod","float",.8),u.constants.add("correctionViewingPowerFactor","float",.4),u.constants.add("skyZenitColor","vec3",[.52,.68,.9]),u.constants.add("skyColor","vec3",[.67,.79,.9]),u.constants.add("cloudFresnelModifier","vec2",[1.2,.01]),u.code.add(c`PBRShadingWater shadingInfo;
3
3
  vec3 getSkyGradientColor(in float cosTheta, in vec3 horizon, in vec3 zenit) {
4
4
  float exponent = pow((1.0 - cosTheta), fresnelSky[2]);
5
5
  return mix(zenit, horizon, exponent);
6
- }`),u.uniforms.add(new l("lightingSpecularStrength",e=>e.lighting.mainLight.specularStrength),new l("lightingEnvironmentStrength",e=>e.lighting.mainLight.environmentStrength)),u.code.add(d`vec3 getWaterColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 viewPosition, vec3 position) {
6
+ }`),u.uniforms.add(new d("lightingSpecularStrength",e=>e.lighting.mainLight.specularStrength),new d("lightingEnvironmentStrength",e=>e.lighting.mainLight.environmentStrength)),u.code.add(c`vec3 getWaterColor(in vec3 n, in vec3 v, in vec3 l, vec3 color, in vec3 lightIntensity, in vec3 localUp, in float shadow, float foamIntensity, vec3 viewPosition, vec3 position) {
7
7
  float reflectionHit = 0.0;
8
8
  float reflectionHitDiffused = 0.0;
9
9
  vec3 seaWaterColor = linearizeGamma(color);
@@ -37,10 +37,10 @@ foam = foamIntensity2FoamColor(foamIntensityExternal, foamIntensity, skyZenitCol
37
37
  }
38
38
  float correctionViewingFactor = pow(max(dot(v, localUp), 0.0), correctionViewingPowerFactor);
39
39
  vec3 normalCorrectedClouds = mix(localUp, n, correctionViewingFactor);
40
- vec3 reflectedWorld = normalize(reflect(-v, normalCorrectedClouds));`),v.cloudReflections&&u.uniforms.add(new l("cloudsOpacity",e=>e.clouds.opacity)).code.add(d`vec4 cloudsColor = renderClouds(reflectedWorld, position);
40
+ vec3 reflectedWorld = normalize(reflect(-v, normalCorrectedClouds));`),v.cloudReflections&&u.uniforms.add(new d("cloudsOpacity",e=>e.clouds.opacity)).code.add(c`vec4 cloudsColor = renderClouds(reflectedWorld, position);
41
41
  cloudsColor.a = 1.0 - cloudsColor.a;
42
42
  cloudsColor = pow(cloudsColor, vec4(GAMMA));
43
- cloudsColor *= clamp(fresnelModifier.y * cloudFresnelModifier[0] - cloudFresnelModifier[1], 0.0, 1.0) * cloudsOpacity;`),v.screenSpaceReflections?u.uniforms.add(new c("view",e=>e.camera.viewMatrix),new s("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new l("fadeFactorSSR",e=>e.screenSpaceReflections.fadeFactor)).code.add(d`vec3 viewDir = normalize(viewPosition);
43
+ cloudsColor *= clamp(fresnelModifier.y * cloudFresnelModifier[0] - cloudFresnelModifier[1], 0.0, 1.0) * cloudsOpacity;`),v.screenSpaceReflections?u.uniforms.add(a,new s("lastFrameColorTexture",e=>e.reprojection.lastFrameColor?.getTexture()),new d("fadeFactorSSR",e=>e.screenSpaceReflections.fadeFactor)).code.add(c`vec3 viewDir = normalize(viewPosition);
44
44
  vec4 viewNormalVectorCoordinate = view * vec4(n, 0.0);
45
45
  vec3 viewNormal = normalize(viewNormalVectorCoordinate.xyz);
46
46
  vec4 viewUp = view * vec4(localUp, 0.0);
@@ -60,7 +60,7 @@ reflectionHitDiffused * fresnelModifier.y * ssrIntensity;
60
60
  }
61
61
  float seaColorMod = mix(waterSeaColorMod, waterSeaColorMod * 0.5, reflectionHitDiffused);
62
62
  vec3 waterRenderedColor = tonemapACES((1.0 - reflectionHitDiffused) * reflSky + reflectedColor +
63
- reflSea * seaColorMod + specular + foam);`):u.code.add(d`vec3 waterRenderedColor = tonemapACES(reflSky + reflSea * waterSeaColorMod + specular + foam);`),v.cloudReflections?v.screenSpaceReflections?u.code.add(d`return waterRenderedColor * (1.0 - (1.0 - reflectionHit) * cloudsColor.a) + (1.0 - reflectionHit) * cloudsColor.xyz;
64
- }`):u.code.add(d`return waterRenderedColor * (1.0 - cloudsColor.a) + cloudsColor.xyz;
65
- }`):u.code.add(d`return waterRenderedColor;
63
+ reflSea * seaColorMod + specular + foam);`):u.code.add(c`vec3 waterRenderedColor = tonemapACES(reflSky + reflSea * waterSeaColorMod + specular + foam);`),v.cloudReflections?v.screenSpaceReflections?u.code.add(c`return waterRenderedColor * (1.0 - (1.0 - reflectionHit) * cloudsColor.a) + (1.0 - reflectionHit) * cloudsColor.xyz;
64
+ }`):u.code.add(c`return waterRenderedColor * (1.0 - cloudsColor.a) + cloudsColor.xyz;
65
+ }`):u.code.add(c`return waterRenderedColor;
66
66
  }`)}export{m as WaterColor};
@@ -1,16 +1,16 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{fromValues as o}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{earth as t}from"../../../../../../geometry/support/Ellipsoid.js";import{cloudsHeight as a}from"../../../../environment/weather.js";import{mainLightDirection as r,mainLightIntensity as e}from"../shading/MainLighting.glsl.js";import{LookupCloudsFromTextureArray as i}from"./LookupCloudsFromTextureArray.glsl.js";import{BooleanBindUniform as c}from"../../shaderModules/BooleanBindUniform.js";import{Float3BindUniform as n}from"../../shaderModules/Float3BindUniform.js";import{FloatBindUniform as d}from"../../shaderModules/FloatBindUniform.js";import{glsl as l}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as s}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DArrayBindUniform as u}from"../../shaderModules/Texture2DArrayBindUniform.js";function m(t){const a=t.fragment;a.constants.add("radiusCloudsSquared","float",C).code.add(l`vec3 intersectWithCloudLayer(vec3 dir, vec3 cameraPosition, vec3 spherePos) {
2
+ import{fromValues as o}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{earth as t}from"../../../../../../geometry/support/Ellipsoid.js";import{cloudsHeight as a}from"../../../../environment/weather.js";import{EvaluateAmbientLighting as r}from"../shading/EvaluateAmbientLighting.glsl.js";import{mainLightDirection as e,mainLightIntensity as i}from"../shading/MainLighting.glsl.js";import{LookupCloudsFromTextureArray as c}from"./LookupCloudsFromTextureArray.glsl.js";import{BooleanBindUniform as n}from"../../shaderModules/BooleanBindUniform.js";import{Float3BindUniform as d}from"../../shaderModules/Float3BindUniform.js";import{FloatBindUniform as l}from"../../shaderModules/FloatBindUniform.js";import{glsl as s}from"../../shaderModules/glsl.js";import{Matrix4BindUniform as u}from"../../shaderModules/Matrix4BindUniform.js";import{Texture2DArrayBindUniform as m}from"../../shaderModules/Texture2DArrayBindUniform.js";function h(t){const a=t.fragment;a.constants.add("radiusCloudsSquared","float",C).code.add(s`vec3 intersectWithCloudLayer(vec3 dir, vec3 cameraPosition, vec3 spherePos) {
3
3
  float B = 2.0 * dot(cameraPosition, dir);
4
4
  float C = dot(cameraPosition, cameraPosition) - radiusCloudsSquared;
5
5
  float det = B * B - 4.0 * C;
6
6
  float pointIntDist = max(0.0, 0.5 *(-B + sqrt(det)));
7
7
  return (cameraPosition + dir * pointIntDist) - spherePos;
8
- }`),a.uniforms.add(new d("radiusCurvatureCorrection",({clouds:o})=>o.parallax.radiusCurvatureCorrection)).code.add(l`vec3 correctForPlanetCurvature(vec3 dir) {
8
+ }`),a.uniforms.add(new l("radiusCurvatureCorrection",({clouds:o})=>o.parallax.radiusCurvatureCorrection)).code.add(s`vec3 correctForPlanetCurvature(vec3 dir) {
9
9
  dir.z = dir.z * (1.0 - radiusCurvatureCorrection) + radiusCurvatureCorrection;
10
10
  return dir;
11
- }`),a.code.add(l`vec3 rotateDirectionToAnchorPoint(mat4 rotMat, vec3 inVec) {
11
+ }`),a.code.add(s`vec3 rotateDirectionToAnchorPoint(mat4 rotMat, vec3 inVec) {
12
12
  return (rotMat * vec4(inVec, 0.0)).xyz;
13
- }`),a.constants.add("RIM_COLOR","vec3",o(.28,.175,.035)),a.constants.add("sunsetTransitionFactor","float",.3),a.constants.add("rimScattering","float",140),a.constants.add("backlightFactor","float",.2),a.constants.add("backlightScattering","float",10),a.constants.add("backlightTransition","float",.3),a.uniforms.add(r,e).code.add(l`vec3 calculateCloudColor(vec3 cameraPosition, vec3 worldSpaceRay, vec4 clouds) {
13
+ }`),a.include(r,{pbrMode:0}),a.constants.add("RIM_COLOR","vec3",o(.28,.175,.035)),a.constants.add("sunsetTransitionFactor","float",.3),a.constants.add("rimScattering","float",140),a.constants.add("backlightFactor","float",.2),a.constants.add("backlightScattering","float",10),a.constants.add("backlightTransition","float",.3),a.uniforms.add(e,i).code.add(s`vec3 calculateCloudColor(vec3 cameraPosition, vec3 worldSpaceRay, vec4 clouds) {
14
14
  float upDotLight = dot(cameraPosition, mainLightDirection);
15
15
  float dirDotLight = max(dot(worldSpaceRay, mainLightDirection), 0.0);
16
16
  float sunsetTransition = clamp(pow(max(upDotLight, 0.0), sunsetTransitionFactor), 0.0, 1.0);
@@ -22,12 +22,12 @@ float rimLightIntensity = 0.5 + 0.5 * pow(max(upDotLight, 0.0), 0.35);
22
22
  vec3 directSunScattering = RIM_COLOR * rimLightIntensity * (pow(dirDotLight, rimScattering)) * scatteringMod;
23
23
  float additionalLight = backlightFactor * pow(dirDotLight, backlightScattering) * (1. - pow(sunsetTransition, backlightTransition)) ;
24
24
  return vec3(baseCloudColor * (1.0 + additionalLight) + directSunScattering);
25
- }`),t.include(i),a.uniforms.add(new c("readChannelsRG",o=>0===o.clouds.readChannels),new u("cubeMap",o=>o.clouds.data?.cubeMap?.colorTexture)).code.add(l`vec4 sampleCloud(vec3 rayDir, bool readOtherChannel) {
25
+ }`),t.include(c),a.uniforms.add(new n("readChannelsRG",o=>0===o.clouds.readChannels),new m("cubeMap",o=>o.clouds.data?.cubeMap?.colorTexture)).code.add(s`vec4 sampleCloud(vec3 rayDir, bool readOtherChannel) {
26
26
  vec4 s = lookupCloudsFromTextureArray(cubeMap, rayDir);
27
27
  bool readRG = readChannelsRG ^^ readOtherChannel;
28
28
  s = readRG ? vec4(vec3(s.r), s.g) : vec4(vec3(s.b), s.a);
29
29
  return length(s) == 0.0 ? vec4(s.rgb, 1.0) : s;
30
- }`),a.uniforms.add(new n("anchorPoint",o=>o.clouds.parallax.anchorPoint),new n("anchorPointNew",o=>o.clouds.parallaxNew.anchorPoint),new s("rotationClouds",o=>o.clouds.parallax.transform),new s("rotationCloudsNew",o=>o.clouds.parallaxNew.transform),new d("cloudsOpacity",o=>o.clouds.opacity),new d("fadeFactor",o=>o.clouds.fadeFactor),new c("crossFade",o=>3===o.clouds.fadeState)).code.add(l`vec4 renderClouds(vec3 worldRay, vec3 cameraPosition) {
30
+ }`),a.uniforms.add(new d("anchorPoint",o=>o.clouds.parallax.anchorPoint),new d("anchorPointNew",o=>o.clouds.parallaxNew.anchorPoint),new u("rotationClouds",o=>o.clouds.parallax.transform),new u("rotationCloudsNew",o=>o.clouds.parallaxNew.transform),new l("cloudsOpacity",o=>o.clouds.opacity),new l("fadeFactor",o=>o.clouds.fadeFactor),new n("crossFade",o=>3===o.clouds.fadeState)).code.add(s`vec4 renderClouds(vec3 worldRay, vec3 cameraPosition) {
31
31
  vec3 intersectionPoint = intersectWithCloudLayer(worldRay, cameraPosition, anchorPoint);
32
32
  vec3 worldRayRotated = rotateDirectionToAnchorPoint(rotationClouds, normalize(intersectionPoint));
33
33
  vec3 worldRayRotatedCorrected = correctForPlanetCurvature(worldRayRotated);
@@ -46,4 +46,4 @@ float totalTransmittance = length(cloudColor.rgb) == 0.0 ?
46
46
  1.0 :
47
47
  clamp(cloudColor.a * cloudsOpacity + (1.0 - cloudsOpacity), 0.0 , 1.0);
48
48
  return vec4(cloudColor.rgb, totalTransmittance);
49
- }`)}const C=(t.radius+a)**2;export{m as CloudsParallaxShading};
49
+ }`)}const C=(t.radius+a)**2;export{h as CloudsParallaxShading};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{translate as r}from"../../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as i}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as e}from"../../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as o,create as a}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{Float3BindUniform as n}from"../../shaderModules/Float3BindUniform.js";import{Float3DrawUniform as s}from"../../shaderModules/Float3DrawUniform.js";import{FloatBindUniform as t}from"../../shaderModules/FloatBindUniform.js";import{Matrix4BindUniform as m}from"../../shaderModules/Matrix4BindUniform.js";import{Matrix4DrawUniform as c}from"../../shaderModules/Matrix4DrawUniform.js";function d(r,i){i.instancedDoublePrecision?r.constants.add("cameraPosition","vec3",o):r.uniforms.add(new s("cameraPosition",(r,i)=>e(v,i.camera.viewInverseTransposeMatrix[3]-r.origin[0],i.camera.viewInverseTransposeMatrix[7]-r.origin[1],i.camera.viewInverseTransposeMatrix[11]-r.origin[2])))}function f(i,o){if(!o.instancedDoublePrecision)return void i.uniforms.add(new m("proj",r=>r.camera.projectionMatrix),new c("view",(i,e)=>r(l,e.camera.viewMatrix,i.origin)),new s("localOrigin",r=>r.origin));const a=({camera:r})=>e(v,r.viewInverseTransposeMatrix[3],r.viewInverseTransposeMatrix[7],r.viewInverseTransposeMatrix[11]);i.uniforms.add(new m("proj",r=>r.camera.projectionMatrix),new m("view",i=>r(l,i.camera.viewMatrix,a(i))),new n("localOrigin",r=>a(r)))}const l=i(),v=a();function p(r){r.uniforms.add(new m("viewNormal",r=>r.camera.viewInverseTransposeMatrix))}function w(r){r.uniforms.add(new t("pixelRatio",r=>r.camera.pixelRatio/r.overlayStretch))}export{d as addCameraPosition,w as addPixelRatio,f as addProjViewLocalOrigin,p as addViewNormal};
2
+ import{translate as r}from"../../../../../../core/libs/gl-matrix-2/math/mat4.js";import{create as i}from"../../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import{set as e}from"../../../../../../core/libs/gl-matrix-2/math/vec3.js";import{ZEROS as o,create as a}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{projMatrix as s}from"./cameraUniforms.js";import{Float3BindUniform as n}from"../../shaderModules/Float3BindUniform.js";import{Float3DrawUniform as t}from"../../shaderModules/Float3DrawUniform.js";import{FloatBindUniform as m}from"../../shaderModules/FloatBindUniform.js";import{Matrix4BindUniform as c}from"../../shaderModules/Matrix4BindUniform.js";import{Matrix4DrawUniform as f}from"../../shaderModules/Matrix4DrawUniform.js";function d(r,i){i.instancedDoublePrecision?r.constants.add("cameraPosition","vec3",o):r.uniforms.add(new t("cameraPosition",(r,i)=>e(p,i.camera.viewInverseTransposeMatrix[3]-r.origin[0],i.camera.viewInverseTransposeMatrix[7]-r.origin[1],i.camera.viewInverseTransposeMatrix[11]-r.origin[2])))}function l(i,o){if(!o.instancedDoublePrecision)return void i.uniforms.add(s,new f("view",(i,e)=>r(v,e.camera.viewMatrix,i.origin)),new t("localOrigin",r=>r.origin));const a=({camera:r})=>e(p,r.viewInverseTransposeMatrix[3],r.viewInverseTransposeMatrix[7],r.viewInverseTransposeMatrix[11]);i.uniforms.add(s,new c("view",i=>r(v,i.camera.viewMatrix,a(i))),new n("localOrigin",r=>a(r)))}const v=i(),p=a();function w(r){r.uniforms.add(new m("pixelRatio",r=>r.camera.pixelRatio/r.overlayStretch))}export{d as addCameraPosition,w as addPixelRatio,l as addProjViewLocalOrigin};
@@ -0,0 +1,2 @@
1
+ /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
+ import{set as e}from"../../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as r}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{Float2BindUniform as i}from"../../shaderModules/Float2BindUniform.js";import{Float4BindUniform as a}from"../../shaderModules/Float4BindUniform.js";import{FloatBindUniform as o}from"../../shaderModules/FloatBindUniform.js";import{Matrix4BindUniform as t}from"../../shaderModules/Matrix4BindUniform.js";const n=new t("view",({camera:e})=>e.viewMatrix),m=new t("inverseViewMatrix",({camera:e})=>e.inverseViewMatrix),s=new t("proj",({camera:e})=>e.projectionMatrix),l=new t("inverseProjectionMatrix",({camera:e})=>e.inverseProjectionMatrix),c=new t("viewNormal",({camera:e})=>e.viewInverseTransposeMatrix),w=new i("nearFar",({camera:e})=>e.nearFar),f=new a("viewport",({camera:e})=>e.fullViewport),p=new o("pixelRatio",({camera:e})=>e.pixelRatio),d=new i("inverseScreenSize",({camera:r})=>e(v,1/r.fullWidth,1/r.fullHeight)),v=r();export{l as inverseProjMatrix,d as inverseScreenSize,m as inverseViewMatrix,w as nearFar,p as pixelRatio,s as projMatrix,n as viewMatrix,c as viewNormal,f as viewport};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import has from"../../../../core/has.js";import{property as t,subclass as r}from"../../../../core/accessorSupport/decorators.js";import{InternalRenderCategory as s}from"../../webgl.js";import i from"../../webgl/RenderNode.js";import{distanceFadeEnd as o}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";let a=class extends i{constructor(){super(...arguments),this.consumes={required:["normals"]},this.produces="disabled",this._globalIlluminationAvailable=!has("disable-feature:global-illumination")}get enabled(){return!this.destroying&&!this.destroyed&&this.produces===s.AMBIENT_ILLUMINATION}get _belowMaxElevation(){return(this.view.state.camera.relativeElevation??1/0)<o}get _globalIlluminationEnabled(){return this._globalIlluminationAvailable&&this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(11)}get _ssaoEnabled(){return this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(3)&&!this._globalIlluminationEnabled}_enable(){this.produces=s.AMBIENT_ILLUMINATION,this.requestRender(1)}_disable(){this.produces="disabled",this.requestRender(1)}};e([t()],a.prototype,"consumes",void 0),e([t()],a.prototype,"produces",void 0),a=e([r("esri.views.3d.webgl-engine.effects.AmbientIllumination")],a);export{a as AmbientIllumination};
2
+ import{__decorate as e}from"tslib";import{property as r,subclass as t}from"../../../../core/accessorSupport/decorators.js";import{InternalRenderCategory as s}from"../../webgl.js";import i from"../../webgl/RenderNode.js";import{distanceFadeEnd as o}from"../core/shaderLibrary/shading/ScreenSpaceConstants.js";let a=class extends i{constructor(){super(...arguments),this.consumes={required:["normals"]},this.produces="disabled"}get enabled(){return!this.destroying&&!this.destroyed&&this.produces===s.AMBIENT_ILLUMINATION}get _belowMaxElevation(){return(this.view.state.camera.relativeElevation??1/0)<o}get _useGlobalIllumination(){return this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(11)}get _useSSAO(){return this._belowMaxElevation&&this.view.stage.renderer.isFeatureEnabled(3)}_enable(){this.produces=s.AMBIENT_ILLUMINATION,this.requestRender(1)}_disable(){this.produces="disabled",this.requestRender(1)}};e([r()],a.prototype,"consumes",void 0),e([r()],a.prototype,"produces",void 0),a=e([t("esri.views.3d.webgl-engine.effects.AmbientIllumination")],a);export{a as AmbientIllumination};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import"../../core/shaderLibrary/Transform.glsl.js";import"../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../core/shaderModules/Float2PassUniform.js";import"../../core/shaderModules/Float3BindUniform.js";import"../../core/shaderModules/Float3PassUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4BindUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{b as SilhouetteCircle,S as SimpleAtmospherePassParameters,c as build}from"../../../../../chunks/SimpleAtmosphere.glsl.js";
2
+ import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import"../../core/shaderLibrary/Transform.glsl.js";import"../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../core/shaderLibrary/util/cameraUniforms.js";import"../../core/shaderModules/Float2PassUniform.js";import"../../core/shaderModules/Float3BindUniform.js";import"../../core/shaderModules/Float3PassUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{b as SilhouetteCircle,S as SimpleAtmospherePassParameters,c as build}from"../../../../../chunks/SimpleAtmosphere.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderLibrary/shading/PiUtils.glsl.js";import"../../core/shaderLibrary/util/CloudsParallaxShading.glsl.js";import"../../core/shaderLibrary/util/ColorConversion.glsl.js";import"../../core/shaderModules/Float3BindUniform.js";import"../../core/shaderModules/FloatBindUniform.js";import"../../core/shaderModules/glsl.js";import"../../shaders/ScreenSpacePassAtmosphere.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/CloudsComposition.glsl.js";
2
+ import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderLibrary/shading/PiUtils.glsl.js";import"../../core/shaderLibrary/util/CloudsParallaxShading.glsl.js";import"../../core/shaderLibrary/util/ColorConversion.glsl.js";import"../../core/shaderModules/Float3BindUniform.js";import"../../core/shaderModules/FloatBindUniform.js";import"../../core/shaderModules/glsl.js";import"../../shaders/ScreenSpacePassAtmosphere.glsl.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/CloudsComposition.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import"../../core/shaderLibrary/util/CameraSpace.glsl.js";import"../../core/shaderModules/FloatBindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4BindUniform.js";import"../../core/shaderModules/Texture2DBindUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./GlobalIlluminationColorQuantization.glsl.js";import"../../shaders/floatBlendScale.glsl.js";import"../../../../webgl/enums.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{G as GlobalIlluminationPassParameters,c as build,e as defaultColorBleedWeight,d as defaultRayMarchMaxReach,f as defaultRayMarchMaxReachEmissionWeight,b as defaultRayMarchMaxSteps,g as defaultRayMarchMinReach,h as defaultRayMarchMinReachEmissionWeight,i as defaultRayMarchWorldReach}from"../../../../../chunks/GlobalIllumination.glsl.js";
2
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepthLastFrame.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../core/shaderLibrary/shading/ScreenSpaceRayMarching.glsl.js";import"../../core/shaderLibrary/util/CameraSpace.glsl.js";import"../../core/shaderLibrary/util/cameraUniforms.js";import"../../core/shaderModules/FloatBindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4BindUniform.js";import"../../core/shaderModules/Texture2DBindUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./GlobalIlluminationColorQuantization.glsl.js";import"../../shaders/floatBlendScale.glsl.js";import"../../../../webgl/enums.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{G as GlobalIlluminationPassParameters,c as build,e as defaultColorBleedWeight,d as defaultRayMarchMaxReach,f as defaultRayMarchMaxReachEmissionWeight,b as defaultRayMarchMaxSteps,g as defaultRayMarchMinReach,h as defaultRayMarchMinReachEmissionWeight,i as defaultRayMarchWorldReach}from"../../../../../chunks/GlobalIllumination.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{releaseMaybe as t}from"../../../../../core/maybe.js";import{watch as s,syncAndInitial as r}from"../../../../../core/reactiveUtils.js";import{subclass as a}from"../../../../../core/accessorSupport/decorators.js";import{set as i}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{UNIT_W as l,ZEROS as o}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{InternalRenderCategory as u}from"../../../webgl.js";import{AmbientIllumination as n}from"../AmbientIllumination.js";import{G as m}from"../../../../../chunks/GlobalIllumination.glsl.js";import{G as h}from"../../../../../chunks/GlobalIlluminationBlur.glsl.js";import{GlobalIlluminationBlurTechnique as c}from"./GlobalIlluminationBlurTechnique.js";import{GlobalIlluminationTechnique as p}from"./GlobalIlluminationTechnique.js";import{GlobalIlluminationTechniqueConfiguration as _}from"./GlobalIlluminationTechniqueConfiguration.js";import{G as d}from"../../../../../chunks/GlobalIlluminationUpscale.glsl.js";import{GlobalIlluminationUpscaleTechnique as f}from"./GlobalIlluminationUpscaleTechnique.js";import{DepthStencilAttachment as b,ColorAttachment1 as g}from"../../../../webgl/enums.js";const w=1,P=100;let x=class extends n{constructor(e){super(e),this._passParameters=new m,this._drawParameters=new h,this._drawParametersUpscale=new d,this._maxFrames=256,this._lowQualityResolutionScale=.35,this._configuration=new _,this._lastOutput=null,this._isGlobalIlluminationUpdate=!1,this._resetBuffer=!1}initialize(){this.addHandles(s(()=>this._mode,e=>{0===e?this._disable():this._enable()},r))}destroy(){this._lastOutput=t(this._lastOutput)}get hasHighQuality(){return 2===this._mode}resetAccumulatedFrames(){this._isGlobalIlluminationUpdate||!(this._passParameters.accumulatedFrames>P)&&this._configuration.hasEmission||this._reset()}precompile(){this.techniques.getCompiled(f)}render(e){if(this._passParameters.accumulatedFrames>=this._maxFrames)return this._lastOutput?.retain(),this._lastOutput;const t=e.find(({name:e})=>"normals"===e),s=t?.getTexture(),r=t?.getTexture(b),a=this._mode;if(!s||!r)return this._emptyOutput;if(0===a)return this._resetBuffer=!1,this._emptyOutput;if(!this._canRender)return this._resetBuffer=!1,this._requestRender(),this._emptyOutput;const l=this.bindParameters;this._configuration.hasEmission=!!l.reprojection.lastFrameEmission;const o=this.techniques.getCompiled(p,this._configuration),n=this.techniques.getCompiled(c),m=1===a,h=m?this._lowQualityResolutionScale:1,_=m?this.techniques.getCompiled(f):null;if(!o||!n||m&&!_)return this._requestRender(),this._emptyOutput;const d=this.renderingContext,{camera:P}=l;this._passParameters.normalTexture=s,this._passParameters.depthTexture=r,this._passParameters.projScale=1/P.computeScreenPixelSizeAtDist(1),this._passParameters.scaleGlobalIllumination=h;const{fullWidth:x,fullHeight:I}=P,q=Math.max(1,Math.floor(x*h)),F=Math.max(1,Math.floor(I*h)),T=this.fboCache.acquire(q,F,"global illumination input").acquireColor(g,2);d.bindFramebuffer(T.fbo),d.setViewport(0,0,q,F),d.bindTechnique(o,l,this._passParameters,this._drawParameters),d.screen.draw();const O=T.obtainAttachment(g),C=Math.max(1,Math.round(q/w)),j=Math.max(1,Math.round(F/w)),G=this.fboCache.acquire(C,j,"global illumination blur horizontal");d.bindFramebuffer(G.fbo),this._drawParameters.texture=T.getTexture(),this._drawParameters.weightTexture=O.attachment,i(this._drawParameters.blurSize,0,w/F),d.bindTechnique(n,l,this._passParameters,this._drawParameters),d.setViewport(0,0,C,j),d.screen.draw(),T.release();const S=m?"global illumination blur vertical":u.AMBIENT_ILLUMINATION,y=this.fboCache.acquire(C,j,S);d.bindFramebuffer(y.fbo),d.setViewport(0,0,C,j),d.setClearColor(1,1,1,0),d.clear(16384),this._drawParameters.texture=G.getTexture(),this._drawParameters.weightTexture=O.attachment,i(this._drawParameters.blurSize,w/C,0),d.bindTechnique(n,l,this._passParameters,this._drawParameters),d.setViewport(0,0,C,j),d.screen.draw(),G.release(),y.attachColor(O,g),O.release();let M=y;return _&&(M=this.fboCache.acquire(x,I,u.AMBIENT_ILLUMINATION).acquireColor(g,2),d.bindFramebuffer(M.fbo),d.setViewport(0,0,x,I),d.setClearColor(1,1,1,0),d.clear(16384),this._drawParametersUpscale.colorTexture=y.getTexture(),this._drawParametersUpscale.weightTexture=y.getTexture(g),d.bindTechnique(_,l,this._passParameters,this._drawParametersUpscale),d.screen.draw(),y.release()),d.setViewport4fv(P.fullViewport),this._passParameters.temporalSampleFrame=(this._passParameters.temporalSampleFrame+1)%64,++this._passParameters.accumulatedFrames,this._storeOutput(M),this._passParameters.accumulatedFrames<this._maxFrames&&this._requestRender(),M}_requestRender(){this._isGlobalIlluminationUpdate=!0,this.requestRender(1),this._isGlobalIlluminationUpdate=!1}_storeOutput(e){this._lastOutput!==e&&(this._lastOutput=t(this._lastOutput),this._lastOutput=e,this._lastOutput.retain())}get _emptyOutput(){const e=this.renderingContext,{fullWidth:t,fullHeight:s}=this.bindParameters.camera,r=this.fboCache.acquire(t,s,u.AMBIENT_ILLUMINATION).acquireColor(g,2);return e.bindFramebuffer(r.fbo),e.setViewport(0,0,t,s),e.clearBuffer(0,l),e.clearBuffer(1,o),r}get _canRender(){const{reprojection:e,hasEmission:t,globalIllumination:s}=this.bindParameters;return!(!e.lastFrameColor||t&&!e.lastFrameEmission||!e.lastFrameDepth||!s||this._resetBuffer)}get _mode(){return this._globalIlluminationEnabled?this.view.stage.renderer.isFeatureEnabled(10)?2:1:0}_reset(){this._passParameters.accumulatedFrames=0,this._lastOutput=t(this._lastOutput)}get test(){const e=this;return{passParameters:this._passParameters,configuration:this._configuration,get maxFrames(){return e._maxFrames},set maxFrames(t){e._maxFrames=t},get lowQualityResolutionScale(){return e._lowQualityResolutionScale},set lowQualityResolutionScale(t){e._lowQualityResolutionScale=t},get mode(){return e._mode},restartAccumulation:()=>{this._reset(),this._passParameters.temporalSampleFrame=0,this._resetBuffer=!0,this._requestRender()}}}};x=e([a("esri.views.3d.webgl-engine.effects.globalIllumination.GlobalIllumination")],x);export{x as GlobalIllumination,w as blurSizePixels};
2
+ import{__decorate as e}from"tslib";import{releaseMaybe as t}from"../../../../../core/maybe.js";import{watch as s,syncAndInitial as a}from"../../../../../core/reactiveUtils.js";import{subclass as r}from"../../../../../core/accessorSupport/decorators.js";import{set as i}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{UNIT_W as l,ZEROS as o}from"../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{InternalRenderCategory as u}from"../../../webgl.js";import{AmbientIllumination as n}from"../AmbientIllumination.js";import{G as m}from"../../../../../chunks/GlobalIllumination.glsl.js";import{G as h}from"../../../../../chunks/GlobalIlluminationBlur.glsl.js";import{GlobalIlluminationBlurTechnique as c}from"./GlobalIlluminationBlurTechnique.js";import{GlobalIlluminationTechnique as p}from"./GlobalIlluminationTechnique.js";import{GlobalIlluminationTechniqueConfiguration as _}from"./GlobalIlluminationTechniqueConfiguration.js";import{G as d}from"../../../../../chunks/GlobalIlluminationUpscale.glsl.js";import{GlobalIlluminationUpscaleTechnique as f}from"./GlobalIlluminationUpscaleTechnique.js";import{DepthStencilAttachment as b,ColorAttachment1 as g}from"../../../../webgl/enums.js";const w=1,P=100;let x=class extends n{constructor(e){super(e),this._passParameters=new m,this._drawParameters=new h,this._drawParametersUpscale=new d,this._maxFrames=256,this._lowQualityResolutionScale=.35,this._configuration=new _,this._lastOutput=null,this._isGlobalIlluminationUpdate=!1,this._resetBuffer=!1}initialize(){this.addHandles(s(()=>this._mode,e=>{0===e?this._disable():this._enable()},a))}destroy(){this._lastOutput=t(this._lastOutput)}_disable(){super._disable(),this._resetAccumulation(),this._passParameters.temporalSampleFrame=0}get hasHighQuality(){return 2===this._mode}resetAccumulation(){this._isGlobalIlluminationUpdate||!(this._passParameters.accumulatedFrames>P)&&this._configuration.hasEmission||this._resetAccumulation()}precompile(){this.techniques.getCompiled(f)}render(e){if(this._passParameters.accumulatedFrames>=this._maxFrames)return this._lastOutput?.retain(),this._lastOutput;const t=e.find(({name:e})=>"normals"===e),s=t?.getTexture(),a=t?.getTexture(b),r=this._mode;if(!s||!a)return this._emptyOutput;if(0===r)return this._resetBuffer=!1,this._emptyOutput;if(!this._canRender)return this._resetBuffer=!1,this._requestRender(),this._emptyOutput;const l=this.bindParameters;this._configuration.hasEmission=!!l.reprojection.lastFrameEmission;const o=this.techniques.getCompiled(p,this._configuration),n=this.techniques.getCompiled(c),m=1===r,h=m?this._lowQualityResolutionScale:1,_=m?this.techniques.getCompiled(f):null;if(!o||!n||m&&!_)return this._requestRender(),this._emptyOutput;const d=this.renderingContext,{camera:P}=l;this._passParameters.normalTexture=s,this._passParameters.depthTexture=a,this._passParameters.projScale=1/P.computeScreenPixelSizeAtDist(1),this._passParameters.scaleGlobalIllumination=h;const{fullWidth:x,fullHeight:I}=P,T=Math.max(1,Math.floor(x*h)),q=Math.max(1,Math.floor(I*h)),F=this.fboCache.acquire(T,q,"global illumination input").acquireColor(g,2);d.bindFramebuffer(F.fbo),d.setViewport(0,0,T,q),d.bindTechnique(o,l,this._passParameters,this._drawParameters),d.screen.draw();const O=F.obtainAttachment(g),C=Math.max(1,Math.round(T/w)),j=Math.max(1,Math.round(q/w)),G=this.fboCache.acquire(C,j,"global illumination blur horizontal");d.bindFramebuffer(G.fbo),this._drawParameters.texture=F.getTexture(),this._drawParameters.weightTexture=O.attachment,i(this._drawParameters.blurSize,0,w/q),d.bindTechnique(n,l,this._passParameters,this._drawParameters),d.setViewport(0,0,C,j),d.screen.draw(),F.release();const S=m?"global illumination blur vertical":u.AMBIENT_ILLUMINATION,y=this.fboCache.acquire(C,j,S);d.bindFramebuffer(y.fbo),d.setViewport(0,0,C,j),d.setClearColor(1,1,1,0),d.clear(16384),this._drawParameters.texture=G.getTexture(),this._drawParameters.weightTexture=O.attachment,i(this._drawParameters.blurSize,w/C,0),d.bindTechnique(n,l,this._passParameters,this._drawParameters),d.setViewport(0,0,C,j),d.screen.draw(),G.release(),y.attachColor(O,g),O.release();let M=y;return _&&(M=this.fboCache.acquire(x,I,u.AMBIENT_ILLUMINATION).acquireColor(g,2),d.bindFramebuffer(M.fbo),d.setViewport(0,0,x,I),d.setClearColor(1,1,1,0),d.clear(16384),this._drawParametersUpscale.colorTexture=y.getTexture(),this._drawParametersUpscale.weightTexture=y.getTexture(g),d.bindTechnique(_,l,this._passParameters,this._drawParametersUpscale),d.screen.draw(),y.release()),d.setViewport4fv(P.fullViewport),this._passParameters.temporalSampleFrame=(this._passParameters.temporalSampleFrame+1)%64,++this._passParameters.accumulatedFrames,this._storeOutput(M),this._passParameters.accumulatedFrames<this._maxFrames&&this._requestRender(),M}_requestRender(){this._isGlobalIlluminationUpdate=!0,this.requestRender(1),this._isGlobalIlluminationUpdate=!1}_storeOutput(e){this._lastOutput!==e&&(this._lastOutput=t(this._lastOutput),this._lastOutput=e,this._lastOutput.retain())}get _emptyOutput(){const e=this.renderingContext,{fullWidth:t,fullHeight:s}=this.bindParameters.camera,a=this.fboCache.acquire(t,s,u.AMBIENT_ILLUMINATION).acquireColor(g,2);return e.bindFramebuffer(a.fbo),e.setViewport(0,0,t,s),e.clearBuffer(0,l),e.clearBuffer(1,o),a}get _canRender(){const{reprojection:e,hasEmission:t,globalIllumination:s}=this.bindParameters;return!(!e.lastFrameColor||t&&!e.lastFrameEmission||!e.lastFrameDepth||!s||this._resetBuffer)}get _mode(){return this._useGlobalIllumination?this.view.stage.renderer.isFeatureEnabled(10)?2:1:0}_resetAccumulation(){this._passParameters.accumulatedFrames=0,this._lastOutput=t(this._lastOutput)}get test(){const e=this;return{passParameters:this._passParameters,configuration:this._configuration,get maxFrames(){return e._maxFrames},set maxFrames(t){e._maxFrames=t},get lowQualityResolutionScale(){return e._lowQualityResolutionScale},set lowQualityResolutionScale(t){e._lowQualityResolutionScale=t},get mode(){return e._mode}}}};x=e([r("esri.views.3d.webgl-engine.effects.globalIllumination.GlobalIllumination")],x);export{x as GlobalIllumination,w as blurSizePixels};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../../../../../core/libs/gl-matrix-2/math/vec2.js";import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/Laserline.glsl.js";import"../../core/shaderLibrary/util/blendEmission.glsl.js";import"../../core/shaderModules/Float2BindUniform.js";import"../../core/shaderModules/FloatBindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4BindUniform.js";import"../../core/shaderModules/Matrix4PassUniform.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/LaserlinePath.glsl.js";
2
+ import"../../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../../../../../core/libs/gl-matrix-2/math/vec2.js";import"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import"../../core/shaderLibrary/Laserline.glsl.js";import"../../core/shaderLibrary/util/blendEmission.glsl.js";import"../../core/shaderLibrary/util/cameraUniforms.js";import"../../core/shaderModules/Float2BindUniform.js";import"../../core/shaderModules/FloatBindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4PassUniform.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/LaserlinePath.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/math/vec3.js";import"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import"../../core/shaderModules/Float3BindUniform.js";import"../../core/shaderModules/Float3PassUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4BindUniform.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/Precipitation.glsl.js";
2
+ import"../../../../../core/libs/gl-matrix-2/math/vec3.js";import"../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import"../../core/shaderLibrary/util/cameraUniforms.js";import"../../core/shaderModules/Float3BindUniform.js";import"../../core/shaderModules/Float3PassUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/Precipitation.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{__decorate as e}from"tslib";import{clamp as r}from"../../../../../core/mathUtils.js";import{disposeMaybe as t}from"../../../../../core/maybe.js";import{watch as s,syncAndInitial as i}from"../../../../../core/reactiveUtils.js";import{Milliseconds as a}from"../../../../../core/time.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{set as n}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{InternalRenderCategory as m}from"../../../webgl.js";import{distanceFadeEnd as h,distanceFadeStart as p}from"../../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{AmbientIllumination as c}from"../AmbientIllumination.js";import{g as l}from"../../../../../chunks/SSAO.glsl.js";import{SSAOBlurTechnique as u}from"./SSAOBlurTechnique.js";import{noiseData as d}from"./SSAONoiseData.js";import{SSAOPassParameters as f,BlurDrawParameters as b}from"./SSAOParameters.js";import{SSAOTechnique as w}from"./SSAOTechnique.js";import{DepthStencilAttachment as _}from"../../../../webgl/enums.js";import T from"../../../../webgl/Texture.js";import{TextureDescriptor as P}from"../../../../webgl/TextureDescriptor.js";const S=2;let x=class extends c{constructor(e){super(e),this._enableTime=a(0),this._passParameters=new f,this._drawParameters=new b}initialize(){const e=Uint8Array.from(atob(d),e=>e.charCodeAt(0)),r=new P(32);r.wrapMode=33071,r.pixelFormat=6407,r.wrapMode=10497,r.hasMipmap=!0,this._passParameters.noiseTexture=new T(this.renderingContext,r,e),this.addHandles(s(()=>this._ssaoEnabled,e=>{this._enableTime=a(0),e?this._enable():this._disable()},i))}destroy(){this._passParameters.noiseTexture=t(this._passParameters.noiseTexture)}render(e){const t=e.find(({name:e})=>"normals"===e),s=t?.getTexture(),i=t?.getTexture(_);if(!s||!i)return;const o=this.techniques.getCompiled(w),c=this.techniques.getCompiled(u);if(!o||!c)return this._enableTime=a(performance.now()),void this.requestRender(1);0===this._enableTime&&(this._enableTime=a(performance.now()));const d=this.renderingContext,f=this.view.qualitySettings.fadeDuration,b=this.bindParameters,T=b.camera,P=T.relativeElevation,x=r((h-P)/(h-p),0,1),j=f>0?Math.min(f,performance.now()-this._enableTime)/f:1,q=j*x;this._passParameters.normalTexture=s,this._passParameters.depthTexture=i,this._passParameters.projScale=1/T.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*g/l(T)**6*q;const A=T.fullViewport[2],C=T.fullViewport[3],v=this.fboCache.acquire(A,C,"ssao input",2);d.bindFramebuffer(v.fbo),d.setViewport(0,0,A,C),d.bindTechnique(o,b,this._passParameters,this._drawParameters),d.screen.draw();const M=Math.round(A/S),V=Math.round(C/S),O=this.fboCache.acquire(M,V,"ssao blur",0);d.bindFramebuffer(O.fbo),this._drawParameters.colorTexture=v.getTexture(),n(this._drawParameters.blurSize,0,S/C),d.bindTechnique(c,b,this._passParameters,this._drawParameters),d.setViewport(0,0,M,V),d.screen.draw(),v.release();const y=this.fboCache.acquire(M,V,m.AMBIENT_ILLUMINATION,0);return d.bindFramebuffer(y.fbo),d.setViewport(0,0,A,C),d.setClearColor(1,1,1,0),d.clear(16384),this._drawParameters.colorTexture=O.getTexture(),n(this._drawParameters.blurSize,S/A,0),d.bindTechnique(c,b,this._passParameters,this._drawParameters),d.setViewport(0,0,M,V),d.screen.draw(),d.setViewport4fv(T.fullViewport),O.release(),j<1&&this.requestRender(2),y}};x=e([o("esri.views.3d.webgl-engine.effects.ssao.SSAO")],x);const g=.5;export{x as SSAO,S as blurSizePixels};
2
+ import{__decorate as e}from"tslib";import{clamp as r}from"../../../../../core/mathUtils.js";import{disposeMaybe as t}from"../../../../../core/maybe.js";import{watch as s,syncAndInitial as i}from"../../../../../core/reactiveUtils.js";import{Milliseconds as a}from"../../../../../core/time.js";import{subclass as o}from"../../../../../core/accessorSupport/decorators.js";import{set as m}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{InternalRenderCategory as n}from"../../../webgl.js";import{distanceFadeEnd as h,distanceFadeStart as p}from"../../core/shaderLibrary/shading/ScreenSpaceConstants.js";import{AmbientIllumination as c}from"../AmbientIllumination.js";import{g as l}from"../../../../../chunks/SSAO.glsl.js";import{SSAOBlurTechnique as u}from"./SSAOBlurTechnique.js";import{noiseData as d}from"./SSAONoiseData.js";import{SSAOPassParameters as f,BlurDrawParameters as b}from"./SSAOParameters.js";import{SSAOTechnique as w}from"./SSAOTechnique.js";import{DepthStencilAttachment as _}from"../../../../webgl/enums.js";import T from"../../../../webgl/Texture.js";import{TextureDescriptor as S}from"../../../../webgl/TextureDescriptor.js";const P=2;let x=class extends c{constructor(e){super(e),this._enableTime=a(0),this._passParameters=new f,this._drawParameters=new b}initialize(){const e=Uint8Array.from(atob(d),e=>e.charCodeAt(0)),r=new S(32);r.wrapMode=33071,r.pixelFormat=6407,r.wrapMode=10497,r.hasMipmap=!0,this._passParameters.noiseTexture=new T(this.renderingContext,r,e),this.addHandles(s(()=>this._useSSAO,e=>{this._enableTime=a(0),e?this._enable():this._disable()},i))}destroy(){this._passParameters.noiseTexture=t(this._passParameters.noiseTexture)}render(e){const t=e.find(({name:e})=>"normals"===e),s=t?.getTexture(),i=t?.getTexture(_);if(!s||!i)return;const o=this.techniques.getCompiled(w),c=this.techniques.getCompiled(u);if(!o||!c)return this._enableTime=a(performance.now()),void this.requestRender(1);0===this._enableTime&&(this._enableTime=a(performance.now()));const d=this.renderingContext,f=this.view.qualitySettings.fadeDuration,b=this.bindParameters,T=b.camera,S=T.relativeElevation,x=r((h-S)/(h-p),0,1),j=f>0?Math.min(f,performance.now()-this._enableTime)/f:1,q=j*x;this._passParameters.normalTexture=s,this._passParameters.depthTexture=i,this._passParameters.projScale=1/T.computeScreenPixelSizeAtDist(1),this._passParameters.intensity=4*g/l(T)**6*q;const A=T.fullViewport[2],C=T.fullViewport[3],v=this.fboCache.acquire(A,C,"ssao input",2);d.bindFramebuffer(v.fbo),d.setViewport(0,0,A,C),d.bindTechnique(o,b,this._passParameters,this._drawParameters),d.screen.draw();const M=Math.round(A/P),O=Math.round(C/P),V=this.fboCache.acquire(M,O,"ssao blur",0);d.bindFramebuffer(V.fbo),this._drawParameters.colorTexture=v.getTexture(),m(this._drawParameters.blurSize,0,P/C),d.bindTechnique(c,b,this._passParameters,this._drawParameters),d.setViewport(0,0,M,O),d.screen.draw(),v.release();const y=this.fboCache.acquire(M,O,n.AMBIENT_ILLUMINATION,0);return d.bindFramebuffer(y.fbo),d.setViewport(0,0,A,C),d.setClearColor(1,1,1,0),d.clear(16384),this._drawParameters.colorTexture=V.getTexture(),m(this._drawParameters.blurSize,P/A,0),d.bindTechnique(c,b,this._passParameters,this._drawParameters),d.setViewport(0,0,M,O),d.screen.draw(),d.setViewport4fv(T.fullViewport),V.release(),j<1&&this.requestRender(2),y}};x=e([o("esri.views.3d.webgl-engine.effects.ssao.SSAO")],x);const g=.5;export{x as SSAO,P as blurSizePixels};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4BindUniform.js";import"../../core/shaderModules/Matrix4PassUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/DeepSky.glsl.js";
2
+ import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderLibrary/util/cameraUniforms.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4PassUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/DeepSky.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../../core/shaderModules/Float4BindUniform.js";import"../../core/shaderModules/FloatBindUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4PassUniform.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/Stars.glsl.js";
2
+ import"../../../../../core/libs/gl-matrix-2/math/mat4.js";import"../../../../../core/libs/gl-matrix-2/factories/mat4f64.js";import"../../core/shaderLibrary/util/cameraUniforms.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Matrix4PassUniform.js";import"../../../../webgl/ShaderBuilder.js";export{b as build}from"../../../../../chunks/Stars.glsl.js";
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import{computeAttachmentOriginLines as t}from"./geometryDataUtils.js";import{Material as e}from"./Material.js";class r extends e{constructor(){super(...arguments),this.primitiveVertexCount=1}computeAttachmentOrigin(e,r,s){return t(e,r,s,this._isClosed(s))}_isClosed(t){return(this.parameters.isClosed??!1)&&t>2}}export{r as LineMaterial};
2
+ import{VisualVariablesParameters as t}from"../../layers/support/FastSymbolUpdates.js";import{computeAttachmentOriginLines as s}from"./geometryDataUtils.js";import{Material as i}from"./Material.js";class r extends t{constructor(){super(...arguments),this.renderOccluded=1,this.testsTransparentRenderOrder=0,this.isDecoration=!1,this.worldSized=!1}}class e extends i{constructor(){super(...arguments),this.primitiveVertexCount=1}updateConfiguration(t){super.updateConfiguration(t),this._configuration.draped=18===t.slot,this._configuration.worldSized=this._configuration.draped&&this.parameters.worldSized,this._configuration.emissionSource=this.emissions?1:0,this._configuration.hasVVSize=this.parameters.hasVVSize,this._configuration.hasVVColor=this.parameters.hasVVColor,this._configuration.hasVVOpacity=this.parameters.hasVVOpacity,this._configuration.hasOccludees=t.hasOccludees,this._configuration.occluder=8===this.parameters.renderOccluded}computeAttachmentOrigin(t,i,r){return s(t,i,r,this._isClosed(r))}_isClosed(t){return(this.parameters.isClosed??!1)&&t>2}}export{e as LineMaterial,r as LineMaterialParameters};
@@ -1,2 +1,2 @@
1
1
  /* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
2
- import"../../../../core/has.js";import t from"../../../../core/Logger.js";import{debugFlags as r}from"../../support/debugFlags.js";import{webglDebugEnabled as e}from"../../../webgl/checkWebGLError.js";class i{constructor(r,i,s){this._context=r,this.locations=s,this._textures=new Map,this.source=e()?i:null,i.attributeNames.forEach(r=>{s.has(r)||t.getLogger("esri.views.3d.webgl-engine.lib.Program").error(`Missing VertexAttributeLocation for ${r} used in shader`)}),this._glProgram=r.programCache.get(i.generate("vertex",!0),i.generate("fragment",!0),s),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=i.generateBind(this),this.bindPass=i.generateBindPass(this),this.bindDraw=i.generateBindDraw(this)}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(t,r){this._glProgram.setUniform1i(t,r?1:0)}setUniform1i(t,r){this._glProgram.setUniform1i(t,r)}setUniform1f(t,r,e){this._glProgram.setUniform1f(t,r,e)}setUniform2fv(t,r,e){this._glProgram.setUniform2fv(t,r,e)}setUniform3fv(t,r,e){this._glProgram.setUniform3fv(t,r,e)}setUniform4fv(t,r,e){this._glProgram.setUniform4fv(t,r,e)}setUniformMatrix3fv(t,r,e){this._glProgram.setUniformMatrix3fv(t,r,!1,e)}setUniformMatrix4fv(t,r,e){this._glProgram.setUniformMatrix4fv(t,r,!1,e)}setUniformMatrices4fv(t,r,e){this._glProgram.setUniformMatrices4fv(t,r,!1,e)}setUniform1fv(t,r,e){this._glProgram.setUniform1fv(t,r,e)}setUniform1iv(t,r){this._glProgram.setUniform1iv(t,r)}setUniform2iv(t,r){this._glProgram.setUniform2iv(t,r)}setUniform3iv(t,r){this._glProgram.setUniform3iv(t,r)}setUniform4iv(t,r){this._glProgram.setUniform4iv(t,r)}assertCompatibleVertexAttributeLocations(t,e){if(r.ENABLE_OPTIMIZATIONS)return;let i=t.locations;if(e){const t=new Map(i);e.forEach((r,e)=>t.set(e,i.size+r)),i=t}i.size!==this.locations.size&&console.error(`VertexAttributeLocations are incompatible: ${i}, ${this.locations}`),this.locations.forEach((t,r)=>{i.get(r)!==t&&console.error(`VertexAttributeLocations are incompatible: Program has ${r} at position ${t}, VAO has it at position ${i.get(r)}.`)})}stop(){this._textures.clear()}bindTexture(t,r,i){if(!r?.glName){const i=`Texture sampler ${t} in ${this._context.debugBoundTechnique} has no given Texture in ${(new Error).stack}`;e()&&console.error(i),r=this._context.emptyTexture}const s=this._ensureTextureUnit(t,r);this._context.useProgram(this);const o=s.unit;this.setUniform1i(t,o),this._context.bindTexture(r,o,!1,i)}_ensureTextureUnit(t,r){let e=this._textures.get(t);return null==e?(e={texture:r,unit:this._textures.size},this._textures.set(t,e)):e.texture=r,e}}export{i as Program};
2
+ import"../../../../core/has.js";import t from"../../../../core/Logger.js";import{debugFlags as r}from"../../support/debugFlags.js";import{webglDebugEnabled as e}from"../../../webgl/checkWebGLError.js";class i{constructor(r,i,s){this._context=r,this.locations=s,this._textures=new Map,this.source=e()?i:null,i.attributeNames.forEach(r=>{s.has(r)||t.getLogger("esri.views.3d.webgl-engine.lib.Program").error(`Missing VertexAttributeLocation for ${r} used in shader`)}),this._glProgram=r.programCache.get(i.generate("vertex",!0),i.generate("fragment",!0),s),this._glProgram.stop=()=>{throw new Error("Wrapped _glProgram used directly")},this.bind=i.generateBind(this),this.bindPass=i.generateBindPass(this),this.bindDraw=i.generateBindDraw(this)}get glName(){return this._glProgram.glName}get hasTransformFeedbackVaryings(){return this._glProgram.hasTransformFeedbackVaryings}get compiled(){return this._glProgram.compiled}setUniform1b(t,r){this._glProgram.setUniform1i(t,r?1:0)}setUniform1i(t,r){this._glProgram.setUniform1i(t,r)}setUniform1f(t,r,e){this._glProgram.setUniform1f(t,r,e)}setUniform2fv(t,r,e){this._glProgram.setUniform2fv(t,r,e)}setUniform3fv(t,r,e){this._glProgram.setUniform3fv(t,r,e)}setUniform4fv(t,r,e){this._glProgram.setUniform4fv(t,r,e)}setUniformMatrix3fv(t,r,e){this._glProgram.setUniformMatrix3fv(t,r,!1,e)}setUniformMatrix4fv(t,r,e){this._glProgram.setUniformMatrix4fv(t,r,!1,e)}setUniformMatrices4fv(t,r,e){this._glProgram.setUniformMatrices4fv(t,r,!1,e)}setUniform1fv(t,r,e){this._glProgram.setUniform1fv(t,r,e)}setUniform1iv(t,r){this._glProgram.setUniform1iv(t,r)}setUniform2iv(t,r){this._glProgram.setUniform2iv(t,r)}setUniform3iv(t,r){this._glProgram.setUniform3iv(t,r)}setUniform4iv(t,r){this._glProgram.setUniform4iv(t,r)}assertCompatibleVertexAttributeLocations(t,e){if(r.ENABLE_OPTIMIZATIONS)return;let i=t.locations;if(e){const t=new Map(i);e.forEach((r,e)=>t.set(e,i.size+r)),i=t}i.size!==this.locations.size&&console.error(`VertexAttributeLocations are incompatible: ${Array.from(i.keys())} vs ${Array.from(this.locations.keys())}`),this.locations.forEach((t,r)=>{i.get(r)!==t&&console.error(`VertexAttributeLocations are incompatible: Program has ${r} at position ${t}, VAO has it at position ${i.get(r)}.`)})}stop(){this._textures.clear()}bindTexture(t,r,i){if(!r?.glName){const i=`Texture sampler ${t} in ${this._context.debugBoundTechnique} has no given Texture in ${(new Error).stack}`;e()&&console.error(i),r=this._context.emptyTexture}const s=this._ensureTextureUnit(t,r);this._context.useProgram(this);const o=s.unit;this.setUniform1i(t,o),this._context.bindTexture(r,o,!1,i)}_ensureTextureUnit(t,r){let e=this._textures.get(t);return null==e?(e={texture:r,unit:this._textures.size},this._textures.set(t,e)):e.texture=r,e}}export{i as Program};