@itwin/core-frontend 3.6.0-dev.8 → 4.0.0-dev.2

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 (516) hide show
  1. package/CHANGELOG.md +35 -1
  2. package/LICENSE.md +1 -1
  3. package/lib/cjs/AccuDraw.js +1 -1
  4. package/lib/cjs/AccuDraw.js.map +1 -1
  5. package/lib/cjs/BriefcaseConnection.d.ts +23 -3
  6. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  7. package/lib/cjs/BriefcaseConnection.js +11 -3
  8. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  9. package/lib/cjs/CheckpointConnection.js +1 -1
  10. package/lib/cjs/CheckpointConnection.js.map +1 -1
  11. package/lib/cjs/DisplayStyleState.d.ts +2 -2
  12. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  13. package/lib/cjs/DisplayStyleState.js +12 -4
  14. package/lib/cjs/DisplayStyleState.js.map +1 -1
  15. package/lib/cjs/IModelApp.d.ts +3 -3
  16. package/lib/cjs/IModelApp.d.ts.map +1 -1
  17. package/lib/cjs/IModelApp.js +2 -2
  18. package/lib/cjs/IModelApp.js.map +1 -1
  19. package/lib/cjs/IModelConnection.d.ts +4 -6
  20. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  21. package/lib/cjs/IModelConnection.js +6 -7
  22. package/lib/cjs/IModelConnection.js.map +1 -1
  23. package/lib/cjs/IpcApp.d.ts +1 -1
  24. package/lib/cjs/IpcApp.d.ts.map +1 -1
  25. package/lib/cjs/IpcApp.js +1 -1
  26. package/lib/cjs/IpcApp.js.map +1 -1
  27. package/lib/cjs/NativeApp.d.ts +8 -1
  28. package/lib/cjs/NativeApp.d.ts.map +1 -1
  29. package/lib/cjs/NativeApp.js +10 -6
  30. package/lib/cjs/NativeApp.js.map +1 -1
  31. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  32. package/lib/cjs/NoRenderApp.js +3 -0
  33. package/lib/cjs/NoRenderApp.js.map +1 -1
  34. package/lib/cjs/SpatialViewState.d.ts +4 -1
  35. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  36. package/lib/cjs/SpatialViewState.js +19 -5
  37. package/lib/cjs/SpatialViewState.js.map +1 -1
  38. package/lib/cjs/Tiles.d.ts +4 -0
  39. package/lib/cjs/Tiles.d.ts.map +1 -1
  40. package/lib/cjs/Tiles.js +11 -0
  41. package/lib/cjs/Tiles.js.map +1 -1
  42. package/lib/cjs/ViewContext.js +1 -1
  43. package/lib/cjs/ViewContext.js.map +1 -1
  44. package/lib/cjs/ViewManager.d.ts.map +1 -1
  45. package/lib/cjs/ViewManager.js +2 -3
  46. package/lib/cjs/ViewManager.js.map +1 -1
  47. package/lib/cjs/ViewState.d.ts +4 -5
  48. package/lib/cjs/ViewState.d.ts.map +1 -1
  49. package/lib/cjs/ViewState.js +0 -1
  50. package/lib/cjs/ViewState.js.map +1 -1
  51. package/lib/cjs/Viewport.d.ts +53 -4
  52. package/lib/cjs/Viewport.d.ts.map +1 -1
  53. package/lib/cjs/Viewport.js +82 -34
  54. package/lib/cjs/Viewport.js.map +1 -1
  55. package/lib/cjs/extension/ExtensionImpl.js +2 -2
  56. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  57. package/lib/cjs/extension/ExtensionRuntime.js +3 -0
  58. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  59. package/lib/cjs/render/GraphicBranch.d.ts +3 -0
  60. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  61. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  62. package/lib/cjs/render/GraphicBuilder.d.ts +1 -1
  63. package/lib/cjs/render/GraphicBuilder.js +1 -1
  64. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  65. package/lib/cjs/render/MockRender.d.ts.map +1 -1
  66. package/lib/cjs/render/MockRender.js +3 -0
  67. package/lib/cjs/render/MockRender.js.map +1 -1
  68. package/lib/cjs/render/RealityMeshParams.d.ts +3 -4
  69. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
  70. package/lib/cjs/render/RealityMeshParams.js +9 -5
  71. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  72. package/lib/cjs/render/RenderMaterial.d.ts +1 -1
  73. package/lib/cjs/render/RenderMaterial.d.ts.map +1 -1
  74. package/lib/cjs/render/RenderMaterial.js.map +1 -1
  75. package/lib/cjs/render/RenderSystem.d.ts +4 -4
  76. package/lib/cjs/render/RenderSystem.js +4 -4
  77. package/lib/cjs/render/RenderSystem.js.map +1 -1
  78. package/lib/cjs/render/RenderTarget.d.ts +1 -1
  79. package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
  80. package/lib/cjs/render/RenderTarget.js +1 -1
  81. package/lib/cjs/render/RenderTarget.js.map +1 -1
  82. package/lib/cjs/render/VisibleFeature.d.ts +5 -5
  83. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  84. package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
  85. package/lib/cjs/render/primitives/DisplayParams.js +2 -1
  86. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  87. package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -3
  88. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  89. package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
  90. package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
  91. package/lib/cjs/render/webgl/BranchState.js +5 -0
  92. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  93. package/lib/cjs/render/webgl/CachedGeometry.d.ts +32 -0
  94. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  95. package/lib/cjs/render/webgl/CachedGeometry.js +74 -1
  96. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  97. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  98. package/lib/cjs/render/webgl/DrawCommand.js +6 -4
  99. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  100. package/lib/cjs/render/webgl/EDL.d.ts +40 -0
  101. package/lib/cjs/render/webgl/EDL.d.ts.map +1 -0
  102. package/lib/cjs/render/webgl/EDL.js +264 -0
  103. package/lib/cjs/render/webgl/EDL.js.map +1 -0
  104. package/lib/cjs/render/webgl/EdgeSettings.js +2 -2
  105. package/lib/cjs/render/webgl/FrameBuffer.d.ts +4 -0
  106. package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
  107. package/lib/cjs/render/webgl/FrameBuffer.js +9 -0
  108. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  109. package/lib/cjs/render/webgl/FrustumUniforms.d.ts +7 -0
  110. package/lib/cjs/render/webgl/FrustumUniforms.d.ts.map +1 -1
  111. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  112. package/lib/cjs/render/webgl/Layer.js +2 -2
  113. package/lib/cjs/render/webgl/LayerCommands.js +2 -2
  114. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  115. package/lib/cjs/render/webgl/PlanarClassifier.js +9 -8
  116. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  117. package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -1
  118. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  119. package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
  120. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  121. package/lib/cjs/render/webgl/PointCloud.js +2 -0
  122. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  123. package/lib/cjs/render/webgl/RealityMesh.d.ts +3 -1
  124. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  125. package/lib/cjs/render/webgl/RealityMesh.js +8 -3
  126. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  127. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +9 -0
  128. package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  129. package/lib/cjs/render/webgl/RealityModelUniforms.js +50 -0
  130. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  131. package/lib/cjs/render/webgl/RenderCommands.d.ts +2 -1
  132. package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
  133. package/lib/cjs/render/webgl/RenderCommands.js +46 -38
  134. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  135. package/lib/cjs/render/webgl/RenderFlags.d.ts +19 -17
  136. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  137. package/lib/cjs/render/webgl/RenderFlags.js +8 -6
  138. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  139. package/lib/cjs/render/webgl/SceneCompositor.d.ts +6 -1
  140. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  141. package/lib/cjs/render/webgl/SceneCompositor.js +195 -76
  142. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  143. package/lib/cjs/render/webgl/SolarShadowMap.js +3 -3
  144. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  145. package/lib/cjs/render/webgl/SurfaceGeometry.js +5 -5
  146. package/lib/cjs/render/webgl/Target.js +7 -7
  147. package/lib/cjs/render/webgl/Target.js.map +1 -1
  148. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  149. package/lib/cjs/render/webgl/Technique.js +18 -3
  150. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  151. package/lib/cjs/render/webgl/TechniqueFlags.js +4 -4
  152. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  153. package/lib/cjs/render/webgl/TechniqueId.d.ts +6 -2
  154. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  155. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  156. package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
  157. package/lib/cjs/render/webgl/UniformHandle.js +1 -2
  158. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  159. package/lib/cjs/render/webgl/VisibleTileFeatures.js +5 -5
  160. package/lib/cjs/render/webgl/glsl/EDL.d.ts +14 -0
  161. package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -0
  162. package/lib/cjs/render/webgl/glsl/EDL.js +260 -0
  163. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -0
  164. package/lib/cjs/render/webgl/glsl/RenderPass.js +12 -12
  165. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  166. package/lib/cjs/render/webgl/glsl/Surface.js +1 -1
  167. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  168. package/lib/cjs/tile/BatchedTileIdMap.js +1 -1
  169. package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
  170. package/lib/cjs/tile/DynamicIModelTile.js +1 -1
  171. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  172. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  173. package/lib/cjs/tile/GltfReader.js +4 -2
  174. package/lib/cjs/tile/GltfReader.js.map +1 -1
  175. package/lib/cjs/tile/IModelTile.js +1 -1
  176. package/lib/cjs/tile/IModelTile.js.map +1 -1
  177. package/lib/cjs/tile/ImdlReader.d.ts +6 -0
  178. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  179. package/lib/cjs/tile/ImdlReader.js +20 -7
  180. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  181. package/lib/cjs/tile/OrbitGtTileTree.d.ts +14 -1
  182. package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
  183. package/lib/cjs/tile/OrbitGtTileTree.js +30 -11
  184. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  185. package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -3
  186. package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
  187. package/lib/cjs/tile/RealityModelTileTree.js +61 -53
  188. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  189. package/lib/cjs/tile/RealityTileLoader.js +2 -2
  190. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  191. package/lib/cjs/tile/RealityTileTree.d.ts +5 -0
  192. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  193. package/lib/cjs/tile/RealityTileTree.js +9 -4
  194. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  195. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  196. package/lib/cjs/tile/TileAdmin.js +15 -7
  197. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  198. package/lib/cjs/tile/TileDrawArgs.js +1 -1
  199. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  200. package/lib/cjs/tile/TileTreeReference.d.ts +3 -0
  201. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  202. package/lib/cjs/tile/TileTreeReference.js +3 -0
  203. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  204. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +14 -1
  205. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  206. package/lib/cjs/tile/map/ArcGisUtilities.js +57 -27
  207. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  208. package/lib/cjs/tile/map/CesiumTerrainProvider.js +9 -9
  209. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  210. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
  211. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  212. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
  213. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  214. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  215. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  216. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
  217. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  218. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
  219. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  220. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
  221. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  222. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +1 -1
  223. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  224. package/lib/cjs/tile/map/ImageryTileTree.d.ts +26 -1
  225. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  226. package/lib/cjs/tile/map/ImageryTileTree.js +54 -4
  227. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  228. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  229. package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -2
  230. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  231. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +12 -2
  232. package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  233. package/lib/cjs/tile/map/MapLayerImageryProvider.js +16 -4
  234. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  235. package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -1
  236. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  237. package/lib/cjs/tile/map/MapLayerSources.js +2 -0
  238. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  239. package/lib/cjs/tile/map/MapTile.d.ts +5 -0
  240. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  241. package/lib/cjs/tile/map/MapTile.js +33 -14
  242. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  243. package/lib/cjs/tile/map/MapTileTree.d.ts +42 -3
  244. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  245. package/lib/cjs/tile/map/MapTileTree.js +126 -9
  246. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  247. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
  248. package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  249. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +26 -0
  250. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  251. package/lib/cjs/tile/map/WmtsCapabilities.d.ts +23 -68
  252. package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
  253. package/lib/cjs/tile/map/WmtsCapabilities.js +269 -260
  254. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  255. package/lib/cjs/tools/ClipViewTool.js +2 -2
  256. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  257. package/lib/cjs/tools/MeasureTool.js +2 -2
  258. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  259. package/lib/esm/AccuDraw.js +1 -1
  260. package/lib/esm/AccuDraw.js.map +1 -1
  261. package/lib/esm/BriefcaseConnection.d.ts +23 -3
  262. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  263. package/lib/esm/BriefcaseConnection.js +11 -3
  264. package/lib/esm/BriefcaseConnection.js.map +1 -1
  265. package/lib/esm/CheckpointConnection.js +1 -1
  266. package/lib/esm/CheckpointConnection.js.map +1 -1
  267. package/lib/esm/DisplayStyleState.d.ts +2 -2
  268. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  269. package/lib/esm/DisplayStyleState.js +12 -4
  270. package/lib/esm/DisplayStyleState.js.map +1 -1
  271. package/lib/esm/IModelApp.d.ts +3 -3
  272. package/lib/esm/IModelApp.d.ts.map +1 -1
  273. package/lib/esm/IModelApp.js +2 -2
  274. package/lib/esm/IModelApp.js.map +1 -1
  275. package/lib/esm/IModelConnection.d.ts +4 -6
  276. package/lib/esm/IModelConnection.d.ts.map +1 -1
  277. package/lib/esm/IModelConnection.js +6 -7
  278. package/lib/esm/IModelConnection.js.map +1 -1
  279. package/lib/esm/IpcApp.d.ts +1 -1
  280. package/lib/esm/IpcApp.d.ts.map +1 -1
  281. package/lib/esm/IpcApp.js +1 -1
  282. package/lib/esm/IpcApp.js.map +1 -1
  283. package/lib/esm/NativeApp.d.ts +8 -1
  284. package/lib/esm/NativeApp.d.ts.map +1 -1
  285. package/lib/esm/NativeApp.js +10 -6
  286. package/lib/esm/NativeApp.js.map +1 -1
  287. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  288. package/lib/esm/NoRenderApp.js +3 -0
  289. package/lib/esm/NoRenderApp.js.map +1 -1
  290. package/lib/esm/SpatialViewState.d.ts +4 -1
  291. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  292. package/lib/esm/SpatialViewState.js +19 -5
  293. package/lib/esm/SpatialViewState.js.map +1 -1
  294. package/lib/esm/Tiles.d.ts +4 -0
  295. package/lib/esm/Tiles.d.ts.map +1 -1
  296. package/lib/esm/Tiles.js +11 -0
  297. package/lib/esm/Tiles.js.map +1 -1
  298. package/lib/esm/ViewContext.js +1 -1
  299. package/lib/esm/ViewContext.js.map +1 -1
  300. package/lib/esm/ViewManager.d.ts.map +1 -1
  301. package/lib/esm/ViewManager.js +2 -3
  302. package/lib/esm/ViewManager.js.map +1 -1
  303. package/lib/esm/ViewState.d.ts +4 -5
  304. package/lib/esm/ViewState.d.ts.map +1 -1
  305. package/lib/esm/ViewState.js +0 -1
  306. package/lib/esm/ViewState.js.map +1 -1
  307. package/lib/esm/Viewport.d.ts +53 -4
  308. package/lib/esm/Viewport.d.ts.map +1 -1
  309. package/lib/esm/Viewport.js +83 -35
  310. package/lib/esm/Viewport.js.map +1 -1
  311. package/lib/esm/extension/ExtensionImpl.js +2 -2
  312. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  313. package/lib/esm/extension/ExtensionRuntime.js +5 -2
  314. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  315. package/lib/esm/render/GraphicBranch.d.ts +3 -0
  316. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  317. package/lib/esm/render/GraphicBranch.js.map +1 -1
  318. package/lib/esm/render/GraphicBuilder.d.ts +1 -1
  319. package/lib/esm/render/GraphicBuilder.js +1 -1
  320. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  321. package/lib/esm/render/MockRender.d.ts.map +1 -1
  322. package/lib/esm/render/MockRender.js +3 -0
  323. package/lib/esm/render/MockRender.js.map +1 -1
  324. package/lib/esm/render/RealityMeshParams.d.ts +3 -4
  325. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
  326. package/lib/esm/render/RealityMeshParams.js +10 -6
  327. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  328. package/lib/esm/render/RenderMaterial.d.ts +1 -1
  329. package/lib/esm/render/RenderMaterial.d.ts.map +1 -1
  330. package/lib/esm/render/RenderMaterial.js.map +1 -1
  331. package/lib/esm/render/RenderSystem.d.ts +4 -4
  332. package/lib/esm/render/RenderSystem.js +4 -4
  333. package/lib/esm/render/RenderSystem.js.map +1 -1
  334. package/lib/esm/render/RenderTarget.d.ts +1 -1
  335. package/lib/esm/render/RenderTarget.d.ts.map +1 -1
  336. package/lib/esm/render/RenderTarget.js +1 -1
  337. package/lib/esm/render/RenderTarget.js.map +1 -1
  338. package/lib/esm/render/VisibleFeature.d.ts +5 -5
  339. package/lib/esm/render/VisibleFeature.js.map +1 -1
  340. package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
  341. package/lib/esm/render/primitives/DisplayParams.js +2 -1
  342. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  343. package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -3
  344. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  345. package/lib/esm/render/webgl/BranchState.d.ts +3 -0
  346. package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
  347. package/lib/esm/render/webgl/BranchState.js +5 -0
  348. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  349. package/lib/esm/render/webgl/CachedGeometry.d.ts +32 -0
  350. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  351. package/lib/esm/render/webgl/CachedGeometry.js +69 -0
  352. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  353. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  354. package/lib/esm/render/webgl/DrawCommand.js +6 -4
  355. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  356. package/lib/esm/render/webgl/EDL.d.ts +40 -0
  357. package/lib/esm/render/webgl/EDL.d.ts.map +1 -0
  358. package/lib/esm/render/webgl/EDL.js +260 -0
  359. package/lib/esm/render/webgl/EDL.js.map +1 -0
  360. package/lib/esm/render/webgl/EdgeSettings.js +2 -2
  361. package/lib/esm/render/webgl/FrameBuffer.d.ts +4 -0
  362. package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
  363. package/lib/esm/render/webgl/FrameBuffer.js +9 -0
  364. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  365. package/lib/esm/render/webgl/FrustumUniforms.d.ts +7 -0
  366. package/lib/esm/render/webgl/FrustumUniforms.d.ts.map +1 -1
  367. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  368. package/lib/esm/render/webgl/Layer.js +2 -2
  369. package/lib/esm/render/webgl/LayerCommands.js +2 -2
  370. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  371. package/lib/esm/render/webgl/PlanarClassifier.js +9 -8
  372. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  373. package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -1
  374. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  375. package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
  376. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  377. package/lib/esm/render/webgl/PointCloud.js +2 -0
  378. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  379. package/lib/esm/render/webgl/RealityMesh.d.ts +3 -1
  380. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  381. package/lib/esm/render/webgl/RealityMesh.js +8 -3
  382. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  383. package/lib/esm/render/webgl/RealityModelUniforms.d.ts +9 -0
  384. package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -1
  385. package/lib/esm/render/webgl/RealityModelUniforms.js +50 -0
  386. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  387. package/lib/esm/render/webgl/RenderCommands.d.ts +2 -1
  388. package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
  389. package/lib/esm/render/webgl/RenderCommands.js +46 -38
  390. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  391. package/lib/esm/render/webgl/RenderFlags.d.ts +19 -17
  392. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  393. package/lib/esm/render/webgl/RenderFlags.js +8 -6
  394. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  395. package/lib/esm/render/webgl/SceneCompositor.d.ts +6 -1
  396. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  397. package/lib/esm/render/webgl/SceneCompositor.js +194 -77
  398. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  399. package/lib/esm/render/webgl/SolarShadowMap.js +3 -3
  400. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  401. package/lib/esm/render/webgl/SurfaceGeometry.js +5 -5
  402. package/lib/esm/render/webgl/Target.js +7 -7
  403. package/lib/esm/render/webgl/Target.js.map +1 -1
  404. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  405. package/lib/esm/render/webgl/Technique.js +18 -3
  406. package/lib/esm/render/webgl/Technique.js.map +1 -1
  407. package/lib/esm/render/webgl/TechniqueFlags.js +4 -4
  408. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  409. package/lib/esm/render/webgl/TechniqueId.d.ts +6 -2
  410. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  411. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  412. package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
  413. package/lib/esm/render/webgl/UniformHandle.js +1 -2
  414. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  415. package/lib/esm/render/webgl/VisibleTileFeatures.js +5 -5
  416. package/lib/esm/render/webgl/glsl/EDL.d.ts +14 -0
  417. package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -0
  418. package/lib/esm/render/webgl/glsl/EDL.js +253 -0
  419. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -0
  420. package/lib/esm/render/webgl/glsl/RenderPass.js +12 -12
  421. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  422. package/lib/esm/render/webgl/glsl/Surface.js +1 -1
  423. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  424. package/lib/esm/tile/BatchedTileIdMap.js +1 -1
  425. package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
  426. package/lib/esm/tile/DynamicIModelTile.js +1 -1
  427. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  428. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  429. package/lib/esm/tile/GltfReader.js +4 -2
  430. package/lib/esm/tile/GltfReader.js.map +1 -1
  431. package/lib/esm/tile/IModelTile.js +1 -1
  432. package/lib/esm/tile/IModelTile.js.map +1 -1
  433. package/lib/esm/tile/ImdlReader.d.ts +6 -0
  434. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  435. package/lib/esm/tile/ImdlReader.js +20 -7
  436. package/lib/esm/tile/ImdlReader.js.map +1 -1
  437. package/lib/esm/tile/OrbitGtTileTree.d.ts +14 -1
  438. package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
  439. package/lib/esm/tile/OrbitGtTileTree.js +30 -12
  440. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  441. package/lib/esm/tile/RealityModelTileTree.d.ts +4 -3
  442. package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
  443. package/lib/esm/tile/RealityModelTileTree.js +62 -54
  444. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  445. package/lib/esm/tile/RealityTileLoader.js +2 -2
  446. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  447. package/lib/esm/tile/RealityTileTree.d.ts +5 -0
  448. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  449. package/lib/esm/tile/RealityTileTree.js +9 -4
  450. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  451. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  452. package/lib/esm/tile/TileAdmin.js +15 -7
  453. package/lib/esm/tile/TileAdmin.js.map +1 -1
  454. package/lib/esm/tile/TileDrawArgs.js +1 -1
  455. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  456. package/lib/esm/tile/TileTreeReference.d.ts +3 -0
  457. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  458. package/lib/esm/tile/TileTreeReference.js +3 -0
  459. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  460. package/lib/esm/tile/map/ArcGisUtilities.d.ts +14 -1
  461. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  462. package/lib/esm/tile/map/ArcGisUtilities.js +57 -27
  463. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  464. package/lib/esm/tile/map/CesiumTerrainProvider.js +9 -9
  465. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  466. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
  467. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
  468. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
  469. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  470. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  471. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  472. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
  473. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  474. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
  475. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  476. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
  477. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  478. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
  479. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  480. package/lib/esm/tile/map/ImageryTileTree.d.ts +26 -1
  481. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  482. package/lib/esm/tile/map/ImageryTileTree.js +53 -4
  483. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  484. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  485. package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -2
  486. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  487. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +12 -2
  488. package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
  489. package/lib/esm/tile/map/MapLayerImageryProvider.js +16 -4
  490. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  491. package/lib/esm/tile/map/MapLayerSources.d.ts +3 -1
  492. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  493. package/lib/esm/tile/map/MapLayerSources.js +2 -0
  494. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  495. package/lib/esm/tile/map/MapTile.d.ts +5 -0
  496. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  497. package/lib/esm/tile/map/MapTile.js +33 -14
  498. package/lib/esm/tile/map/MapTile.js.map +1 -1
  499. package/lib/esm/tile/map/MapTileTree.d.ts +42 -3
  500. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  501. package/lib/esm/tile/map/MapTileTree.js +126 -9
  502. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  503. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
  504. package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
  505. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +26 -0
  506. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  507. package/lib/esm/tile/map/WmtsCapabilities.d.ts +23 -68
  508. package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
  509. package/lib/esm/tile/map/WmtsCapabilities.js +268 -259
  510. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  511. package/lib/esm/tools/ClipViewTool.js +2 -2
  512. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  513. package/lib/esm/tools/MeasureTool.js +2 -2
  514. package/lib/esm/tools/MeasureTool.js.map +1 -1
  515. package/lib/public/locales/en/iModelJs.json +2 -2
  516. package/package.json +20 -21
@@ -7,7 +7,7 @@
7
7
  * @module WebGL
8
8
  */
9
9
  Object.defineProperty(exports, "__esModule", { value: true });
10
- exports.SceneCompositor = void 0;
10
+ exports.SceneCompositor = exports.collectGeometryStatistics = exports.collectTextureStatistics = void 0;
11
11
  const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const core_geometry_1 = require("@itwin/core-geometry");
13
13
  const core_common_1 = require("@itwin/core-common");
@@ -29,10 +29,12 @@ const SolarShadowMap_1 = require("./SolarShadowMap");
29
29
  const System_1 = require("./System");
30
30
  const Texture_1 = require("./Texture");
31
31
  const RenderBuffer_1 = require("./RenderBuffer");
32
+ const EDL_1 = require("./EDL");
32
33
  function collectTextureStatistics(texture, stats) {
33
34
  if (undefined !== texture)
34
35
  stats.addTextureAttachment(texture.bytesUsed);
35
36
  }
37
+ exports.collectTextureStatistics = collectTextureStatistics;
36
38
  function collectMsBufferStatistics(msBuff, stats) {
37
39
  if (undefined !== msBuff)
38
40
  stats.addTextureAttachment(msBuff.bytesUsed);
@@ -301,6 +303,7 @@ function collectGeometryStatistics(geom, stats) {
301
303
  if (undefined !== geom)
302
304
  geom.collectStatistics(stats);
303
305
  }
306
+ exports.collectGeometryStatistics = collectGeometryStatistics;
304
307
  // Maintains the geometry used to execute screenspace operations for a SceneCompositor.
305
308
  class Geometry {
306
309
  collectStatistics(stats) {
@@ -519,6 +522,7 @@ class SceneCompositor {
519
522
  constructor(target) {
520
523
  this.target = target;
521
524
  this.solarShadowMap = new SolarShadowMap_1.SolarShadowMap(target);
525
+ this.eyeDomeLighting = new EDL_1.EyeDomeLighting(target);
522
526
  this._needHiddenEdges = false;
523
527
  }
524
528
  get needHiddenEdges() { return this._needHiddenEdges; }
@@ -549,6 +553,7 @@ class Compositor extends SceneCompositor {
549
553
  this._hiliteRenderState = new RenderState_1.RenderState();
550
554
  this._noDepthMaskRenderState = new RenderState_1.RenderState();
551
555
  this._backgroundMapRenderState = new RenderState_1.RenderState();
556
+ this._pointCloudRenderState = new RenderState_1.RenderState();
552
557
  this._debugStencil = 0; // 0 to draw stencil volumes normally, 1 to draw as opaque, 2 to draw blended
553
558
  this._haveVolumeClassifier = false;
554
559
  this._antialiasSamples = 1;
@@ -557,6 +562,7 @@ class Compositor extends SceneCompositor {
557
562
  this._frameBuffers = fbos;
558
563
  this._geom = geometry;
559
564
  this._opaqueRenderState.flags.depthTest = true;
565
+ this._pointCloudRenderState.flags.depthTest = true;
560
566
  this._translucentRenderState.flags.depthMask = false;
561
567
  this._translucentRenderState.flags.blend = this._translucentRenderState.flags.depthTest = true;
562
568
  this._translucentRenderState.blend.setBlendFuncSeparate(GL_1.GL.BlendFactor.One, GL_1.GL.BlendFactor.Zero, GL_1.GL.BlendFactor.One, GL_1.GL.BlendFactor.OneMinusSrcAlpha);
@@ -788,6 +794,12 @@ class Compositor extends SceneCompositor {
788
794
  frameBufferStack: System_1.System.instance.frameBufferStack,
789
795
  });
790
796
  this.target.frameStatsCollector.endTime("onRenderOpaqueTime");
797
+ // Render point cloud geometry with possible EDL (WebGL2 only)
798
+ if (System_1.System.instance.capabilities.isWebGL2) {
799
+ this.target.beginPerfMetricRecord("Render PointClouds");
800
+ this.renderPointClouds(commands, compositeFlags);
801
+ this.target.endPerfMetricRecord();
802
+ }
791
803
  // Render opaque geometry
792
804
  this.target.beginPerfMetricRecord("Render Opaque");
793
805
  this.renderOpaque(commands, compositeFlags, false);
@@ -796,7 +808,7 @@ class Compositor extends SceneCompositor {
796
808
  this.target.frameStatsCollector.beginTime("translucentTime");
797
809
  // Render translucent layers
798
810
  this.target.beginPerfMetricRecord("Render Translucent Layers");
799
- this.renderLayers(commands, needComposite, 6 /* TranslucentLayers */);
811
+ this.renderLayers(commands, needComposite, 7 /* TranslucentLayers */);
800
812
  this.target.endPerfMetricRecord();
801
813
  if (needComposite) {
802
814
  this._geom.composite.update(compositeFlags);
@@ -817,13 +829,13 @@ class Compositor extends SceneCompositor {
817
829
  // Render overlay Layers
818
830
  this.target.frameStatsCollector.beginTime("overlaysTime");
819
831
  this.target.beginPerfMetricRecord("Render Overlay Layers");
820
- this.renderLayers(commands, false, 10 /* OverlayLayers */);
832
+ this.renderLayers(commands, false, 11 /* OverlayLayers */);
821
833
  this.target.endPerfMetricRecord();
822
834
  this.target.frameStatsCollector.endTime("overlaysTime");
823
835
  this.target.popViewClip();
824
836
  }
825
837
  get fullHeight() { return this.target.viewRect.height; }
826
- drawForReadPixels(commands, sceneOverlays, overlayDecorations) {
838
+ drawForReadPixels(commands, sceneOverlays, worldOverlayDecorations, viewOverlayDecorations) {
827
839
  this.target.beginPerfMetricRecord("Render Background", true);
828
840
  if (!this.preDraw()) {
829
841
  this.target.endPerfMetricRecord(true); // End Render Background record if returning
@@ -846,28 +858,29 @@ class Compositor extends SceneCompositor {
846
858
  // Ensure it draws before any opaque geometry (including layers), without depth.
847
859
  this.target.beginPerfMetricRecord("Render background map", true);
848
860
  this.target.drawingBackgroundForReadPixels = true;
849
- this.renderLayers(commands, false, 14 /* BackgroundMap */);
861
+ this.renderLayers(commands, false, 15 /* BackgroundMap */);
850
862
  this.target.drawingBackgroundForReadPixels = false;
851
863
  this.target.endPerfMetricRecord(true);
852
864
  this.target.beginPerfMetricRecord("Render Opaque Layers", true);
853
865
  this.renderLayers(commands, false, 1 /* OpaqueLayers */);
854
866
  this.target.endPerfMetricRecord(true);
867
+ // PointClouds are rendered in Opaque pass for readPixels
855
868
  this.target.beginPerfMetricRecord("Render Opaque", true);
856
869
  this.renderOpaque(commands, 0 /* None */, true);
857
870
  this.target.endPerfMetricRecord(true);
858
871
  this.target.beginPerfMetricRecord("Render Translucent Layers", true);
859
- this.renderLayers(commands, false, 6 /* TranslucentLayers */);
872
+ this.renderLayers(commands, false, 7 /* TranslucentLayers */);
860
873
  this.target.endPerfMetricRecord(true);
861
874
  this.target.beginPerfMetricRecord("Render Overlay Layers", true);
862
- this.renderLayers(commands, false, 10 /* OverlayLayers */);
875
+ this.renderLayers(commands, false, 11 /* OverlayLayers */);
863
876
  this.target.endPerfMetricRecord(true);
864
877
  this.target.popViewClip();
865
878
  }
866
- if (0 === sceneOverlays.length && (undefined === overlayDecorations || 0 === overlayDecorations.length))
879
+ if (!sceneOverlays.length && !(worldOverlayDecorations === null || worldOverlayDecorations === void 0 ? void 0 : worldOverlayDecorations.length) && !(viewOverlayDecorations === null || viewOverlayDecorations === void 0 ? void 0 : viewOverlayDecorations.length))
867
880
  return;
868
881
  // Now populate the opaque passes with any pickable world overlays
869
882
  this.target.beginPerfMetricRecord("Overlay Draws", true);
870
- commands.initForPickOverlays(sceneOverlays, overlayDecorations);
883
+ commands.initForPickOverlays(sceneOverlays, worldOverlayDecorations, viewOverlayDecorations);
871
884
  if (commands.isEmpty) {
872
885
  this.target.endPerfMetricRecord(true); // End Overlay Draws record if returning
873
886
  return;
@@ -937,11 +950,13 @@ class Compositor extends SceneCompositor {
937
950
  && this._frameBuffers.isDisposed
938
951
  && this._geom.isDisposed
939
952
  && !this._haveVolumeClassifier
940
- && this.solarShadowMap.isDisposed;
953
+ && this.solarShadowMap.isDisposed
954
+ && this.eyeDomeLighting.isDisposed;
941
955
  }
942
956
  dispose() {
943
957
  this.reset();
944
958
  (0, core_bentley_1.dispose)(this.solarShadowMap);
959
+ (0, core_bentley_1.dispose)(this.eyeDomeLighting);
945
960
  }
946
961
  // Resets anything that depends on the dimensions of the render target.
947
962
  // Does *not* dispose the solar shadow map.
@@ -954,6 +969,7 @@ class Compositor extends SceneCompositor {
954
969
  (0, core_bentley_1.dispose)(this._frameBuffers);
955
970
  (0, core_bentley_1.dispose)(this._geom);
956
971
  this._haveVolumeClassifier = false;
972
+ this.eyeDomeLighting.reset();
957
973
  }
958
974
  init() {
959
975
  this.reset();
@@ -965,7 +981,8 @@ class Compositor extends SceneCompositor {
965
981
  if (this._depth !== undefined) {
966
982
  return this._textures.init(this._width, this._height, this._antialiasSamples)
967
983
  && this._frameBuffers.init(this._textures, this._depth, this._depthMS)
968
- && this._geom.init(this._textures);
984
+ && this._geom.init(this._textures)
985
+ && this.eyeDomeLighting.init(this._width, this._height, this._depth);
969
986
  }
970
987
  return false;
971
988
  }
@@ -984,27 +1001,27 @@ class Compositor extends SceneCompositor {
984
1001
  return this._textures.disableMultiSampling();
985
1002
  }
986
1003
  renderBackgroundMap(commands, needComposite) {
987
- const cmds = commands.getCommands(14 /* BackgroundMap */);
1004
+ const cmds = commands.getCommands(15 /* BackgroundMap */);
988
1005
  if (0 === cmds.length) {
989
1006
  return;
990
1007
  }
991
1008
  const fbStack = System_1.System.instance.frameBufferStack;
992
1009
  const fbo = this.getBackgroundFbo(needComposite);
993
1010
  fbStack.execute(fbo, true, this.useMsBuffers, () => {
994
- System_1.System.instance.applyRenderState(this.getRenderState(14 /* BackgroundMap */));
995
- this.target.techniques.execute(this.target, cmds, 14 /* BackgroundMap */);
1011
+ System_1.System.instance.applyRenderState(this.getRenderState(15 /* BackgroundMap */));
1012
+ this.target.techniques.execute(this.target, cmds, 15 /* BackgroundMap */);
996
1013
  });
997
1014
  }
998
1015
  renderSkyBox(commands, needComposite) {
999
- const cmds = commands.getCommands(13 /* SkyBox */);
1016
+ const cmds = commands.getCommands(14 /* SkyBox */);
1000
1017
  if (0 === cmds.length) {
1001
1018
  return;
1002
1019
  }
1003
1020
  const fbStack = System_1.System.instance.frameBufferStack;
1004
1021
  const fbo = this.getBackgroundFbo(needComposite);
1005
1022
  fbStack.execute(fbo, true, this.useMsBuffers, () => {
1006
- System_1.System.instance.applyRenderState(this.getRenderState(13 /* SkyBox */));
1007
- this.target.techniques.execute(this.target, cmds, 13 /* SkyBox */);
1023
+ System_1.System.instance.applyRenderState(this.getRenderState(14 /* SkyBox */));
1024
+ this.target.techniques.execute(this.target, cmds, 14 /* SkyBox */);
1008
1025
  });
1009
1026
  }
1010
1027
  renderBackground(commands, needComposite) {
@@ -1126,7 +1143,7 @@ class Compositor extends SceneCompositor {
1126
1143
  System_1.System.instance.frameBufferStack.execute(this._frameBuffers.stencilSet, false, this.useMsBuffers, () => {
1127
1144
  this.target.pushState(this._vcBranchState);
1128
1145
  System_1.System.instance.applyRenderState(this._vcSetStencilRenderState);
1129
- this.target.techniques.executeForIndexedClassifier(this.target, cmdsByIndex, 5 /* Classification */);
1146
+ this.target.techniques.executeForIndexedClassifier(this.target, cmdsByIndex, 6 /* Classification */);
1130
1147
  this.target.popBranch();
1131
1148
  });
1132
1149
  // Process the stencil for the pick data.
@@ -1134,8 +1151,8 @@ class Compositor extends SceneCompositor {
1134
1151
  }
1135
1152
  renderVolumeClassification(commands, compositeFlags, renderForReadPixels) {
1136
1153
  // Sometimes we need to render the classifier stencil volumes one at a time, if so draw them from the cmdsByIndex list
1137
- const cmds = commands.getCommands(5 /* Classification */);
1138
- const cmdsByIndex = commands.getCommands(16 /* ClassificationByIndex */);
1154
+ const cmds = commands.getCommands(6 /* Classification */);
1155
+ const cmdsByIndex = commands.getCommands(17 /* ClassificationByIndex */);
1139
1156
  let numCmdsPerClassifier = 0;
1140
1157
  for (const cmd of cmdsByIndex) { // Figure out how many commands there are per index/primitive
1141
1158
  numCmdsPerClassifier++;
@@ -1144,7 +1161,7 @@ class Compositor extends SceneCompositor {
1144
1161
  break;
1145
1162
  }
1146
1163
  }
1147
- const cmdsForVC = commands.getCommands(19 /* VolumeClassifiedRealityData */);
1164
+ const cmdsForVC = commands.getCommands(20 /* VolumeClassifiedRealityData */);
1148
1165
  if (!this.target.activeVolumeClassifierProps || (renderForReadPixels && 0 === cmds.length) || 0 === cmdsForVC.length)
1149
1166
  return;
1150
1167
  let outsideFlags = this.target.activeVolumeClassifierProps.flags.outside;
@@ -1164,13 +1181,13 @@ class Compositor extends SceneCompositor {
1164
1181
  if (this._debugStencil > 0) {
1165
1182
  fbStack.execute(fboColorAndZ, true, this.useMsBuffers, () => {
1166
1183
  if (1 === this._debugStencil) {
1167
- System_1.System.instance.applyRenderState(this.getRenderState(4 /* OpaqueGeneral */));
1168
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
1184
+ System_1.System.instance.applyRenderState(this.getRenderState(5 /* OpaqueGeneral */));
1185
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
1169
1186
  }
1170
1187
  else {
1171
1188
  this.target.pushState(this._vcBranchState);
1172
1189
  System_1.System.instance.applyRenderState(this._vcDebugRenderState);
1173
- this.target.techniques.execute(this.target, cmds, 5 /* Classification */);
1190
+ this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
1174
1191
  this.target.popBranch();
1175
1192
  }
1176
1193
  });
@@ -1235,7 +1252,7 @@ class Compositor extends SceneCompositor {
1235
1252
  System_1.System.instance.frameBufferStack.execute(this._frameBuffers.altZOnly, false, this.useMsBuffers, () => {
1236
1253
  this.target.pushState(this._vcBranchState);
1237
1254
  System_1.System.instance.applyRenderState(this._vcSetStencilRenderState);
1238
- this.target.techniques.execute(this.target, cmds, 5 /* Classification */);
1255
+ this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
1239
1256
  // After we create the stencil we need to clear the Z for the next step (so also must turn on z writing temporarily).
1240
1257
  this._vcSetStencilRenderState.flags.depthMask = true;
1241
1258
  System_1.System.instance.applyRenderState(this._vcSetStencilRenderState);
@@ -1274,7 +1291,7 @@ class Compositor extends SceneCompositor {
1274
1291
  fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {
1275
1292
  this.target.pushState(this._vcBranchState);
1276
1293
  System_1.System.instance.applyRenderState(this._vcSetStencilRenderState);
1277
- this.target.techniques.execute(this.target, cmds, 5 /* Classification */);
1294
+ this.target.techniques.execute(this.target, cmds, 6 /* Classification */);
1278
1295
  this.target.popBranch();
1279
1296
  System_1.System.instance.bindTexture2d(RenderFlags_1.TextureUnit.Two, undefined);
1280
1297
  System_1.System.instance.bindTexture2d(RenderFlags_1.TextureUnit.Five, undefined);
@@ -1330,7 +1347,7 @@ class Compositor extends SceneCompositor {
1330
1347
  fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {
1331
1348
  this.target.pushState(this._vcBranchState);
1332
1349
  System_1.System.instance.applyRenderState(this._vcSetStencilRenderState);
1333
- this.target.techniques.execute(this.target, nxtCmds, 5 /* Classification */);
1350
+ this.target.techniques.execute(this.target, nxtCmds, 6 /* Classification */);
1334
1351
  this.target.popBranch();
1335
1352
  });
1336
1353
  // Process the stencil. Just render the volume normally (us opaque pass), but use blending to modify the source alpha that gets written to the blend texture.
@@ -1341,7 +1358,7 @@ class Compositor extends SceneCompositor {
1341
1358
  this._vcColorRenderState.flags.cull = true;
1342
1359
  System_1.System.instance.applyRenderState(this._vcColorRenderState);
1343
1360
  this.target.activeVolumeClassifierTexture = undefined; // make sure this texture is undefined so we do not use the planar classification shader
1344
- this.target.techniques.execute(this.target, nxtCmds, 4 /* OpaqueGeneral */);
1361
+ this.target.techniques.execute(this.target, nxtCmds, 5 /* OpaqueGeneral */);
1345
1362
  this._vcColorRenderState.flags.cull = false;
1346
1363
  this.target.popBranch();
1347
1364
  });
@@ -1367,7 +1384,7 @@ class Compositor extends SceneCompositor {
1367
1384
  System_1.System.instance.context.clearDepth(1.0);
1368
1385
  System_1.System.instance.context.clear(GL_1.GL.BufferBit.Depth);
1369
1386
  this.target.activeVolumeClassifierTexture = this._geom.volClassCopyZ.texture;
1370
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
1387
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
1371
1388
  this.target.activeVolumeClassifierTexture = undefined;
1372
1389
  this._vcColorRenderState.flags.depthTest = false;
1373
1390
  this._vcColorRenderState.flags.depthMask = false;
@@ -1384,8 +1401,8 @@ class Compositor extends SceneCompositor {
1384
1401
  // and this stage can be skipped. In order for this to work the list of commands needs to get reduced to only the ones which draw hilited volumes.
1385
1402
  // We cannot use the hillite shader to draw them since it doesn't handle logZ properly (it doesn't need to since it is only used elsewhere when Z write is turned off)
1386
1403
  // and we don't really want another whole set of hilite shaders just for this.
1387
- const cmdsSelected = (0, DrawCommand_1.extractHilitedVolumeClassifierCommands)(this.target.hilites, commands.getCommands(15 /* HiliteClassification */));
1388
- commands.replaceCommands(15 /* HiliteClassification */, cmdsSelected); // replace the hilite command list for use in hilite pass as well.
1404
+ const cmdsSelected = (0, DrawCommand_1.extractHilitedVolumeClassifierCommands)(this.target.hilites, commands.getCommands(16 /* HiliteClassification */));
1405
+ commands.replaceCommands(16 /* HiliteClassification */, cmdsSelected); // replace the hilite command list for use in hilite pass as well.
1389
1406
  // if (cmdsSelected.length > 0 && insideFlags !== this.target.activeVolumeClassifierProps!.flags.selected) {
1390
1407
  if (!doColorByElement && cmdsSelected.length > 0 && insideFlags !== core_common_1.SpatialClassifierInsideDisplay.Hilite) { // assume selected ones are always hilited
1391
1408
  // Set the stencil using just the hilited volume classifiers.
@@ -1397,7 +1414,7 @@ class Compositor extends SceneCompositor {
1397
1414
  System_1.System.instance.context.clearStencil(0);
1398
1415
  System_1.System.instance.context.clear(GL_1.GL.BufferBit.Stencil);
1399
1416
  }
1400
- this.target.techniques.execute(this.target, cmdsSelected, 5 /* Classification */);
1417
+ this.target.techniques.execute(this.target, cmdsSelected, 6 /* Classification */);
1401
1418
  this.target.popBranch();
1402
1419
  });
1403
1420
  if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)
@@ -1436,7 +1453,7 @@ class Compositor extends SceneCompositor {
1436
1453
  fbStack.execute(this._frameBuffers.stencilSet, false, this.useMsBuffers, () => {
1437
1454
  this.target.pushState(this._vcBranchState);
1438
1455
  System_1.System.instance.applyRenderState(this._vcSetStencilRenderState);
1439
- this.target.techniques.executeForIndexedClassifier(this.target, flashedClassifierCmds, 4 /* OpaqueGeneral */);
1456
+ this.target.techniques.executeForIndexedClassifier(this.target, flashedClassifierCmds, 5 /* OpaqueGeneral */);
1440
1457
  this.target.popBranch();
1441
1458
  });
1442
1459
  // Process the stencil to flash the contents.
@@ -1458,30 +1475,30 @@ class Compositor extends SceneCompositor {
1458
1475
  system.context.clearColor(0, 0, 0, 0);
1459
1476
  system.context.clear(GL_1.GL.BufferBit.Color);
1460
1477
  // Draw the normal hilite geometry.
1461
- this.drawPass(commands, 9 /* Hilite */);
1478
+ this.drawPass(commands, 10 /* Hilite */);
1462
1479
  });
1463
1480
  // Process planar classifiers
1464
- const planarClassifierCmds = commands.getCommands(17 /* HilitePlanarClassification */);
1481
+ const planarClassifierCmds = commands.getCommands(18 /* HilitePlanarClassification */);
1465
1482
  if (0 !== planarClassifierCmds.length) {
1466
1483
  system.frameBufferStack.execute(this._frameBuffers.hiliteUsingStencil, true, false, () => {
1467
1484
  system.applyRenderState(this._opaqueRenderState);
1468
- this.target.techniques.execute(this.target, planarClassifierCmds, 17 /* HilitePlanarClassification */);
1485
+ this.target.techniques.execute(this.target, planarClassifierCmds, 18 /* HilitePlanarClassification */);
1469
1486
  });
1470
1487
  }
1471
1488
  // Process the volume classifiers.
1472
- const vcHiliteCmds = commands.getCommands(15 /* HiliteClassification */);
1489
+ const vcHiliteCmds = commands.getCommands(16 /* HiliteClassification */);
1473
1490
  if (0 !== vcHiliteCmds.length && undefined !== this._vcBranchState) {
1474
1491
  // Set the stencil for the given classifier stencil volume.
1475
1492
  system.frameBufferStack.execute(this._frameBuffers.stencilSet, false, false, () => {
1476
1493
  this.target.pushState(this._vcBranchState);
1477
1494
  system.applyRenderState(this._vcSetStencilRenderState);
1478
- this.target.techniques.execute(this.target, vcHiliteCmds, 9 /* Hilite */);
1495
+ this.target.techniques.execute(this.target, vcHiliteCmds, 10 /* Hilite */);
1479
1496
  this.target.popBranch();
1480
1497
  });
1481
1498
  // Process the stencil for the hilite data.
1482
1499
  system.frameBufferStack.execute(this._frameBuffers.hiliteUsingStencil, true, false, () => {
1483
1500
  system.applyRenderState(this._vcPickDataRenderState);
1484
- this.target.techniques.execute(this.target, vcHiliteCmds, 9 /* Hilite */);
1501
+ this.target.techniques.execute(this.target, vcHiliteCmds, 10 /* Hilite */);
1485
1502
  });
1486
1503
  }
1487
1504
  }
@@ -1493,27 +1510,29 @@ class Compositor extends SceneCompositor {
1493
1510
  getRenderState(pass) {
1494
1511
  switch (pass) {
1495
1512
  case 1 /* OpaqueLayers */:
1496
- case 6 /* TranslucentLayers */:
1497
- case 10 /* OverlayLayers */:
1513
+ case 7 /* TranslucentLayers */:
1514
+ case 11 /* OverlayLayers */:
1498
1515
  // NB: During pick, we don't want blending - it will mess up our pick buffer data and we don't care about the color data.
1499
1516
  // During normal draw, we don't use the pick buffers for anything, and we want color blending.
1500
1517
  // (We get away with this because surfaces always draw before their edges, and we're not depth-testing, so edges always draw atop surfaces without pick buffer testing).
1501
1518
  this._layerRenderState.flags.blend = !this.target.isReadPixelsInProgress;
1502
1519
  // Transparent non-overlay Layers are drawn between opaque and translucent passes. Test depth, don't write it, so that they blend with opaque.
1503
- this._layerRenderState.flags.depthMask = 6 /* TranslucentLayers */ !== pass;
1504
- this._layerRenderState.depthFunc = (6 /* TranslucentLayers */ === pass) ? GL_1.GL.DepthFunc.Default : GL_1.GL.DepthFunc.Always;
1520
+ this._layerRenderState.flags.depthMask = 7 /* TranslucentLayers */ !== pass;
1521
+ this._layerRenderState.depthFunc = (7 /* TranslucentLayers */ === pass) ? GL_1.GL.DepthFunc.Default : GL_1.GL.DepthFunc.Always;
1505
1522
  return this._layerRenderState;
1506
1523
  case 2 /* OpaqueLinear */:
1507
1524
  case 3 /* OpaquePlanar */:
1508
- case 4 /* OpaqueGeneral */:
1509
- case 17 /* HilitePlanarClassification */:
1525
+ case 5 /* OpaqueGeneral */:
1526
+ case 18 /* HilitePlanarClassification */:
1510
1527
  return this._opaqueRenderState;
1511
- case 7 /* Translucent */:
1528
+ case 8 /* Translucent */:
1512
1529
  return this._translucentRenderState;
1513
- case 9 /* Hilite */:
1530
+ case 10 /* Hilite */:
1514
1531
  return this._hiliteRenderState;
1515
- case 14 /* BackgroundMap */:
1532
+ case 15 /* BackgroundMap */:
1516
1533
  return this._backgroundMapRenderState;
1534
+ case 4 /* PointClouds */:
1535
+ return this._pointCloudRenderState;
1517
1536
  default:
1518
1537
  return this._noDepthMaskRenderState;
1519
1538
  }
@@ -1655,7 +1674,8 @@ class MRTFrameBuffers extends FrameBuffers {
1655
1674
  && undefined === this.idsAndZ
1656
1675
  && undefined === this.idsAndAltZ
1657
1676
  && undefined === this.idsAndZComposite
1658
- && undefined === this.idsAndAltZComposite;
1677
+ && undefined === this.idsAndAltZComposite
1678
+ && undefined === this.edlDrawCol;
1659
1679
  }
1660
1680
  dispose() {
1661
1681
  super.dispose();
@@ -1670,6 +1690,7 @@ class MRTFrameBuffers extends FrameBuffers {
1670
1690
  this.idsAndAltZ = (0, core_bentley_1.dispose)(this.idsAndAltZ);
1671
1691
  this.idsAndZComposite = (0, core_bentley_1.dispose)(this.idsAndZComposite);
1672
1692
  this.idsAndAltZComposite = (0, core_bentley_1.dispose)(this.idsAndAltZComposite);
1693
+ this.edlDrawCol = (0, core_bentley_1.dispose)(this.edlDrawCol);
1673
1694
  }
1674
1695
  }
1675
1696
  class MRTGeometry extends Geometry {
@@ -1749,6 +1770,101 @@ class MRTCompositor extends Compositor {
1749
1770
  system.context.clear(GL_1.GL.BufferBit.Depth);
1750
1771
  });
1751
1772
  }
1773
+ renderPointClouds(commands, compositeFlags) {
1774
+ var _a, _b;
1775
+ const is3d = 2 /* Perspective */ === this.target.uniforms.frustum.type;
1776
+ // separate individual point clouds and get their point cloud settings
1777
+ const pointClouds = [];
1778
+ let pcs;
1779
+ const cmds = commands.getCommands(4 /* PointClouds */);
1780
+ let curPC;
1781
+ let pushDepth = 0;
1782
+ for (const cmd of cmds) {
1783
+ if ("pushBranch" === cmd.opcode) { // should be first command
1784
+ ++pushDepth;
1785
+ if (pushDepth === 1) {
1786
+ pcs = (_a = cmd.branch.branch.realityModelDisplaySettings) === null || _a === void 0 ? void 0 : _a.pointCloud;
1787
+ this.target.uniforms.realityModel.pointCloud.updateRange(cmd.branch.branch.realityModelRange, this.target, cmd.branch.localToWorldTransform, is3d);
1788
+ pointClouds.push(curPC = { pcs, cmds: [cmd] });
1789
+ }
1790
+ else {
1791
+ (0, core_bentley_1.assert)(undefined !== curPC);
1792
+ curPC.cmds.push(cmd);
1793
+ }
1794
+ }
1795
+ else {
1796
+ if ("popBranch" === cmd.opcode)
1797
+ --pushDepth;
1798
+ (0, core_bentley_1.assert)(undefined !== curPC);
1799
+ curPC.cmds.push(cmd);
1800
+ }
1801
+ }
1802
+ const needComposite = 0 /* None */ !== compositeFlags;
1803
+ const fbo = (needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor);
1804
+ const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;
1805
+ const system = System_1.System.instance;
1806
+ const fbStack = system.frameBufferStack;
1807
+ this._readPickDataFromPingPong = false;
1808
+ for (const pc of pointClouds) {
1809
+ pcs = pc.pcs;
1810
+ let edlOn = (pcs === null || pcs === void 0 ? void 0 : pcs.edlMode) !== "off" && is3d;
1811
+ if (edlOn) {
1812
+ if (undefined === this._textures.hilite)
1813
+ edlOn = false;
1814
+ else {
1815
+ // create fbo on fly if not present, or has changed (from MS)
1816
+ // ###TODO consider not drawing point clouds to MS buffers, at least if EDL, it isn't worth the overhead.
1817
+ // would have to blit depth before draw, use depth for draw, then run shader to copy depth back to MSAA
1818
+ // at end, wherever color buf changed (test alpha, else discard)
1819
+ // this would also simplify this code considerably
1820
+ let drawColBufs;
1821
+ if (undefined !== this._fbos.edlDrawCol)
1822
+ drawColBufs = this._fbos.edlDrawCol.getColorTargets(useMsBuffers, 0);
1823
+ if (undefined === this._fbos.edlDrawCol || this._textures.hilite !== (drawColBufs === null || drawColBufs === void 0 ? void 0 : drawColBufs.tex) || this._textures.hiliteMsBuff !== drawColBufs.msBuf) {
1824
+ this._fbos.edlDrawCol = (0, core_bentley_1.dispose)(this._fbos.edlDrawCol);
1825
+ const filters = [GL_1.GL.MultiSampling.Filter.Linear];
1826
+ if (useMsBuffers)
1827
+ this._fbos.edlDrawCol = FrameBuffer_1.FrameBuffer.create([this._textures.hilite], this._depth, useMsBuffers && this._textures.hiliteMsBuff ? [this._textures.hiliteMsBuff] : undefined, filters, this._depthMS);
1828
+ else
1829
+ this._fbos.edlDrawCol = FrameBuffer_1.FrameBuffer.create([this._textures.hilite], this._depth);
1830
+ }
1831
+ if (undefined === this._fbos.edlDrawCol)
1832
+ edlOn = false;
1833
+ else { // can draw EDL
1834
+ // first draw pointcloud to borrowed hilite texture(MS) and regular depth(MS) buffers
1835
+ fbStack.execute(this._fbos.edlDrawCol, true, useMsBuffers, () => {
1836
+ system.context.clearColor(0, 0, 0, 0);
1837
+ system.context.clear(GL_1.GL.BufferBit.Color);
1838
+ system.applyRenderState(this.getRenderState(4 /* PointClouds */));
1839
+ this.target.techniques.execute(this.target, pc.cmds, 4 /* PointClouds */);
1840
+ });
1841
+ if (useMsBuffers)
1842
+ this._fbos.edlDrawCol.blitMsBuffersToTextures(true, 0); // need to read the non-MS depth and hilite buffers
1843
+ // next process buffers to generate EDL (depth buffer is passed during init)
1844
+ this.target.beginPerfMetricRecord("Calc EDL"); // ### todo keep? (probably)
1845
+ const sts = this.eyeDomeLighting.draw({
1846
+ edlMode: ((_b = pc.pcs) === null || _b === void 0 ? void 0 : _b.edlMode) === "full" ? EDL_1.EDLMode.Full : EDL_1.EDLMode.On,
1847
+ edlFilter: !!(pcs === null || pcs === void 0 ? void 0 : pcs.edlFilter),
1848
+ useMsBuffers,
1849
+ inputTex: this._textures.hilite,
1850
+ curFbo: fbo,
1851
+ });
1852
+ this.target.endPerfMetricRecord();
1853
+ if (!sts) {
1854
+ edlOn = false;
1855
+ }
1856
+ }
1857
+ }
1858
+ }
1859
+ if (!edlOn) {
1860
+ // draw the regular way
1861
+ fbStack.execute(fbo, true, useMsBuffers, () => {
1862
+ system.applyRenderState(this.getRenderState(4 /* PointClouds */));
1863
+ this.target.techniques.execute(this.target, pc.cmds, 4 /* PointClouds */);
1864
+ });
1865
+ }
1866
+ }
1867
+ }
1752
1868
  renderOpaque(commands, compositeFlags, renderForReadPixels) {
1753
1869
  if (0 /* None */ !== (compositeFlags & 4 /* AmbientOcclusion */) && !renderForReadPixels) {
1754
1870
  this.renderOpaqueAO(commands);
@@ -1764,7 +1880,8 @@ class MRTCompositor extends Compositor {
1764
1880
  this.drawPass(commands, 2 /* OpaqueLinear */);
1765
1881
  this.drawPass(commands, 3 /* OpaquePlanar */, true);
1766
1882
  if (renderForReadPixels) {
1767
- this.drawPass(commands, 4 /* OpaqueGeneral */, true);
1883
+ this.drawPass(commands, 4 /* PointClouds */, true); // don't need EDL for this
1884
+ this.drawPass(commands, 5 /* OpaqueGeneral */, true);
1768
1885
  if (useMsBuffers)
1769
1886
  fbo.blitMsBuffersToTextures(true);
1770
1887
  }
@@ -1774,16 +1891,17 @@ class MRTCompositor extends Compositor {
1774
1891
  if (!renderForReadPixels) {
1775
1892
  fbo = (needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor);
1776
1893
  fbStack.execute(fbo, true, useMsBuffers, () => {
1777
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
1778
- this.drawPass(commands, 8 /* HiddenEdge */, false);
1894
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
1895
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
1779
1896
  });
1897
+ // assume we are done with MS at this point, so update the non-MS buffers
1780
1898
  if (useMsBuffers)
1781
1899
  fbo.blitMsBuffersToTextures(needComposite);
1782
1900
  }
1783
1901
  }
1784
1902
  renderOpaqueAO(commands) {
1785
1903
  const fbStack = System_1.System.instance.frameBufferStack;
1786
- const haveHiddenEdges = 0 !== commands.getCommands(8 /* HiddenEdge */).length;
1904
+ const haveHiddenEdges = 0 !== commands.getCommands(9 /* HiddenEdge */).length;
1787
1905
  // Output the linear, planar, and pickable surfaces to color and pick data buffers.
1788
1906
  let fbo = this._fbos.opaqueAndCompositeAll;
1789
1907
  const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;
@@ -1792,7 +1910,7 @@ class MRTCompositor extends Compositor {
1792
1910
  this.drawPass(commands, 2 /* OpaqueLinear */);
1793
1911
  this.drawPass(commands, 3 /* OpaquePlanar */, true);
1794
1912
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
1795
- this.drawPass(commands, 4 /* OpaqueGeneral */, true);
1913
+ this.drawPass(commands, 5 /* OpaqueGeneral */, true);
1796
1914
  this._primitiveDrawState = PrimitiveDrawState.Both;
1797
1915
  if (useMsBuffers)
1798
1916
  fbo.blitMsBuffersToTextures(true);
@@ -1802,9 +1920,9 @@ class MRTCompositor extends Compositor {
1802
1920
  fbo = this._fbos.opaqueAndCompositeColor;
1803
1921
  fbStack.execute(fbo, true, useMsBuffers, () => {
1804
1922
  this._primitiveDrawState = PrimitiveDrawState.NonPickable;
1805
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
1923
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
1806
1924
  if (haveHiddenEdges)
1807
- this.drawPass(commands, 8 /* HiddenEdge */, false);
1925
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
1808
1926
  this._primitiveDrawState = PrimitiveDrawState.Both;
1809
1927
  });
1810
1928
  if (useMsBuffers)
@@ -1828,7 +1946,7 @@ class MRTCompositor extends Compositor {
1828
1946
  fbo = this._fbos.opaqueAndCompositeAllHidden;
1829
1947
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
1830
1948
  fbStack.execute(fbo, true, useMsBuffers, () => {
1831
- this.drawPass(commands, 8 /* HiddenEdge */, false);
1949
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
1832
1950
  });
1833
1951
  this._primitiveDrawState = PrimitiveDrawState.Both;
1834
1952
  if (useMsBuffers) {
@@ -1858,13 +1976,13 @@ class MRTCompositor extends Compositor {
1858
1976
  if (renderForReadPixels || needAO) {
1859
1977
  this._readPickDataFromPingPong = true;
1860
1978
  fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeAll : this._fbos.opaqueAll, true, this.useMsBuffers, () => {
1861
- this.drawPass(commands, 4 /* OpaqueGeneral */, true, 19 /* VolumeClassifiedRealityData */);
1979
+ this.drawPass(commands, 5 /* OpaqueGeneral */, true, 20 /* VolumeClassifiedRealityData */);
1862
1980
  });
1863
1981
  }
1864
1982
  else {
1865
1983
  this._readPickDataFromPingPong = false;
1866
1984
  fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor, true, this.useMsBuffers, () => {
1867
- this.drawPass(commands, 4 /* OpaqueGeneral */, false, 19 /* VolumeClassifiedRealityData */);
1985
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false, 20 /* VolumeClassifiedRealityData */);
1868
1986
  });
1869
1987
  }
1870
1988
  }
@@ -1874,7 +1992,7 @@ class MRTCompositor extends Compositor {
1874
1992
  : (needComposite ? this._fbos.idsAndAltZComposite : this._fbos.idsAndAltZ));
1875
1993
  System_1.System.instance.frameBufferStack.execute(fbo, true, false, () => {
1876
1994
  System_1.System.instance.applyRenderState(state);
1877
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
1995
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
1878
1996
  });
1879
1997
  this._readPickDataFromPingPong = false;
1880
1998
  }
@@ -1887,7 +2005,7 @@ class MRTCompositor extends Compositor {
1887
2005
  }
1888
2006
  renderTranslucent(commands) {
1889
2007
  System_1.System.instance.frameBufferStack.execute(this._fbos.translucent, true, false, () => {
1890
- this.drawPass(commands, 7 /* Translucent */);
2008
+ this.drawPass(commands, 8 /* Translucent */);
1891
2009
  });
1892
2010
  }
1893
2011
  pingPong() {
@@ -1983,7 +2101,7 @@ class MPCompositor extends Compositor {
1983
2101
  switch (pass) {
1984
2102
  case 2 /* OpaqueLinear */:
1985
2103
  case 3 /* OpaquePlanar */:
1986
- case 4 /* OpaqueGeneral */:
2104
+ case 5 /* OpaqueGeneral */:
1987
2105
  return this._drawMultiPassDepth ? this._opaqueRenderState : this._opaqueRenderStateNoZWt;
1988
2106
  }
1989
2107
  return super.getRenderState(pass);
@@ -2008,6 +2126,7 @@ class MPCompositor extends Compositor {
2008
2126
  }
2009
2127
  clearHiddenPick() {
2010
2128
  }
2129
+ renderPointClouds(_commands, _compositeFlags) { }
2011
2130
  renderOpaque(commands, compositeFlags, renderForReadPixels) {
2012
2131
  if (0 /* None */ !== (compositeFlags & 4 /* AmbientOcclusion */) && !renderForReadPixels) {
2013
2132
  this.renderOpaqueAO(commands);
@@ -2021,36 +2140,36 @@ class MPCompositor extends Compositor {
2021
2140
  this.drawOpaquePass(colorFbo, commands, 2 /* OpaqueLinear */, false);
2022
2141
  this.drawOpaquePass(colorFbo, commands, 3 /* OpaquePlanar */, true);
2023
2142
  if (renderForReadPixels || needAO)
2024
- this.drawOpaquePass(colorFbo, commands, 4 /* OpaqueGeneral */, true);
2143
+ this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true);
2025
2144
  this._readPickDataFromPingPong = false;
2026
2145
  // The general pass (and following) will not bother to write to pick buffers and so can read from the actual pick buffers.
2027
2146
  if (!renderForReadPixels) {
2028
2147
  System_1.System.instance.frameBufferStack.execute(colorFbo, true, false, () => {
2029
2148
  this._drawMultiPassDepth = true; // for OpaqueGeneral
2030
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
2031
- this.drawPass(commands, 8 /* HiddenEdge */, false);
2149
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
2150
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
2032
2151
  });
2033
2152
  }
2034
2153
  }
2035
2154
  renderOpaqueAO(commands) {
2036
2155
  const fbStack = System_1.System.instance.frameBufferStack;
2037
- const haveHiddenEdges = 0 !== commands.getCommands(8 /* HiddenEdge */).length;
2156
+ const haveHiddenEdges = 0 !== commands.getCommands(9 /* HiddenEdge */).length;
2038
2157
  // Output the linear, planar, and pickable surfaces to color and pick data buffers.
2039
2158
  this._readPickDataFromPingPong = true;
2040
2159
  const colorFbo = this._fbos.opaqueAndCompositeColor;
2041
2160
  this.drawOpaquePass(colorFbo, commands, 2 /* OpaqueLinear */, false);
2042
2161
  this.drawOpaquePass(colorFbo, commands, 3 /* OpaquePlanar */, true);
2043
2162
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
2044
- this.drawOpaquePass(colorFbo, commands, 4 /* OpaqueGeneral */, true);
2163
+ this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true);
2045
2164
  this._primitiveDrawState = PrimitiveDrawState.Both;
2046
2165
  this._readPickDataFromPingPong = false;
2047
2166
  // Output the non-pickable surfaces and hidden edges to just the color buffer.
2048
2167
  fbStack.execute(colorFbo, true, false, () => {
2049
2168
  this._drawMultiPassDepth = true; // for OpaqueGeneral
2050
2169
  this._primitiveDrawState = PrimitiveDrawState.NonPickable;
2051
- this.drawPass(commands, 4 /* OpaqueGeneral */, false);
2170
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false);
2052
2171
  if (haveHiddenEdges)
2053
- this.drawPass(commands, 8 /* HiddenEdge */, false);
2172
+ this.drawPass(commands, 9 /* HiddenEdge */, false);
2054
2173
  this._primitiveDrawState = PrimitiveDrawState.Both;
2055
2174
  });
2056
2175
  if (haveHiddenEdges) {
@@ -2061,10 +2180,10 @@ class MPCompositor extends Compositor {
2061
2180
  this._primitiveDrawState = PrimitiveDrawState.Pickable;
2062
2181
  // Since we only need to draw color and depthAndOrder instead of calling drawOpaquePass just do what we need here.
2063
2182
  this._drawMultiPassDepth = true;
2064
- fbStack.execute(colorFbo, true, false, () => this.drawPass(commands, 8 /* HiddenEdge */, false));
2183
+ fbStack.execute(colorFbo, true, false, () => this.drawPass(commands, 9 /* HiddenEdge */, false));
2065
2184
  this._drawMultiPassDepth = false;
2066
2185
  this._currentRenderTargetIndex = 2;
2067
- fbStack.execute(this._fbos.revealage, true, false, () => this.drawPass(commands, 8 /* HiddenEdge */, false));
2186
+ fbStack.execute(this._fbos.revealage, true, false, () => this.drawPass(commands, 9 /* HiddenEdge */, false));
2068
2187
  this._currentRenderTargetIndex = 0;
2069
2188
  this._readPickDataFromPingPong = false;
2070
2189
  this._primitiveDrawState = PrimitiveDrawState.Both;
@@ -2085,7 +2204,7 @@ class MPCompositor extends Compositor {
2085
2204
  const colorFbo = needComposite ? this._fbos.opaqueAndCompositeColor : this._fbos.opaqueColor;
2086
2205
  if (renderForReadPixels || needAO) {
2087
2206
  this._readPickDataFromPingPong = true;
2088
- this.drawOpaquePass(colorFbo, commands, 4 /* OpaqueGeneral */, true, 19 /* VolumeClassifiedRealityData */);
2207
+ this.drawOpaquePass(colorFbo, commands, 5 /* OpaqueGeneral */, true, 20 /* VolumeClassifiedRealityData */);
2089
2208
  if (needAO)
2090
2209
  this.renderAmbientOcclusion();
2091
2210
  }
@@ -2093,7 +2212,7 @@ class MPCompositor extends Compositor {
2093
2212
  this._readPickDataFromPingPong = false;
2094
2213
  System_1.System.instance.frameBufferStack.execute(colorFbo, true, false, () => {
2095
2214
  this._drawMultiPassDepth = true; // for OpaqueGeneral
2096
- this.drawPass(commands, 4 /* OpaqueGeneral */, false, 19 /* VolumeClassifiedRealityData */);
2215
+ this.drawPass(commands, 5 /* OpaqueGeneral */, false, 20 /* VolumeClassifiedRealityData */);
2097
2216
  });
2098
2217
  }
2099
2218
  }
@@ -2104,7 +2223,7 @@ class MPCompositor extends Compositor {
2104
2223
  const fbo = (renderForIntersectingVolumes ? this._fbos.featureIdWithDepth : this._fbos.featureIdWithDepthAltZ);
2105
2224
  System_1.System.instance.frameBufferStack.execute(fbo, true, false, () => {
2106
2225
  System_1.System.instance.applyRenderState(state);
2107
- this.target.techniques.execute(this.target, cmds, 4 /* OpaqueGeneral */);
2226
+ this.target.techniques.execute(this.target, cmds, 5 /* OpaqueGeneral */);
2108
2227
  });
2109
2228
  this._currentRenderTargetIndex = 0;
2110
2229
  this._readPickDataFromPingPong = false;
@@ -2135,11 +2254,11 @@ class MPCompositor extends Compositor {
2135
2254
  }
2136
2255
  renderTranslucent(commands) {
2137
2256
  System_1.System.instance.frameBufferStack.execute(this._fbos.accumulation, true, false, () => {
2138
- this.drawPass(commands, 7 /* Translucent */);
2257
+ this.drawPass(commands, 8 /* Translucent */);
2139
2258
  });
2140
2259
  this._currentRenderTargetIndex = 1;
2141
2260
  System_1.System.instance.frameBufferStack.execute(this._fbos.revealage, true, false, () => {
2142
- this.drawPass(commands, 7 /* Translucent */);
2261
+ this.drawPass(commands, 8 /* Translucent */);
2143
2262
  });
2144
2263
  this._currentRenderTargetIndex = 0;
2145
2264
  }