@arcgis/core 4.33.0-next.20250325 → 4.33.0-next.20250327

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 (248) hide show
  1. package/applications/Components/viewUtils.d.ts +3 -0
  2. package/applications/Components/viewUtils.js +5 -0
  3. package/arcade/arcadeAsyncRuntime.js +1 -1
  4. package/arcade/arcadeCompiler.js +1 -1
  5. package/arcade/arcadeRuntime.js +1 -1
  6. package/arcade/containerUtils.js +1 -1
  7. package/arcade/functions/feature.js +1 -1
  8. package/arcade/functions/featuresetgeom.js +1 -1
  9. package/arcade/functions/fieldStats.js +1 -1
  10. package/arcade/functions/geomasync.js +1 -1
  11. package/arcade/functions/geometry.js +1 -1
  12. package/arcade/functions/geomsync.js +1 -1
  13. package/arcade/functions/maths.js +1 -1
  14. package/arcade/functions/string.js +1 -1
  15. package/arcade/geometry/functions.js +1 -1
  16. package/arcade/languageUtils.js +1 -1
  17. package/assets/esri/core/workers/RemoteClient.js +1 -1
  18. package/assets/esri/core/workers/chunks/0f37b3a797d8a55439a4.js +1 -0
  19. package/assets/esri/core/workers/chunks/1dd6d68d23ba07587ae4.js +1 -0
  20. package/assets/esri/core/workers/chunks/{fef46b841e8369b30227.js → 2873cb727c59328074db.js} +1 -1
  21. package/assets/esri/core/workers/chunks/{6ff981ec0c725efe5525.js → 470cf066294b053c2732.js} +1 -1
  22. package/assets/esri/core/workers/chunks/705c1ebb327f680f8519.js +1 -0
  23. package/assets/esri/core/workers/chunks/75a04b073231da70c18d.js +1 -0
  24. package/assets/esri/core/workers/chunks/{f86736a60856ef7fdacb.js → 7f8c7e3e41e51ab4d612.js} +1 -1
  25. package/assets/esri/core/workers/chunks/80aaf31c8eec3cff2add.js +1 -0
  26. package/assets/esri/core/workers/chunks/82692bff98b4ec781544.js +319 -0
  27. package/assets/esri/core/workers/chunks/86ee278919038260696e.js +39 -0
  28. package/assets/esri/core/workers/chunks/{4496ef270c700078df0c.js → 8752f807c05d1ec215e8.js} +1 -1
  29. package/assets/esri/core/workers/chunks/9c59fc2df8081e65a128.js +1 -0
  30. package/assets/esri/core/workers/chunks/{e0ac90b4ad8c36fb7d70.js → b2666b89755323a84fcb.js} +1 -1
  31. package/assets/esri/core/workers/chunks/{e4290719c8afc2a4ee8c.js → cc441051a52bfbda9caf.js} +1 -1
  32. package/assets/esri/core/workers/chunks/d3912886ac2910290f43.js +1 -0
  33. package/assets/esri/core/workers/chunks/e08bff9f8247909776a4.js +1 -0
  34. package/assets/esri/core/workers/chunks/{8f4bcca8b0525e19374f.js → e9993d4f2bfdc434fbcc.js} +1 -1
  35. package/assets/esri/core/workers/chunks/ed831e51c2a03ee95879.js +1 -0
  36. package/assets/esri/core/workers/chunks/{3e9cd82325c473ddbf1f.js → edcc0fefd57323d2cb67.js} +1 -1
  37. package/assets/esri/core/workers/chunks/{bea2f317b73a86e2a997.js → f128d3431da86e484117.js} +100 -101
  38. package/assets/esri/core/workers/chunks/{065ae931b5891847a06f.js → f28eaf1d3a7f12788bcf.js} +1 -1
  39. package/assets/esri/core/workers/chunks/f9396af9cbfd165e72e2.js +1 -0
  40. package/chunks/BloomBlur.glsl.js +1 -1
  41. package/chunks/BloomComposition.glsl.js +2 -2
  42. package/chunks/ComponentShader.glsl.js +23 -24
  43. package/chunks/HUDMaterial.glsl.js +2 -2
  44. package/chunks/HighlightApply.glsl.js +1 -1
  45. package/chunks/HighlightDownsample.glsl.js +1 -1
  46. package/chunks/HighlightToSingle.glsl.js +1 -1
  47. package/chunks/LineMarker.glsl.js +26 -26
  48. package/chunks/Point2D.js +1 -1
  49. package/chunks/ProjectionTransformation.js +1 -1
  50. package/chunks/QuadraticBezier.js +1 -1
  51. package/chunks/RibbonLine.glsl.js +35 -33
  52. package/chunks/ShadowHighlight.glsl.js +1 -1
  53. package/chunks/Terrain.glsl.js +33 -33
  54. package/chunks/WaterSurface.glsl.js +1 -1
  55. package/chunks/array.js +1 -1
  56. package/chunks/languageUtils.js +1 -1
  57. package/geometry/operators/projectOperator.js +1 -1
  58. package/geometry/operators/shapePreservingProjectOperator.js +1 -1
  59. package/interfaces.d.ts +263 -24
  60. package/layers/LinkChartLayer.js +1 -1
  61. package/layers/MapImageLayer.js +1 -1
  62. package/layers/TileLayer.js +1 -1
  63. package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
  64. package/package.json +1 -1
  65. package/rest/support/RasterData.js +1 -1
  66. package/support/revision.js +1 -1
  67. package/views/2d/LabelManager.js +1 -1
  68. package/views/2d/engine/vectorTiles/Placement.js +1 -1
  69. package/views/2d/engine/vectorTiles/SourceLayerData.js +1 -1
  70. package/views/2d/engine/vectorTiles/TileHandler3D.js +1 -1
  71. package/views/2d/engine/vectorTiles/TileManager.js +1 -1
  72. package/views/2d/engine/vectorTiles/VectorTile.js +1 -1
  73. package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
  74. package/views/2d/engine/vectorTiles/VectorTileFeatureIndex.js +1 -1
  75. package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
  76. package/views/2d/engine/vectorTiles/buckets/BaseBucket.js +1 -1
  77. package/views/2d/engine/vectorTiles/buckets/SymbolBucket.js +1 -1
  78. package/views/2d/engine/vectorTiles/constants.js +5 -0
  79. package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +5 -0
  80. package/views/2d/engine/vectorTiles/decluttering/SymbolDeclutterer.js +1 -1
  81. package/views/2d/engine/vectorTiles/decluttering/SymbolFader.js +1 -1
  82. package/views/2d/engine/vectorTiles/decluttering/SymbolRepository.js +1 -1
  83. package/views/2d/engine/vectorTiles/decluttering/core.js +1 -1
  84. package/views/2d/engine/vectorTiles/decluttering/jobsUtil.js +1 -1
  85. package/views/2d/engine/vectorTiles/decluttering/util.js +1 -1
  86. package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
  87. package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
  88. package/views/2d/engine/webgl/AFeatureTile.js +1 -1
  89. package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
  90. package/views/2d/engine/webgl/FeatureTile.js +1 -1
  91. package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
  92. package/views/2d/engine/webgl/cpuMapped/Buffer.js +1 -1
  93. package/views/2d/engine/webgl/cpuMapped/MappedMesh.js +1 -1
  94. package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
  95. package/views/2d/engine/webgl/mesh/MultiTileMeshData.js +1 -1
  96. package/views/2d/engine/webgl/mesh/meshDebugUtils.js +1 -1
  97. package/views/2d/engine/webgl/mesh/templates/segmentUtils.js +1 -1
  98. package/views/2d/engine/webgl/shaderGraph/techniques/FeatureInstanceStore.js +1 -1
  99. package/views/2d/engine/webgl/shaderGraph/techniques/GraphicInstanceStore.js +1 -1
  100. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
  101. package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
  102. package/views/2d/engine/webgl/shaderGraph/techniques/mesh/AlignedVertexSpec.js +1 -1
  103. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
  104. package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
  105. package/views/2d/layers/FeatureLayerView2D.js +1 -1
  106. package/views/2d/layers/MapImageLayerView2D.js +1 -1
  107. package/views/2d/layers/MediaLayerView2D.js +1 -1
  108. package/views/2d/layers/TileLayerView2D.js +1 -1
  109. package/views/2d/layers/features/FeatureContainer.js +1 -1
  110. package/views/2d/layers/features/RenderState.js +1 -1
  111. package/views/2d/layers/features/layerAdapters/CatalogFootprintLayerAdapter.js +1 -1
  112. package/views/2d/layers/features/layerAdapters/FeatureLayerAdapter.js +1 -1
  113. package/views/2d/layers/features/layerAdapters/InMemoryLayerAdapter.js +1 -1
  114. package/views/2d/layers/features/layerAdapters/KnowledgeGraphSublayerAdapter.js +1 -1
  115. package/views/2d/layers/features/layerAdapters/OGCFeatureLayerAdapter.js +1 -1
  116. package/views/2d/layers/features/layerAdapters/OrientedImageryLayerAdapter.js +1 -1
  117. package/views/2d/layers/features/layerAdapters/ParquetLayerAdapter.js +1 -1
  118. package/views/2d/layers/features/layerAdapters/StreamLayerAdapter.js +1 -1
  119. package/views/2d/layers/features/layerAdapters/SubtypeGroupLayerAdapter.js +1 -1
  120. package/views/2d/layers/features/schema/processor/LabelMatcherSchema.js +1 -1
  121. package/views/2d/layers/features/schema/processor/SimpleProcessorSchema.js +1 -1
  122. package/views/2d/layers/features/schema/processor/SubtypeProcessorSchema.js +1 -1
  123. package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
  124. package/views/2d/layers/features/schema/processor/symbols/SymbolSchema.js +1 -1
  125. package/views/2d/layers/support/util.js +1 -1
  126. package/views/2d/layers/support/vectorTileDebugUtils.js +1 -1
  127. package/views/2d/tiling/FeatureTileSubscriptionManager.js +1 -1
  128. package/views/3d/analysis/Dimension/LengthDimensionSubTool.js +1 -1
  129. package/views/3d/analysis/Slice/RotateManipulator.js +1 -1
  130. package/views/3d/layers/DrapedSubView3D.js +1 -1
  131. package/views/3d/layers/GraphicsView3D.js +1 -1
  132. package/views/3d/layers/ImageryLayerView3D.js +1 -1
  133. package/views/3d/layers/MapImageLayerView3D.js +1 -1
  134. package/views/3d/layers/MediaLayerView3D.js +1 -1
  135. package/views/3d/layers/TileLayerView3D.js +1 -1
  136. package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
  137. package/views/3d/layers/graphics/Labeler.js +1 -1
  138. package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
  139. package/views/3d/layers/support/ImageHighlightHelper3D.js +5 -0
  140. package/views/3d/layers/support/SublayerPopupHighlightHelper3D.js +5 -0
  141. package/views/3d/support/QualitySettings.js +1 -1
  142. package/views/3d/terrain/Overlay.js +1 -1
  143. package/views/3d/terrain/OverlayRenderer.js +1 -1
  144. package/views/3d/terrain/RasterTile.js +1 -1
  145. package/views/3d/terrain/TerrainRenderer.js +1 -1
  146. package/views/3d/terrain/TerrainSurface.js +1 -1
  147. package/views/3d/terrain/TileCompositor.js +1 -1
  148. package/views/3d/terrain/TileRenderer.js +1 -1
  149. package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
  150. package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
  151. package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentShader.glsl.js +1 -1
  152. package/views/3d/webgl-engine/core/shaderLibrary/HighlightCellGridScreenSpacePass.glsl.js +1 -1
  153. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoubleConfiguration.js +1 -1
  154. package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +4 -4
  155. package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +9 -9
  156. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +9 -10
  157. package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js +11 -0
  158. package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeNormalTexture.glsl.js +4 -4
  159. package/views/3d/webgl-engine/core/shaderLibrary/shading/PhysicallyBasedRendering.glsl.js +3 -6
  160. package/views/3d/webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js +1 -1
  161. package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +3 -3
  162. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileBackground.glsl.js +6 -6
  163. package/views/3d/webgl-engine/core/shaderLibrary/terrain/TileComposite.glsl.js +1 -1
  164. package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +1 -1
  165. package/views/3d/webgl-engine/core/shaderModules/{UintTexture2DBindUniform.js → Texture2DUintBindUniform.js} +1 -1
  166. package/views/3d/webgl-engine/core/shaderModules/{UintTexture2DPassUniform.js → Texture2DUintPassUniform.js} +1 -1
  167. package/views/3d/webgl-engine/effects/bloom/BloomBlur.glsl.js +1 -1
  168. package/views/3d/webgl-engine/effects/bloom/BloomBlurTechnique.js +1 -1
  169. package/views/3d/webgl-engine/effects/bloom/BloomComposition.glsl.js +1 -1
  170. package/views/3d/webgl-engine/effects/bloom/BloomCompositionTechnique.js +1 -1
  171. package/views/3d/webgl-engine/effects/bloom/BloomRenderNode.js +1 -1
  172. package/views/3d/webgl-engine/lib/Material.js +1 -1
  173. package/views/3d/webgl-engine/lib/PathBuilder.js +1 -1
  174. package/views/3d/webgl-engine/lib/Program.js +1 -1
  175. package/views/3d/webgl-engine/lib/Renderer.js +1 -1
  176. package/views/3d/webgl-engine/lib/Texture.js +1 -1
  177. package/views/3d/webgl-engine/lib/VertexAttribute.js +1 -1
  178. package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
  179. package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
  180. package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
  181. package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
  182. package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
  183. package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
  184. package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
  185. package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
  186. package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
  187. package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
  188. package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
  189. package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
  190. package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
  191. package/views/3d/webgl-engine/materials/PathTechniqueConfiguration.js +1 -1
  192. package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
  193. package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
  194. package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
  195. package/views/3d/webgl-engine/materials/SlicePlaneMaterial.js +1 -1
  196. package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
  197. package/views/3d/webgl-engine/materials/WaterTechniqueConfiguration.js +1 -1
  198. package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
  199. package/views/3d/webgl-engine/parts/RenderView.js +1 -1
  200. package/views/3d/webgl-engine/shaders/CheckerBoardTechniqueConfiguration.js +1 -1
  201. package/views/3d/webgl-engine/shaders/DefaultMaterialTechniqueConfiguration.js +1 -1
  202. package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
  203. package/views/3d/webgl-engine/shaders/HighlightDownsample.glsl.js +1 -1
  204. package/views/3d/webgl-engine/shaders/HighlightToSingle.glsl.js +1 -1
  205. package/views/3d/webgl-engine/shaders/ImageMaterialTechniqueConfiguration.js +1 -1
  206. package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
  207. package/views/3d/webgl-engine/shaders/LineMarkerTechniqueConfiguration.js +1 -1
  208. package/views/3d/webgl-engine/shaders/NativeLineTechniqueConfiguration.js +1 -1
  209. package/views/3d/webgl-engine/shaders/PatternTechniqueConfiguration.js +1 -1
  210. package/views/3d/webgl-engine/shaders/PointRendererTechniqueConfiguration.js +1 -1
  211. package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
  212. package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
  213. package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechniqueConfiguration.js +1 -1
  214. package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
  215. package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
  216. package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
  217. package/views/SceneView.js +1 -1
  218. package/views/VideoView.d.ts +4 -0
  219. package/views/VideoView.js +1 -1
  220. package/views/layers/support/MapServiceLayerViewHelper.js +1 -1
  221. package/views/layers/support/highlightUtils.js +5 -0
  222. package/views/support/TextureCompressionHandle.js +5 -0
  223. package/views/webgl/ShaderBuilder.js +1 -1
  224. package/views/webgl/Texture.js +1 -1
  225. package/views/webgl/TextureDescriptor.js +1 -1
  226. package/widgets/Editor/components/UpdateFeaturePanelContent.js +1 -1
  227. package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
  228. package/widgets/Features/FeaturesViewModel.js +1 -1
  229. package/assets/esri/core/workers/chunks/0e164b19e4ea3aa73843.js +0 -1
  230. package/assets/esri/core/workers/chunks/3fc18638f8799b85001d.js +0 -1
  231. package/assets/esri/core/workers/chunks/5f8028928ae8e5d27dda.js +0 -1
  232. package/assets/esri/core/workers/chunks/81bf362ec0d23ffdc90c.js +0 -39
  233. package/assets/esri/core/workers/chunks/a59ad50d932da1e28c8f.js +0 -1
  234. package/assets/esri/core/workers/chunks/ac6b582ca180210e596c.js +0 -1
  235. package/assets/esri/core/workers/chunks/accd0661a6dd297fab6b.js +0 -1
  236. package/assets/esri/core/workers/chunks/b5f44cf03c4e5cc07bc4.js +0 -1
  237. package/assets/esri/core/workers/chunks/b8416f2560710258c239.js +0 -1
  238. package/assets/esri/core/workers/chunks/bfbb118ae3b4a4ce1c74.js +0 -319
  239. package/assets/esri/core/workers/chunks/f454e773505c0eef2f9d.js +0 -1
  240. package/assets/esri/core/workers/chunks/fa7ddf3c89cdb8052b26.js +0 -1
  241. package/chunks/BloomDepthAdjust.glsl.js +0 -14
  242. package/views/2d/engine/vectorTiles/decluttering/jobs.js +0 -5
  243. package/views/2d/engine/webgl/collisions/CollisionEngine.js +0 -5
  244. package/views/2d/engine/webgl/collisions/CollisionGrid.js +0 -5
  245. package/views/3d/webgl-engine/core/shaderModules/TextureCubeBindUniform.js +0 -5
  246. package/views/3d/webgl-engine/core/shaderModules/UintTexture2DDrawUniform.js +0 -5
  247. package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjust.glsl.js +0 -5
  248. package/views/3d/webgl-engine/effects/bloom/BloomDepthAdjustTechnique.js +0 -5
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Accessor.js";import"../../../core/has.js";import{disposeMaybe as r,releaseMaybe as s}from"../../../core/maybe.js";import{watch as o,sync as i}from"../../../core/reactiveUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/Logger.js";import"../../../core/RandomLCG.js";import{subclass as n}from"../../../core/accessorSupport/decorators/subclass.js";import{set as c,copy as u}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{ZEROS as p}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fromValues as l}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isBaseLayer as m,isGroupLayer as d,isReferenceLayer as h}from"../../../layers/support/layerUtils.js";import{isLayerViewWithFlowRenderer as f}from"../support/flowUtils.js";import{BlendLayersPassParameters as _}from"./BlendLayersTechnique.js";import{TextureUpdate as T}from"./interfaces.js";import{LayerClass as y}from"./LayerClass.js";import{NeighborIndex as g}from"./NeighborIndex.js";import{isImageWithType as b}from"./TerrainData.js";import{isBlendableLayerView as x,isVectorTileLayerView as I,isVectorTileRenderInfo as w,isImageryTileRenderInfo as A,isImageSourceRenderInfo as j,isTextureTileRenderInfo as P,isVectorTilePerLayerInfo as C}from"./terrainUtils.js";import{ActivationTime as O}from"./TextureFader.js";import{TextureReference as k}from"./TextureReference.js";import{TileCompositor as E}from"./TileCompositor.js";import{TileRenderInfo as L}from"./TileRenderInfo.js";import R from"./TileTexture.js";import{TileUpdate as M}from"./TileUpdate.js";import{fallsWithinLayerView as D}from"./tileUtils.js";import{blendModeFromString as N}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{BlendLayersOutput as B}from"../webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js";import{createEmptyTexture as U}from"../webgl-engine/lib/glUtil3D.js";import{isCompressible as S}from"../webgl-engine/lib/TextureCompressionWorkerHandle.js";import{TextureSamplingMode as G,TextureWrapMode as v,PixelFormat as F}from"../../webgl/enums.js";import{Texture as H}from"../../webgl/Texture.js";import{TextureDescriptor as q}from"../../webgl/TextureDescriptor.js";class z{constructor(e,t,r,s,o,i){this.start=e,this.end=t,this.blendMode=r,this.opacity=s,this.output=o,this.baseOpacity=i}}let V=class extends t{constructor(e){super(e),this._passParameters=new _,this._backgroundTexture=null,this._backgroundColor=null,this._backgroundDirty=!1}initialize(){this._maxAnisotropy=this.rctx.parameters.maxMaxAnisotropy,this._compositor=new E(this.rctx,this.techniques),this._ensureBackgroundTexture(this.tileSize),this.texturesBeingCompressed=0}dispose(){this._compositor=r(this._compositor),this._backgroundTexture=s(this._backgroundTexture)}get backgroundIsGrid(){return null==this._backgroundColor}get backgroundColor(){return this._backgroundColor}updateHeading(e){this._compositor?.updateHeading(e)}updateTileTexture(e,t){if(!e.renderData)return;const r=e.surface,s=r.baseOpacity;let o=0,i=0,a=this.tileSize,n=!1,c=!1;const u=r.view.state.contentPixelRatio;let p=!1;Q.clear(),Y.length=0;const l=e.layerInfo[y.MAP];let _=0,g=null;for(;_<l.length;_++){const t=r.layerViewByIndex(_,y.MAP),T=t.layer,b=!D(e,t),w=T.opacity,A=t.fullOpacity;if(c=c||m(T),f(t))continue;if(x(t)){let e="normal"!==t.layer.blendMode;if(d(T.parent)){const t=T.parent.uid;null!=t&&""!==t&&(e=$(T.parent)||e)}e&&(p=e,n=!1)}if((b||0===w)&&!p){l[_].pendingUpdates&=~(M.TEXTURE_NOFADING&M.TEXTURE_FADING);continue}++i;const j=I(t),P=X(e,_,j);if(P){if(l[_].pendingUpdates&=~(M.TEXTURE_NOFADING&M.TEXTURE_FADING),d(T.parent)){const e=T.parent.uid;null!=e&&""!==e&&J(T.parent,_)}j?a=Math.max(a,this.tileSize*u):1===s&&1===A&&(t.isOpaque||this._dataToTexture(P,h(T))&&P.sourceLayerInfo.data.descriptor.isOpaque)&&(n=!0),++o,null===g&&(g=_)}}const b=a/this.tileSize,w=this._ensureBackgroundTexture(this.tileSize);0!==o&&null!==g?1===o&&!p&&this._useLayerTexture(e,g)||this._composeLayers(e,t,_-1,c,a,b,!n||p,Q,p):K(e,i,w,t!==T.FADING)}_ensureBackgroundTexture(e){return null==this._backgroundTexture&&(this._backgroundTexture=this._buildTexture(e,!1),this._backgroundDirty=!0),this._backgroundDirty&&(this._compositor.bind(e),this._passParameters.offset=p,this._passParameters.scale=1,this._passParameters.opacity=1,this.backgroundColor&&(this._passParameters.backgroundColor=this.backgroundColor),this._compositor.drawBackground(this._passParameters,null!=this.backgroundColor),this._compositor.copyFBOToTexture(this._backgroundTexture),this._compositor.unbind(),this._backgroundDirty=!1),this._backgroundTexture}_useLayerTexture(e,t){const r=e.surface.layerViewByIndex(t,y.MAP),s=m(r.layer),o=s?e.surface.baseOpacity:1,i=s?1:e.surface.baseOpacity,a=r.fullOpacity,n=X(e,t,!1);return!!this._dataToTexture(n,h(r.layer))&&(e.renderData.setTextureReference(new k(n.sourceLayerInfo.data,T.FADING,l(n.offset[0],n.offset[1],n.scale,n.scale),o,i,a)),!0)}_composeLayers(e,t,r,s,o,i,a,n,c){this._compositor.ensureBuffer(o);const u=e.surface.baseOpacity;let l=!1,d=G.LINEAR_MIPMAP_LINEAR,f=!1,_=0;for(let j=r;j>=0;j--){const t=e.surface.layerViewByIndex(j,y.MAP),r=t.layer,T=I(t),g=X(e,j,T),b=r.opacity,P=!D(e,t);if(!g||(0===b||P)&&!c)continue;const C=!m(r)&&!l;C&&(l=!0);let O=!1;n.forEach((e=>{e.start===j&&(e.output=s?B.Composite:a&&C?this.backgroundIsGrid?B.GridComposite:B.ColorComposite:B.Composite,e.baseOpacity=C?u:1,Y.push(e),this._compositor.openGroup(o),O=!0)}));const k=0===_,E=O?B.GroupBackgroundComposite:a&&k?this.backgroundIsGrid?B.GridComposite:B.ColorComposite:B.Composite,L=N[x(t)?t.layer.blendMode:"normal"];for(this._passParameters.baseOpacity=C&&!O&&u<1?u:1,this._passParameters.opacity=b,w(g)?f=this._compositor.drawVectorData(this._passParameters,E,o,L,g,i,this.tileSize,f):A(g)?(this._compositor.drawRasterData(this._passParameters,E,o,L,g),W(g)&&(d=G.NEAREST)):this._dataToTexture(g,h(r))&&(this._passParameters.texture=g.sourceLayerInfo.data.texture,this._passParameters.offset=g.offset,this._passParameters.scale=g.scale,this._compositor.drawImageData(this._passParameters,E,o,L));Y.length>0&&Y[Y.length-1].end===j;){const e=Y.pop();this._passParameters.baseOpacity=e.baseOpacity,this._passParameters.opacity=e.opacity,this._passParameters.offset=p,this._passParameters.scale=1,this._compositor.drawGroup(this._passParameters,e.output,o,N[e.blendMode])}_++}const T=e.renderData,g=c||l&&u<1,b=T.ensureTexture(o,g,t,(()=>this._buildTexture(o,g,d)));this._compositor.copyFBOToTexture(b),this._compositor.unbind(),T.setTextureReference(new k(b,t,ee,l?1:u,0,1))}_dataToTexture(e,t){if(j(e)){const r=e.sourceLayerInfo,s=1===e.scale&&!t;r.data=this._buildTexture(r.data,!0,s),e.tile.setMemoryDirty()}return P(e)}setBackground(e){this._backgroundColor!==e&&(this._backgroundColor=e,this._backgroundDirty=!0)}_buildTexture(e,t,r=G.LINEAR_MIPMAP_LINEAR){if(null==e)return null;const s=new q;s.wrapMode=v.CLAMP_TO_EDGE,s.samplingMode="boolean"==typeof r?G.LINEAR_MIPMAP_LINEAR:r,s.maxAnisotropy=this._maxAnisotropy,s.preMultiplyAlpha=!0,s.flipped=!0,s.hasMipmap=!0,t||(s.pixelFormat=F.RGB);const o=this.rctx,i="boolean"==typeof r&&r;let a;if("number"==typeof e)s.width=s.height=e,a=this._buildTileTexture(s,e);else if(b(e))s.isOpaque=e.isOpaque,s.isOpaque&&(s.pixelFormat=F.RGB),a=this._buildTileTexture(s,e.element.width,i,e.element);else try{s.width=e.width,s.height=e.height,a=this._buildTileTexture(s,e.width,i,e)}catch(c){a=new R(U(o)),console.warn("TileRenderer: failed to execute 'texImage2D', cross-origin image may not be loaded.")}const n=o.bindTexture(a.texture,H.TEXTURE_UNIT_FOR_UPDATES);return a.generateMipmap(),o.bindTexture(n,H.TEXTURE_UNIT_FOR_UPDATES),a}_buildTileTexture(e,t,r=!1,s){const a=`${t} ${e.pixelFormat}`,n=this.cache.pop(a)??this.cache.pop(a+"compressed");if(r&&=S(s),n)return n.retain(),r&&n.texture.enableCompression(!0),n.texture.setData(s),n;e.shouldCompress=r;const c=new H(this.rctx,e,s);return c.isCompressing&&(this.texturesBeingCompressed++,this.addHandles([o((()=>c.isCompressing),(e=>{e?this.texturesBeingCompressed++:this.texturesBeingCompressed--}),i)])),new R(c,this.cache)}get test(){}};function X(e,t,r){Z.layerIndex=t,Z.vtlNeighborInfos.clear();const s=e.layerInfo[y.MAP][t];if(c(Z.offset,0,0),Z.tile=e,Z.scale=1,Z.sourceLod=e.lij,Z.sourceLayerInfo=s,Z.isVTLBackground=r,s.data)return r&&e.forEachLoadedNeighbor(((r,o)=>{if(r.level!==e.level)return;const i=r.layerInfo[y.MAP][t];if(!C(i)||s.data===i.data)return;const a=Z.vtlNeighborInfos.pushNew();a.offset=te[o],a.sourceLod=r.lij,a.sourceLayerInfo=i})),Z;const o=s.upsampleInfo,i=o?.tile?.layerInfo[y.MAP][t];return i&&o.tile?(Z.tile=o.tile,u(Z.offset,o.offset),Z.scale=o.scale,Z.sourceLod=o.tile.lij,Z.sourceLayerInfo=i,Z):r?Z:null}function W(e){const t=e.sourceLayerInfo.data;return!!t.source&&"nearest"===t.interpolation}function $(e){let t="normal"!==e.blendMode;return d(e.parent)&&(t=$(e.parent)||t),t}function J(e,t){d(e.parent)&&J(e.parent,t);const r=e.uid;if(null!=r&&""!==r){const s=Q.get(r);s?s.start=t:Q.set(r,new z(t,t,e.blendMode,e.opacity,B.Composite,1))}}function K(e,t,r,s){const o=e.renderData,i=!s&&null!=o.textureReference&&(e.surface.view.layerViewManager.updating||t>0)?O.Delayed:O.Immediate;o.setTextureReference(new k(r,T.FADING,ee,e.surface.baseOpacity,0,1),i)}e([a({constructOnly:!0})],V.prototype,"rctx",void 0),e([a({constructOnly:!0})],V.prototype,"techniques",void 0),e([a({constructOnly:!0})],V.prototype,"cache",void 0),e([a()],V.prototype,"tileSize",void 0),e([a()],V.prototype,"texturesBeingCompressed",void 0),V=e([n("esri.views.3d.terrain.TileRenderer")],V);const Q=new Map,Y=new Array,Z=new L,ee=l(0,0,1,1),te=new Array;te[g.NORTH]=[0,-1],te[g.NORTH_EAST]=[-1,-1],te[g.EAST]=[-1,0],te[g.SOUTH_EAST]=[-1,1],te[g.SOUTH]=[0,1],te[g.SOUTH_WEST]=[1,1],te[g.WEST]=[1,0],te[g.NORTH_WEST]=[1,-1];export{z as GroupInfo,V as TileRenderer};
5
+ import"../../../core/has.js";import{disposeMaybe as e,releaseMaybe as t}from"../../../core/maybe.js";import{set as r,copy as s}from"../../../core/libs/gl-matrix-2/math/vec2.js";import{ZEROS as o}from"../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{fromValues as i}from"../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{isBaseLayer as a,isGroupLayer as n,isReferenceLayer as c}from"../../../layers/support/layerUtils.js";import{isLayerViewWithFlowRenderer as u}from"../support/flowUtils.js";import{BlendLayersPassParameters as l}from"./BlendLayersTechnique.js";import{TextureUpdate as p}from"./interfaces.js";import{LayerClass as d}from"./LayerClass.js";import{NeighborIndex as m}from"./NeighborIndex.js";import{isImageWithType as h}from"./TerrainData.js";import{isBlendableLayerView as f,isVectorTileLayerView as _,isVectorTileRenderInfo as T,isImageryTileRenderInfo as y,isImageSourceRenderInfo as b,isTextureTileRenderInfo as g,isVectorTilePerLayerInfo as x}from"./terrainUtils.js";import{ActivationTime as I}from"./TextureFader.js";import{TextureReference as w}from"./TextureReference.js";import{TileCompositor as A}from"./TileCompositor.js";import{TileRenderInfo as P}from"./TileRenderInfo.js";import k from"./TileTexture.js";import{TileUpdate as E}from"./TileUpdate.js";import{fallsWithinLayerView as O}from"./tileUtils.js";import{blendModeFromString as j}from"../webgl-engine/core/shaderLibrary/output/BlendOptions.js";import{BlendLayersOutput as M}from"../webgl-engine/core/shaderLibrary/terrain/BlendLayersOutput.js";import{createEmptyTexture as D}from"../webgl-engine/lib/glUtil3D.js";import{isCompressible as L}from"../webgl-engine/lib/TextureCompressionWorkerHandle.js";import{TextureSamplingMode as R,TextureWrapMode as C,PixelFormat as N}from"../../webgl/enums.js";import{Texture as U}from"../../webgl/Texture.js";import{TextureDescriptor as S}from"../../webgl/TextureDescriptor.js";class B{constructor(e,t,r,s,o,i){this.start=e,this.end=t,this.blendMode=r,this.opacity=s,this.output=o,this.baseOpacity=i}}class G{constructor(e,t,r,s,o){this._rctx=e,this.tileSize=t,this._techniques=r,this._cache=s,this._compressionHandle=o,this._passParameters=new l,this._backgroundTexture=null,this._backgroundColor=null,this._backgroundDirty=!1,this._maxAnisotropy=this._rctx.parameters.maxMaxAnisotropy,this._compositor=new A(this._rctx,this._techniques),this._ensureBackgroundTexture(this.tileSize)}dispose(){this._compositor=e(this._compositor),this._backgroundTexture=t(this._backgroundTexture)}get backgroundIsGrid(){return null==this._backgroundColor}get backgroundColor(){return this._backgroundColor}updateHeading(e){this._compositor?.updateHeading(e)}updateTileTexture(e,t){if(!e.renderData)return;const r=e.surface,s=r.baseOpacity;let o=0,i=0,l=this.tileSize,m=!1,h=!1;const T=r.view.state.contentPixelRatio;let y=!1;V.clear(),X.length=0;const b=e.layerInfo[d.MAP];let g=0,x=null;for(;g<b.length;g++){const t=r.layerViewByIndex(g,d.MAP),p=t.layer,I=!O(e,t),w=p.opacity,A=t.fullOpacity;if(h=h||a(p),u(t))continue;if(f(t)){let e="normal"!==t.layer.blendMode;if(n(p.parent)){const t=p.parent.uid;null!=t&&""!==t&&(e=v(p.parent)||e)}e&&(y=e,m=!1)}if((I||0===w)&&!y){b[g].pendingUpdates&=~(E.TEXTURE_NOFADING&E.TEXTURE_FADING);continue}++i;const P=_(t),k=F(e,g,P);if(k){if(b[g].pendingUpdates&=~(E.TEXTURE_NOFADING&E.TEXTURE_FADING),n(p.parent)){const e=p.parent.uid;null!=e&&""!==e&&q(p.parent,g)}P?l=Math.max(l,this.tileSize*T):1===s&&1===A&&(t.isOpaque||this._dataToTexture(k,c(p))&&k.sourceLayerInfo.data.descriptor.isOpaque)&&(m=!0),++o,null===x&&(x=g)}}const I=l/this.tileSize,w=this._ensureBackgroundTexture(this.tileSize);0!==o&&null!==x?1===o&&!y&&this._useLayerTexture(e,x)||this._composeLayers(e,t,g-1,h,l,I,!m||y,V,y):z(e,i,w,t!==p.FADING)}_ensureBackgroundTexture(e){return null==this._backgroundTexture&&(this._backgroundTexture=this._buildTexture(e,!1),this._backgroundDirty=!0),this._backgroundDirty&&(this._compositor.bind(e),this._passParameters.offset=o,this._passParameters.scale=1,this._passParameters.opacity=1,this.backgroundColor&&(this._passParameters.backgroundColor=this.backgroundColor),this._compositor.drawBackground(this._passParameters,null!=this.backgroundColor),this._compositor.copyFBOToTexture(this._backgroundTexture),this._compositor.unbind(),this._backgroundDirty=!1),this._backgroundTexture}_useLayerTexture(e,t){const r=e.surface.layerViewByIndex(t,d.MAP),s=a(r.layer),o=s?e.surface.baseOpacity:1,n=s?1:e.surface.baseOpacity,u=r.fullOpacity,l=F(e,t,!1);return!!this._dataToTexture(l,c(r.layer))&&(e.renderData.setTextureReference(new w(l.sourceLayerInfo.data,p.FADING,i(l.offset[0],l.offset[1],l.scale,l.scale),o,n,u)),!0)}_composeLayers(e,t,r,s,i,n,u,l,p){this._compositor.ensureBuffer(i);const m=e.surface.baseOpacity;let h=!1,b=R.LINEAR_MIPMAP_LINEAR,g=!1,x=0;for(let w=r;w>=0;w--){const t=e.surface.layerViewByIndex(w,d.MAP),r=t.layer,I=_(t),A=F(e,w,I),P=r.opacity,k=!O(e,t);if(!A||(0===P||k)&&!p)continue;const E=!a(r)&&!h;E&&(h=!0);let D=!1;l.forEach((e=>{e.start===w&&(e.output=s?M.Composite:u&&E?this.backgroundIsGrid?M.GridComposite:M.ColorComposite:M.Composite,e.baseOpacity=E?m:1,X.push(e),this._compositor.openGroup(i),D=!0)}));const L=0===x,C=D?M.GroupBackgroundComposite:u&&L?this.backgroundIsGrid?M.GridComposite:M.ColorComposite:M.Composite,N=j[f(t)?t.layer.blendMode:"normal"];for(this._passParameters.baseOpacity=E&&!D&&m<1?m:1,this._passParameters.opacity=P,T(A)?g=this._compositor.drawVectorData(this._passParameters,C,i,N,A,n,this.tileSize,g):y(A)?(this._compositor.drawRasterData(this._passParameters,C,i,N,A),H(A)&&(b=R.NEAREST)):this._dataToTexture(A,c(r))&&(this._passParameters.texture=A.sourceLayerInfo.data.texture,this._passParameters.offset=A.offset,this._passParameters.scale=A.scale,this._compositor.drawImageData(this._passParameters,C,i,N));X.length>0&&X[X.length-1].end===w;){const e=X.pop();this._passParameters.baseOpacity=e.baseOpacity,this._passParameters.opacity=e.opacity,this._passParameters.offset=o,this._passParameters.scale=1,this._compositor.drawGroup(this._passParameters,e.output,i,j[e.blendMode])}x++}const I=e.renderData,A=p||h&&m<1,P=I.ensureTexture(i,A,t,(()=>this._buildTexture(i,A,b)));this._compositor.copyFBOToTexture(P),this._compositor.unbind(),I.setTextureReference(new w(P,t,$,h?1:m,0,1))}_dataToTexture(e,t){if(b(e)){const r=e.sourceLayerInfo,s=1===e.scale&&!t;r.data=this._buildTexture(r.data,!0,s),e.tile.setMemoryDirty()}return g(e)}setBackground(e){this._backgroundColor!==e&&(this._backgroundColor=e,this._backgroundDirty=!0)}_buildTexture(e,t,r=R.LINEAR_MIPMAP_LINEAR){if(null==e)return null;const s=new S;s.wrapMode=C.CLAMP_TO_EDGE,s.samplingMode="boolean"==typeof r?R.LINEAR_MIPMAP_LINEAR:r,s.maxAnisotropy=this._maxAnisotropy,s.preMultiplyAlpha=!0,s.flipped=!0,s.hasMipmap=!0,t||(s.pixelFormat=N.RGB);const o=this._rctx,i="boolean"==typeof r&&r;let a;if("number"==typeof e)s.width=s.height=e,a=this._buildTileTexture(s,e);else if(h(e))s.isOpaque=e.isOpaque,s.isOpaque&&(s.pixelFormat=N.RGB),a=this._buildTileTexture(s,e.element.width,i,e.element);else try{s.width=e.width,s.height=e.height,a=this._buildTileTexture(s,e.width,i,e)}catch(c){a=new k(D(o)),console.warn("TileRenderer: failed to execute 'texImage2D', cross-origin image may not be loaded.")}const n=o.bindTexture(a.texture,U.TEXTURE_UNIT_FOR_UPDATES);return a.generateMipmap(),o.bindTexture(n,U.TEXTURE_UNIT_FOR_UPDATES),a}_buildTileTexture(e,t,r=!1,s){const o=`${t} ${e.pixelFormat}`,i=this._cache.pop(o)??this._cache.pop(o+"compressed");if(r&&=L(s),i)return i.retain(),r?i.texture.enableCompression(this._compressionHandle):i.texture.disableCompression(),i.texture.setData(s),i;e.compressionHandle=r?this._compressionHandle:null;const a=new U(this._rctx,e,s);return new k(a,this._cache)}get test(){}}function F(e,t,o){W.layerIndex=t,W.vtlNeighborInfos.clear();const i=e.layerInfo[d.MAP][t];if(r(W.offset,0,0),W.tile=e,W.scale=1,W.sourceLod=e.lij,W.sourceLayerInfo=i,W.isVTLBackground=o,i.data)return o&&e.forEachLoadedNeighbor(((r,s)=>{if(r.level!==e.level)return;const o=r.layerInfo[d.MAP][t];if(!x(o)||i.data===o.data)return;const a=W.vtlNeighborInfos.pushNew();a.offset=J[s],a.sourceLod=r.lij,a.sourceLayerInfo=o})),W;const a=i.upsampleInfo,n=a?.tile?.layerInfo[d.MAP][t];return n&&a.tile?(W.tile=a.tile,s(W.offset,a.offset),W.scale=a.scale,W.sourceLod=a.tile.lij,W.sourceLayerInfo=n,W):o?W:null}function H(e){const t=e.sourceLayerInfo.data;return!!t.source&&"nearest"===t.interpolation}function v(e){let t="normal"!==e.blendMode;return n(e.parent)&&(t=v(e.parent)||t),t}function q(e,t){n(e.parent)&&q(e.parent,t);const r=e.uid;if(null!=r&&""!==r){const s=V.get(r);s?s.start=t:V.set(r,new B(t,t,e.blendMode,e.opacity,M.Composite,1))}}function z(e,t,r,s){const o=e.renderData,i=!s&&null!=o.textureReference&&(e.surface.view.layerViewManager.updating||t>0)?I.Delayed:I.Immediate;o.setTextureReference(new w(r,p.FADING,$,e.surface.baseOpacity,0,1),i)}const V=new Map,X=new Array,W=new P,$=i(0,0,1,1),J=new Array;J[m.NORTH]=[0,-1],J[m.NORTH_EAST]=[-1,-1],J[m.EAST]=[-1,0],J[m.SOUTH_EAST]=[-1,1],J[m.SOUTH]=[0,1],J[m.SOUTH_WEST]=[1,1],J[m.WEST]=[1,0],J[m.NORTH_WEST]=[1,-1];export{B as GroupInfo,G as TileRenderer};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as e}from"../../../../../../chunks/tslib.es6.js";import{invert as t,transpose as r}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{clone as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{p as s,J as a}from"../../../../../../chunks/vec32.js";import{freeze as i,ZEROS as l}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{v as n}from"../../../../../../chunks/vec42.js";import{freeze as h,fromValues as u}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ColorMixModeEnum as p}from"../../../../layers/support/symbolColorUtils.js";import{OverlayContent as d}from"../../../../terrain/OverlayContent.js";import{ComponentTechnique as c}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as m,IntegratedMeshMode as g}from"./ComponentTechniqueConfiguration.js";import{ComponentDataType as f}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as x}from"./shader/VertexDiscardMode.js";import{MaterialBase as v,parameter as b,parameterBlock as M,MaterialParameterBlock as y}from"../../../core/material/MaterialBase.js";import{RenderPassIdentifier as T}from"../../../core/renderPasses/RenderPassIdentifier.js";import{ShaderOutput as w}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as O}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{EmissionSource as C}from"../../../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as S}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as N}from"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{EllipsoidMode as P}from"../../../core/shaderLibrary/util/EllipsoidMode.js";import{TwoVectorPosition as j}from"../../../core/util/TwoVectorPosition.js";import{AlphaDiscardMode as D,CullFaceOptions as A}from"../../../lib/basicInterfaces.js";import{OITPass as q}from"../../../lib/OITPass.js";import{advancedMRRFactors as R}from"../../../materials/pbrUtils.js";import{defaultHighlightName as F}from"../../../../../support/HighlightDefaults.js";import{alphaCutoff as I}from"../../../../../../webscene/support/AlphaCutoff.js";class E extends v{constructor(e,s){super(),this.toMapSpace=s,this.baseColor=h(1,1,1,1),this.usePBR=!1,this.hasParametersFromSource=!1,this.mrrFactors=R,this.emissiveFactor=i(0,0,0),this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null,this.commonMaterialParameters=new L,this.componentParameters=new V,this.objectOpacity=1,this.textureAlphaCutoff=I,this.alphaDiscardMode=D.Opaque,this.isIntegratedMesh=!1,this.polygonOffsetEnabled=!1,this.ellipsoidMode=P.Earth,this.hasOccludees=!1;const a=new j(e.position),l=o(e.rotationScale);t(l,l),r(l,l),this.transformNormalGlobalFromModel=l,this.transformWorldFromModelTL=a.low,this.transformWorldFromModelTH=a.high,this.transformWorldFromModelRS=e.rotationScale}dispose(){this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null}get texture(){return this.baseColorTexture?.glTexture}get textureMetallicRoughness(){return this.metallicRoughnessTexture?.glTexture}get textureEmissive(){return this.emissionTexture?.glTexture}get hasEmissions(){return null!=this.emissionTexture||!s(this.emissiveFactor,l)}get textureOcclusion(){return this.occlusionTexture?.glTexture}get textureNormal(){return this.normalTexture?.glTexture}acquireTechnique(e,t,r,o){const s=new m(e.context.spherical);s.hasVertexColors=o.colors,s.hasNormals=o.hasNormals,s.textureCoordinateType=o.textureCoordinates,s.hasMetallicRoughnessTexture=null!=this.metallicRoughnessTexture,s.hasOcclusionTexture=null!=this.occlusionTexture,s.hasNormalTexture=null!=this.normalTexture,s.oitPass=t.identifier===T.Material&&null!=r.oitPass?r.oitPass:q.NONE,s.terrainDepthTest=t.identifier===T.Material&&r.terrainDepthTest,s.cullAboveTerrain=t.identifier===T.Material&&r.cullAboveTerrain,s.ellipsoidMode=this.ellipsoidMode,s.componentData=this.componentParameters.type,s.cullFace=this.commonMaterialParameters.cullFace,s.doubleSidedMode=this.commonMaterialParameters.doubleSided?S.View:S.None,s.hasColorTexture=null!=this.baseColorTexture;const a=this._computeWhichMaterialPass();if(s.blendingEnabled=a===W.Transparent||a===W.OpaqueAndTransparent,s.alphaDiscardMode=this.alphaDiscardMode,s.integratedMeshMode=this.isIntegratedMesh?U(r)?_(r)?g.ColorOverlayWithWater:g.ColorOverlay:g.NoOverlay:g.None,s.hasPolygonOffset=this.polygonOffsetEnabled,s.pbrMode=s.integratedMeshMode===g.ColorOverlayWithWater?N.WaterOnIntegratedMesh:this.usePBR?this.hasParametersFromSource?o.shadeNormals&&this.isIntegratedMesh?N.Disabled:N.Schematic:N.Normal:N.Disabled,s.emissionSource=null!=this.emissionTexture?C.Texture:s.pbrMode===N.Normal?C.Value:C.None,s.shadeNormals=o.shadeNormals,s.normalType=s.hasNormals?O.Compressed:O.ScreenDerivative,s.hasSlicePlane=null!=r.slicePlane&&this.commonMaterialParameters.hasSlicePlane,t.identifier===T.ShadowMap)s.output=w.Shadow,s.vertexDiscardMode=x.None;else if(t.identifier===T.ViewshedShadowMap)s.output=w.ViewshedShadow,s.vertexDiscardMode=x.None;else if(t.identifier===T.Highlight)s.output=w.Highlight,s.vertexDiscardMode=x.None;else{switch(a===W.OpaqueAndTransparent?s.vertexDiscardMode=t.transparent?x.Opaque:x.Transparent:s.vertexDiscardMode=x.None,s.output=t.output,s.receiveAmbientOcclusion=s.receiveShadows=!1,t.output){case w.Color:case w.ColorEmission:s.receiveAmbientOcclusion=o.applySSAO&&null!=r.ssao,s.hasOccludees=r.hasOccludees,s.receiveShadows=r.shadowMap.ready,s.screenSpaceReflections=null!=r.ssr.lastFrameColor,s.cloudReflections=null!=r.clouds.data;break;case w.ObjectAndLayerIdColor:s.objectAndLayerIdColor=!0}s.snowCover=this.hasSnowCover(r)}const i=e.get(c,s);return this._setClean(),i}hasSnowCover(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}submit(e,t,r){if(this.objectOpacity<=0)return;const{componentData:o,renderable:s}=r,{geometry:a}=s,i=s.meta.cameraDepthSquared;o.updateHighlights(t.highlights);const{geometryRanges:l,highlightRangesMap:n,shadowmapRanges:h}=o;switch(this._computeWhichMaterialPass()){case W.Opaque:e.opaque.submitDraw(this,a,l,i);break;case W.Transparent:e.transparent.submitDraw(this,a,l,i);break;case W.OpaqueAndTransparent:e.opaque.submitDraw(this,a,l,i),e.transparent.submitDraw(this,a,l,i);break;case W.IntegratedMesh:e.integratedMesh.submitDraw(this,a,l,i),H(t)&&e.highlightIntegratedMesh.submitDraw(this,a,l,i)}if(this.componentParameters.castShadows!==k.None){if(null!=n)for(const t of n)t[0]===F&&e.highlightShadowMap.submitDraw(this,a,t[1],i,t[0]);null!=h&&e.defaultShadowMap.submitDraw(this,a,h,i),e.shadowMap.submitDraw(this,a,l,i)}if(null!=n)for(const u of n)e.highlight.submitDraw(this,a,u[1],i,u[0]);t.viewshedEnabled&&e.viewshedShadowMap.submitDraw(this,a,l,i)}_computeWhichMaterialPass(){if(this.isIntegratedMesh)return W.IntegratedMesh;if(this.objectOpacity<1)return W.Transparent;if(this.componentParameters.opaqueOverride===k.All)return W.Opaque;if(this.baseColor[3]<1||this.alphaDiscardMode===D.Blend||this.alphaDiscardMode===D.MaskBlend)return W.Transparent;switch(this.componentParameters.transparent){case k.None:return W.Opaque;case k.All:return W.Transparent;case k.Some:return W.OpaqueAndTransparent}}}var W,k;e([b({vectorOps:n})],E.prototype,"baseColor",void 0),e([b()],E.prototype,"usePBR",void 0),e([b()],E.prototype,"hasParametersFromSource",void 0),e([b({vectorOps:a})],E.prototype,"mrrFactors",void 0),e([b({vectorOps:a})],E.prototype,"emissiveFactor",void 0),e([b({dispose:!0})],E.prototype,"baseColorTexture",void 0),e([b({dispose:!0})],E.prototype,"metallicRoughnessTexture",void 0),e([b({dispose:!0})],E.prototype,"emissionTexture",void 0),e([b({dispose:!0})],E.prototype,"occlusionTexture",void 0),e([b({dispose:!0})],E.prototype,"normalTexture",void 0),e([M()],E.prototype,"commonMaterialParameters",void 0),e([M()],E.prototype,"componentParameters",void 0),e([b()],E.prototype,"objectOpacity",void 0),e([b()],E.prototype,"textureAlphaCutoff",void 0),e([b()],E.prototype,"alphaDiscardMode",void 0),e([b()],E.prototype,"isIntegratedMesh",void 0),e([b()],E.prototype,"polygonOffsetEnabled",void 0),e([b()],E.prototype,"ellipsoidMode",void 0),e([b()],E.prototype,"hasOccludees",void 0),function(e){e[e.Opaque=0]="Opaque",e[e.Transparent=1]="Transparent",e[e.OpaqueAndTransparent=2]="OpaqueAndTransparent",e[e.IntegratedMesh=3]="IntegratedMesh"}(W||(W={}));class L extends y{constructor(){super(...arguments),this.doubleSided=!1,this.cullFace=A.Back,this.hasSlicePlane=!0}}e([b()],L.prototype,"doubleSided",void 0),e([b()],L.prototype,"cullFace",void 0),e([b()],L.prototype,"hasSlicePlane",void 0);class V extends y{constructor(){super(...arguments),this.externalColor=u(1,1,1,1),this.externalColorMixMode=p.Multiply,this.castShadows=k.All}get transparent(){return this.externalColor[3]<1?k.All:k.None}get opaqueOverride(){return this.externalColorMixMode===p.Replace&&1===this.externalColor[3]?k.All:k.None}get visible(){return this.externalColor[3]>0?k.All:k.None}get type(){return f.Uniform}}e([b({vectorOps:n})],V.prototype,"externalColor",void 0),e([b()],V.prototype,"externalColorMixMode",void 0),e([b()],V.prototype,"castShadows",void 0),function(e){e[e.All=0]="All",e[e.Some=1]="Some",e[e.None=2]="None"}(k||(k={}));class B extends y{constructor(){super(...arguments),this.texture=null,this.transparent=k.None,this.opaqueOverride=k.None,this.castShadows=k.None}get type(){return f.Varying}}function H(e){return null!=e.overlay?.getTexture(d.Highlight)}function _(e){return null!=e.overlay?.getTexture(d.WaterNormal)}function U(e){return null!=e.overlay?.getTexture(d.ColorNoRasterImage)}e([b()],B.prototype,"texture",void 0),e([b()],B.prototype,"transparent",void 0),e([b()],B.prototype,"opaqueOverride",void 0),e([b()],B.prototype,"castShadows",void 0);export{L as CommonMaterialParameters,E as ComponentMaterial,k as ComponentParameterSummary,V as ComponentParametersUniform,B as ComponentParametersVarying};
5
+ import{_ as e}from"../../../../../../chunks/tslib.es6.js";import{invert as t,transpose as r}from"../../../../../../core/libs/gl-matrix-2/math/mat3.js";import{clone as o}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{p as s,J as a}from"../../../../../../chunks/vec32.js";import{freeze as i,ZEROS as l}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{v as n}from"../../../../../../chunks/vec42.js";import{freeze as h,fromValues as u}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{ColorMixModeEnum as p}from"../../../../layers/support/symbolColorUtils.js";import{OverlayContent as c}from"../../../../terrain/OverlayContent.js";import{ComponentTechnique as d}from"./ComponentTechnique.js";import{ComponentTechniqueConfiguration as m,IntegratedMeshMode as g}from"./ComponentTechniqueConfiguration.js";import{ComponentDataType as f}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as x}from"./shader/VertexDiscardMode.js";import{MaterialBase as v,parameter as M,parameterBlock as b,MaterialParameterBlock as T}from"../../../core/material/MaterialBase.js";import{RenderPassIdentifier as y}from"../../../core/renderPasses/RenderPassIdentifier.js";import{ShaderOutput as w}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as O}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{EmissionSource as C}from"../../../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as S}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as N}from"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{EllipsoidMode as P}from"../../../core/shaderLibrary/util/EllipsoidMode.js";import{TwoVectorPosition as j}from"../../../core/util/TwoVectorPosition.js";import{AlphaDiscardMode as D,CullFaceOptions as A}from"../../../lib/basicInterfaces.js";import{OITPass as q}from"../../../lib/OITPass.js";import{advancedMRRFactors as R}from"../../../materials/pbrUtils.js";import{defaultHighlightName as F}from"../../../../../support/HighlightDefaults.js";import{alphaCutoff as I}from"../../../../../../webscene/support/AlphaCutoff.js";class E extends v{constructor(e,s){super(),this.toMapSpace=s,this.baseColor=h(1,1,1,1),this.usePBR=!1,this.hasParametersFromSource=!1,this.mrrFactors=R,this.emissiveFactor=i(0,0,0),this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null,this.commonMaterialParameters=new L,this.componentParameters=new V,this.objectOpacity=1,this.textureAlphaCutoff=I,this.alphaDiscardMode=D.Opaque,this.isIntegratedMesh=!1,this.polygonOffsetEnabled=!1,this.ellipsoidMode=P.Earth,this.hasOccludees=!1;const a=new j(e.position),l=o(e.rotationScale);t(l,l),r(l,l),this.transformNormalGlobalFromModel=l,this.transformWorldFromModelTL=a.low,this.transformWorldFromModelTH=a.high,this.transformWorldFromModelRS=e.rotationScale}dispose(){this.baseColorTexture=null,this.metallicRoughnessTexture=null,this.emissionTexture=null,this.occlusionTexture=null,this.normalTexture=null}get texture(){return this.baseColorTexture?.glTexture}get textureMetallicRoughness(){return this.metallicRoughnessTexture?.glTexture}get textureEmissive(){return this.emissionTexture?.glTexture}get hasEmissions(){return null!=this.emissionTexture||!s(this.emissiveFactor,l)}get textureOcclusion(){return this.occlusionTexture?.glTexture}get textureNormal(){return this.normalTexture?.glTexture}acquireTechnique(e,t,r,o){const s=new m(e.context.spherical);s.hasVertexColors=o.colors,s.hasNormals=o.hasNormals,s.textureCoordinateType=o.textureCoordinates,s.hasMetallicRoughnessTexture=null!=this.metallicRoughnessTexture,s.hasOcclusionTexture=null!=this.occlusionTexture,s.hasNormalTexture=null!=this.normalTexture,s.oitPass=t.identifier===y.Material&&null!=r.oitPass?r.oitPass:q.NONE,s.terrainDepthTest=t.identifier===y.Material&&r.terrainDepthTest,s.cullAboveTerrain=t.identifier===y.Material&&r.cullAboveTerrain,s.ellipsoidMode=this.ellipsoidMode,s.componentData=this.componentParameters.type,s.cullFace=this.commonMaterialParameters.cullFace,s.doubleSidedMode=this.commonMaterialParameters.doubleSided?S.View:S.None,s.hasColorTexture=null!=this.baseColorTexture;const a=this._computeWhichMaterialPass();if(s.blendingEnabled=a===W.Transparent||a===W.OpaqueAndTransparent,s.alphaDiscardMode=this.alphaDiscardMode,s.integratedMeshMode=this.isIntegratedMesh?U(r)?_(r)?g.ColorOverlayWithWater:g.ColorOverlay:g.NoOverlay:g.None,s.hasPolygonOffset=this.polygonOffsetEnabled,s.pbrMode=s.integratedMeshMode===g.ColorOverlayWithWater?N.WaterOnIntegratedMesh:this.usePBR?this.hasParametersFromSource?o.shadeNormals&&this.isIntegratedMesh?N.Disabled:N.Schematic:N.Normal:N.Disabled,s.emissionSource=null!=this.emissionTexture?C.Texture:s.pbrMode===N.Normal?C.Value:C.None,s.shadeNormals=o.shadeNormals,s.normalType=s.hasNormals?O.Compressed:O.ScreenDerivative,s.hasSlicePlane=null!=r.slicePlane&&this.commonMaterialParameters.hasSlicePlane,s.receiveAmbientOcclusion=s.hasOccludees=s.receiveShadows=s.screenSpaceReflections=s.cloudReflections=s.hasHighlightMixTexture=!1,t.identifier===y.ShadowMap)s.output=w.Shadow,s.vertexDiscardMode=x.None;else if(t.identifier===y.ViewshedShadowMap)s.output=w.ViewshedShadow,s.vertexDiscardMode=x.None;else if(t.identifier===y.Highlight)s.output=w.Highlight,s.vertexDiscardMode=x.None,s.hasHighlightMixTexture=null!=r.highlightMixTexture;else{switch(a===W.OpaqueAndTransparent?s.vertexDiscardMode=t.transparent?x.Opaque:x.Transparent:s.vertexDiscardMode=x.None,s.output=t.output,t.output){case w.Color:case w.ColorEmission:s.receiveAmbientOcclusion=o.applySSAO&&null!=r.ssao?.getTexture(),s.hasOccludees=r.hasOccludees,s.receiveShadows=r.shadowMap.ready,s.screenSpaceReflections=null!=r.ssr.lastFrameColor,s.cloudReflections=null!=r.clouds.data?.cubeMap?.colorTexture;break;case w.ObjectAndLayerIdColor:s.objectAndLayerIdColor=!0}s.snowCover=this.hasSnowCover(r)}const i=e.get(d,s);return this._setClean(),i}hasSnowCover(e){return null!=e.weather&&e.weatherVisible&&"snowy"===e.weather.type&&"enabled"===e.weather.snowCover}submit(e,t,r){if(this.objectOpacity<=0)return;const{componentData:o,renderable:s}=r,{geometry:a}=s,i=s.meta.cameraDepthSquared;o.updateHighlights(t.highlights);const{geometryRanges:l,highlightRangesMap:n,shadowmapRanges:h}=o;switch(this._computeWhichMaterialPass()){case W.Opaque:e.opaque.submitDraw(this,a,l,i);break;case W.Transparent:e.transparent.submitDraw(this,a,l,i);break;case W.OpaqueAndTransparent:e.opaque.submitDraw(this,a,l,i),e.transparent.submitDraw(this,a,l,i);break;case W.IntegratedMesh:e.integratedMesh.submitDraw(this,a,l,i),H(t)&&e.highlightIntegratedMesh.submitDraw(this,a,l,i)}if(this.componentParameters.castShadows!==k.None){if(null!=n)for(const t of n)t[0]===F&&e.highlightShadowMap.submitDraw(this,a,t[1],i,t[0]);null!=h&&e.defaultShadowMap.submitDraw(this,a,h,i),e.shadowMap.submitDraw(this,a,l,i)}if(null!=n)for(const u of n)e.highlight.submitDraw(this,a,u[1],i,u[0]);t.viewshedEnabled&&e.viewshedShadowMap.submitDraw(this,a,l,i)}_computeWhichMaterialPass(){if(this.isIntegratedMesh)return W.IntegratedMesh;if(this.objectOpacity<1)return W.Transparent;if(this.componentParameters.opaqueOverride===k.All)return W.Opaque;if(this.baseColor[3]<1||this.alphaDiscardMode===D.Blend||this.alphaDiscardMode===D.MaskBlend)return W.Transparent;switch(this.componentParameters.transparent){case k.None:return W.Opaque;case k.All:return W.Transparent;case k.Some:return W.OpaqueAndTransparent}}}var W,k;e([M({vectorOps:n})],E.prototype,"baseColor",void 0),e([M()],E.prototype,"usePBR",void 0),e([M()],E.prototype,"hasParametersFromSource",void 0),e([M({vectorOps:a})],E.prototype,"mrrFactors",void 0),e([M({vectorOps:a})],E.prototype,"emissiveFactor",void 0),e([M({dispose:!0})],E.prototype,"baseColorTexture",void 0),e([M({dispose:!0})],E.prototype,"metallicRoughnessTexture",void 0),e([M({dispose:!0})],E.prototype,"emissionTexture",void 0),e([M({dispose:!0})],E.prototype,"occlusionTexture",void 0),e([M({dispose:!0})],E.prototype,"normalTexture",void 0),e([b()],E.prototype,"commonMaterialParameters",void 0),e([b()],E.prototype,"componentParameters",void 0),e([M()],E.prototype,"objectOpacity",void 0),e([M()],E.prototype,"textureAlphaCutoff",void 0),e([M()],E.prototype,"alphaDiscardMode",void 0),e([M()],E.prototype,"isIntegratedMesh",void 0),e([M()],E.prototype,"polygonOffsetEnabled",void 0),e([M()],E.prototype,"ellipsoidMode",void 0),e([M()],E.prototype,"hasOccludees",void 0),function(e){e[e.Opaque=0]="Opaque",e[e.Transparent=1]="Transparent",e[e.OpaqueAndTransparent=2]="OpaqueAndTransparent",e[e.IntegratedMesh=3]="IntegratedMesh"}(W||(W={}));class L extends T{constructor(){super(...arguments),this.doubleSided=!1,this.cullFace=A.Back,this.hasSlicePlane=!0}}e([M()],L.prototype,"doubleSided",void 0),e([M()],L.prototype,"cullFace",void 0),e([M()],L.prototype,"hasSlicePlane",void 0);class V extends T{constructor(){super(...arguments),this.externalColor=u(1,1,1,1),this.externalColorMixMode=p.Multiply,this.castShadows=k.All}get transparent(){return this.externalColor[3]<1?k.All:k.None}get opaqueOverride(){return this.externalColorMixMode===p.Replace&&1===this.externalColor[3]?k.All:k.None}get visible(){return this.externalColor[3]>0?k.All:k.None}get type(){return f.Uniform}}e([M({vectorOps:n})],V.prototype,"externalColor",void 0),e([M()],V.prototype,"externalColorMixMode",void 0),e([M()],V.prototype,"castShadows",void 0),function(e){e[e.All=0]="All",e[e.Some=1]="Some",e[e.None=2]="None"}(k||(k={}));class B extends T{constructor(){super(...arguments),this.texture=null,this.transparent=k.None,this.opaqueOverride=k.None,this.castShadows=k.None}get type(){return f.Varying}}function H(e){return null!=e.overlay?.getTexture(c.Highlight)}function _(e){return null!=e.overlay?.getTexture(c.WaterNormal)}function U(e){return null!=e.overlay?.getTexture(c.ColorNoRasterImage)}e([M()],B.prototype,"texture",void 0),e([M()],B.prototype,"transparent",void 0),e([M()],B.prototype,"opaqueOverride",void 0),e([M()],B.prototype,"castShadows",void 0);export{L as CommonMaterialParameters,E as ComponentMaterial,k as ComponentParameterSummary,V as ComponentParametersUniform,B as ComponentParametersVarying};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../../../../chunks/tslib.es6.js";import{ComponentDataType as e}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as t}from"./shader/VertexDiscardMode.js";import{ShaderOutput as r}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as s}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateType as i}from"../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{EmissionSource as a}from"../../../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as d}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as p}from"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{EllipsoidMode as n}from"../../../core/shaderLibrary/util/EllipsoidMode.js";import{parameter as h,ShaderTechniqueConfiguration as l}from"../../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{CullFaceOptions as c,AlphaDiscardMode as u}from"../../../lib/basicInterfaces.js";import{OITPass as y}from"../../../lib/OITPass.js";import{BindType as m}from"../../../../../webgl/BindType.js";var v;!function(o){o[o.None=0]="None",o[o.NoOverlay=1]="NoOverlay",o[o.ColorOverlay=2]="ColorOverlay",o[o.ColorOverlayWithWater=3]="ColorOverlayWithWater",o[o.COUNT=4]="COUNT"}(v||(v={}));class T extends l{constructor(o){super(),this.spherical=o,this.output=r.Color,this.textureCoordinateType=i.None,this.componentData=e.Uniform,this.cullFace=c.Back,this.vertexDiscardMode=t.None,this.doubleSidedMode=d.WindingOrder,this.alphaDiscardMode=u.Opaque,this.integratedMeshMode=v.None,this.oitPass=y.NONE,this.ellipsoidMode=n.Earth,this.pbrMode=p.Disabled,this.normalType=s.Attribute,this.emissionSource=a.None,this.hasVertexColors=!1,this.hasNormals=!1,this.shadeNormals=!0,this.hasSlicePlane=!1,this.hasColorTexture=!1,this.receiveAmbientOcclusion=!0,this.receiveShadows=!0,this.blendingEnabled=!0,this.screenSpaceReflections=!1,this.hasPolygonOffset=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasOccludees=!1,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.hasNormalTextureTransform=!1,this.cloudReflections=!0,this.snowCover=!1,this.objectAndLayerIdColor=!1,this.discardInvisibleFragments=!1,this.occlusionPass=!1,this.bindType=m.Draw,this.useCustomDTRExponentForWater=!1,this.hasVertexTangents=!1,this.highStepCount=!1,this.instancedDoublePrecision=!1,this.hasModelTransformation=!1,this.useFillLights=!0,this.objectAndLayerIdColorInstanced=!1,this.canHaveOverlay=!0}}o([h({count:r.COUNT})],T.prototype,"output",void 0),o([h({count:i.COUNT})],T.prototype,"textureCoordinateType",void 0),o([h({count:e.COUNT})],T.prototype,"componentData",void 0),o([h({count:c.COUNT})],T.prototype,"cullFace",void 0),o([h({count:t.COUNT})],T.prototype,"vertexDiscardMode",void 0),o([h({count:d.COUNT})],T.prototype,"doubleSidedMode",void 0),o([h({count:u.COUNT})],T.prototype,"alphaDiscardMode",void 0),o([h({count:v.COUNT})],T.prototype,"integratedMeshMode",void 0),o([h({count:y.COUNT})],T.prototype,"oitPass",void 0),o([h({count:n.COUNT})],T.prototype,"ellipsoidMode",void 0),o([h({count:p.COUNT})],T.prototype,"pbrMode",void 0),o([h({count:s.COUNT})],T.prototype,"normalType",void 0),o([h({count:a.COUNT})],T.prototype,"emissionSource",void 0),o([h()],T.prototype,"hasVertexColors",void 0),o([h()],T.prototype,"hasNormals",void 0),o([h()],T.prototype,"shadeNormals",void 0),o([h()],T.prototype,"hasSlicePlane",void 0),o([h()],T.prototype,"hasColorTexture",void 0),o([h()],T.prototype,"receiveAmbientOcclusion",void 0),o([h()],T.prototype,"receiveShadows",void 0),o([h()],T.prototype,"blendingEnabled",void 0),o([h()],T.prototype,"screenSpaceReflections",void 0),o([h()],T.prototype,"hasPolygonOffset",void 0),o([h()],T.prototype,"hasMetallicRoughnessTexture",void 0),o([h()],T.prototype,"hasOcclusionTexture",void 0),o([h()],T.prototype,"hasNormalTexture",void 0),o([h()],T.prototype,"hasOccludees",void 0),o([h()],T.prototype,"terrainDepthTest",void 0),o([h()],T.prototype,"cullAboveTerrain",void 0),o([h()],T.prototype,"hasNormalTextureTransform",void 0),o([h()],T.prototype,"cloudReflections",void 0),o([h()],T.prototype,"snowCover",void 0),o([h()],T.prototype,"objectAndLayerIdColor",void 0);export{T as ComponentTechniqueConfiguration,v as IntegratedMeshMode};
5
+ import{_ as o}from"../../../../../../chunks/tslib.es6.js";import{ComponentDataType as e}from"./shader/ComponentData.glsl.js";import{VertexDiscardMode as t}from"./shader/VertexDiscardMode.js";import{ShaderOutput as r,isColorEmissionHighlightOrOID as i}from"../../../core/shaderLibrary/ShaderOutput.js";import{NormalType as s}from"../../../core/shaderLibrary/attributes/NormalAttribute.glsl.js";import{TextureCoordinateType as a}from"../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import{EmissionSource as d}from"../../../core/shaderLibrary/output/Emissions.glsl.js";import{NormalsDoubleSidedMode as h}from"../../../core/shaderLibrary/shading/Normals.glsl.js";import{PBRMode as p}from"../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import{EllipsoidMode as l}from"../../../core/shaderLibrary/util/EllipsoidMode.js";import{parameter as n,ShaderTechniqueConfiguration as c}from"../../../core/shaderTechnique/ShaderTechniqueConfiguration.js";import{CullFaceOptions as u,AlphaDiscardMode as y}from"../../../lib/basicInterfaces.js";import{OITPass as m}from"../../../lib/OITPass.js";import{BindType as v}from"../../../../../webgl/BindType.js";var T;!function(o){o[o.None=0]="None",o[o.NoOverlay=1]="NoOverlay",o[o.ColorOverlay=2]="ColorOverlay",o[o.ColorOverlayWithWater=3]="ColorOverlayWithWater",o[o.COUNT=4]="COUNT"}(T||(T={}));class C extends c{constructor(o){super(),this.spherical=o,this.output=r.Color,this.textureCoordinateType=a.None,this.componentData=e.Uniform,this.cullFace=u.Back,this.vertexDiscardMode=t.None,this.doubleSidedMode=h.WindingOrder,this.alphaDiscardMode=y.Opaque,this.integratedMeshMode=T.None,this.oitPass=m.NONE,this.ellipsoidMode=l.Earth,this.pbrMode=p.Disabled,this.normalType=s.Attribute,this.emissionSource=d.None,this.hasVertexColors=!1,this.hasNormals=!1,this.shadeNormals=!0,this.hasSlicePlane=!1,this.hasColorTexture=!1,this.hasHighlightMixTexture=!1,this.receiveAmbientOcclusion=!0,this.receiveShadows=!0,this.blendingEnabled=!0,this.screenSpaceReflections=!1,this.hasPolygonOffset=!1,this.hasMetallicRoughnessTexture=!1,this.hasOcclusionTexture=!1,this.hasNormalTexture=!1,this.hasOccludees=!1,this.terrainDepthTest=!1,this.cullAboveTerrain=!1,this.hasNormalTextureTransform=!1,this.cloudReflections=!0,this.snowCover=!1,this.objectAndLayerIdColor=!1,this.discardInvisibleFragments=!1,this.occlusionPass=!1,this.bindType=v.Draw,this.useCustomDTRExponentForWater=!1,this.hasVertexTangents=!1,this.highStepCount=!1,this.instancedDoublePrecision=!1,this.hasModelTransformation=!1,this.useFillLights=!0,this.objectAndLayerIdColorInstanced=!1,this.draped=!1}get overlayEnabled(){return(this.integratedMeshMode===T.ColorOverlay||this.integratedMeshMode===T.ColorOverlayWithWater)&&i(this.output)}}o([n({count:r.COUNT})],C.prototype,"output",void 0),o([n({count:a.COUNT})],C.prototype,"textureCoordinateType",void 0),o([n({count:e.COUNT})],C.prototype,"componentData",void 0),o([n({count:u.COUNT})],C.prototype,"cullFace",void 0),o([n({count:t.COUNT})],C.prototype,"vertexDiscardMode",void 0),o([n({count:h.COUNT})],C.prototype,"doubleSidedMode",void 0),o([n({count:y.COUNT})],C.prototype,"alphaDiscardMode",void 0),o([n({count:T.COUNT})],C.prototype,"integratedMeshMode",void 0),o([n({count:m.COUNT})],C.prototype,"oitPass",void 0),o([n({count:l.COUNT})],C.prototype,"ellipsoidMode",void 0),o([n({count:p.COUNT})],C.prototype,"pbrMode",void 0),o([n({count:s.COUNT})],C.prototype,"normalType",void 0),o([n({count:d.COUNT})],C.prototype,"emissionSource",void 0),o([n()],C.prototype,"hasVertexColors",void 0),o([n()],C.prototype,"hasNormals",void 0),o([n()],C.prototype,"shadeNormals",void 0),o([n()],C.prototype,"hasSlicePlane",void 0),o([n()],C.prototype,"hasColorTexture",void 0),o([n()],C.prototype,"hasHighlightMixTexture",void 0),o([n()],C.prototype,"receiveAmbientOcclusion",void 0),o([n()],C.prototype,"receiveShadows",void 0),o([n()],C.prototype,"blendingEnabled",void 0),o([n()],C.prototype,"screenSpaceReflections",void 0),o([n()],C.prototype,"hasPolygonOffset",void 0),o([n()],C.prototype,"hasMetallicRoughnessTexture",void 0),o([n()],C.prototype,"hasOcclusionTexture",void 0),o([n()],C.prototype,"hasNormalTexture",void 0),o([n()],C.prototype,"hasOccludees",void 0),o([n()],C.prototype,"terrainDepthTest",void 0),o([n()],C.prototype,"cullAboveTerrain",void 0),o([n()],C.prototype,"hasNormalTextureTransform",void 0),o([n()],C.prototype,"cloudReflections",void 0),o([n()],C.prototype,"snowCover",void 0),o([n()],C.prototype,"objectAndLayerIdColor",void 0);export{C as ComponentTechniqueConfiguration,T as IntegratedMeshMode};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../../../../geometry/support/Ellipsoid.js";import"../../../../../terrain/OverlayContent.js";import"../ComponentTechniqueConfiguration.js";import"./ComponentData.glsl.js";import"./VertexDiscardMode.js";import"../../../../core/shaderLibrary/ForwardLinearDepth.glsl.js";import"../../../../core/shaderLibrary/ShaderOutput.js";import"../../../../core/shaderLibrary/Slice.glsl.js";import"../../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../../core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import"../../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../../core/shaderLibrary/util/EllipsoidMode.js";import"../../../../core/shaderModules/glsl.js";import"../../../../core/shaderModules/Texture2DBindUniform.js";import"../../../../core/shaderModules/Texture2DPassUniform.js";import"../../../../shaders/OutputColorHighlightOID.glsl.js";import"../../../../../../webgl/ShaderBuilder.js";import"../../../../../../../webscene/support/AlphaCutoff.js";export{b as build}from"../../../../../../../chunks/ComponentShader.glsl.js";
5
+ import"../../../../../../../geometry/support/Ellipsoid.js";import"../../../../../terrain/OverlayContent.js";import"./ComponentData.glsl.js";import"./VertexDiscardMode.js";import"../../../../core/shaderLibrary/ForwardLinearDepth.glsl.js";import"../../../../core/shaderLibrary/ShaderOutput.js";import"../../../../core/shaderLibrary/Slice.glsl.js";import"../../../../core/shaderLibrary/attributes/TextureCoordinateAttribute.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexColor.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexNormal.glsl.js";import"../../../../core/shaderLibrary/attributes/VertexPosition.glsl.js";import"../../../../core/shaderLibrary/output/OutputDepth.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlight.glsl.js";import"../../../../core/shaderLibrary/output/OutputHighlightOverlay.js";import"../../../../core/shaderLibrary/shading/ComputeFragmentNormals.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeMaterialColor.glsl.js";import"../../../../core/shaderLibrary/shading/ComputeNormalTexture.glsl.js";import"../../../../core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js";import"../../../../core/shaderLibrary/shading/MainLighting.glsl.js";import"../../../../core/shaderLibrary/shading/PhysicallyBasedRenderingParameters.glsl.js";import"../../../../core/shaderLibrary/shading/ReadBaseColorTexture.glsl.js";import"../../../../core/shaderLibrary/shading/ReadShadowMap.glsl.js";import"../../../../core/shaderLibrary/shading/TerrainDepthTest.glsl.js";import"../../../../core/shaderLibrary/terrain/Overlay.glsl.js";import"../../../../core/shaderLibrary/util/DiscardOrAdjustAlpha.glsl.js";import"../../../../core/shaderLibrary/util/EllipsoidMode.js";import"../../../../core/shaderModules/glsl.js";import"../../../../core/shaderModules/Texture2DBindUniform.js";import"../../../../core/shaderModules/Texture2DPassUniform.js";import"../../../../shaders/OutputColorHighlightOID.glsl.js";import"../../../../../../webgl/ShaderBuilder.js";import"../../../../../../../webscene/support/AlphaCutoff.js";export{b as build}from"../../../../../../../chunks/ComponentShader.glsl.js";
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{set as e}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as l}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{glsl as i}from"../shaderModules/glsl.js";import{Integer2PassUniform as t}from"../shaderModules/Integer2PassUniform.js";import{IntegerPassUniform as o}from"../shaderModules/IntegerPassUniform.js";import{UintTexture2DPassUniform as n}from"../shaderModules/UintTexture2DPassUniform.js";import{g as c}from"../../../../../chunks/HighlightDownsample.glsl.js";function s(l){const{vertex:s}=l;s.uniforms.add(new n("coverageTexture",(e=>e.coverageTexture)),new t("highlightRenderCellCount",(l=>e(r,l.horizontalCellCount,l.verticalCellCount))),new t("highlightTextureResolution",(({highlightTexture:l})=>e(r,l.descriptor.width,l.descriptor.height))),new o("highlightLevel",(e=>e.highlightLevel))).constants.add("cellSize","int",c),l.varyings.add("sUV","vec2"),l.varyings.add("vOutlinePossible","float"),s.code.add(i`const ivec2 cellVertices[4] = ivec2[4](ivec2(0,0), ivec2(1,0), ivec2(0,1), ivec2(1,1));`),s.main.add(i`int cellIndex = gl_InstanceID;
5
+ import{set as e}from"../../../../../core/libs/gl-matrix-2/math/vec2.js";import{create as l}from"../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{glsl as i}from"../shaderModules/glsl.js";import{Integer2PassUniform as t}from"../shaderModules/Integer2PassUniform.js";import{IntegerPassUniform as o}from"../shaderModules/IntegerPassUniform.js";import{Texture2DUintPassUniform as n}from"../shaderModules/Texture2DUintPassUniform.js";import{g as c}from"../../../../../chunks/HighlightDownsample.glsl.js";function s(l){const{vertex:s}=l;s.uniforms.add(new n("coverageTexture",(e=>e.coverageTexture)),new t("highlightRenderCellCount",(l=>e(r,l.horizontalCellCount,l.verticalCellCount))),new t("highlightTextureResolution",(({highlightTexture:l})=>e(r,l.descriptor.width,l.descriptor.height))),new o("highlightLevel",(e=>e.highlightLevel))).constants.add("cellSize","int",c),l.varyings.add("sUV","vec2"),l.varyings.add("vOutlinePossible","float"),s.code.add(i`const ivec2 cellVertices[4] = ivec2[4](ivec2(0,0), ivec2(1,0), ivec2(0,1), ivec2(1,1));`),s.main.add(i`int cellIndex = gl_InstanceID;
6
6
  int cellX = cellIndex % highlightRenderCellCount[0];
7
7
  int cellY = (cellIndex - cellX) / highlightRenderCellCount[0];
8
8
  ivec2 cellPos = ivec2(cellX, cellY);
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{_ as o}from"../../../../../../chunks/tslib.es6.js";import{ShaderTechniqueConfiguration as s,parameter as e}from"../../shaderTechnique/ShaderTechniqueConfiguration.js";class i extends s{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}o([e()],i.prototype,"instancedDoublePrecision",void 0),o([e()],i.prototype,"hasModelTransformation",void 0);export{i as InstancedDoubleConfiguration};
5
+ import{ShaderTechniqueConfiguration as e}from"../../shaderTechnique/ShaderTechniqueConfiguration.js";class s extends e{constructor(){super(...arguments),this.instancedDoublePrecision=!1,this.hasModelTransformation=!1}}export{s as InstancedDoubleConfiguration};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- 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{i as a}from"../../../../../../chunks/vec32.js";import{create as i}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ShaderOutput as n}from"../ShaderOutput.js";import{DoublePrecision as t}from"../util/DoublePrecision.glsl.js";import{addViewNormal as s}from"../util/View.glsl.js";import{Float3BindUniform as l}from"../../shaderModules/Float3BindUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as c}from"../../shaderModules/Matrix3PassUniform.js";import{Matrix4PassUniform as d}from"../../shaderModules/Matrix4PassUniform.js";import{VertexAttribute as v}from"../../../lib/VertexAttribute.js";import{encodeDoubleHi as u,encodeDoubleLo as g}from"../../../../../webgl/doublePrecisionUtils.js";import{NoParameters as p}from"../../../../../webgl/NoParameters.js";class x extends p{constructor(){super(...arguments),this.modelTransformation=null}}const M=r();function f(r,i){const p=i.hasModelTransformation,x=i.instancedDoublePrecision;p&&(r.vertex.uniforms.add(new d("model",(e=>e.modelTransformation??o))),r.vertex.uniforms.add(new c("normalLocalOriginFromModel",(r=>(e(M,r.modelTransformation??o),M))))),i.instanced&&x&&(r.attributes.add(v.INSTANCEMODELORIGINHI,"vec3"),r.attributes.add(v.INSTANCEMODELORIGINLO,"vec3"),r.attributes.add(v.INSTANCEMODEL,"mat3"),r.attributes.add(v.INSTANCEMODELNORMAL,"mat3"));const f=r.vertex;x&&(f.include(t,i),f.uniforms.add(new l("viewOriginHi",(e=>u(a(w,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),w))),new l("viewOriginLo",(e=>g(a(w,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),w))))),f.code.add(m`
5
+ 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{i as a}from"../../../../../../chunks/vec32.js";import{create as i}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{ShaderOutput as n}from"../ShaderOutput.js";import{DoublePrecision as t}from"../util/DoublePrecision.glsl.js";import{addViewNormal as s}from"../util/View.glsl.js";import{Float3BindUniform as l}from"../../shaderModules/Float3BindUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as c}from"../../shaderModules/Matrix3PassUniform.js";import{Matrix4PassUniform as d}from"../../shaderModules/Matrix4PassUniform.js";import{VertexAttribute as v}from"../../../lib/VertexAttribute.js";import{encodeDoubleHi as u,encodeDoubleLo as g}from"../../../../../webgl/doublePrecisionUtils.js";import{NoParameters as p}from"../../../../../webgl/NoParameters.js";class x extends p{constructor(){super(...arguments),this.modelTransformation=null}}const M=r();function f(r,i){const{hasModelTransformation:p,instancedDoublePrecision:x,instanced:f,output:O,hasVertexTangents:N}=i;p&&(r.vertex.uniforms.add(new d("model",(e=>e.modelTransformation??o))),r.vertex.uniforms.add(new c("normalLocalOriginFromModel",(r=>(e(M,r.modelTransformation??o),M))))),f&&x&&(r.attributes.add(v.INSTANCEMODELORIGINHI,"vec3"),r.attributes.add(v.INSTANCEMODELORIGINLO,"vec3"),r.attributes.add(v.INSTANCEMODEL,"mat3"),r.attributes.add(v.INSTANCEMODELNORMAL,"mat3"));const _=r.vertex;x&&(_.include(t,i),_.uniforms.add(new l("viewOriginHi",(e=>u(a(w,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),w))),new l("viewOriginLo",(e=>g(a(w,e.camera.viewInverseTransposeMatrix[3],e.camera.viewInverseTransposeMatrix[7],e.camera.viewInverseTransposeMatrix[11]),w))))),_.code.add(m`
6
6
  vec3 getVertexInLocalOriginSpace() {
7
7
  return ${p?x?"(model * vec4(instanceModel * localPosition().xyz, 1.0)).xyz":"(model * localPosition()).xyz":x?"instanceModel * localPosition().xyz":"localPosition().xyz"};
8
8
  }
@@ -13,15 +13,15 @@ import{normalFromMat4 as e}from"../../../../../../core/libs/gl-matrix-2/math/mat
13
13
  vec3 originDelta = dpAdd(viewOriginHi, viewOriginLo, -instanceModelOriginHi, -instanceModelOriginLo);
14
14
  return _pos - originDelta;`:"return vpos;"}
15
15
  }
16
- `),f.code.add(m`
16
+ `),_.code.add(m`
17
17
  vec3 dpNormal(vec4 _normal) {
18
18
  return normalize(${p?x?"normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz)":"normalLocalOriginFromModel * _normal.xyz":x?"instanceModelNormal * _normal.xyz":"_normal.xyz"});
19
19
  }
20
- `),i.output===n.Normal&&(s(f),f.code.add(m`
20
+ `),O===n.Normal&&(s(_),_.code.add(m`
21
21
  vec3 dpNormalView(vec4 _normal) {
22
22
  return normalize((viewNormal * ${p?x?"vec4(normalLocalOriginFromModel * (instanceModelNormal * _normal.xyz), 1.0)":"vec4(normalLocalOriginFromModel * _normal.xyz, 1.0)":x?"vec4(instanceModelNormal * _normal.xyz, 1.0)":"_normal"}).xyz);
23
23
  }
24
- `)),i.hasVertexTangents&&f.code.add(m`
24
+ `)),N&&_.code.add(m`
25
25
  vec4 dpTransformVertexTangent(vec4 _tangent) {
26
26
  ${p?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;"}
27
27
  }`)}const w=i();export{x as InstancedDoublePassParameters,f as InstancedDoublePrecision};
@@ -2,23 +2,23 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{addNearFar as e}from"../ForwardLinearDepth.glsl.js";import{ShaderOutput as o}from"../ShaderOutput.js";import{SliceDraw as r}from"../Slice.glsl.js";import{Transform as t}from"../Transform.glsl.js";import{NormalAttribute as i,NormalType as a}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as s}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as l}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as d}from"../attributes/VertexNormal.glsl.js";import{OutputDepth as n}from"../output/OutputDepth.glsl.js";import{OutputHighlight as c}from"../output/OutputHighlight.glsl.js";import{VisualVariables as u}from"../shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as p}from"../util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as m}from"../util/View.glsl.js";import{glsl as v,If as g}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";import{AlphaDiscardMode as x}from"../../../lib/basicInterfaces.js";function h(h,O){const{vertex:j,fragment:w,varyings:b}=h,C=O.hasColorTexture&&O.alphaDiscardMode!==x.Opaque,{output:V,normalType:A,hasColorTextureTransform:S}=O;switch(V){case o.Depth:m(j,O),h.include(t,O),w.include(r,O),h.include(l,O),C&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
5
+ import{addNearFar as e}from"../ForwardLinearDepth.glsl.js";import{ShaderOutput as o}from"../ShaderOutput.js";import{SliceDraw as r}from"../Slice.glsl.js";import{Transform as t}from"../Transform.glsl.js";import{NormalAttribute as i,NormalType as a}from"../attributes/NormalAttribute.glsl.js";import{ObjectAndLayerIdColor as s}from"../attributes/ObjectAndLayerIdColor.glsl.js";import{TextureCoordinateAttribute as l}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexNormal as d}from"../attributes/VertexNormal.glsl.js";import{OutputDepth as n}from"../output/OutputDepth.glsl.js";import{OutputHighlight as c}from"../output/OutputHighlight.glsl.js";import{VisualVariables as u}from"../shading/VisualVariables.glsl.js";import{DiscardOrAdjustAlphaPass as p}from"../util/DiscardOrAdjustAlpha.glsl.js";import{addProjViewLocalOrigin as m}from"../util/View.glsl.js";import{glsl as v,If as g}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as f}from"../../shaderModules/Texture2DPassUniform.js";import{AlphaDiscardMode as x}from"../../../lib/basicInterfaces.js";function h(h,O){const{vertex:j,fragment:w,varyings:b}=h,{hasColorTexture:C,alphaDiscardMode:V}=O,A=C&&V!==x.Opaque,{output:S,normalType:y,hasColorTextureTransform:P}=O;switch(S){case o.Depth:m(j,O),h.include(t,O),w.include(r,O),h.include(l,O),A&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
6
6
  vpos = subtractOrigin(vpos);
7
7
  vpos = addVerticalOffset(vpos, localOrigin);
8
8
  gl_Position = transformPosition(proj, view, vpos);
9
9
  forwardTextureCoordinates();`),h.include(p,O),w.main.add(v`
10
10
  discardBySlice(vpos);
11
- ${g(C,v`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
12
- discardOrAdjustAlpha(texColor);`)}`);break;case o.Shadow:case o.ShadowHighlight:case o.ShadowExcludeHighlight:case o.ViewshedShadow:case o.ObjectAndLayerIdColor:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),h.include(n,O),w.include(r,O),h.include(s,O),e(h),b.add("depth","float",{invariant:!0}),C&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
11
+ ${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
12
+ discardOrAdjustAlpha(texColor);`)}`);break;case o.Shadow:case o.ShadowHighlight:case o.ShadowExcludeHighlight:case o.ViewshedShadow:case o.ObjectAndLayerIdColor:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),h.include(n,O),w.include(r,O),h.include(s,O),e(h),b.add("depth","float",{invariant:!0}),A&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
13
13
  vpos = subtractOrigin(vpos);
14
14
  vpos = addVerticalOffset(vpos, localOrigin);
15
15
  gl_Position = transformPositionWithDepth(proj, view, vpos, nearFar, depth);
16
16
  forwardTextureCoordinates();
17
17
  forwardObjectAndLayerIdColor();`),h.include(p,O),w.main.add(v`
18
18
  discardBySlice(vpos);
19
- ${g(C,v`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
19
+ ${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
20
20
  discardOrAdjustAlpha(texColor);`)}
21
- ${V===o.ObjectAndLayerIdColor?v`outputObjectAndLayerIdColor();`:v`outputDepth(depth);`}`);break;case o.Normal:{m(j,O),h.include(t,O),h.include(i,O),h.include(d,O),h.include(l,O),h.include(u,O),C&&w.uniforms.add(new f("tex",(e=>e.texture))),A===a.ScreenDerivative&&b.add("vPositionView","vec3",{invariant:!0});const e=A===a.Attribute||A===a.Compressed;j.main.add(v`
21
+ ${S===o.ObjectAndLayerIdColor?v`outputObjectAndLayerIdColor();`:v`outputDepth(depth);`}`);break;case o.Normal:{m(j,O),h.include(t,O),h.include(i,O),h.include(d,O),h.include(l,O),h.include(u,O),A&&w.uniforms.add(new f("tex",(e=>e.texture))),y===a.ScreenDerivative&&b.add("vPositionView","vec3",{invariant:!0});const e=y===a.Attribute||y===a.Compressed;j.main.add(v`
22
22
  vpos = getVertexInLocalOriginSpace();
23
23
  ${e?v`vNormalWorld = dpNormalView(vvLocalNormal(normalModel()));`:v`vPositionView = (view * vec4(vpos, 1.0)).xyz;`}
24
24
  vpos = subtractOrigin(vpos);
@@ -26,19 +26,19 @@ forwardObjectAndLayerIdColor();`),h.include(p,O),w.main.add(v`
26
26
  gl_Position = transformPosition(proj, view, vpos);
27
27
  forwardTextureCoordinates();`),w.include(r,O),h.include(p,O),w.main.add(v`
28
28
  discardBySlice(vpos);
29
- ${g(C,v`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
29
+ ${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
30
30
  discardOrAdjustAlpha(texColor);`)}
31
31
 
32
- ${A===a.ScreenDerivative?v`vec3 normal = screenDerivativeNormal(vPositionView);`:v`vec3 normal = normalize(vNormalWorld);
32
+ ${y===a.ScreenDerivative?v`vec3 normal = screenDerivativeNormal(vPositionView);`:v`vec3 normal = normalize(vNormalWorld);
33
33
  if (gl_FrontFacing == false){
34
34
  normal = -normal;
35
35
  }`}
36
- fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case o.Highlight:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),C&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
36
+ fragColor = vec4(0.5 + 0.5 * normal, 1.0);`);break}case o.Highlight:m(j,O),h.include(t,O),h.include(l,O),h.include(u,O),A&&w.uniforms.add(new f("tex",(e=>e.texture))),j.main.add(v`vpos = getVertexInLocalOriginSpace();
37
37
  vpos = subtractOrigin(vpos);
38
38
  vpos = addVerticalOffset(vpos, localOrigin);
39
39
  gl_Position = transformPosition(proj, view, vpos);
40
40
  forwardTextureCoordinates();`),w.include(r,O),h.include(p,O),h.include(c,O),w.main.add(v`
41
41
  discardBySlice(vpos);
42
- ${g(C,v`vec4 texColor = texture(tex, ${S?"colorUV":"vuv0"});
42
+ ${g(A,v`vec4 texColor = texture(tex, ${P?"colorUV":"vuv0"});
43
43
  discardOrAdjustAlpha(texColor);`)}
44
44
  calculateOcclusionAndOutputHighlight();`)}}export{h as DefaultMaterialAuxiliaryPasses};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{HighlightReadBitmap as i}from"../HighlightReadBitmap.glsl.js";import{ShaderOutput as e}from"../ShaderOutput.js";import{glsl as t}from"../../shaderModules/glsl.js";import{Integer2BindUniform as h}from"../../shaderModules/Integer2BindUniform.js";import{IntegerBindUniform as l}from"../../shaderModules/IntegerBindUniform.js";import{Texture2DBindUniform as g}from"../../shaderModules/Texture2DBindUniform.js";import{UintTexture2DPassUniform as d}from"../../shaderModules/UintTexture2DPassUniform.js";function u(u,o){const{fragment:r}=u;o.output===e.Highlight?(r.uniforms.add(new g("depthTexture",(i=>i.mainDepth)),new d("highlightMixTexture",((i,e)=>e.highlightMixTexture)),new l("highlightLevel",(i=>i.highlightLevel??0)),new h("highlightMixOrigin",(i=>i.highlightMixOrigin))),u.outputs.add("fragHighlight","uvec2",0),u.include(i),r.code.add(t`uvec2 getAccumulatedHighlight() {
5
+ import{HighlightReadBitmap as i}from"../HighlightReadBitmap.glsl.js";import{ShaderOutput as e}from"../ShaderOutput.js";import{glsl as t}from"../../shaderModules/glsl.js";import{Integer2BindUniform as h}from"../../shaderModules/Integer2BindUniform.js";import{IntegerBindUniform as g}from"../../shaderModules/IntegerBindUniform.js";import{Texture2DBindUniform as l}from"../../shaderModules/Texture2DBindUniform.js";import{Texture2DUintBindUniform as d}from"../../shaderModules/Texture2DUintBindUniform.js";function o(o,u){const{fragment:r}=o,{output:c,draped:n,hasHighlightMixTexture:s}=u;c===e.Highlight?(r.uniforms.add(new g("highlightLevel",(i=>i.highlightLevel??0)),new h("highlightMixOrigin",(i=>i.highlightMixOrigin))),o.outputs.add("fragHighlight","uvec2",0),o.include(i),s?r.uniforms.add(new d("highlightMixTexture",(i=>i.highlightMixTexture))).code.add(t`uvec2 getAccumulatedHighlight() {
6
6
  return texelFetch(highlightMixTexture, ivec2(gl_FragCoord.xy) - highlightMixOrigin, 0).rg;
7
7
  }
8
8
  void outputHighlight(bool occluded) {
@@ -22,15 +22,14 @@ uvec2 combinedHighlight = getAccumulatedHighlight();
22
22
  combinedHighlight[li] |= bits;
23
23
  fragHighlight = combinedHighlight;
24
24
  }
25
- }
26
- bool isHighlightOccluded() {
25
+ }`):r.code.add(t`void outputHighlight(bool occluded) {
26
+ uint bits = occluded ? 3u : 1u;
27
+ fragHighlight = uvec2(bits, 0);
28
+ }`),n?r.code.add(t`bool isHighlightOccluded() {
29
+ return false;
30
+ }`):r.uniforms.add(new l("depthTexture",(i=>i.mainDepth))).code.add(t`bool isHighlightOccluded() {
27
31
  float sceneDepth = texelFetch(depthTexture, ivec2(gl_FragCoord.xy), 0).x;
28
32
  return gl_FragCoord.z > sceneDepth + 5e-7;
29
- }
30
- void calculateOcclusionAndOutputHighlight() {
31
- outputHighlight(isHighlightOccluded());
32
- }`),o.canHaveOverlay&&r.code.add(t`void calculateOcclusionAndOutputHighlightOverlay(uvec2 highlightToAdd) {
33
- uint levelBits = readLevelBits(highlightToAdd, highlightLevel);
34
- if ((levelBits & 1u) == 0u) { discard; }
33
+ }`),r.code.add(t`void calculateOcclusionAndOutputHighlight() {
35
34
  outputHighlight(isHighlightOccluded());
36
- }`)):r.code.add(t`void calculateOcclusionAndOutputHighlight() {}`)}export{u as OutputHighlight};
35
+ }`)):r.code.add(t`void calculateOcclusionAndOutputHighlight() {}`)}export{o as OutputHighlight};
@@ -0,0 +1,11 @@
1
+ /*
2
+ All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
+ See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
+ */
5
+ import{ShaderOutput as i}from"../ShaderOutput.js";import{OutputHighlight as t}from"./OutputHighlight.glsl.js";import{glsl as l}from"../../shaderModules/glsl.js";function h(h,u){u.output===i.Highlight&&(h.include(t,u),h.fragment.code.add(l`
6
+ void calculateOcclusionAndOutputHighlight(uvec2 highlightToAdd) {
7
+ uint levelBits = readLevelBits(highlightToAdd, highlightLevel);
8
+ if ((levelBits & 1u) == 0u) discard;
9
+ outputHighlight(isHighlightOccluded());
10
+ }
11
+ `))}export{h as OutputHighlightOverlay};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{IDENTITY as e}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{ONES as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{TextureCoordinateType as r}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as a}from"../attributes/VertexTextureCoordinates.glsl.js";import{NormalsDoubleSidedMode as n}from"./Normals.glsl.js";import{Float2PassUniform as o}from"../../shaderModules/Float2PassUniform.js";import{glsl as s}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as m}from"../../shaderModules/Matrix3PassUniform.js";import{Texture2DDrawUniform as d}from"../../shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as l}from"../../shaderModules/Texture2DPassUniform.js";import{VertexAttribute as i}from"../../../lib/VertexAttribute.js";import{BindType as c}from"../../../../../webgl/BindType.js";function T(T,u){const x=T.fragment;u.hasVertexTangents?(T.attributes.add(i.TANGENT,"vec4"),T.varyings.add("vTangent","vec4"),u.doubleSidedMode===n.WindingOrder?x.code.add(s`mat3 computeTangentSpace(vec3 normal) {
5
+ import{IDENTITY as e}from"../../../../../../core/libs/gl-matrix-2/factories/mat3f64.js";import{ONES as t}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{TextureCoordinateType as r}from"../attributes/TextureCoordinateAttribute.glsl.js";import{VertexTextureCoordinates as a}from"../attributes/VertexTextureCoordinates.glsl.js";import{NormalsDoubleSidedMode as n}from"./Normals.glsl.js";import{Float2PassUniform as o}from"../../shaderModules/Float2PassUniform.js";import{glsl as s}from"../../shaderModules/glsl.js";import{Matrix3PassUniform as m}from"../../shaderModules/Matrix3PassUniform.js";import{Texture2DDrawUniform as d}from"../../shaderModules/Texture2DDrawUniform.js";import{Texture2DPassUniform as l}from"../../shaderModules/Texture2DPassUniform.js";import{VertexAttribute as i}from"../../../lib/VertexAttribute.js";import{BindType as c}from"../../../../../webgl/BindType.js";function T(T,u){const x=T.fragment,{hasVertexTangents:g,doubleSidedMode:f,hasNormalTexture:v,textureCoordinateType:p,bindType:b,hasNormalTextureTransform:y}=u;g?(T.attributes.add(i.TANGENT,"vec4"),T.varyings.add("vTangent","vec4"),f===n.WindingOrder?x.code.add(s`mat3 computeTangentSpace(vec3 normal) {
6
6
  float tangentHeadedness = gl_FrontFacing ? vTangent.w : -vTangent.w;
7
7
  vec3 tangent = normalize(gl_FrontFacing ? vTangent.xyz : -vTangent.xyz);
8
8
  vec3 bitangent = cross(normal, tangent) * tangentHeadedness;
@@ -23,9 +23,9 @@ T = T - normal * dot(normal, T);
23
23
  T *= inversesqrt(max(dot(T,T), 1.e-10));
24
24
  vec3 B = sign(det) * cross(normal, T);
25
25
  return mat3(T, B, normal);
26
- }`),u.textureCoordinateType!==r.None&&(T.include(a,u),x.uniforms.add(u.bindType===c.Pass?new l("normalTexture",(e=>e.textureNormal)):new d("normalTexture",(e=>e.textureNormal))),u.hasNormalTextureTransform&&(x.uniforms.add(new o("scale",(e=>e.scale??t))),x.uniforms.add(new m("normalTextureTransformMatrix",(t=>t.normalTextureTransformMatrix??e)))),x.code.add(s`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
27
- vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),u.hasNormalTextureTransform&&x.code.add(s`mat3 normalTextureRotation = mat3(normalTextureTransformMatrix[0][0]/scale[0], normalTextureTransformMatrix[0][1]/scale[1], 0.0,
26
+ }`),v&&p!==r.None&&(T.include(a,u),x.uniforms.add(b===c.Pass?new l("normalTexture",(e=>e.textureNormal)):new d("normalTexture",(e=>e.textureNormal))),y&&(x.uniforms.add(new o("scale",(e=>e.scale??t))),x.uniforms.add(new m("normalTextureTransformMatrix",(t=>t.normalTextureTransformMatrix??e)))),x.code.add(s`vec3 computeTextureNormal(mat3 tangentSpace, vec2 uv) {
27
+ vec3 rawNormal = textureLookup(normalTexture, uv).rgb * 2.0 - 1.0;`),y&&x.code.add(s`mat3 normalRotation = mat3(normalTextureTransformMatrix[0][0]/scale[0], normalTextureTransformMatrix[0][1]/scale[1], 0.0,
28
28
  normalTextureTransformMatrix[1][0]/scale[0], normalTextureTransformMatrix[1][1]/scale[1], 0.0,
29
29
  0.0, 0.0, 0.0 );
30
- rawNormal.xy = (normalTextureRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),x.code.add(s`return tangentSpace * rawNormal;
30
+ rawNormal.xy = (normalRotation * vec3(rawNormal.x, rawNormal.y, 1.0)).xy;`),x.code.add(s`return tangentSpace * rawNormal;
31
31
  }`))}export{T as ComputeNormalTexture};
@@ -65,17 +65,14 @@ return outColor;
65
65
  float dtrExponent = ${o.useCustomDTRExponentForWater?"2.2":"2.0"};
66
66
  `),n.add(a`vec3 fresnelReflection(float angle, vec3 f0, float f90) {
67
67
  return f0 + (f90 - f0) * pow(1.0 - angle, 5.0);
68
- }`),n.add(a`float normalDistributionWater(float NdotH, float roughness)
69
- {
68
+ }`),n.add(a`float normalDistributionWater(float NdotH, float roughness) {
70
69
  float r2 = roughness * roughness;
71
70
  float NdotH2 = NdotH * NdotH;
72
71
  float denom = pow((NdotH2 * (r2 - 1.0) + 1.0), dtrExponent) * PI;
73
72
  return r2 / denom;
74
- }`),n.add(a`float geometricOcclusionKelemen(float LoH)
75
- {
73
+ }`),n.add(a`float geometricOcclusionKelemen(float LoH) {
76
74
  return 0.25 / (LoH * LoH);
77
- }`),n.add(a`vec3 brdfSpecularWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max)
78
- {
75
+ }`),n.add(a`vec3 brdfSpecularWater(in PBRShadingWater props, float roughness, vec3 F0, float F0Max) {
79
76
  vec3 F = fresnelReflection(props.VdotH, F0, F0Max);
80
77
  float dSun = normalDistributionWater(props.NdotH, roughness);
81
78
  float V = geometricOcclusionKelemen(props.LdotH);
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- var o;!function(o){o[o.Composite=0]="Composite",o[o.ColorComposite=1]="ColorComposite",o[o.GridComposite=2]="GridComposite",o[o.GroupBackgroundComposite=3]="GroupBackgroundComposite",o[o.COUNT=4]="COUNT"}(o||(o={}));export{o as BlendLayersOutput};
5
+ var o;!function(o){o[o.Draw=0]="Draw",o[o.Composite=1]="Composite",o[o.ColorComposite=2]="ColorComposite",o[o.GridComposite=3]="GridComposite",o[o.GroupBackgroundComposite=4]="GroupBackgroundComposite",o[o.COUNT=5]="COUNT"}(o||(o={}));export{o as BlendLayersOutput};
@@ -2,7 +2,7 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{hasArea as o,width as r,height as t}from"../../../../../../geometry/support/aaBoundingRect.js";import{OverlayIndex as a}from"../../../../terrain/interfaces.js";import{OverlayContent as l}from"../../../../terrain/OverlayContent.js";import{RenderPassIdentifier as i}from"../../renderPasses/RenderPassIdentifier.js";import{ShaderOutput as n,isColorOrColorEmission as s}from"../ShaderOutput.js";import{addMainLightDirection as d,addMainLightIntensity as v}from"../shading/MainLighting.glsl.js";import{PBRMode as c}from"../shading/PhysicallyBasedRenderingParameters.glsl.js";import{Water as u}from"../shading/Water.glsl.js";import{Float4DrawUniform as x}from"../../shaderModules/Float4DrawUniform.js";import{FloatPassUniform as y}from"../../shaderModules/FloatPassUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as p}from"../../shaderModules/Texture2DPassUniform.js";import{UintTexture2DPassUniform as f}from"../../shaderModules/UintTexture2DPassUniform.js";import{Uniform as g}from"../../../../../webgl/Uniform.js";var h;function C(e,o){const{vertex:r,fragment:t}=e;r.uniforms.add(new x("overlayTexOffset",((e,o)=>V(e,o))),new x("overlayTexScale",((e,o)=>I(e,o)))),t.constants.add("overlayOpacity","float",1),t.uniforms.add(new p("ovColorTex",((e,o)=>b(e,o)))),T(e,o)}function O(e,o){const{vertex:r,fragment:t}=e,{output:a}=o;r.uniforms.add(new M("overlayTexOffset"),new M("overlayTexScale")),t.uniforms.add(new y("overlayOpacity",(e=>e.overlayOpacity))),a!==n.Highlight&&t.uniforms.add(new p("ovColorTex",((e,o)=>o.overlay?.getTexture(e.overlayContent)))),T(e,o)}function T(e,o){const r=o.pbrMode===c.Water||o.pbrMode===c.WaterOnIntegratedMesh||o.pbrMode===c.TerrainWithWater;r&&e.include(u,o);const{vertex:t,fragment:a,varyings:i}=e;i.add("vtcOverlay","vec4");const{output:s}=o,x=s===n.Highlight;t.code.add(m`void setOverlayVTC(in vec2 uv) {
5
+ import{create as e}from"../../../../../../core/libs/gl-matrix-2/factories/vec4f64.js";import{hasArea as o,width as r,height as t}from"../../../../../../geometry/support/aaBoundingRect.js";import{OverlayIndex as a}from"../../../../terrain/interfaces.js";import{OverlayContent as l}from"../../../../terrain/OverlayContent.js";import{RenderPassIdentifier as i}from"../../renderPasses/RenderPassIdentifier.js";import{ShaderOutput as n,isColorOrColorEmission as s}from"../ShaderOutput.js";import{addMainLightDirection as d,addMainLightIntensity as v}from"../shading/MainLighting.glsl.js";import{PBRMode as c}from"../shading/PhysicallyBasedRenderingParameters.glsl.js";import{Water as u}from"../shading/Water.glsl.js";import{Float4DrawUniform as x}from"../../shaderModules/Float4DrawUniform.js";import{FloatPassUniform as y}from"../../shaderModules/FloatPassUniform.js";import{glsl as m}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as p}from"../../shaderModules/Texture2DPassUniform.js";import{Texture2DUintPassUniform as f}from"../../shaderModules/Texture2DUintPassUniform.js";import{Uniform as g}from"../../../../../webgl/Uniform.js";var h;function C(e,o){const{vertex:r,fragment:t}=e;r.uniforms.add(new x("overlayTexOffset",((e,o)=>V(e,o))),new x("overlayTexScale",((e,o)=>I(e,o)))),t.constants.add("overlayOpacity","float",1),t.uniforms.add(new p("ovColorTex",((e,o)=>b(e,o)))),T(e,o)}function O(e,o){const{vertex:r,fragment:t}=e,{output:a}=o;r.uniforms.add(new M("overlayTexOffset"),new M("overlayTexScale")),t.uniforms.add(new y("overlayOpacity",(e=>e.overlayOpacity))),a!==n.Highlight&&t.uniforms.add(new p("ovColorTex",((e,o)=>o.overlay?.getTexture(e.overlayContent)))),T(e,o)}function T(e,o){const r=o.pbrMode===c.Water||o.pbrMode===c.WaterOnIntegratedMesh||o.pbrMode===c.TerrainWithWater;r&&e.include(u,o);const{vertex:t,fragment:a,varyings:i}=e;i.add("vtcOverlay","vec4");const{output:s}=o,x=s===n.Highlight;t.code.add(m`void setOverlayVTC(in vec2 uv) {
6
6
  vtcOverlay = vec4(uv, uv) * overlayTexScale + overlayTexOffset;
7
7
  }`),a.code.add(m`bool isValid(vec2 uv, vec2 dxdy) {
8
8
  return (uv.x >= 0.0 + dxdy.x) && (uv.x <= 1.0 - dxdy.x) && (uv.y >= 0.0 + dxdy.y) && (uv.y <= 1.0 - dxdy.y);
@@ -13,7 +13,7 @@ vec4 color1 = texture(ov0Tex, vec2(texCoords.z * 0.5 + 0.5, texCoords.w));
13
13
  bool isValid0 = isValid(texCoords.xy, fwidth(texCoords.xy));
14
14
  bool isValid1 = isValid(texCoords.zw, vec2(0.0, 0.0));
15
15
  return mix(color1 * float(isValid1), color0, float(isValid0));
16
- }`),x?(a.uniforms.add(new f("overlayHighlightTexture",((e,o)=>o.overlay?.getTexture(l.Highlight)))),a.code.add(m`uvec2 getAllOverlayHighlightValuesEncoded() {
16
+ }`),x?a.uniforms.add(new f("overlayHighlightTexture",((e,o)=>o.overlay?.getTexture(l.Highlight)))).code.add(m`uvec2 getAllOverlayHighlightValuesEncoded() {
17
17
  vec4 texCoords = vtcOverlay;
18
18
  vec2 uvInner = texCoords.xy;
19
19
  vec2 uvOuter = texCoords.zw;
@@ -28,7 +28,7 @@ return
28
28
  isValidInner ? texelValueInner :
29
29
  isValidOuter ? texelValueOuter :
30
30
  uvec2(0);
31
- }`)):(a.code.add(m`vec4 getCombinedOverlayColor() {
31
+ }`):(a.code.add(m`vec4 getCombinedOverlayColor() {
32
32
  return overlayOpacity * getOverlayColor(ovColorTex, vtcOverlay);
33
33
  }`),a.code.add(m`vec4 getOverlayColorTexel() {
34
34
  vec4 texCoords = vtcOverlay;
@@ -2,19 +2,19 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ZEROS as o}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{LayerBlendMode as r}from"../output/BlendOptions.js";import{BackgroundGrid as e}from"./BackgroundGrid.glsl.js";import{BaseOpacityMode as t}from"./BaseOpacityMode.js";import{BlendLayersOutput as a}from"./BlendLayersOutput.js";import{PremultipliedAlphaSource as l}from"./PremultipliedAlphaSource.js";import{BlendModes as c}from"../util/BlendModes.glsl.js";import{Float3PassUniform as s}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as i}from"../../shaderModules/FloatPassUniform.js";import{glsl as u}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as p}from"../../shaderModules/Texture2DPassUniform.js";import{NoParameters as d}from"../../../../../webgl/NoParameters.js";class m extends d{constructor(){super(...arguments),this.baseOpacity=1,this.backgroundColor=o,this.fboTexture=null}}function n(o,d){const m=d.output===a.GridComposite,n=d.output===a.ColorComposite,g=d.output===a.GroupBackgroundComposite,b=d.output===a.Composite,f=d.baseOpacityMode===t.Required,y=o.fragment;f&&y.uniforms.add(new i("baseOpacity",(o=>o.baseOpacity))),m?y.include(e):n?y.uniforms.add(new s("backgroundColor",(o=>o.backgroundColor))):b&&y.uniforms.add(new p("fboColor",(o=>o.fboTexture)));const C=d.blendMode!==r.Normal,v=d.premultipliedSource===l.On,j=!C&&!v&&(b&&!f||g);y.include(c,d),y.code.add(u`
5
+ import"../../../../../../core/has.js";import{ZEROS as o}from"../../../../../../core/libs/gl-matrix-2/factories/vec3f64.js";import{LayerBlendMode as r}from"../output/BlendOptions.js";import{BackgroundGrid as e}from"./BackgroundGrid.glsl.js";import{BaseOpacityMode as a}from"./BaseOpacityMode.js";import{BlendLayersOutput as c}from"./BlendLayersOutput.js";import{PremultipliedAlphaSource as s}from"./PremultipliedAlphaSource.js";import{BlendModes as t}from"../util/BlendModes.glsl.js";import{Float3PassUniform as l}from"../../shaderModules/Float3PassUniform.js";import{FloatPassUniform as i}from"../../shaderModules/FloatPassUniform.js";import{glsl as p,If as d}from"../../shaderModules/glsl.js";import{Texture2DPassUniform as m}from"../../shaderModules/Texture2DPassUniform.js";import{NoParameters as u}from"../../../../../webgl/NoParameters.js";class n extends u{constructor(){super(...arguments),this.baseOpacity=1,this.backgroundColor=o,this.fboTexture=null}}function b(o,u){const{output:n,blendMode:b,baseOpacityMode:g,premultipliedSource:f}=u,y=o.fragment,C=g===a.Required;C&&y.uniforms.add(new i("baseOpacity",(o=>o.baseOpacity)));const v=b!==r.Normal,h=f===s.On,j=n===c.Composite,k=n===c.GroupBackgroundComposite,B=!v&&!h&&(j&&!C||k);y.include(t,u);let L="";switch(n){case c.GroupBackgroundComposite:case c.Draw:L=p`vec4(0.0)`;break;case c.ColorComposite:y.uniforms.add(new l("backgroundColor",(o=>o.backgroundColor))),L=p`vec4(backgroundColor, 1.0)`;break;case c.GridComposite:y.include(e),L=p`vec4(gridColor(uv), 1.0)`;break;case c.Composite:y.uniforms.add(new m("fboColor",(o=>o.fboTexture))),L=p`texelFetch(fboColor, ivec2(gl_FragCoord.xy), 0)`;case c.COUNT:}y.code.add(p`
6
6
  vec4 getBackground(vec2 uv) {
7
- return ${f?u`baseOpacity *`:""} ${g?u`vec4(0.0, 0.0, 0.0, 0.0)`:n?u`vec4(backgroundColor, 1.0)`:m?u`vec4(gridColor(uv), 1.0)`:u`texelFetch(fboColor, ivec2(gl_FragCoord.xy), 0)`};
7
+ return ${d(C,p`baseOpacity *`)} ${L};
8
8
  }
9
9
 
10
10
  vec4 blendLayers(vec2 bgUV, vec4 colorLayer, float opacity) {
11
- ${C?u`
11
+ ${v?p`
12
12
  vec3 cl = colorLayer.a == 0.0 ? colorLayer.rgb : colorLayer.rgb / colorLayer.a;
13
13
  vec4 bgColor = getBackground(bgUV);
14
14
  vec3 cb = bgColor.a == 0.0 ? bgColor.rgb : bgColor.rgb / bgColor.a;
15
- return applyBlendMode(clamp(cl, vec3(0.0), vec3(1.0)), colorLayer.a * opacity, cb, bgColor.a);`:u`
15
+ return applyBlendMode(clamp(cl, vec3(0.0), vec3(1.0)), colorLayer.a * opacity, cb, bgColor.a);`:p`
16
16
  float composeAlpha = colorLayer.a * opacity;
17
- ${j?u`return colorLayer * opacity;`:u`
17
+ ${B?p`return colorLayer * opacity;`:p`
18
18
  vec4 bgColor = getBackground(bgUV);
19
19
  return bgColor * (1.0 - composeAlpha) + colorLayer * opacity;`}`}
20
- }`)}export{n as TileBackground,m as TileBackgroundPassParameters};
20
+ }`)}export{b as TileBackground,n as TileBackgroundPassParameters};
@@ -2,6 +2,6 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ZEROS as s}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{Float2PassUniform as e}from"../../shaderModules/Float2PassUniform.js";import{FloatPassUniform as t}from"../../shaderModules/FloatPassUniform.js";import{glsl as o}from"../../shaderModules/glsl.js";import{VertexAttribute as r}from"../../../lib/VertexAttribute.js";import{NoParameters as a}from"../../../../../webgl/NoParameters.js";class i extends a{constructor(){super(...arguments),this.scale=1,this.offset=s}}function f(s){s.attributes.add(r.POSITION,"vec2"),s.attributes.add(r.UV0,"vec2"),s.varyings.add("uv","vec2"),s.varyings.add("vuv","vec2"),s.vertex.uniforms.add(new t("scale",(s=>s.scale)),new e("offset",(s=>s.offset))),s.vertex.main.add(o`gl_Position = vec4(position, 0.0, 1.0);
5
+ import{ZEROS as s}from"../../../../../../core/libs/gl-matrix-2/factories/vec2f64.js";import{Float2PassUniform as e}from"../../shaderModules/Float2PassUniform.js";import{FloatPassUniform as o}from"../../shaderModules/FloatPassUniform.js";import{glsl as t}from"../../shaderModules/glsl.js";import{VertexAttribute as r}from"../../../lib/VertexAttribute.js";import{NoParameters as a}from"../../../../../webgl/NoParameters.js";class i extends a{constructor(){super(...arguments),this.scale=1,this.offset=s}}function f(s){s.attributes.add(r.POSITION,"vec2"),s.attributes.add(r.UV0,"vec2"),s.varyings.add("uv","vec2"),s.varyings.add("vuv","vec2"),s.vertex.uniforms.add(new o("scale",(s=>s.scale)),new e("offset",(s=>s.offset))).main.add(t`gl_Position = vec4(position, 0.0, 1.0);
6
6
  uv = uv0 * scale + offset;
7
7
  vuv = uv0;`)}export{f as TileComposite,i as TileCompositePassParameters};
@@ -34,7 +34,7 @@ return (rotMat * vec4(inVec, 0.0)).xyz;
34
34
 
35
35
  return vec3(baseCloudColor * (1.0 + additionalLight) + directSunScattering);
36
36
  }
37
- `),t.include(c),a.uniforms.add(new n("readChannelsRG",(o=>o.clouds.readChannels===e.RG)),new h("cubeMap",(o=>o.clouds.data?.cubeMap?.colorTexture??null))).code.add(u`vec4 sampleCloud(vec3 rayDir, bool readOtherChannel) {
37
+ `),t.include(c),a.uniforms.add(new n("readChannelsRG",(o=>o.clouds.readChannels===e.RG)),new h("cubeMap",(o=>o.clouds.data?.cubeMap?.colorTexture))).code.add(u`vec4 sampleCloud(vec3 rayDir, bool readOtherChannel) {
38
38
  vec4 s = lookupCloudsFromTextureArray(cubeMap, rayDir);
39
39
  bool readRG = readChannelsRG ^^ readOtherChannel;
40
40
  s = readRG ? vec4(vec3(s.r), s.g) : vec4(vec3(s.b), s.a);
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"usampler2D",r.Bind,((r,s)=>r.bindTexture(e,o(s))))}}export{o as UintTexture2DBindUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class o extends e{constructor(e,o){super(e,"usampler2D",r.Bind,((r,s)=>r.bindTexture(e,o(s))))}}export{o as Texture2DUintBindUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class s extends e{constructor(e,s){super(e,"usampler2D",r.Pass,((r,o,t)=>r.bindTexture(e,s(o,t))))}}export{s as UintTexture2DPassUniform};
5
+ import{BindType as r}from"../../../../webgl/BindType.js";import{Uniform as e}from"../../../../webgl/Uniform.js";class s extends e{constructor(e,s){super(e,"usampler2D",r.Pass,((r,o,t)=>r.bindTexture(e,s(o,t))))}}export{s as Texture2DUintPassUniform};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import"../../../../../core/mathUtils.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{b as BloomBlurPassParameters,a as BlurDirection,c as build}from"../../../../../chunks/BloomBlur.glsl.js";
5
+ import"../../../../../core/mathUtils.js";import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{B as BloomBlurPassParameters,a as BlurDirection,c as build}from"../../../../../chunks/BloomBlur.glsl.js";
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as o}from"../../../../../chunks/BloomBlur.glsl.js";import{makePipelineState as l,defaultColorWrite as s}from"../../../../webgl/renderState.js";class i extends r{constructor(r,l){super(r,l,new e(o,(()=>import("./BloomBlur.glsl.js"))))}initializePipeline(){return l({colorWrite:s})}}export{i as BloomBlurTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as r}from"../../core/shaderTechnique/ShaderTechnique.js";import{b as o}from"../../../../../chunks/BloomBlur.glsl.js";import{makePipelineState as l,defaultColorWrite as s}from"../../../../webgl/renderState.js";class i extends r{constructor(r,l){super(r,l,new e(o,(()=>import("./BloomBlur.glsl.js"))))}initializePipeline(){return l({colorWrite:s})}}export{i as BloomBlurTechnique};
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/Float2BindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/FloatsPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/IntegerPassUniform.js";import"../../core/shaderModules/Texture2DBindUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{a as BloomCompositionPassParameters,b as build,d as defaultCompositionParameters}from"../../../../../chunks/BloomComposition.glsl.js";
5
+ import"../../core/shaderLibrary/ScreenSpacePass.glsl.js";import"../../core/shaderLibrary/output/ReadDepth.glsl.js";import"../../core/shaderLibrary/shading/Gamma.glsl.js";import"../../core/shaderModules/Float2BindUniform.js";import"../../core/shaderModules/FloatPassUniform.js";import"../../core/shaderModules/FloatsPassUniform.js";import"../../core/shaderModules/glsl.js";import"../../core/shaderModules/IntegerPassUniform.js";import"../../core/shaderModules/Texture2DBindUniform.js";import"../../core/shaderModules/Texture2DPassUniform.js";import"./BloomPresets.glsl.js";import"../../../../webgl/NoParameters.js";import"../../../../webgl/ShaderBuilder.js";export{B as BloomCompositionPassParameters,b as build,d as defaultCompositionParameters}from"../../../../../chunks/BloomComposition.glsl.js";
@@ -2,4 +2,4 @@
2
2
  All material copyright ESRI, All Rights Reserved, unless otherwise specified.
3
3
  See https://js.arcgis.com/4.33/esri/copyright.txt for details.
4
4
  */
5
- import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{B as r}from"../../../../../chunks/BloomComposition.glsl.js";import{makePipelineState as i,defaultColorWrite as s}from"../../../../webgl/renderState.js";class t extends o{constructor(o,i){super(o,i,new e(r,(()=>import("./BloomComposition.glsl.js"))))}initializePipeline(){return i({colorWrite:s})}}export{t as BloomCompositionTechnique};
5
+ import{ReloadableShaderModule as e}from"../../core/shaderTechnique/ReloadableShaderModule.js";import{ShaderTechnique as o}from"../../core/shaderTechnique/ShaderTechnique.js";import{a as r}from"../../../../../chunks/BloomComposition.glsl.js";import{makePipelineState as i,defaultColorWrite as s}from"../../../../webgl/renderState.js";class t extends o{constructor(o,i){super(o,i,new e(r,(()=>import("./BloomComposition.glsl.js"))))}initializePipeline(){return i({colorWrite:s})}}export{t as BloomCompositionTechnique};