@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.
- package/CHANGELOG.md +35 -1
- package/LICENSE.md +1 -1
- package/lib/cjs/AccuDraw.js +1 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts +23 -3
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +11 -3
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts +2 -2
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +12 -4
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +3 -3
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +2 -2
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +4 -6
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +6 -7
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts +1 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts +8 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +10 -6
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +3 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts +4 -1
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +19 -5
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Tiles.d.ts +4 -0
- package/lib/cjs/Tiles.d.ts.map +1 -1
- package/lib/cjs/Tiles.js +11 -0
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/ViewContext.js +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewManager.d.ts.map +1 -1
- package/lib/cjs/ViewManager.js +2 -3
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewState.d.ts +4 -5
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +0 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +53 -4
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +82 -34
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/extension/ExtensionImpl.js +2 -2
- package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js +3 -0
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +3 -0
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +1 -1
- package/lib/cjs/render/GraphicBuilder.js +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +3 -0
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.d.ts +3 -4
- package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js +9 -5
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderMaterial.d.ts +1 -1
- package/lib/cjs/render/RenderMaterial.d.ts.map +1 -1
- package/lib/cjs/render/RenderMaterial.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +4 -4
- package/lib/cjs/render/RenderSystem.js +4 -4
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.d.ts +5 -5
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/cjs/render/primitives/DisplayParams.js +2 -1
- package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +3 -3
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +3 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +5 -0
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.d.ts +32 -0
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +74 -1
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +6 -4
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/EDL.d.ts +40 -0
- package/lib/cjs/render/webgl/EDL.d.ts.map +1 -0
- package/lib/cjs/render/webgl/EDL.js +264 -0
- package/lib/cjs/render/webgl/EDL.js.map +1 -0
- package/lib/cjs/render/webgl/EdgeSettings.js +2 -2
- package/lib/cjs/render/webgl/FrameBuffer.d.ts +4 -0
- package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.js +9 -0
- package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/FrustumUniforms.d.ts +7 -0
- package/lib/cjs/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/Layer.js +2 -2
- package/lib/cjs/render/webgl/LayerCommands.js +2 -2
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +9 -8
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +2 -2
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +2 -0
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +3 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +8 -3
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts +9 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityModelUniforms.js +50 -0
- package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts +2 -1
- package/lib/cjs/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderCommands.js +46 -38
- package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +19 -17
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +8 -6
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +6 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +195 -76
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +3 -3
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js +5 -5
- package/lib/cjs/render/webgl/Target.js +7 -7
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +18 -3
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueFlags.js +4 -4
- package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.d.ts +6 -2
- package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.js +1 -2
- package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/render/webgl/VisibleTileFeatures.js +5 -5
- package/lib/cjs/render/webgl/glsl/EDL.d.ts +14 -0
- package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -0
- package/lib/cjs/render/webgl/glsl/EDL.js +260 -0
- package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -0
- package/lib/cjs/render/webgl/glsl/RenderPass.js +12 -12
- package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/tile/BatchedTileIdMap.js +1 -1
- package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +4 -2
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/IModelTile.js +1 -1
- package/lib/cjs/tile/IModelTile.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.d.ts +6 -0
- package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlReader.js +20 -7
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts +14 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +30 -11
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.d.ts +4 -3
- package/lib/cjs/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityModelTileTree.js +61 -53
- package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/tile/RealityTileLoader.js +2 -2
- package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts +5 -0
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +9 -4
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +15 -7
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +3 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +3 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts +14 -1
- package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/ArcGisUtilities.js +57 -27
- package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js +9 -9
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
- package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
- package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
- package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +1 -1
- package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +26 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +54 -4
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js +3 -2
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts +12 -2
- package/lib/cjs/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js +16 -4
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +2 -0
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts +5 -0
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +33 -14
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts +42 -3
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +126 -9
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +26 -0
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts +23 -68
- package/lib/cjs/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/cjs/tile/map/WmtsCapabilities.js +269 -260
- package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js +2 -2
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.js +2 -2
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/esm/AccuDraw.js +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts +23 -3
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +11 -3
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/CheckpointConnection.js +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts +2 -2
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +12 -4
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +3 -3
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +2 -2
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +4 -6
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +6 -7
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts +1 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/NativeApp.d.ts +8 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +10 -6
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +3 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts +4 -1
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +19 -5
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Tiles.d.ts +4 -0
- package/lib/esm/Tiles.d.ts.map +1 -1
- package/lib/esm/Tiles.js +11 -0
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/ViewContext.js +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewManager.d.ts.map +1 -1
- package/lib/esm/ViewManager.js +2 -3
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewState.d.ts +4 -5
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +0 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +53 -4
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +83 -35
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/extension/ExtensionImpl.js +2 -2
- package/lib/esm/extension/ExtensionImpl.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js +5 -2
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +3 -0
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +1 -1
- package/lib/esm/render/GraphicBuilder.js +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +3 -0
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.d.ts +3 -4
- package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshParams.js +10 -6
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderMaterial.d.ts +1 -1
- package/lib/esm/render/RenderMaterial.d.ts.map +1 -1
- package/lib/esm/render/RenderMaterial.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +4 -4
- package/lib/esm/render/RenderSystem.js +4 -4
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/VisibleFeature.d.ts +5 -5
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/render/primitives/DisplayParams.d.ts.map +1 -1
- package/lib/esm/render/primitives/DisplayParams.js +2 -1
- package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +3 -3
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +3 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +5 -0
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.d.ts +32 -0
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +69 -0
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +6 -4
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/EDL.d.ts +40 -0
- package/lib/esm/render/webgl/EDL.d.ts.map +1 -0
- package/lib/esm/render/webgl/EDL.js +260 -0
- package/lib/esm/render/webgl/EDL.js.map +1 -0
- package/lib/esm/render/webgl/EdgeSettings.js +2 -2
- package/lib/esm/render/webgl/FrameBuffer.d.ts +4 -0
- package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.js +9 -0
- package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/render/webgl/FrustumUniforms.d.ts +7 -0
- package/lib/esm/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/render/webgl/Layer.js +2 -2
- package/lib/esm/render/webgl/LayerCommands.js +2 -2
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +9 -8
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js +1 -1
- package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +2 -2
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +2 -0
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +3 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +8 -3
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts +9 -0
- package/lib/esm/render/webgl/RealityModelUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityModelUniforms.js +50 -0
- package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts +2 -1
- package/lib/esm/render/webgl/RenderCommands.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderCommands.js +46 -38
- package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +19 -17
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +8 -6
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +6 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +194 -77
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +3 -3
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js +5 -5
- package/lib/esm/render/webgl/Target.js +7 -7
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +18 -3
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueFlags.js +4 -4
- package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.d.ts +6 -2
- package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
- package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.js +1 -2
- package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/render/webgl/VisibleTileFeatures.js +5 -5
- package/lib/esm/render/webgl/glsl/EDL.d.ts +14 -0
- package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -0
- package/lib/esm/render/webgl/glsl/EDL.js +253 -0
- package/lib/esm/render/webgl/glsl/EDL.js.map +1 -0
- package/lib/esm/render/webgl/glsl/RenderPass.js +12 -12
- package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/tile/BatchedTileIdMap.js +1 -1
- package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +1 -1
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +4 -2
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/IModelTile.js +1 -1
- package/lib/esm/tile/IModelTile.js.map +1 -1
- package/lib/esm/tile/ImdlReader.d.ts +6 -0
- package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
- package/lib/esm/tile/ImdlReader.js +20 -7
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts +14 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +30 -12
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.d.ts +4 -3
- package/lib/esm/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityModelTileTree.js +62 -54
- package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/tile/RealityTileLoader.js +2 -2
- package/lib/esm/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts +5 -0
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +9 -4
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +15 -7
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +3 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +3 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts +14 -1
- package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/tile/map/ArcGisUtilities.js +57 -27
- package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js +9 -9
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts +14 -2
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +77 -37
- package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +65 -52
- package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +1 -0
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -0
- package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +2 -2
- package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +26 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +53 -4
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js +3 -2
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts +12 -2
- package/lib/esm/tile/map/MapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js +16 -4
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts +3 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +2 -0
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts +5 -0
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +33 -14
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts +42 -3
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +126 -9
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts +17 -0
- package/lib/esm/tile/map/MapTiledGraphicsProvider.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js +26 -0
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.d.ts +23 -68
- package/lib/esm/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/esm/tile/map/WmtsCapabilities.js +268 -259
- package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js +2 -2
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.js +2 -2
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/public/locales/en/iModelJs.json +2 -2
- 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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
875
|
+
this.renderLayers(commands, false, 11 /* OverlayLayers */);
|
|
863
876
|
this.target.endPerfMetricRecord(true);
|
|
864
877
|
this.target.popViewClip();
|
|
865
878
|
}
|
|
866
|
-
if (
|
|
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,
|
|
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(
|
|
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(
|
|
995
|
-
this.target.techniques.execute(this.target, cmds,
|
|
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(
|
|
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(
|
|
1007
|
-
this.target.techniques.execute(this.target, cmds,
|
|
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,
|
|
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(
|
|
1138
|
-
const cmdsByIndex = commands.getCommands(
|
|
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(
|
|
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(
|
|
1168
|
-
this.target.techniques.execute(this.target, cmds,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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(
|
|
1388
|
-
commands.replaceCommands(
|
|
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,
|
|
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,
|
|
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,
|
|
1478
|
+
this.drawPass(commands, 10 /* Hilite */);
|
|
1462
1479
|
});
|
|
1463
1480
|
// Process planar classifiers
|
|
1464
|
-
const planarClassifierCmds = commands.getCommands(
|
|
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,
|
|
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(
|
|
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,
|
|
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,
|
|
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
|
|
1497
|
-
case
|
|
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 =
|
|
1504
|
-
this._layerRenderState.depthFunc = (
|
|
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
|
|
1509
|
-
case
|
|
1525
|
+
case 5 /* OpaqueGeneral */:
|
|
1526
|
+
case 18 /* HilitePlanarClassification */:
|
|
1510
1527
|
return this._opaqueRenderState;
|
|
1511
|
-
case
|
|
1528
|
+
case 8 /* Translucent */:
|
|
1512
1529
|
return this._translucentRenderState;
|
|
1513
|
-
case
|
|
1530
|
+
case 10 /* Hilite */:
|
|
1514
1531
|
return this._hiliteRenderState;
|
|
1515
|
-
case
|
|
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 /*
|
|
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,
|
|
1778
|
-
this.drawPass(commands,
|
|
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(
|
|
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,
|
|
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,
|
|
1923
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false);
|
|
1806
1924
|
if (haveHiddenEdges)
|
|
1807
|
-
this.drawPass(commands,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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,
|
|
2031
|
-
this.drawPass(commands,
|
|
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(
|
|
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,
|
|
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,
|
|
2170
|
+
this.drawPass(commands, 5 /* OpaqueGeneral */, false);
|
|
2052
2171
|
if (haveHiddenEdges)
|
|
2053
|
-
this.drawPass(commands,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
2261
|
+
this.drawPass(commands, 8 /* Translucent */);
|
|
2143
2262
|
});
|
|
2144
2263
|
this._currentRenderTargetIndex = 0;
|
|
2145
2264
|
}
|