@itwin/core-frontend 5.0.0-dev.40 → 5.0.0-dev.49
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 +11 -1
- package/lib/cjs/AccuDraw.d.ts +21 -3
- package/lib/cjs/AccuDraw.d.ts.map +1 -1
- package/lib/cjs/AccuDraw.js +174 -56
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +1 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/BriefcaseTxns.d.ts +1 -1
- package/lib/cjs/BriefcaseTxns.d.ts.map +1 -1
- package/lib/cjs/BriefcaseTxns.js +1 -1
- package/lib/cjs/BriefcaseTxns.js.map +1 -1
- package/lib/cjs/DrawingViewState.js +2 -2
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.d.ts +1 -1
- package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js +1 -1
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.d.ts +3 -1
- package/lib/cjs/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js +7 -3
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts +0 -5
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +0 -5
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.js +1 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -1
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -2
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/SheetViewState.js +6 -6
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +1 -1
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/Tiles.d.ts +1 -1
- package/lib/cjs/Tiles.d.ts.map +1 -1
- package/lib/cjs/Tiles.js +6 -6
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/ViewManager.js +1 -1
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewState.js +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +5 -3
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +8 -4
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +1 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.d.ts +1 -2
- package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
- package/lib/cjs/render/Decorations.d.ts +3 -2
- package/lib/cjs/render/Decorations.d.ts.map +1 -1
- package/lib/cjs/render/Decorations.js +5 -1
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.d.ts +4 -2
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js +5 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/MockRender.d.ts +2 -2
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +3 -4
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.d.ts +3 -2
- package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
- package/lib/cjs/render/RenderGraphic.js +4 -1
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.d.ts +3 -3
- package/lib/cjs/render/RenderPlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +9 -8
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +3 -0
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +3 -3
- 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.map +1 -1
- package/lib/cjs/render/VisibleFeature.js +60 -3
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/render/webgl/AtmosphereUniforms.d.ts +2 -0
- package/lib/cjs/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/AtmosphereUniforms.js +5 -1
- package/lib/cjs/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/AttributeBuffers.d.ts +6 -2
- package/lib/cjs/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/cjs/render/webgl/AttributeBuffers.js +12 -4
- package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.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/CachedGeometry.d.ts +8 -8
- package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/CachedGeometry.js +8 -8
- package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/ClippingProgram.d.ts +2 -0
- package/lib/cjs/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClippingProgram.js +5 -1
- package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/render/webgl/Contours.d.ts +1 -1
- package/lib/cjs/render/webgl/Contours.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Contours.js +1 -1
- package/lib/cjs/render/webgl/Contours.js.map +1 -1
- package/lib/cjs/render/webgl/Disposable.d.ts +1 -2
- package/lib/cjs/render/webgl/Disposable.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Disposable.js +4 -0
- package/lib/cjs/render/webgl/Disposable.js.map +1 -1
- package/lib/cjs/render/webgl/EDL.d.ts +1 -1
- package/lib/cjs/render/webgl/EDL.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EDL.js +3 -3
- package/lib/cjs/render/webgl/EDL.js.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts +3 -3
- package/lib/cjs/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EdgeGeometry.js +4 -4
- package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.d.ts +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.js +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +2 -2
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js +11 -11
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +2 -2
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +2 -2
- package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +4 -4
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +5 -6
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/Layer.js +1 -1
- package/lib/cjs/render/webgl/Layer.js.map +1 -1
- package/lib/cjs/render/webgl/Mesh.d.ts +1 -1
- package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Mesh.js +1 -1
- package/lib/cjs/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/render/webgl/MeshData.d.ts +1 -1
- package/lib/cjs/render/webgl/MeshData.d.ts.map +1 -1
- package/lib/cjs/render/webgl/MeshData.js +2 -2
- package/lib/cjs/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +22 -9
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +1 -1
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointString.js +1 -1
- package/lib/cjs/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Polyline.js +1 -1
- package/lib/cjs/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +6 -10
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +6 -6
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.d.ts +2 -2
- package/lib/cjs/render/webgl/RenderBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.js +2 -2
- package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +6 -6
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ScreenSpaceEffect.d.ts +1 -1
- package/lib/cjs/render/webgl/ScreenSpaceEffect.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ScreenSpaceEffect.js +2 -2
- package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts +5 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +11 -3
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.d.ts +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.d.ts.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.d.ts +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
- package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +1 -1
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +1 -1
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +2 -2
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +9 -10
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/TargetGraphics.d.ts +1 -1
- package/lib/cjs/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TargetGraphics.js +1 -1
- package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts +6 -0
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +97 -15
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +1 -1
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/TextureDrape.d.ts +1 -1
- package/lib/cjs/render/webgl/TextureDrape.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TextureDrape.js +1 -1
- package/lib/cjs/render/webgl/TextureDrape.js.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.d.ts +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.js +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.d.ts +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.js +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.d.ts +2 -2
- package/lib/cjs/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/cjs/render/webgl/VertexLUT.js +2 -2
- package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/render/webgl/VisibleTileFeatures.js +60 -3
- package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/cjs/tile/ClassifierTileTree.js +1 -1
- package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/tile/DynamicIModelTile.js +3 -3
- package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/tile/IModelTileTree.d.ts +1 -1
- package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/IModelTileTree.js +12 -10
- package/lib/cjs/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/tile/ImdlDecoder.d.ts +1 -1
- package/lib/cjs/tile/ImdlDecoder.js +1 -1
- package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/tile/LRUTileList.d.ts +1 -1
- package/lib/cjs/tile/LRUTileList.d.ts.map +1 -1
- package/lib/cjs/tile/LRUTileList.js +1 -1
- package/lib/cjs/tile/LRUTileList.js.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/OrbitGtTileTree.js +6 -6
- package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/Tile.d.ts +2 -0
- package/lib/cjs/tile/Tile.d.ts.map +1 -1
- package/lib/cjs/tile/Tile.js +6 -2
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +1 -1
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileTree.d.ts +2 -0
- package/lib/cjs/tile/TileTree.d.ts.map +1 -1
- package/lib/cjs/tile/TileTree.js +5 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.d.ts +1 -1
- package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +2 -2
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.d.ts +4 -2
- package/lib/cjs/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js +34 -56
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts +154 -0
- package/lib/cjs/tools/AccuDrawViewportUI.d.ts.map +1 -0
- package/lib/cjs/tools/AccuDrawViewportUI.js +715 -0
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -0
- package/lib/esm/AccuDraw.d.ts +21 -3
- package/lib/esm/AccuDraw.d.ts.map +1 -1
- package/lib/esm/AccuDraw.js +174 -56
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/BriefcaseConnection.js +1 -1
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/BriefcaseTxns.d.ts +1 -1
- package/lib/esm/BriefcaseTxns.d.ts.map +1 -1
- package/lib/esm/BriefcaseTxns.js +1 -1
- package/lib/esm/BriefcaseTxns.js.map +1 -1
- package/lib/esm/DrawingViewState.js +2 -2
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.d.ts +1 -1
- package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/esm/EnvironmentDecorations.js +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.d.ts +3 -1
- package/lib/esm/GraphicalEditingScope.d.ts.map +1 -1
- package/lib/esm/GraphicalEditingScope.js +7 -3
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +0 -5
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +0 -5
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.js +1 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -1
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -2
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/SheetViewState.js +6 -6
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts +1 -1
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +1 -1
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/Tiles.d.ts +1 -1
- package/lib/esm/Tiles.d.ts.map +1 -1
- package/lib/esm/Tiles.js +6 -6
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/ViewManager.js +1 -1
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewState.js +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +5 -3
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +8 -4
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitives.js +2 -2
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +1 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.d.ts +1 -2
- package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
- package/lib/esm/render/Decorations.d.ts +3 -2
- package/lib/esm/render/Decorations.d.ts.map +1 -1
- package/lib/esm/render/Decorations.js +5 -1
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/GraphicBranch.d.ts +4 -2
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js +5 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/MockRender.d.ts +2 -2
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +3 -4
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/RenderGraphic.d.ts +3 -2
- package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
- package/lib/esm/render/RenderGraphic.js +4 -1
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderPlanarClassifier.d.ts +3 -3
- package/lib/esm/render/RenderPlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +9 -8
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +3 -0
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +3 -3
- 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.map +1 -1
- package/lib/esm/render/VisibleFeature.js +60 -3
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/render/webgl/AtmosphereUniforms.d.ts +2 -0
- package/lib/esm/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/AtmosphereUniforms.js +5 -1
- package/lib/esm/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/render/webgl/AttributeBuffers.d.ts +6 -2
- package/lib/esm/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/esm/render/webgl/AttributeBuffers.js +12 -4
- package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.d.ts +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.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/CachedGeometry.d.ts +8 -8
- package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/CachedGeometry.js +8 -8
- package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/ClippingProgram.d.ts +2 -0
- package/lib/esm/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClippingProgram.js +5 -1
- package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/render/webgl/Contours.d.ts +1 -1
- package/lib/esm/render/webgl/Contours.d.ts.map +1 -1
- package/lib/esm/render/webgl/Contours.js +1 -1
- package/lib/esm/render/webgl/Contours.js.map +1 -1
- package/lib/esm/render/webgl/Disposable.d.ts +1 -2
- package/lib/esm/render/webgl/Disposable.d.ts.map +1 -1
- package/lib/esm/render/webgl/Disposable.js +4 -0
- package/lib/esm/render/webgl/Disposable.js.map +1 -1
- package/lib/esm/render/webgl/EDL.d.ts +1 -1
- package/lib/esm/render/webgl/EDL.d.ts.map +1 -1
- package/lib/esm/render/webgl/EDL.js +3 -3
- package/lib/esm/render/webgl/EDL.js.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.d.ts +3 -3
- package/lib/esm/render/webgl/EdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/EdgeGeometry.js +4 -4
- package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.d.ts +1 -1
- package/lib/esm/render/webgl/FrameBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.js +1 -1
- package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +2 -2
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js +11 -11
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +2 -2
- package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/IndexedEdgeGeometry.js +2 -2
- package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +4 -4
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +5 -6
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/Layer.js +1 -1
- package/lib/esm/render/webgl/Layer.js.map +1 -1
- package/lib/esm/render/webgl/Mesh.d.ts +1 -1
- package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/Mesh.js +1 -1
- package/lib/esm/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/render/webgl/MeshData.d.ts +1 -1
- package/lib/esm/render/webgl/MeshData.d.ts.map +1 -1
- package/lib/esm/render/webgl/MeshData.js +2 -2
- package/lib/esm/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +22 -9
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +1 -1
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/PointString.d.ts +1 -1
- package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointString.js +1 -1
- package/lib/esm/render/webgl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/Polyline.js +1 -1
- package/lib/esm/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +6 -10
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +6 -6
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderBuffer.d.ts +2 -2
- package/lib/esm/render/webgl/RenderBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderBuffer.js +2 -2
- package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +6 -6
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ScreenSpaceEffect.d.ts +1 -1
- package/lib/esm/render/webgl/ScreenSpaceEffect.d.ts.map +1 -1
- package/lib/esm/render/webgl/ScreenSpaceEffect.js +2 -2
- package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts +5 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +11 -3
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.d.ts +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.d.ts.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.d.ts +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
- package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +1 -1
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +1 -1
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +2 -2
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +9 -10
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/TargetGraphics.d.ts +1 -1
- package/lib/esm/render/webgl/TargetGraphics.d.ts.map +1 -1
- package/lib/esm/render/webgl/TargetGraphics.js +1 -1
- package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts +6 -0
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +98 -16
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts +1 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js +1 -1
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/TextureDrape.d.ts +1 -1
- package/lib/esm/render/webgl/TextureDrape.d.ts.map +1 -1
- package/lib/esm/render/webgl/TextureDrape.js +1 -1
- package/lib/esm/render/webgl/TextureDrape.js.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.d.ts +1 -1
- package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.js +1 -1
- package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.d.ts +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.js +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.d.ts +2 -2
- package/lib/esm/render/webgl/VertexLUT.d.ts.map +1 -1
- package/lib/esm/render/webgl/VertexLUT.js +2 -2
- package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/render/webgl/VisibleTileFeatures.js +60 -3
- package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/esm/tile/ClassifierTileTree.js +1 -1
- package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/tile/DynamicIModelTile.js +3 -3
- package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/tile/IModelTileTree.d.ts +1 -1
- package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
- package/lib/esm/tile/IModelTileTree.js +12 -10
- package/lib/esm/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/tile/ImdlDecoder.d.ts +1 -1
- package/lib/esm/tile/ImdlDecoder.js +1 -1
- package/lib/esm/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/tile/LRUTileList.d.ts +1 -1
- package/lib/esm/tile/LRUTileList.d.ts.map +1 -1
- package/lib/esm/tile/LRUTileList.js +1 -1
- package/lib/esm/tile/LRUTileList.js.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts +1 -1
- package/lib/esm/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/esm/tile/OrbitGtTileTree.js +6 -6
- package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +1 -1
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/Tile.d.ts +2 -0
- package/lib/esm/tile/Tile.d.ts.map +1 -1
- package/lib/esm/tile/Tile.js +6 -2
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.js +1 -1
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileTree.d.ts +2 -0
- package/lib/esm/tile/TileTree.d.ts.map +1 -1
- package/lib/esm/tile/TileTree.js +5 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeOwner.d.ts +1 -1
- package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeOwner.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts +1 -1
- package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +2 -2
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.d.ts +4 -2
- package/lib/esm/tools/AccuDrawTool.d.ts.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js +34 -56
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.d.ts +154 -0
- package/lib/esm/tools/AccuDrawViewportUI.d.ts.map +1 -0
- package/lib/esm/tools/AccuDrawViewportUI.js +711 -0
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -0
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +16 -17
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Disposable.js","sourceRoot":"","sources":["../../../../src/render/webgl/Disposable.ts"],"names":[],"mappings":"","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\
|
|
1
|
+
{"version":3,"file":"Disposable.js","sourceRoot":"","sources":["../../../../src/render/webgl/Disposable.ts"],"names":[],"mappings":";AAAA;;;+FAG+F","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** Interface implemented by any type that potentially owns WebGL resources that must be explicitly freed.\n * Resources are freed in the inherited `dispose` method.\n * @internal\n */\nexport interface WebGLDisposable extends Disposable {\n /** Test whether the object currently holds any unreleased WebGL resources.\n * This property should *always* return false after `dispose` has been called.\n * @returns true if the object has released any and all WebGL resources it may have previously owned.\n */\n isDisposed: boolean;\n}\n"]}
|
|
@@ -30,7 +30,7 @@ export declare class EyeDomeLighting implements RenderMemory.Consumer, WebGLDisp
|
|
|
30
30
|
init(width: number, height: number, depth: DepthBuffer): boolean;
|
|
31
31
|
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
32
32
|
get isDisposed(): boolean;
|
|
33
|
-
dispose(): void;
|
|
33
|
+
[Symbol.dispose](): void;
|
|
34
34
|
reset(): void;
|
|
35
35
|
/** calculate EyeDomeLighting at specified quality using screen space shaders
|
|
36
36
|
* returns true if succeeds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EDL.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/EDL.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqG1C,gBAAgB;AAChB,oBAAY,OAAO;IAAG,GAAG,IAAA;IAAE,EAAE,IAAA;IAAE,IAAI,IAAA;CAAE;AAErC,gBAAgB;AAChB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,eAAgB,YAAW,YAAY,CAAC,QAAQ,EAAE,eAAe;IAC5E,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,aAAa,CAAC,CAAqE;IAC3F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,SAAS;gBAQE,MAAM,EAAE,MAAM;IAM1B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAQhE,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAmB9D,IAAW,UAAU,IAAI,OAAO,CAA0E;IAEnG,OAAO;
|
|
1
|
+
{"version":3,"file":"EDL.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/EDL.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAOzD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAqG1C,gBAAgB;AAChB,oBAAY,OAAO;IAAG,GAAG,IAAA;IAAE,EAAE,IAAA;IAAE,IAAI,IAAA;CAAE;AAErC,gBAAgB;AAChB,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,aAAa,CAAC;IACxB,MAAM,EAAE,WAAW,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,eAAgB,YAAW,YAAY,CAAC,QAAQ,EAAE,eAAe;IAC5E,OAAO,CAAC,OAAO,CAAC,CAAS;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAc;IAC7B,OAAO,CAAC,YAAY,CAAC,CAAc;IACnC,OAAO,CAAC,aAAa,CAAC,CAAqE;IAC3F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IAEjC,OAAO,CAAC,SAAS;gBAQE,MAAM,EAAE,MAAM;IAM1B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO;IAQhE,iBAAiB,CAAC,KAAK,EAAE,YAAY,CAAC,UAAU,GAAG,IAAI;IAmB9D,IAAW,UAAU,IAAI,OAAO,CAA0E;IAEnG,CAAC,MAAM,CAAC,OAAO,CAAC;IAKhB,KAAK;IAIZ;;OAEG;IACI,IAAI,CAAC,SAAS,EAAE,aAAa,GAAG,OAAO;CAiG/C"}
|
|
@@ -84,7 +84,7 @@ class Bundle {
|
|
|
84
84
|
&& undefined === this.edlFiltGeom
|
|
85
85
|
&& undefined === this.edlMixGeom;
|
|
86
86
|
}
|
|
87
|
-
dispose() {
|
|
87
|
+
[Symbol.dispose]() {
|
|
88
88
|
this.edlCalcTex1 = (0, core_bentley_1.dispose)(this.edlCalcTex1);
|
|
89
89
|
this.edlCalcTex2 = (0, core_bentley_1.dispose)(this.edlCalcTex2);
|
|
90
90
|
this.edlCalcTex4 = (0, core_bentley_1.dispose)(this.edlCalcTex4);
|
|
@@ -155,12 +155,12 @@ class EyeDomeLighting {
|
|
|
155
155
|
}
|
|
156
156
|
}
|
|
157
157
|
get isDisposed() { return undefined === this._bundle && undefined === this._edlFinalFbo; }
|
|
158
|
-
dispose() {
|
|
158
|
+
[Symbol.dispose]() {
|
|
159
159
|
this._bundle = (0, core_bentley_1.dispose)(this._bundle);
|
|
160
160
|
this._edlFinalFbo = (0, core_bentley_1.dispose)(this._edlFinalFbo);
|
|
161
161
|
}
|
|
162
162
|
reset() {
|
|
163
|
-
this.dispose();
|
|
163
|
+
this[Symbol.dispose]();
|
|
164
164
|
}
|
|
165
165
|
/** calculate EyeDomeLighting at specified quality using screen space shaders
|
|
166
166
|
* returns true if succeeds
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EDL.js","sourceRoot":"","sources":["../../../../src/render/webgl/EDL.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { EDLCalcBasicGeometry, EDLCalcFullGeometry, EDLFilterGeometry, EDLMixGeometry } from \"./CachedGeometry\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { DepthBuffer, FrameBuffer } from \"./FrameBuffer\";\nimport { GL } from \"./GL\";\nimport { RenderBufferMultiSample } from \"./RenderBuffer\";\nimport { RenderState } from \"./RenderState\";\nimport { collectGeometryStatistics, collectTextureStatistics } from \"./SceneCompositor\";\nimport { getDrawParams } from \"./ScratchDrawParams\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TextureHandle } from \"./Texture\";\n\nclass Bundle implements WebGLDisposable {\n private constructor(\n public edlCalcTex1?: TextureHandle,\n public edlCalcTex2?: TextureHandle,\n public edlCalcTex4?: TextureHandle,\n public edlFiltTex2?: TextureHandle,\n public edlFiltTex4?: TextureHandle,\n\n public edlCalcFbo1?: FrameBuffer,\n public edlCalcFbo2?: FrameBuffer,\n public edlCalcFbo4?: FrameBuffer,\n public edlFiltFbo2?: FrameBuffer,\n public edlFiltFbo4?: FrameBuffer,\n\n public edlCalcBasicGeom?: EDLCalcBasicGeometry,\n public edlCalcFullGeom?: [EDLCalcFullGeometry | undefined, EDLCalcFullGeometry | undefined, EDLCalcFullGeometry | undefined],\n public edlFiltGeom?: [EDLFilterGeometry | undefined, EDLFilterGeometry | undefined],\n public edlMixGeom?: EDLMixGeometry) {\n }\n\n public static create(width: number, height: number): Bundle | undefined {\n const edlCalcTex1 = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlCalcTex2 = TextureHandle.createForAttachment(width >> 1, height >> 1, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlCalcTex4 = TextureHandle.createForAttachment(width >> 2, height >> 2, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlFiltTex2 = TextureHandle.createForAttachment(width >> 1, height >> 1, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlFiltTex4 = TextureHandle.createForAttachment(width >> 2, height >> 2, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n if (undefined === edlCalcTex1 || undefined === edlCalcTex2 || undefined === edlCalcTex4 || undefined === edlFiltTex2 || undefined === edlFiltTex4) {\n dispose (edlCalcTex1);\n dispose (edlCalcTex2);\n dispose (edlCalcTex4);\n dispose (edlFiltTex2);\n dispose (edlFiltTex4);\n return undefined;\n }\n const edlCalcFbo1 = FrameBuffer.create([edlCalcTex1]);\n const edlCalcFbo2 = FrameBuffer.create([edlCalcTex2]);\n const edlCalcFbo4 = FrameBuffer.create([edlCalcTex4]);\n const edlFiltFbo2 = FrameBuffer.create([edlFiltTex2]);\n const edlFiltFbo4 = FrameBuffer.create([edlFiltTex4]);\n if (undefined === edlCalcFbo1 || undefined === edlCalcFbo2 || undefined === edlCalcFbo4 || undefined === edlFiltFbo2 || undefined === edlFiltFbo4) {\n dispose (edlCalcFbo1);\n dispose (edlCalcFbo2);\n dispose (edlCalcFbo4);\n dispose (edlFiltFbo2);\n dispose (edlFiltFbo4);\n return undefined;\n }\n return new Bundle(edlCalcTex1, edlCalcTex2, edlCalcTex4, edlFiltTex2, edlFiltTex4, edlCalcFbo1, edlCalcFbo2, edlCalcFbo4, edlFiltFbo2, edlFiltFbo4);\n }\n\n public get isDisposed(): boolean {\n return undefined === this.edlCalcTex1\n && undefined === this.edlCalcTex2\n && undefined === this.edlCalcTex4\n && undefined === this.edlFiltTex2\n && undefined === this.edlFiltTex4\n && undefined === this.edlCalcFbo1\n && undefined === this.edlCalcFbo2\n && undefined === this.edlCalcFbo4\n && undefined === this.edlFiltFbo2\n && undefined === this.edlFiltFbo4\n && undefined === this.edlCalcBasicGeom\n && undefined === this.edlCalcFullGeom?.[0]\n && undefined === this.edlCalcFullGeom?.[1]\n && undefined === this.edlCalcFullGeom?.[2]\n && undefined === this.edlCalcFullGeom\n && undefined === this.edlFiltGeom?.[0]\n && undefined === this.edlFiltGeom?.[1]\n && undefined === this.edlFiltGeom\n && undefined === this.edlMixGeom;\n }\n\n public dispose(): void {\n this.edlCalcTex1 = dispose(this.edlCalcTex1);\n this.edlCalcTex2 = dispose(this.edlCalcTex2);\n this.edlCalcTex4 = dispose(this.edlCalcTex4);\n this.edlFiltTex2 = dispose(this.edlFiltTex2);\n this.edlFiltTex4 = dispose(this.edlFiltTex4);\n this.edlCalcFbo1 = dispose(this.edlCalcFbo1);\n this.edlCalcFbo2 = dispose(this.edlCalcFbo2);\n this.edlCalcFbo4 = dispose(this.edlCalcFbo4);\n this.edlFiltFbo2 = dispose(this.edlFiltFbo2);\n this.edlFiltFbo4 = dispose(this.edlFiltFbo4);\n this.edlCalcBasicGeom = dispose(this.edlCalcBasicGeom);\n if (this.edlCalcFullGeom) {\n this.edlCalcFullGeom[0] = dispose(this.edlCalcFullGeom?.[0]);\n this.edlCalcFullGeom[1] = dispose(this.edlCalcFullGeom?.[1]);\n this.edlCalcFullGeom[2] = dispose(this.edlCalcFullGeom?.[2]);\n this.edlCalcFullGeom = undefined;\n }\n if (this.edlFiltGeom) {\n this.edlFiltGeom[0] = dispose(this.edlFiltGeom?.[0]);\n this.edlFiltGeom[1] = dispose(this.edlFiltGeom?.[1]);\n this.edlFiltGeom = undefined;\n }\n this.edlMixGeom = dispose(this.edlMixGeom);\n }\n}\n\n/** @internal */\nexport enum EDLMode { Off, On, Full }\n\n/** @internal */\nexport interface EDLDrawParams {\n inputTex: TextureHandle; // input to calc EDL from\n curFbo: FrameBuffer; // output fbo to get color texture from for EDL to put result in\n edlMode: EDLMode;\n edlFilter: boolean; // applies to Full mode only\n useMsBuffers: boolean;\n}\n\nexport class EyeDomeLighting implements RenderMemory.Consumer, WebGLDisposable {\n private _bundle?: Bundle;\n private _width: number;\n private _height: number;\n private _depth?: DepthBuffer; // depth buffer to read from, has to be non-MS and be up to date in draw if MS is used\n private _edlFinalFbo?: FrameBuffer;\n private _edlFinalBufs?: { tex: TextureHandle, msBuf: RenderBufferMultiSample | undefined };\n private readonly _target: Target;\n\n private getBundle(): Bundle | undefined {\n if (undefined === this._bundle) {\n this._bundle = Bundle.create(this._width, this._height);\n assert(undefined !== this._bundle);\n }\n return this._bundle;\n }\n\n public constructor(target: Target) {\n this._target = target;\n this._width = target.viewRect.width;\n this._height = target.viewRect.height;\n }\n\n public init(width: number, height: number, depth: DepthBuffer): boolean {\n this._width = width;\n this._height = height;\n this._depth = depth;\n // don't create buffers until we know we will use them (first draw)\n return true;\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n const bundle = this._bundle;\n if (undefined !== bundle) {\n collectTextureStatistics(bundle.edlCalcTex1, stats);\n collectTextureStatistics(bundle.edlCalcTex2, stats);\n collectTextureStatistics(bundle.edlCalcTex4, stats);\n collectTextureStatistics(bundle.edlFiltTex2, stats);\n collectTextureStatistics(bundle.edlFiltTex4, stats);\n\n collectGeometryStatistics(bundle.edlCalcBasicGeom, stats);\n collectGeometryStatistics(bundle.edlCalcFullGeom?.[0], stats);\n collectGeometryStatistics(bundle.edlCalcFullGeom?.[1], stats);\n collectGeometryStatistics(bundle.edlCalcFullGeom?.[2], stats);\n collectGeometryStatistics(bundle.edlFiltGeom?.[0], stats);\n collectGeometryStatistics(bundle.edlFiltGeom?.[1], stats);\n collectGeometryStatistics(bundle.edlMixGeom, stats);\n }\n }\n\n public get isDisposed(): boolean { return undefined === this._bundle && undefined === this._edlFinalFbo; }\n\n public dispose() {\n this._bundle = dispose(this._bundle);\n this._edlFinalFbo = dispose (this._edlFinalFbo);\n }\n\n public reset() {\n this.dispose();\n }\n\n /** calculate EyeDomeLighting at specified quality using screen space shaders\n * returns true if succeeds\n */\n public draw(edlParams: EDLDrawParams): boolean {\n if (undefined === edlParams.inputTex || undefined === this._depth || undefined === edlParams.curFbo)\n return false;\n\n const bundle = this.getBundle();\n if (undefined === bundle)\n return false;\n\n // NB: have to test and create MS buffer as well if useMsBuffers, not outputting to depth\n const finalBufs = edlParams.curFbo.getColorTargets(edlParams.useMsBuffers, 0);\n if (undefined === this._edlFinalFbo || this._edlFinalBufs?.tex !== finalBufs.tex ||\n (edlParams.useMsBuffers && this._edlFinalBufs?.msBuf !== finalBufs.msBuf)) {\n this._edlFinalFbo = dispose (this._edlFinalFbo);\n this._edlFinalBufs = finalBufs;\n const filters = [GL.MultiSampling.Filter.Linear];\n this._edlFinalFbo = FrameBuffer.create([this._edlFinalBufs.tex], undefined,\n edlParams.useMsBuffers && this._edlFinalBufs.msBuf ? [this._edlFinalBufs.msBuf] : undefined, filters, undefined);\n if (undefined === this._edlFinalFbo)\n return false;\n }\n\n const fbStack = System.instance.frameBufferStack;\n const useMsBuffers = edlParams.useMsBuffers;\n System.instance.applyRenderState(RenderState.defaults);\n\n // ###TODO: should radius be (optionally?) voxel based instead of pixel here?\n if (edlParams.edlMode === EDLMode.On) {\n // draw using single pass version (still 8 samples, full size)\n fbStack.execute(this._edlFinalFbo, true, useMsBuffers, () => {\n if (bundle.edlCalcBasicGeom === undefined) {\n const ct1 = edlParams.inputTex;\n const ctd = this._depth!.getHandle()!;\n bundle.edlCalcBasicGeom = EDLCalcBasicGeometry.createGeometry(ct1.getHandle()!, ctd, ct1.width, ct1.height);\n }\n const params = getDrawParams(this._target, bundle.edlCalcBasicGeom!);\n this._target.techniques.draw(params);\n });\n } else { // EDLMode.Full\n // draw with full method based on original paper using full, 1/2, and 1/4 sizes\n const edlCalc2FB: FrameBuffer[] = [bundle.edlCalcFbo1!, bundle.edlCalcFbo2!, bundle.edlCalcFbo4!];\n if (bundle.edlCalcFullGeom === undefined) {\n const ct1 = edlParams.inputTex;\n const ct2 = bundle.edlCalcTex2;\n const ct4 = bundle.edlCalcTex4;\n const ctd = this._depth.getHandle()!;\n bundle.edlCalcFullGeom = [EDLCalcFullGeometry.createGeometry(ct1.getHandle()!, ctd, 1, ct1.width, ct1.height),\n EDLCalcFullGeometry.createGeometry(ct1.getHandle()!, ctd, 2, ct2!.width, ct2!.height),\n EDLCalcFullGeometry.createGeometry(ct1.getHandle()!, ctd, 4, ct4!.width, ct4!.height)];\n }\n\n const edlFiltFbos: FrameBuffer[] = [bundle.edlFiltFbo2!, bundle.edlFiltFbo4!];\n if (bundle.edlFiltGeom === undefined) {\n const ft2 = bundle.edlCalcTex2;\n const ft4 = bundle.edlCalcTex4;\n const ftd = this._depth.getHandle()!;\n bundle.edlFiltGeom = [EDLFilterGeometry.createGeometry(ft2!.getHandle()!, ftd, 2, ft2!.width, ft2!.height),\n EDLFilterGeometry.createGeometry(ft4!.getHandle()!, ftd, 4, ft4!.width, ft4!.height)];\n }\n\n const gl = System.instance.context;\n // Loop through the 3 sizes calculating an edl buffer, and if not first size, then optionally filtering those\n for (let i = 0; i < 3; ++i) {\n fbStack.execute(edlCalc2FB[i], true, false, () => {\n const colTex = edlCalc2FB[i].getColor(0);\n gl.viewport(0, 0, colTex.width, colTex.height); // have to set viewport to current texture size\n const params = getDrawParams(this._target, bundle.edlCalcFullGeom![i]!);\n this._target.techniques.draw(params);\n });\n\n if (edlParams.edlFilter && i > 0) {\n fbStack.execute(edlFiltFbos[i-1], true, false, () => {\n const params = getDrawParams(this._target, bundle.edlFiltGeom![i-1]!);\n this._target.techniques.draw(params);\n });\n }\n }\n gl.viewport(0, 0, this._width, this._height); // Restore viewport\n\n // Now combine the 3 results and output\n const tex1 = bundle.edlCalcTex1!.getHandle();\n const tex2 = edlParams.edlFilter ? bundle.edlFiltTex2!.getHandle() : bundle.edlCalcTex2!.getHandle();\n const tex4 = edlParams.edlFilter ? bundle.edlFiltTex4!.getHandle() : bundle.edlCalcTex4!.getHandle();\n fbStack.execute(this._edlFinalFbo, true, useMsBuffers, () => {\n if (bundle.edlMixGeom === undefined) {\n bundle.edlMixGeom = EDLMixGeometry.createGeometry(tex1!, tex2!, tex4!);\n } else {\n if (bundle.edlMixGeom.colorTexture1 !== tex1 || bundle.edlMixGeom.colorTexture2 !== tex2 || bundle.edlMixGeom.colorTexture4 !== tex4) {\n dispose(bundle.edlMixGeom);\n bundle.edlMixGeom = EDLMixGeometry.createGeometry(tex1!, tex2!, tex4!);\n }\n }\n const params = getDrawParams(this._target, bundle.edlMixGeom!);\n this._target.techniques.draw(params);\n });\n }\n return true;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"EDL.js","sourceRoot":"","sources":["../../../../src/render/webgl/EDL.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { EDLCalcBasicGeometry, EDLCalcFullGeometry, EDLFilterGeometry, EDLMixGeometry } from \"./CachedGeometry\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { DepthBuffer, FrameBuffer } from \"./FrameBuffer\";\nimport { GL } from \"./GL\";\nimport { RenderBufferMultiSample } from \"./RenderBuffer\";\nimport { RenderState } from \"./RenderState\";\nimport { collectGeometryStatistics, collectTextureStatistics } from \"./SceneCompositor\";\nimport { getDrawParams } from \"./ScratchDrawParams\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TextureHandle } from \"./Texture\";\n\nclass Bundle implements WebGLDisposable {\n private constructor(\n public edlCalcTex1?: TextureHandle,\n public edlCalcTex2?: TextureHandle,\n public edlCalcTex4?: TextureHandle,\n public edlFiltTex2?: TextureHandle,\n public edlFiltTex4?: TextureHandle,\n\n public edlCalcFbo1?: FrameBuffer,\n public edlCalcFbo2?: FrameBuffer,\n public edlCalcFbo4?: FrameBuffer,\n public edlFiltFbo2?: FrameBuffer,\n public edlFiltFbo4?: FrameBuffer,\n\n public edlCalcBasicGeom?: EDLCalcBasicGeometry,\n public edlCalcFullGeom?: [EDLCalcFullGeometry | undefined, EDLCalcFullGeometry | undefined, EDLCalcFullGeometry | undefined],\n public edlFiltGeom?: [EDLFilterGeometry | undefined, EDLFilterGeometry | undefined],\n public edlMixGeom?: EDLMixGeometry) {\n }\n\n public static create(width: number, height: number): Bundle | undefined {\n const edlCalcTex1 = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlCalcTex2 = TextureHandle.createForAttachment(width >> 1, height >> 1, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlCalcTex4 = TextureHandle.createForAttachment(width >> 2, height >> 2, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlFiltTex2 = TextureHandle.createForAttachment(width >> 1, height >> 1, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n const edlFiltTex4 = TextureHandle.createForAttachment(width >> 2, height >> 2, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\n if (undefined === edlCalcTex1 || undefined === edlCalcTex2 || undefined === edlCalcTex4 || undefined === edlFiltTex2 || undefined === edlFiltTex4) {\n dispose(edlCalcTex1);\n dispose(edlCalcTex2);\n dispose(edlCalcTex4);\n dispose(edlFiltTex2);\n dispose(edlFiltTex4);\n return undefined;\n }\n const edlCalcFbo1 = FrameBuffer.create([edlCalcTex1]);\n const edlCalcFbo2 = FrameBuffer.create([edlCalcTex2]);\n const edlCalcFbo4 = FrameBuffer.create([edlCalcTex4]);\n const edlFiltFbo2 = FrameBuffer.create([edlFiltTex2]);\n const edlFiltFbo4 = FrameBuffer.create([edlFiltTex4]);\n if (undefined === edlCalcFbo1 || undefined === edlCalcFbo2 || undefined === edlCalcFbo4 || undefined === edlFiltFbo2 || undefined === edlFiltFbo4) {\n dispose(edlCalcFbo1);\n dispose(edlCalcFbo2);\n dispose(edlCalcFbo4);\n dispose(edlFiltFbo2);\n dispose(edlFiltFbo4);\n return undefined;\n }\n return new Bundle(edlCalcTex1, edlCalcTex2, edlCalcTex4, edlFiltTex2, edlFiltTex4, edlCalcFbo1, edlCalcFbo2, edlCalcFbo4, edlFiltFbo2, edlFiltFbo4);\n }\n\n public get isDisposed(): boolean {\n return undefined === this.edlCalcTex1\n && undefined === this.edlCalcTex2\n && undefined === this.edlCalcTex4\n && undefined === this.edlFiltTex2\n && undefined === this.edlFiltTex4\n && undefined === this.edlCalcFbo1\n && undefined === this.edlCalcFbo2\n && undefined === this.edlCalcFbo4\n && undefined === this.edlFiltFbo2\n && undefined === this.edlFiltFbo4\n && undefined === this.edlCalcBasicGeom\n && undefined === this.edlCalcFullGeom?.[0]\n && undefined === this.edlCalcFullGeom?.[1]\n && undefined === this.edlCalcFullGeom?.[2]\n && undefined === this.edlCalcFullGeom\n && undefined === this.edlFiltGeom?.[0]\n && undefined === this.edlFiltGeom?.[1]\n && undefined === this.edlFiltGeom\n && undefined === this.edlMixGeom;\n }\n\n public [Symbol.dispose](): void {\n this.edlCalcTex1 = dispose(this.edlCalcTex1);\n this.edlCalcTex2 = dispose(this.edlCalcTex2);\n this.edlCalcTex4 = dispose(this.edlCalcTex4);\n this.edlFiltTex2 = dispose(this.edlFiltTex2);\n this.edlFiltTex4 = dispose(this.edlFiltTex4);\n this.edlCalcFbo1 = dispose(this.edlCalcFbo1);\n this.edlCalcFbo2 = dispose(this.edlCalcFbo2);\n this.edlCalcFbo4 = dispose(this.edlCalcFbo4);\n this.edlFiltFbo2 = dispose(this.edlFiltFbo2);\n this.edlFiltFbo4 = dispose(this.edlFiltFbo4);\n this.edlCalcBasicGeom = dispose(this.edlCalcBasicGeom);\n if (this.edlCalcFullGeom) {\n this.edlCalcFullGeom[0] = dispose(this.edlCalcFullGeom?.[0]);\n this.edlCalcFullGeom[1] = dispose(this.edlCalcFullGeom?.[1]);\n this.edlCalcFullGeom[2] = dispose(this.edlCalcFullGeom?.[2]);\n this.edlCalcFullGeom = undefined;\n }\n if (this.edlFiltGeom) {\n this.edlFiltGeom[0] = dispose(this.edlFiltGeom?.[0]);\n this.edlFiltGeom[1] = dispose(this.edlFiltGeom?.[1]);\n this.edlFiltGeom = undefined;\n }\n this.edlMixGeom = dispose(this.edlMixGeom);\n }\n}\n\n/** @internal */\nexport enum EDLMode { Off, On, Full }\n\n/** @internal */\nexport interface EDLDrawParams {\n inputTex: TextureHandle; // input to calc EDL from\n curFbo: FrameBuffer; // output fbo to get color texture from for EDL to put result in\n edlMode: EDLMode;\n edlFilter: boolean; // applies to Full mode only\n useMsBuffers: boolean;\n}\n\nexport class EyeDomeLighting implements RenderMemory.Consumer, WebGLDisposable {\n private _bundle?: Bundle;\n private _width: number;\n private _height: number;\n private _depth?: DepthBuffer; // depth buffer to read from, has to be non-MS and be up to date in draw if MS is used\n private _edlFinalFbo?: FrameBuffer;\n private _edlFinalBufs?: { tex: TextureHandle, msBuf: RenderBufferMultiSample | undefined };\n private readonly _target: Target;\n\n private getBundle(): Bundle | undefined {\n if (undefined === this._bundle) {\n this._bundle = Bundle.create(this._width, this._height);\n assert(undefined !== this._bundle);\n }\n return this._bundle;\n }\n\n public constructor(target: Target) {\n this._target = target;\n this._width = target.viewRect.width;\n this._height = target.viewRect.height;\n }\n\n public init(width: number, height: number, depth: DepthBuffer): boolean {\n this._width = width;\n this._height = height;\n this._depth = depth;\n // don't create buffers until we know we will use them (first draw)\n return true;\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n const bundle = this._bundle;\n if (undefined !== bundle) {\n collectTextureStatistics(bundle.edlCalcTex1, stats);\n collectTextureStatistics(bundle.edlCalcTex2, stats);\n collectTextureStatistics(bundle.edlCalcTex4, stats);\n collectTextureStatistics(bundle.edlFiltTex2, stats);\n collectTextureStatistics(bundle.edlFiltTex4, stats);\n\n collectGeometryStatistics(bundle.edlCalcBasicGeom, stats);\n collectGeometryStatistics(bundle.edlCalcFullGeom?.[0], stats);\n collectGeometryStatistics(bundle.edlCalcFullGeom?.[1], stats);\n collectGeometryStatistics(bundle.edlCalcFullGeom?.[2], stats);\n collectGeometryStatistics(bundle.edlFiltGeom?.[0], stats);\n collectGeometryStatistics(bundle.edlFiltGeom?.[1], stats);\n collectGeometryStatistics(bundle.edlMixGeom, stats);\n }\n }\n\n public get isDisposed(): boolean { return undefined === this._bundle && undefined === this._edlFinalFbo; }\n\n public [Symbol.dispose]() {\n this._bundle = dispose(this._bundle);\n this._edlFinalFbo = dispose(this._edlFinalFbo);\n }\n\n public reset() {\n this[Symbol.dispose]();\n }\n\n /** calculate EyeDomeLighting at specified quality using screen space shaders\n * returns true if succeeds\n */\n public draw(edlParams: EDLDrawParams): boolean {\n if (undefined === edlParams.inputTex || undefined === this._depth || undefined === edlParams.curFbo)\n return false;\n\n const bundle = this.getBundle();\n if (undefined === bundle)\n return false;\n\n // NB: have to test and create MS buffer as well if useMsBuffers, not outputting to depth\n const finalBufs = edlParams.curFbo.getColorTargets(edlParams.useMsBuffers, 0);\n if (undefined === this._edlFinalFbo || this._edlFinalBufs?.tex !== finalBufs.tex ||\n (edlParams.useMsBuffers && this._edlFinalBufs?.msBuf !== finalBufs.msBuf)) {\n this._edlFinalFbo = dispose(this._edlFinalFbo);\n this._edlFinalBufs = finalBufs;\n const filters = [GL.MultiSampling.Filter.Linear];\n this._edlFinalFbo = FrameBuffer.create([this._edlFinalBufs.tex], undefined,\n edlParams.useMsBuffers && this._edlFinalBufs.msBuf ? [this._edlFinalBufs.msBuf] : undefined, filters, undefined);\n if (undefined === this._edlFinalFbo)\n return false;\n }\n\n const fbStack = System.instance.frameBufferStack;\n const useMsBuffers = edlParams.useMsBuffers;\n System.instance.applyRenderState(RenderState.defaults);\n\n // ###TODO: should radius be (optionally?) voxel based instead of pixel here?\n if (edlParams.edlMode === EDLMode.On) {\n // draw using single pass version (still 8 samples, full size)\n fbStack.execute(this._edlFinalFbo, true, useMsBuffers, () => {\n if (bundle.edlCalcBasicGeom === undefined) {\n const ct1 = edlParams.inputTex;\n const ctd = this._depth!.getHandle()!;\n bundle.edlCalcBasicGeom = EDLCalcBasicGeometry.createGeometry(ct1.getHandle()!, ctd, ct1.width, ct1.height);\n }\n const params = getDrawParams(this._target, bundle.edlCalcBasicGeom!);\n this._target.techniques.draw(params);\n });\n } else { // EDLMode.Full\n // draw with full method based on original paper using full, 1/2, and 1/4 sizes\n const edlCalc2FB: FrameBuffer[] = [bundle.edlCalcFbo1!, bundle.edlCalcFbo2!, bundle.edlCalcFbo4!];\n if (bundle.edlCalcFullGeom === undefined) {\n const ct1 = edlParams.inputTex;\n const ct2 = bundle.edlCalcTex2;\n const ct4 = bundle.edlCalcTex4;\n const ctd = this._depth.getHandle()!;\n bundle.edlCalcFullGeom = [EDLCalcFullGeometry.createGeometry(ct1.getHandle()!, ctd, 1, ct1.width, ct1.height),\n EDLCalcFullGeometry.createGeometry(ct1.getHandle()!, ctd, 2, ct2!.width, ct2!.height),\n EDLCalcFullGeometry.createGeometry(ct1.getHandle()!, ctd, 4, ct4!.width, ct4!.height)];\n }\n\n const edlFiltFbos: FrameBuffer[] = [bundle.edlFiltFbo2!, bundle.edlFiltFbo4!];\n if (bundle.edlFiltGeom === undefined) {\n const ft2 = bundle.edlCalcTex2;\n const ft4 = bundle.edlCalcTex4;\n const ftd = this._depth.getHandle()!;\n bundle.edlFiltGeom = [EDLFilterGeometry.createGeometry(ft2!.getHandle()!, ftd, 2, ft2!.width, ft2!.height),\n EDLFilterGeometry.createGeometry(ft4!.getHandle()!, ftd, 4, ft4!.width, ft4!.height)];\n }\n\n const gl = System.instance.context;\n // Loop through the 3 sizes calculating an edl buffer, and if not first size, then optionally filtering those\n for (let i = 0; i < 3; ++i) {\n fbStack.execute(edlCalc2FB[i], true, false, () => {\n const colTex = edlCalc2FB[i].getColor(0);\n gl.viewport(0, 0, colTex.width, colTex.height); // have to set viewport to current texture size\n const params = getDrawParams(this._target, bundle.edlCalcFullGeom![i]!);\n this._target.techniques.draw(params);\n });\n\n if (edlParams.edlFilter && i > 0) {\n fbStack.execute(edlFiltFbos[i - 1], true, false, () => {\n const params = getDrawParams(this._target, bundle.edlFiltGeom![i - 1]!);\n this._target.techniques.draw(params);\n });\n }\n }\n gl.viewport(0, 0, this._width, this._height); // Restore viewport\n\n // Now combine the 3 results and output\n const tex1 = bundle.edlCalcTex1!.getHandle();\n const tex2 = edlParams.edlFilter ? bundle.edlFiltTex2!.getHandle() : bundle.edlCalcTex2!.getHandle();\n const tex4 = edlParams.edlFilter ? bundle.edlFiltTex4!.getHandle() : bundle.edlCalcTex4!.getHandle();\n fbStack.execute(this._edlFinalFbo, true, useMsBuffers, () => {\n if (bundle.edlMixGeom === undefined) {\n bundle.edlMixGeom = EDLMixGeometry.createGeometry(tex1!, tex2!, tex4!);\n } else {\n if (bundle.edlMixGeom.colorTexture1 !== tex1 || bundle.edlMixGeom.colorTexture2 !== tex2 || bundle.edlMixGeom.colorTexture4 !== tex4) {\n dispose(bundle.edlMixGeom);\n bundle.edlMixGeom = EDLMixGeometry.createGeometry(tex1!, tex2!, tex4!);\n }\n }\n const params = getDrawParams(this._target, bundle.edlMixGeom!);\n this._target.techniques.draw(params);\n });\n }\n return true;\n }\n}\n"]}
|
|
@@ -24,7 +24,7 @@ export declare class EdgeGeometry extends MeshGeometry {
|
|
|
24
24
|
get asSilhouette(): SilhouetteEdgeGeometry | undefined;
|
|
25
25
|
static create(mesh: MeshData, edges: SegmentEdgeParams): EdgeGeometry | undefined;
|
|
26
26
|
get isDisposed(): boolean;
|
|
27
|
-
dispose(): void;
|
|
27
|
+
[Symbol.dispose](): void;
|
|
28
28
|
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
29
29
|
protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void;
|
|
30
30
|
protected _wantWoWReversal(_target: Target): boolean;
|
|
@@ -43,7 +43,7 @@ export declare class SilhouetteEdgeGeometry extends EdgeGeometry {
|
|
|
43
43
|
get asSilhouette(): this;
|
|
44
44
|
static createSilhouettes(mesh: MeshData, params: SilhouetteParams): SilhouetteEdgeGeometry | undefined;
|
|
45
45
|
get isDisposed(): boolean;
|
|
46
|
-
dispose(): void;
|
|
46
|
+
[Symbol.dispose](): void;
|
|
47
47
|
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
48
48
|
get techniqueId(): TechniqueId;
|
|
49
49
|
get renderOrder(): RenderOrder;
|
|
@@ -56,7 +56,7 @@ export declare class PolylineEdgeGeometry extends MeshGeometry {
|
|
|
56
56
|
get lutBuffers(): BuffersContainer;
|
|
57
57
|
static create(mesh: MeshData, polyline: TesselatedPolyline): PolylineEdgeGeometry | undefined;
|
|
58
58
|
get isDisposed(): boolean;
|
|
59
|
-
dispose(): void;
|
|
59
|
+
[Symbol.dispose](): void;
|
|
60
60
|
collectStatistics(stats: RenderMemory.Statistics): void;
|
|
61
61
|
protected _wantWoWReversal(_target: Target): boolean;
|
|
62
62
|
protected _getLineWeight(params: ShaderProgramParams): number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/EdgeGeometry.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAoB,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,yCAAyC,CAAC;AAE9F,gBAAgB;AAChB,qBAAa,YAAa,SAAQ,YAAY;IAC5C,SAAgB,OAAO,EAAE,gBAAgB,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,uBAAuB,EAAE,YAAY,CAAC;IAEzD,IAAW,UAAU,qBAA2B;IAChD,IAAoB,SAAS,cAAwB;IACrD,IAAoB,MAAM,SAAmB;IAC7C,IAAoB,YAAY,IAAI,sBAAsB,GAAG,SAAS,CAAsB;WAE9E,MAAM,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,iBAAiB,GAAG,YAAY,GAAG,SAAS;IAMxF,IAAW,UAAU,IAAI,OAAO,CAI/B;IAEM,OAAO;
|
|
1
|
+
{"version":3,"file":"EdgeGeometry.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/EdgeGeometry.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ class EdgeGeometry extends MeshGeometry_1.MeshGeometry {
|
|
|
33
33
|
&& this._indices.isDisposed
|
|
34
34
|
&& this._endPointAndQuadIndices.isDisposed;
|
|
35
35
|
}
|
|
36
|
-
dispose() {
|
|
36
|
+
[Symbol.dispose]() {
|
|
37
37
|
(0, core_bentley_1.dispose)(this.buffers);
|
|
38
38
|
(0, core_bentley_1.dispose)(this._indices);
|
|
39
39
|
(0, core_bentley_1.dispose)(this._endPointAndQuadIndices);
|
|
@@ -81,8 +81,8 @@ class SilhouetteEdgeGeometry extends EdgeGeometry {
|
|
|
81
81
|
return undefined !== indexBuffer && undefined !== endPointBuffer && undefined !== normalsBuffer ? new SilhouetteEdgeGeometry(indexBuffer, endPointBuffer, normalsBuffer, params.indices.length, mesh) : undefined;
|
|
82
82
|
}
|
|
83
83
|
get isDisposed() { return super.isDisposed && this._normalPairs.isDisposed; }
|
|
84
|
-
dispose() {
|
|
85
|
-
super.dispose();
|
|
84
|
+
[Symbol.dispose]() {
|
|
85
|
+
super[Symbol.dispose]();
|
|
86
86
|
(0, core_bentley_1.dispose)(this._normalPairs);
|
|
87
87
|
}
|
|
88
88
|
collectStatistics(stats) {
|
|
@@ -108,7 +108,7 @@ class PolylineEdgeGeometry extends MeshGeometry_1.MeshGeometry {
|
|
|
108
108
|
return undefined !== buffers ? new PolylineEdgeGeometry(polyline.indices.length, buffers, mesh) : undefined;
|
|
109
109
|
}
|
|
110
110
|
get isDisposed() { return this._buffers.isDisposed; }
|
|
111
|
-
dispose() {
|
|
111
|
+
[Symbol.dispose]() {
|
|
112
112
|
(0, core_bentley_1.dispose)(this._buffers);
|
|
113
113
|
}
|
|
114
114
|
collectStatistics(stats) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EdgeGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/EdgeGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { RenderMode } from \"@itwin/core-common\";\nimport { TesselatedPolyline } from \"../../common/internal/render/PolylineParams\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { PolylineBuffers } from \"./CachedGeometry\";\nimport { ColorInfo } from \"./ColorInfo\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { MeshData } from \"./MeshData\";\nimport { MeshGeometry } from \"./MeshGeometry\";\nimport { SegmentEdgeParams, SilhouetteParams } from \"../../common/internal/render/EdgeParams\";\n\n/** @internal */\nexport class EdgeGeometry extends MeshGeometry {\n public readonly buffers: BuffersContainer;\n protected readonly _indices: BufferHandle;\n protected readonly _endPointAndQuadIndices: BufferHandle;\n\n public get lutBuffers() { return this.buffers; }\n public override get asSurface() { return undefined; }\n public override get asEdge() { return this; }\n public override get asSilhouette(): SilhouetteEdgeGeometry | undefined { return undefined; }\n\n public static create(mesh: MeshData, edges: SegmentEdgeParams): EdgeGeometry | undefined {\n const indexBuffer = BufferHandle.createArrayBuffer(edges.indices.data);\n const endPointBuffer = BufferHandle.createArrayBuffer(edges.endPointAndQuadIndices);\n return undefined !== indexBuffer && undefined !== endPointBuffer ? new EdgeGeometry(indexBuffer, endPointBuffer, edges.indices.length, mesh) : undefined;\n }\n\n public get isDisposed(): boolean {\n return this.buffers.isDisposed\n && this._indices.isDisposed\n && this._endPointAndQuadIndices.isDisposed;\n }\n\n public dispose() {\n dispose(this.buffers);\n dispose(this._indices);\n dispose(this._endPointAndQuadIndices);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addVisibleEdges(this._indices.bytesUsed + this._endPointAndQuadIndices.bytesUsed);\n }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this.buffers;\n\n bufs.bind();\n System.instance.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\n bufs.unbind();\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n protected override _getLineCode(params: ShaderProgramParams): number { return this.computeEdgeLineCode(params); }\n public get techniqueId(): TechniqueId { return TechniqueId.Edge; }\n public override getPass(target: Target) { return this.computeEdgePass(target); }\n public get renderOrder(): RenderOrder { return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge; }\n public override getColor(target: Target): ColorInfo { return this.computeEdgeColor(target); }\n public get endPointAndQuadIndices(): BufferHandle { return this._endPointAndQuadIndices; }\n public override wantMonochrome(target: Target): boolean {\n return target.currentViewFlags.renderMode === RenderMode.Wireframe;\n }\n\n protected constructor(indices: BufferHandle, endPointAndQuadsIndices: BufferHandle, numIndices: number, mesh: MeshData) {\n super(mesh, numIndices);\n this.buffers = BuffersContainer.create();\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.Edge, false);\n const attrEndPointAndQuadIndices = AttributeMap.findAttribute(\"a_endPointAndQuadIndices\", TechniqueId.Edge, false);\n assert(attrPos !== undefined);\n assert(attrEndPointAndQuadIndices !== undefined);\n this.buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.buffers.addBuffer(endPointAndQuadsIndices, [BufferParameters.create(attrEndPointAndQuadIndices.location, 4, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this._indices = indices;\n this._endPointAndQuadIndices = endPointAndQuadsIndices;\n }\n}\n\n/** @internal */\nexport class SilhouetteEdgeGeometry extends EdgeGeometry {\n private readonly _normalPairs: BufferHandle;\n\n public override get asSilhouette() { return this; }\n\n public static createSilhouettes(mesh: MeshData, params: SilhouetteParams): SilhouetteEdgeGeometry | undefined {\n const indexBuffer = BufferHandle.createArrayBuffer(params.indices.data);\n const endPointBuffer = BufferHandle.createArrayBuffer(params.endPointAndQuadIndices);\n const normalsBuffer = BufferHandle.createArrayBuffer(params.normalPairs);\n return undefined !== indexBuffer && undefined !== endPointBuffer && undefined !== normalsBuffer ? new SilhouetteEdgeGeometry(indexBuffer, endPointBuffer, normalsBuffer, params.indices.length, mesh) : undefined;\n }\n\n public override get isDisposed(): boolean { return super.isDisposed && this._normalPairs.isDisposed; }\n\n public override dispose() {\n super.dispose();\n dispose(this._normalPairs);\n }\n\n public override collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addSilhouetteEdges(this._indices.bytesUsed + this._endPointAndQuadIndices.bytesUsed + this._normalPairs.bytesUsed);\n }\n\n public override get techniqueId(): TechniqueId { return TechniqueId.SilhouetteEdge; }\n public override get renderOrder(): RenderOrder { return this.isPlanar ? RenderOrder.PlanarSilhouette : RenderOrder.Silhouette; }\n public get normalPairs(): BufferHandle { return this._normalPairs; }\n\n private constructor(indices: BufferHandle, endPointAndQuadsIndices: BufferHandle, normalPairs: BufferHandle, numIndices: number, mesh: MeshData) {\n super(indices, endPointAndQuadsIndices, numIndices, mesh);\n const attrNormals = AttributeMap.findAttribute(\"a_normals\", TechniqueId.SilhouetteEdge, false);\n assert(attrNormals !== undefined);\n this.buffers.addBuffer(normalPairs, [BufferParameters.create(attrNormals.location, 4, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this._normalPairs = normalPairs;\n }\n}\n\n/** @internal */\nexport class PolylineEdgeGeometry extends MeshGeometry {\n private _buffers: PolylineBuffers;\n\n public get lutBuffers() { return this._buffers.buffers; }\n\n public static create(mesh: MeshData, polyline: TesselatedPolyline): PolylineEdgeGeometry | undefined {\n const buffers = PolylineBuffers.create(polyline);\n return undefined !== buffers ? new PolylineEdgeGeometry(polyline.indices.length, buffers, mesh) : undefined;\n }\n\n public get isDisposed(): boolean { return this._buffers.isDisposed; }\n\n public dispose() {\n dispose(this._buffers);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._buffers.collectStatistics(stats, RenderMemory.BufferType.PolylineEdges);\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n protected override _getLineWeight(params: ShaderProgramParams): number { return this.computeEdgeWeight(params); }\n protected override _getLineCode(params: ShaderProgramParams): number { return this.computeEdgeLineCode(params); }\n public override getColor(target: Target): ColorInfo { return this.computeEdgeColor(target); }\n public get techniqueId(): TechniqueId { return TechniqueId.Polyline; }\n public override getPass(target: Target) { return this.computeEdgePass(target); }\n public get renderOrder(): RenderOrder { return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge; }\n public override get polylineBuffers(): PolylineBuffers { return this._buffers; }\n\n public override wantMonochrome(target: Target): boolean {\n return target.currentViewFlags.renderMode === RenderMode.Wireframe;\n }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const gl = System.instance;\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers.buffers;\n\n bufs.bind();\n gl.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\n bufs.unbind();\n }\n\n private constructor(numIndices: number, buffers: PolylineBuffers, mesh: MeshData) {\n super(mesh, numIndices);\n this._buffers = buffers;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"EdgeGeometry.js","sourceRoot":"","sources":["../../../../src/render/webgl/EdgeGeometry.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose } from \"@itwin/core-bentley\";\nimport { RenderMode } from \"@itwin/core-common\";\nimport { TesselatedPolyline } from \"../../common/internal/render/PolylineParams\";\nimport { RenderMemory } from \"../RenderMemory\";\nimport { AttributeMap } from \"./AttributeMap\";\nimport { PolylineBuffers } from \"./CachedGeometry\";\nimport { ColorInfo } from \"./ColorInfo\";\nimport { ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { BufferHandle, BufferParameters, BuffersContainer } from \"./AttributeBuffers\";\nimport { RenderOrder } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { MeshData } from \"./MeshData\";\nimport { MeshGeometry } from \"./MeshGeometry\";\nimport { SegmentEdgeParams, SilhouetteParams } from \"../../common/internal/render/EdgeParams\";\n\n/** @internal */\nexport class EdgeGeometry extends MeshGeometry {\n public readonly buffers: BuffersContainer;\n protected readonly _indices: BufferHandle;\n protected readonly _endPointAndQuadIndices: BufferHandle;\n\n public get lutBuffers() { return this.buffers; }\n public override get asSurface() { return undefined; }\n public override get asEdge() { return this; }\n public override get asSilhouette(): SilhouetteEdgeGeometry | undefined { return undefined; }\n\n public static create(mesh: MeshData, edges: SegmentEdgeParams): EdgeGeometry | undefined {\n const indexBuffer = BufferHandle.createArrayBuffer(edges.indices.data);\n const endPointBuffer = BufferHandle.createArrayBuffer(edges.endPointAndQuadIndices);\n return undefined !== indexBuffer && undefined !== endPointBuffer ? new EdgeGeometry(indexBuffer, endPointBuffer, edges.indices.length, mesh) : undefined;\n }\n\n public get isDisposed(): boolean {\n return this.buffers.isDisposed\n && this._indices.isDisposed\n && this._endPointAndQuadIndices.isDisposed;\n }\n\n public [Symbol.dispose]() {\n dispose(this.buffers);\n dispose(this._indices);\n dispose(this._endPointAndQuadIndices);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addVisibleEdges(this._indices.bytesUsed + this._endPointAndQuadIndices.bytesUsed);\n }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this.buffers;\n\n bufs.bind();\n System.instance.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\n bufs.unbind();\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n protected override _getLineCode(params: ShaderProgramParams): number { return this.computeEdgeLineCode(params); }\n public get techniqueId(): TechniqueId { return TechniqueId.Edge; }\n public override getPass(target: Target) { return this.computeEdgePass(target); }\n public get renderOrder(): RenderOrder { return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge; }\n public override getColor(target: Target): ColorInfo { return this.computeEdgeColor(target); }\n public get endPointAndQuadIndices(): BufferHandle { return this._endPointAndQuadIndices; }\n public override wantMonochrome(target: Target): boolean {\n return target.currentViewFlags.renderMode === RenderMode.Wireframe;\n }\n\n protected constructor(indices: BufferHandle, endPointAndQuadsIndices: BufferHandle, numIndices: number, mesh: MeshData) {\n super(mesh, numIndices);\n this.buffers = BuffersContainer.create();\n const attrPos = AttributeMap.findAttribute(\"a_pos\", TechniqueId.Edge, false);\n const attrEndPointAndQuadIndices = AttributeMap.findAttribute(\"a_endPointAndQuadIndices\", TechniqueId.Edge, false);\n assert(attrPos !== undefined);\n assert(attrEndPointAndQuadIndices !== undefined);\n this.buffers.addBuffer(indices, [BufferParameters.create(attrPos.location, 3, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this.buffers.addBuffer(endPointAndQuadsIndices, [BufferParameters.create(attrEndPointAndQuadIndices.location, 4, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this._indices = indices;\n this._endPointAndQuadIndices = endPointAndQuadsIndices;\n }\n}\n\n/** @internal */\nexport class SilhouetteEdgeGeometry extends EdgeGeometry {\n private readonly _normalPairs: BufferHandle;\n\n public override get asSilhouette() { return this; }\n\n public static createSilhouettes(mesh: MeshData, params: SilhouetteParams): SilhouetteEdgeGeometry | undefined {\n const indexBuffer = BufferHandle.createArrayBuffer(params.indices.data);\n const endPointBuffer = BufferHandle.createArrayBuffer(params.endPointAndQuadIndices);\n const normalsBuffer = BufferHandle.createArrayBuffer(params.normalPairs);\n return undefined !== indexBuffer && undefined !== endPointBuffer && undefined !== normalsBuffer ? new SilhouetteEdgeGeometry(indexBuffer, endPointBuffer, normalsBuffer, params.indices.length, mesh) : undefined;\n }\n\n public override get isDisposed(): boolean { return super.isDisposed && this._normalPairs.isDisposed; }\n\n public override[Symbol.dispose]() {\n super[Symbol.dispose]();\n dispose(this._normalPairs);\n }\n\n public override collectStatistics(stats: RenderMemory.Statistics): void {\n stats.addSilhouetteEdges(this._indices.bytesUsed + this._endPointAndQuadIndices.bytesUsed + this._normalPairs.bytesUsed);\n }\n\n public override get techniqueId(): TechniqueId { return TechniqueId.SilhouetteEdge; }\n public override get renderOrder(): RenderOrder { return this.isPlanar ? RenderOrder.PlanarSilhouette : RenderOrder.Silhouette; }\n public get normalPairs(): BufferHandle { return this._normalPairs; }\n\n private constructor(indices: BufferHandle, endPointAndQuadsIndices: BufferHandle, normalPairs: BufferHandle, numIndices: number, mesh: MeshData) {\n super(indices, endPointAndQuadsIndices, numIndices, mesh);\n const attrNormals = AttributeMap.findAttribute(\"a_normals\", TechniqueId.SilhouetteEdge, false);\n assert(attrNormals !== undefined);\n this.buffers.addBuffer(normalPairs, [BufferParameters.create(attrNormals.location, 4, GL.DataType.UnsignedByte, false, 0, 0, false)]);\n this._normalPairs = normalPairs;\n }\n}\n\n/** @internal */\nexport class PolylineEdgeGeometry extends MeshGeometry {\n private _buffers: PolylineBuffers;\n\n public get lutBuffers() { return this._buffers.buffers; }\n\n public static create(mesh: MeshData, polyline: TesselatedPolyline): PolylineEdgeGeometry | undefined {\n const buffers = PolylineBuffers.create(polyline);\n return undefined !== buffers ? new PolylineEdgeGeometry(polyline.indices.length, buffers, mesh) : undefined;\n }\n\n public get isDisposed(): boolean { return this._buffers.isDisposed; }\n\n public [Symbol.dispose]() {\n dispose(this._buffers);\n }\n\n public collectStatistics(stats: RenderMemory.Statistics): void {\n this._buffers.collectStatistics(stats, RenderMemory.BufferType.PolylineEdges);\n }\n\n protected _wantWoWReversal(_target: Target): boolean { return true; }\n protected override _getLineWeight(params: ShaderProgramParams): number { return this.computeEdgeWeight(params); }\n protected override _getLineCode(params: ShaderProgramParams): number { return this.computeEdgeLineCode(params); }\n public override getColor(target: Target): ColorInfo { return this.computeEdgeColor(target); }\n public get techniqueId(): TechniqueId { return TechniqueId.Polyline; }\n public override getPass(target: Target) { return this.computeEdgePass(target); }\n public get renderOrder(): RenderOrder { return this.isPlanar ? RenderOrder.PlanarEdge : RenderOrder.Edge; }\n public override get polylineBuffers(): PolylineBuffers { return this._buffers; }\n\n public override wantMonochrome(target: Target): boolean {\n return target.currentViewFlags.renderMode === RenderMode.Wireframe;\n }\n\n protected _draw(numInstances: number, instanceBuffersContainer?: BuffersContainer): void {\n const gl = System.instance;\n const bufs = instanceBuffersContainer !== undefined ? instanceBuffersContainer : this._buffers.buffers;\n\n bufs.bind();\n gl.drawArrays(GL.PrimitiveType.Triangles, 0, this._numIndices, numInstances);\n bufs.unbind();\n }\n\n private constructor(numIndices: number, buffers: PolylineBuffers, mesh: MeshData) {\n super(mesh, numIndices);\n this._buffers = buffers;\n }\n}\n"]}
|
|
@@ -48,7 +48,7 @@ export declare class FeatureOverrides implements WebGLDisposable {
|
|
|
48
48
|
private constructor();
|
|
49
49
|
static createFromTarget(target: Target, options: BatchOptions, cleanup: FeatureOverridesCleanup | undefined): FeatureOverrides;
|
|
50
50
|
get isDisposed(): boolean;
|
|
51
|
-
dispose(): void;
|
|
51
|
+
[Symbol.dispose](): void;
|
|
52
52
|
initFromMap(map: RenderFeatureTable): void;
|
|
53
53
|
update(features: RenderFeatureTable): void;
|
|
54
54
|
bindLUTParams(uniform: UniformHandle): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureOverrides.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/FeatureOverrides.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAKhE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAQ3G;AAED,gBAAgB;AAChB,MAAM,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC;AAIjD,gBAAgB;AAChB,qBAAa,gBAAiB,YAAW,eAAe;IACtD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,IAAI,CAAC,CAAkB;IAC/B,OAAO,CAAC,6BAA6B,CAAC,CAA6B;IACnE,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,2BAA2B,CAAoB;IACvD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,8BAA8B,CAAQ;IAC9C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,sBAAsB,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAE3C,IAAW,aAAa,YAAkC;IAC1D,IAAW,SAAS,YAA8B;IAClD,IAAW,cAAc,YAAmC;IAC5D,IAAW,6BAA6B,YAAkD;IAC1F,IAAW,SAAS,YAA8B;IAClD,IAAW,UAAU,YAA+B;IAEpD,iBAAiB;IACjB,IAAW,OAAO,IAAI,UAAU,GAAG,SAAS,CAAiC;IAC7E,IAAW,UAAU,IAAI,MAAM,CAA8D;IAC7F,IAAW,SAAS,YAAmE;IAEvF,OAAO,CAAC,2BAA2B;IAuB5B,mBAAmB,IAAI,UAAU;IAOxC,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,gBAAgB;IAiIxB,OAAO,CAAC,uBAAuB;IAgD/B,OAAO,CAAC,aAAa;IAuCrB,OAAO;WAMO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,GAAG,SAAS;IAIlH,IAAW,UAAU,IAAI,OAAO,CAAoC;IAE7D,OAAO;
|
|
1
|
+
{"version":3,"file":"FeatureOverrides.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/FeatureOverrides.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEvE,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhD,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAKhE,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO,CAQ3G;AAED,gBAAgB;AAChB,MAAM,MAAM,uBAAuB,GAAG,MAAM,IAAI,CAAC;AAIjD,gBAAgB;AAChB,qBAAa,gBAAiB,YAAW,eAAe;IACtD,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,IAAI,CAAC,CAAkB;IAC/B,OAAO,CAAC,6BAA6B,CAAC,CAA6B;IACnE,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,mBAAmB,CAAoB;IAC/C,OAAO,CAAC,2BAA2B,CAAoB;IACvD,OAAO,CAAC,cAAc,CAAQ;IAC9B,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,eAAe,CAAQ;IAC/B,OAAO,CAAC,8BAA8B,CAAQ;IAC9C,OAAO,CAAC,UAAU,CAAQ;IAC1B,OAAO,CAAC,WAAW,CAAQ;IAC3B,OAAO,CAAC,UAAU,CAAuB;IACzC,OAAO,CAAC,sBAAsB,CAAqC;IACnE,OAAO,CAAC,QAAQ,CAAC,CAA0B;IAE3C,IAAW,aAAa,YAAkC;IAC1D,IAAW,SAAS,YAA8B;IAClD,IAAW,cAAc,YAAmC;IAC5D,IAAW,6BAA6B,YAAkD;IAC1F,IAAW,SAAS,YAA8B;IAClD,IAAW,UAAU,YAA+B;IAEpD,iBAAiB;IACjB,IAAW,OAAO,IAAI,UAAU,GAAG,SAAS,CAAiC;IAC7E,IAAW,UAAU,IAAI,MAAM,CAA8D;IAC7F,IAAW,SAAS,YAAmE;IAEvF,OAAO,CAAC,2BAA2B;IAuB5B,mBAAmB,IAAI,UAAU;IAOxC,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,OAAO;IAaf,OAAO,CAAC,eAAe;IAqBvB,OAAO,CAAC,gBAAgB;IAiIxB,OAAO,CAAC,uBAAuB;IAgD/B,OAAO,CAAC,aAAa;IAuCrB,OAAO;WAMO,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,uBAAuB,GAAG,SAAS;IAIlH,IAAW,UAAU,IAAI,OAAO,CAAoC;IAE7D,CAAC,MAAM,CAAC,OAAO,CAAC;IAQhB,WAAW,CAAC,GAAG,EAAE,kBAAkB;IAenC,MAAM,CAAC,QAAQ,EAAE,kBAAkB;IA8BnC,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAI3C,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAKrC,yBAAyB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;CAG/D"}
|
|
@@ -297,7 +297,7 @@ class FeatureOverrides {
|
|
|
297
297
|
return new FeatureOverrides(target, options, cleanup);
|
|
298
298
|
}
|
|
299
299
|
get isDisposed() { return undefined === this._lut; }
|
|
300
|
-
dispose() {
|
|
300
|
+
[Symbol.dispose]() {
|
|
301
301
|
this._lut = (0, core_bentley_1.dispose)(this._lut);
|
|
302
302
|
if (this._cleanup) {
|
|
303
303
|
this._cleanup();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureOverrides.js","sourceRoot":"","sources":["../../../../src/render/webgl/FeatureOverrides.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose, Id64 } from \"@itwin/core-bentley\";\nimport { PackedFeature, RenderFeatureTable } from \"@itwin/core-common\";\nimport { FeatureSymbology } from \"../FeatureSymbology\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { LineCode } from \"./LineCode\";\nimport { GL } from \"./GL\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { EmphasisFlags, TextureUnit } from \"./RenderFlags\";\nimport { sync, SyncObserver } from \"./Sync\";\nimport { System } from \"./System\";\nimport { Hilites, Target } from \"./Target\";\nimport { Texture2DDataUpdater, Texture2DHandle, TextureHandle } from \"./Texture\";\nimport { BatchOptions } from \"../../common/render/BatchOptions\";\nimport { DisplayParams } from \"../../common/internal/render/DisplayParams\";\nimport { OvrFlags } from \"../../common/internal/render/OvrFlags\";\nimport { computeDimensions } from \"../../common/internal/render/VertexTable\";\n\nexport function isFeatureHilited(feature: PackedFeature, hilites: Hilites, isModelHilited: boolean): boolean {\n if (hilites.isEmpty)\n return false;\n\n if (\"union\" === hilites.modelSubCategoryMode)\n return isModelHilited || hilites.elements.hasPair(feature.elementId) || hilites.subcategories.hasPair(feature.subCategoryId);\n\n return hilites.elements.hasPair(feature.elementId) || (isModelHilited && hilites.subcategories.hasPair(feature.subCategoryId));\n}\n\n/** @internal */\nexport type FeatureOverridesCleanup = () => void;\n\nconst scratchPackedFeature = PackedFeature.createWithIndex();\n\n/** @internal */\nexport class FeatureOverrides implements WebGLDisposable {\n public readonly target: Target;\n private readonly _options: BatchOptions;\n private _lut?: Texture2DHandle;\n private _mostRecentSymbologyOverrides?: FeatureSymbology.Overrides;\n private _lastFlashId = Id64.invalid;\n private _hiliteSyncObserver: SyncObserver = {};\n private _pickExclusionsSyncObserver: SyncObserver = {};\n private _anyOverridden = true;\n private _allHidden = true;\n private _anyTranslucent = true;\n private _anyViewIndependentTranslucent = true;\n private _anyOpaque = true;\n private _anyHilited = true;\n private _lutParams = new Float32Array(2);\n private _uniformSymbologyFlags: EmphasisFlags = EmphasisFlags.None;\n private _cleanup?: FeatureOverridesCleanup;\n\n public get anyOverridden() { return this._anyOverridden; }\n public get allHidden() { return this._allHidden; }\n public get anyTranslucent() { return this._anyTranslucent; }\n public get anyViewIndependentTranslucent() { return this._anyViewIndependentTranslucent; }\n public get anyOpaque() { return this._anyOpaque; }\n public get anyHilited() { return this._anyHilited; }\n\n /** For tests. */\n public get lutData(): Uint8Array | undefined { return this._lut?.dataBytes; }\n public get byteLength(): number { return undefined !== this._lut ? this._lut.bytesUsed : 0; }\n public get isUniform() { return 3 === this._lutParams[0] && 1 === this._lutParams[1]; }\n\n private updateUniformSymbologyFlags(): void {\n this._uniformSymbologyFlags = EmphasisFlags.None;\n if (!this.isUniform || !this._lut)\n return;\n\n let flags = this._lut.dataBytes![0];\n if (0 !== (flags & OvrFlags.Flashed))\n this._uniformSymbologyFlags |= EmphasisFlags.Flashed;\n\n if (0 !== (flags & OvrFlags.NonLocatable))\n this._uniformSymbologyFlags |= EmphasisFlags.NonLocatable;\n\n if (!this._anyHilited)\n return;\n\n flags = this._lut.dataBytes![1] << 8;\n if (0 !== (flags & OvrFlags.Hilited))\n this._uniformSymbologyFlags |= EmphasisFlags.Hilite;\n\n if (0 !== (flags & OvrFlags.Emphasized))\n this._uniformSymbologyFlags |= EmphasisFlags.Emphasized;\n }\n\n public getUniformOverrides(): Uint8Array {\n assert(this.isUniform);\n assert(undefined !== this._lut);\n assert(undefined !== this._lut.dataBytes);\n return this._lut.dataBytes;\n }\n\n private _initialize(map: RenderFeatureTable, ovrs: FeatureSymbology.Overrides, pickExcludes: Id64.Uint32Set, hilite: Hilites, flashed?: Id64.Uint32Pair): Texture2DHandle | undefined {\n const nFeatures = map.numFeatures;\n const dims = computeDimensions(nFeatures, 3, 0, System.instance.maxTextureSize);\n const width = dims.width;\n const height = dims.height;\n assert(width * height >= nFeatures);\n\n this._lutParams[0] = width;\n this._lutParams[1] = height;\n\n const data = new Uint8Array(width * height * 4);\n const creator = new Texture2DDataUpdater(data);\n this.buildLookupTable(creator, map, ovrs, pickExcludes, flashed, hilite);\n\n return TextureHandle.createForData(width, height, data, true, GL.Texture.WrapMode.ClampToEdge);\n }\n\n private _update(map: RenderFeatureTable, lut: Texture2DHandle, pickExcludes: Id64.Uint32Set | undefined, flashed?: Id64.Uint32Pair, hilites?: Hilites, ovrs?: FeatureSymbology.Overrides) {\n const updater = new Texture2DDataUpdater(lut.dataBytes!);\n\n if (undefined === ovrs) {\n this.updateFlashedAndHilited(updater, map, pickExcludes, flashed, hilites);\n } else {\n assert(undefined !== hilites);\n this.buildLookupTable(updater, map, ovrs, pickExcludes, flashed, hilites);\n }\n\n lut.update(updater);\n }\n\n private setTransparency(transparency: number, viewDependentTransparency: true | undefined, data: Texture2DDataUpdater, transparencyByteIndex: number, curFlags: OvrFlags): OvrFlags {\n // transparency in range [0, 1]...convert to byte and invert so 0=transparent...\n let alpha = 1.0 - transparency;\n alpha = Math.floor(0xff * alpha + 0.5);\n if ((0xff - alpha) < DisplayParams.minTransparency)\n alpha = 0xff;\n\n data.setByteAtIndex(transparencyByteIndex, alpha);\n if (0xff === alpha) {\n this._anyOpaque = true;\n } else {\n this._anyTranslucent = true;\n if (!viewDependentTransparency) {\n curFlags |= OvrFlags.ViewIndependentTransparency;\n this._anyViewIndependentTranslucent = true;\n }\n }\n\n return curFlags;\n }\n\n private buildLookupTable(data: Texture2DDataUpdater, map: RenderFeatureTable, ovr: FeatureSymbology.Overrides, pickExclude: Id64.Uint32Set | undefined, flashedIdParts: Id64.Uint32Pair | undefined, hilites: Hilites) {\n const allowHilite = true !== this._options.noHilite;\n const allowFlash = true !== this._options.noFlash;\n const allowEmphasis = true !== this._options.noEmphasis;\n\n let isModelHilited = false;\n const prevModelId = { lower: -1, upper: -1 };\n\n this._anyOpaque = this._anyTranslucent = this._anyViewIndependentTranslucent = this._anyHilited = false;\n\n let nHidden = 0;\n let nOverridden = 0;\n\n // NB: We currently use 3 RGBA values per feature as follows:\n // [0]\n // RG = override flags (see OvrFlags enum)\n // B = line code\n // A = line weight (if we need an extra byte in future, could combine code+weight into a single byte).\n // [1]\n // RGB = rgb\n // A = alpha\n // [2]\n // RGB = line rgb\n // A = line alpha\n for (const feature of map.iterable(scratchPackedFeature)) {\n const i = feature.index;\n const dataIndex = i * 4 * 3;\n\n if (prevModelId.lower !== feature.modelId.lower || prevModelId.upper !== feature.modelId.upper) {\n prevModelId.lower = feature.modelId.lower;\n prevModelId.upper = feature.modelId.upper;\n isModelHilited = allowHilite && hilites.models.hasPair(feature.modelId);\n }\n\n const app = this.target.currentBranch.getFeatureAppearance(\n ovr,\n feature.elementId.lower, feature.elementId.upper,\n feature.subCategoryId.lower, feature.subCategoryId.upper,\n feature.geometryClass,\n feature.modelId.lower, feature.modelId.upper,\n map.type, feature.animationNodeId);\n\n // NB: If the appearance is fully transparent, then:\n // - For normal (\"primary\") models, getAppearance() returns undefined.\n // - For classifier models, getAppearance() returns the appearance, and classification shader will discard fully-transparent classified pixels.\n // (The latter is how we clip the classified model using the classifiers).\n if (undefined === app) {\n // The feature is not visible. We don't care about any of the other overrides, because we're not going to render it.\n data.setOvrFlagsAtIndex(dataIndex, OvrFlags.Visibility);\n nHidden++;\n nOverridden++;\n continue;\n }\n\n let flags = app.nonLocatable ? OvrFlags.NonLocatable : OvrFlags.None;\n if (allowHilite && isFeatureHilited(feature, hilites, isModelHilited)) {\n flags |= OvrFlags.Hilited;\n this._anyHilited = true;\n }\n\n if (allowEmphasis && app.emphasized) {\n flags |= OvrFlags.Emphasized;\n this._anyHilited = true;\n }\n\n if (app.overridesRgb && app.rgb) {\n flags |= OvrFlags.Rgb;\n const rgb = app.rgb;\n data.setByteAtIndex(dataIndex + 4, rgb.r);\n data.setByteAtIndex(dataIndex + 5, rgb.g);\n data.setByteAtIndex(dataIndex + 6, rgb.b);\n }\n\n if (undefined !== app.transparency) {\n flags |= OvrFlags.Alpha;\n flags = this.setTransparency(app.transparency, app.viewDependentTransparency, data, dataIndex + 7, flags);\n }\n\n const lineRgb = app.getLineRgb();\n if (lineRgb) {\n flags |= OvrFlags.LineRgb;\n data.setByteAtIndex(dataIndex + 8, lineRgb.r);\n data.setByteAtIndex(dataIndex + 9, lineRgb.g);\n data.setByteAtIndex(dataIndex + 10, lineRgb.b);\n }\n\n const lineTransp = app.getLineTransparency();\n if (undefined !== lineTransp) {\n flags |= OvrFlags.LineAlpha;\n flags = this.setTransparency(lineTransp, app.viewDependentTransparency, data, dataIndex + 11, flags);\n }\n\n if (app.overridesWeight && app.weight) {\n flags |= OvrFlags.Weight;\n let weight = app.weight;\n weight = Math.min(31, weight);\n weight = Math.max(1, weight);\n data.setByteAtIndex(dataIndex + 3, weight);\n }\n\n if (app.overridesLinePixels && app.linePixels) {\n flags |= OvrFlags.LineCode;\n const lineCode = LineCode.valueFromLinePixels(app.linePixels);\n data.setByteAtIndex(dataIndex + 2, lineCode);\n }\n\n if (app.ignoresMaterial)\n flags |= OvrFlags.IgnoreMaterial;\n\n if (allowFlash && undefined !== flashedIdParts && feature.elementId.lower === flashedIdParts.lower && feature.elementId.upper === flashedIdParts.upper)\n flags |= OvrFlags.Flashed;\n\n if (pickExclude?.hasPair(feature.elementId)) {\n flags |= OvrFlags.InvisibleDuringPick;\n ++nHidden;\n }\n\n data.setOvrFlagsAtIndex(dataIndex, flags);\n if (OvrFlags.None !== flags)\n nOverridden++;\n }\n\n this._allHidden = (nHidden === map.numFeatures);\n this._anyOverridden = (nOverridden > 0);\n\n this.updateUniformSymbologyFlags();\n }\n\n // NB: If hilites is undefined, it means that the hilited set has not changed.\n private updateFlashedAndHilited(data: Texture2DDataUpdater, map: RenderFeatureTable, pickExcludes: Id64.Uint32Set | undefined, flashed?: Id64.Uint32Pair, hilites?: Hilites) {\n if (!hilites || true === this._options.noHilite) {\n this.updateFlashed(data, map, pickExcludes, flashed);\n return;\n }\n\n const allowFlash = true !== this._options.noFlash;\n const intersect = \"intersection\" === hilites.modelSubCategoryMode;\n\n this._anyOverridden = this._anyHilited = false;\n for (const feature of map.iterable(scratchPackedFeature)) {\n const dataIndex = feature.index * 4 * 3;\n const oldFlags = data.getOvrFlagsAtIndex(dataIndex);\n if (OvrFlags.None !== (oldFlags & OvrFlags.Visibility)) {\n // If it's invisible, none of the other flags matter. We can't flash it and don't want to hilite it.\n this._anyOverridden = true;\n continue;\n }\n\n const isModelHilited = hilites.models.hasPair(feature.modelId);\n let isHilited = isModelHilited && !intersect;\n if (!isHilited)\n isHilited = hilites.elements.hasPair(feature.elementId);\n\n if (!isHilited)\n if (isModelHilited || !intersect)\n isHilited = hilites.subcategories.hasPair(feature.subCategoryId);\n\n let isFlashed = false;\n if (flashed && allowFlash)\n isFlashed = feature.elementId.lower === flashed.lower && feature.elementId.upper === flashed.upper;\n\n let newFlags = isFlashed ? (oldFlags | OvrFlags.Flashed) : (oldFlags & ~OvrFlags.Flashed);\n newFlags = isHilited ? (newFlags | OvrFlags.Hilited) : (newFlags & ~OvrFlags.Hilited);\n if (pickExcludes) {\n newFlags = pickExcludes.hasPair(feature.elementId) ? (newFlags | OvrFlags.InvisibleDuringPick) : (newFlags & ~OvrFlags.InvisibleDuringPick);\n }\n\n data.setOvrFlagsAtIndex(dataIndex, newFlags);\n if (OvrFlags.None !== newFlags) {\n this._anyOverridden = true;\n this._anyHilited = this._anyHilited || isHilited || OvrFlags.None !== (newFlags & OvrFlags.Emphasized);\n }\n }\n\n this.updateUniformSymbologyFlags();\n }\n\n private updateFlashed(data: Texture2DDataUpdater, map: RenderFeatureTable, pickExcludes: Id64.Uint32Set | undefined, flashed?: Id64.Uint32Pair): void {\n if (true === this._options.noFlash && !pickExcludes)\n return;\n\n this._anyOverridden = false;\n const elemId = { lower: 0, upper: 0 };\n for (let i = 0; i < map.numFeatures; i++) {\n const dataIndex = i * 4 * 3;\n const oldFlags = data.getOvrFlagsAtIndex(dataIndex);\n if (OvrFlags.None !== (oldFlags & OvrFlags.Visibility)) {\n // If it's invisible, none of the other flags matter and we can't flash it.\n this._anyOverridden = true;\n continue;\n }\n\n let isFlashed = false;\n let thisElemId: Id64.Uint32Pair | undefined;\n if (flashed && !this._options.noFlash) {\n thisElemId = map.getElementIdPair(i, elemId);\n isFlashed = thisElemId.lower === flashed.lower && thisElemId.upper === flashed.upper;\n }\n\n let newFlags = isFlashed ? (oldFlags | OvrFlags.Flashed) : (oldFlags & ~OvrFlags.Flashed);\n if (pickExcludes) {\n if (!thisElemId) {\n thisElemId = map.getElementIdPair(i, elemId);\n }\n\n newFlags = pickExcludes.hasPair(thisElemId) ? (newFlags | OvrFlags.InvisibleDuringPick) : (newFlags & ~OvrFlags.InvisibleDuringPick);\n }\n\n data.setOvrFlagsAtIndex(dataIndex, newFlags);\n if (OvrFlags.None !== newFlags)\n this._anyOverridden = true;\n }\n\n this.updateUniformSymbologyFlags();\n }\n\n private constructor(target: Target, options: BatchOptions, cleanup: FeatureOverridesCleanup | undefined) {\n this.target = target;\n this._options = options;\n this._cleanup = cleanup;\n }\n\n public static createFromTarget(target: Target, options: BatchOptions, cleanup: FeatureOverridesCleanup | undefined) {\n return new FeatureOverrides(target, options, cleanup);\n }\n\n public get isDisposed(): boolean { return undefined === this._lut; }\n\n public dispose() {\n this._lut = dispose(this._lut);\n if (this._cleanup) {\n this._cleanup();\n this._cleanup = undefined;\n }\n }\n\n public initFromMap(map: RenderFeatureTable) {\n const nFeatures = map.numFeatures;\n assert(0 < nFeatures);\n\n this._lut = dispose(this._lut);\n\n const ovrs: FeatureSymbology.Overrides = this.target.currentFeatureSymbologyOverrides;\n this._mostRecentSymbologyOverrides = ovrs;\n const hilite = this.target.hilites;\n this._lut = this._initialize(map, ovrs, this.target.pickExclusions, hilite, this.target.flashed);\n this._lastFlashId = Id64.invalid;\n this._hiliteSyncObserver = {};\n this._pickExclusionsSyncObserver = {};\n }\n\n public update(features: RenderFeatureTable) {\n let ovrs: FeatureSymbology.Overrides | undefined = this.target.currentFeatureSymbologyOverrides;\n const ovrsUpdated = ovrs !== this._mostRecentSymbologyOverrides;\n if (ovrsUpdated)\n this._mostRecentSymbologyOverrides = ovrs;\n else\n ovrs = undefined;\n\n const flashedId = this.target.flashedId;\n\n const hilite = this.target.hilites;\n const hiliteUpdated = !sync(this.target.hiliteSyncTarget, this._hiliteSyncObserver);\n const pickExcludesUpdated = !sync(this.target.pickExclusionsSyncTarget, this._pickExclusionsSyncObserver);\n\n if (ovrsUpdated || hiliteUpdated || flashedId !== this._lastFlashId || pickExcludesUpdated) {\n // _lut can be undefined if context was lost, (gl.createTexture returns null)\n if (this._lut) {\n this._update(\n features,\n this._lut,\n undefined !== ovrs || pickExcludesUpdated ? this.target.pickExclusions : undefined,\n this.target.flashed,\n undefined !== ovrs || hiliteUpdated ? hilite : undefined, ovrs,\n );\n }\n\n this._lastFlashId = flashedId;\n }\n }\n\n public bindLUTParams(uniform: UniformHandle): void {\n uniform.setUniform2fv(this._lutParams);\n }\n\n public bindLUT(uniform: UniformHandle): void {\n if (this._lut)\n this._lut.bindSampler(uniform, TextureUnit.FeatureSymbology);\n }\n\n public bindUniformSymbologyFlags(uniform: UniformHandle): void {\n uniform.setUniform1f(this._uniformSymbologyFlags);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"FeatureOverrides.js","sourceRoot":"","sources":["../../../../src/render/webgl/FeatureOverrides.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert, dispose, Id64 } from \"@itwin/core-bentley\";\nimport { PackedFeature, RenderFeatureTable } from \"@itwin/core-common\";\nimport { FeatureSymbology } from \"../FeatureSymbology\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { LineCode } from \"./LineCode\";\nimport { GL } from \"./GL\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { EmphasisFlags, TextureUnit } from \"./RenderFlags\";\nimport { sync, SyncObserver } from \"./Sync\";\nimport { System } from \"./System\";\nimport { Hilites, Target } from \"./Target\";\nimport { Texture2DDataUpdater, Texture2DHandle, TextureHandle } from \"./Texture\";\nimport { BatchOptions } from \"../../common/render/BatchOptions\";\nimport { DisplayParams } from \"../../common/internal/render/DisplayParams\";\nimport { OvrFlags } from \"../../common/internal/render/OvrFlags\";\nimport { computeDimensions } from \"../../common/internal/render/VertexTable\";\n\nexport function isFeatureHilited(feature: PackedFeature, hilites: Hilites, isModelHilited: boolean): boolean {\n if (hilites.isEmpty)\n return false;\n\n if (\"union\" === hilites.modelSubCategoryMode)\n return isModelHilited || hilites.elements.hasPair(feature.elementId) || hilites.subcategories.hasPair(feature.subCategoryId);\n\n return hilites.elements.hasPair(feature.elementId) || (isModelHilited && hilites.subcategories.hasPair(feature.subCategoryId));\n}\n\n/** @internal */\nexport type FeatureOverridesCleanup = () => void;\n\nconst scratchPackedFeature = PackedFeature.createWithIndex();\n\n/** @internal */\nexport class FeatureOverrides implements WebGLDisposable {\n public readonly target: Target;\n private readonly _options: BatchOptions;\n private _lut?: Texture2DHandle;\n private _mostRecentSymbologyOverrides?: FeatureSymbology.Overrides;\n private _lastFlashId = Id64.invalid;\n private _hiliteSyncObserver: SyncObserver = {};\n private _pickExclusionsSyncObserver: SyncObserver = {};\n private _anyOverridden = true;\n private _allHidden = true;\n private _anyTranslucent = true;\n private _anyViewIndependentTranslucent = true;\n private _anyOpaque = true;\n private _anyHilited = true;\n private _lutParams = new Float32Array(2);\n private _uniformSymbologyFlags: EmphasisFlags = EmphasisFlags.None;\n private _cleanup?: FeatureOverridesCleanup;\n\n public get anyOverridden() { return this._anyOverridden; }\n public get allHidden() { return this._allHidden; }\n public get anyTranslucent() { return this._anyTranslucent; }\n public get anyViewIndependentTranslucent() { return this._anyViewIndependentTranslucent; }\n public get anyOpaque() { return this._anyOpaque; }\n public get anyHilited() { return this._anyHilited; }\n\n /** For tests. */\n public get lutData(): Uint8Array | undefined { return this._lut?.dataBytes; }\n public get byteLength(): number { return undefined !== this._lut ? this._lut.bytesUsed : 0; }\n public get isUniform() { return 3 === this._lutParams[0] && 1 === this._lutParams[1]; }\n\n private updateUniformSymbologyFlags(): void {\n this._uniformSymbologyFlags = EmphasisFlags.None;\n if (!this.isUniform || !this._lut)\n return;\n\n let flags = this._lut.dataBytes![0];\n if (0 !== (flags & OvrFlags.Flashed))\n this._uniformSymbologyFlags |= EmphasisFlags.Flashed;\n\n if (0 !== (flags & OvrFlags.NonLocatable))\n this._uniformSymbologyFlags |= EmphasisFlags.NonLocatable;\n\n if (!this._anyHilited)\n return;\n\n flags = this._lut.dataBytes![1] << 8;\n if (0 !== (flags & OvrFlags.Hilited))\n this._uniformSymbologyFlags |= EmphasisFlags.Hilite;\n\n if (0 !== (flags & OvrFlags.Emphasized))\n this._uniformSymbologyFlags |= EmphasisFlags.Emphasized;\n }\n\n public getUniformOverrides(): Uint8Array {\n assert(this.isUniform);\n assert(undefined !== this._lut);\n assert(undefined !== this._lut.dataBytes);\n return this._lut.dataBytes;\n }\n\n private _initialize(map: RenderFeatureTable, ovrs: FeatureSymbology.Overrides, pickExcludes: Id64.Uint32Set, hilite: Hilites, flashed?: Id64.Uint32Pair): Texture2DHandle | undefined {\n const nFeatures = map.numFeatures;\n const dims = computeDimensions(nFeatures, 3, 0, System.instance.maxTextureSize);\n const width = dims.width;\n const height = dims.height;\n assert(width * height >= nFeatures);\n\n this._lutParams[0] = width;\n this._lutParams[1] = height;\n\n const data = new Uint8Array(width * height * 4);\n const creator = new Texture2DDataUpdater(data);\n this.buildLookupTable(creator, map, ovrs, pickExcludes, flashed, hilite);\n\n return TextureHandle.createForData(width, height, data, true, GL.Texture.WrapMode.ClampToEdge);\n }\n\n private _update(map: RenderFeatureTable, lut: Texture2DHandle, pickExcludes: Id64.Uint32Set | undefined, flashed?: Id64.Uint32Pair, hilites?: Hilites, ovrs?: FeatureSymbology.Overrides) {\n const updater = new Texture2DDataUpdater(lut.dataBytes!);\n\n if (undefined === ovrs) {\n this.updateFlashedAndHilited(updater, map, pickExcludes, flashed, hilites);\n } else {\n assert(undefined !== hilites);\n this.buildLookupTable(updater, map, ovrs, pickExcludes, flashed, hilites);\n }\n\n lut.update(updater);\n }\n\n private setTransparency(transparency: number, viewDependentTransparency: true | undefined, data: Texture2DDataUpdater, transparencyByteIndex: number, curFlags: OvrFlags): OvrFlags {\n // transparency in range [0, 1]...convert to byte and invert so 0=transparent...\n let alpha = 1.0 - transparency;\n alpha = Math.floor(0xff * alpha + 0.5);\n if ((0xff - alpha) < DisplayParams.minTransparency)\n alpha = 0xff;\n\n data.setByteAtIndex(transparencyByteIndex, alpha);\n if (0xff === alpha) {\n this._anyOpaque = true;\n } else {\n this._anyTranslucent = true;\n if (!viewDependentTransparency) {\n curFlags |= OvrFlags.ViewIndependentTransparency;\n this._anyViewIndependentTranslucent = true;\n }\n }\n\n return curFlags;\n }\n\n private buildLookupTable(data: Texture2DDataUpdater, map: RenderFeatureTable, ovr: FeatureSymbology.Overrides, pickExclude: Id64.Uint32Set | undefined, flashedIdParts: Id64.Uint32Pair | undefined, hilites: Hilites) {\n const allowHilite = true !== this._options.noHilite;\n const allowFlash = true !== this._options.noFlash;\n const allowEmphasis = true !== this._options.noEmphasis;\n\n let isModelHilited = false;\n const prevModelId = { lower: -1, upper: -1 };\n\n this._anyOpaque = this._anyTranslucent = this._anyViewIndependentTranslucent = this._anyHilited = false;\n\n let nHidden = 0;\n let nOverridden = 0;\n\n // NB: We currently use 3 RGBA values per feature as follows:\n // [0]\n // RG = override flags (see OvrFlags enum)\n // B = line code\n // A = line weight (if we need an extra byte in future, could combine code+weight into a single byte).\n // [1]\n // RGB = rgb\n // A = alpha\n // [2]\n // RGB = line rgb\n // A = line alpha\n for (const feature of map.iterable(scratchPackedFeature)) {\n const i = feature.index;\n const dataIndex = i * 4 * 3;\n\n if (prevModelId.lower !== feature.modelId.lower || prevModelId.upper !== feature.modelId.upper) {\n prevModelId.lower = feature.modelId.lower;\n prevModelId.upper = feature.modelId.upper;\n isModelHilited = allowHilite && hilites.models.hasPair(feature.modelId);\n }\n\n const app = this.target.currentBranch.getFeatureAppearance(\n ovr,\n feature.elementId.lower, feature.elementId.upper,\n feature.subCategoryId.lower, feature.subCategoryId.upper,\n feature.geometryClass,\n feature.modelId.lower, feature.modelId.upper,\n map.type, feature.animationNodeId);\n\n // NB: If the appearance is fully transparent, then:\n // - For normal (\"primary\") models, getAppearance() returns undefined.\n // - For classifier models, getAppearance() returns the appearance, and classification shader will discard fully-transparent classified pixels.\n // (The latter is how we clip the classified model using the classifiers).\n if (undefined === app) {\n // The feature is not visible. We don't care about any of the other overrides, because we're not going to render it.\n data.setOvrFlagsAtIndex(dataIndex, OvrFlags.Visibility);\n nHidden++;\n nOverridden++;\n continue;\n }\n\n let flags = app.nonLocatable ? OvrFlags.NonLocatable : OvrFlags.None;\n if (allowHilite && isFeatureHilited(feature, hilites, isModelHilited)) {\n flags |= OvrFlags.Hilited;\n this._anyHilited = true;\n }\n\n if (allowEmphasis && app.emphasized) {\n flags |= OvrFlags.Emphasized;\n this._anyHilited = true;\n }\n\n if (app.overridesRgb && app.rgb) {\n flags |= OvrFlags.Rgb;\n const rgb = app.rgb;\n data.setByteAtIndex(dataIndex + 4, rgb.r);\n data.setByteAtIndex(dataIndex + 5, rgb.g);\n data.setByteAtIndex(dataIndex + 6, rgb.b);\n }\n\n if (undefined !== app.transparency) {\n flags |= OvrFlags.Alpha;\n flags = this.setTransparency(app.transparency, app.viewDependentTransparency, data, dataIndex + 7, flags);\n }\n\n const lineRgb = app.getLineRgb();\n if (lineRgb) {\n flags |= OvrFlags.LineRgb;\n data.setByteAtIndex(dataIndex + 8, lineRgb.r);\n data.setByteAtIndex(dataIndex + 9, lineRgb.g);\n data.setByteAtIndex(dataIndex + 10, lineRgb.b);\n }\n\n const lineTransp = app.getLineTransparency();\n if (undefined !== lineTransp) {\n flags |= OvrFlags.LineAlpha;\n flags = this.setTransparency(lineTransp, app.viewDependentTransparency, data, dataIndex + 11, flags);\n }\n\n if (app.overridesWeight && app.weight) {\n flags |= OvrFlags.Weight;\n let weight = app.weight;\n weight = Math.min(31, weight);\n weight = Math.max(1, weight);\n data.setByteAtIndex(dataIndex + 3, weight);\n }\n\n if (app.overridesLinePixels && app.linePixels) {\n flags |= OvrFlags.LineCode;\n const lineCode = LineCode.valueFromLinePixels(app.linePixels);\n data.setByteAtIndex(dataIndex + 2, lineCode);\n }\n\n if (app.ignoresMaterial)\n flags |= OvrFlags.IgnoreMaterial;\n\n if (allowFlash && undefined !== flashedIdParts && feature.elementId.lower === flashedIdParts.lower && feature.elementId.upper === flashedIdParts.upper)\n flags |= OvrFlags.Flashed;\n\n if (pickExclude?.hasPair(feature.elementId)) {\n flags |= OvrFlags.InvisibleDuringPick;\n ++nHidden;\n }\n\n data.setOvrFlagsAtIndex(dataIndex, flags);\n if (OvrFlags.None !== flags)\n nOverridden++;\n }\n\n this._allHidden = (nHidden === map.numFeatures);\n this._anyOverridden = (nOverridden > 0);\n\n this.updateUniformSymbologyFlags();\n }\n\n // NB: If hilites is undefined, it means that the hilited set has not changed.\n private updateFlashedAndHilited(data: Texture2DDataUpdater, map: RenderFeatureTable, pickExcludes: Id64.Uint32Set | undefined, flashed?: Id64.Uint32Pair, hilites?: Hilites) {\n if (!hilites || true === this._options.noHilite) {\n this.updateFlashed(data, map, pickExcludes, flashed);\n return;\n }\n\n const allowFlash = true !== this._options.noFlash;\n const intersect = \"intersection\" === hilites.modelSubCategoryMode;\n\n this._anyOverridden = this._anyHilited = false;\n for (const feature of map.iterable(scratchPackedFeature)) {\n const dataIndex = feature.index * 4 * 3;\n const oldFlags = data.getOvrFlagsAtIndex(dataIndex);\n if (OvrFlags.None !== (oldFlags & OvrFlags.Visibility)) {\n // If it's invisible, none of the other flags matter. We can't flash it and don't want to hilite it.\n this._anyOverridden = true;\n continue;\n }\n\n const isModelHilited = hilites.models.hasPair(feature.modelId);\n let isHilited = isModelHilited && !intersect;\n if (!isHilited)\n isHilited = hilites.elements.hasPair(feature.elementId);\n\n if (!isHilited)\n if (isModelHilited || !intersect)\n isHilited = hilites.subcategories.hasPair(feature.subCategoryId);\n\n let isFlashed = false;\n if (flashed && allowFlash)\n isFlashed = feature.elementId.lower === flashed.lower && feature.elementId.upper === flashed.upper;\n\n let newFlags = isFlashed ? (oldFlags | OvrFlags.Flashed) : (oldFlags & ~OvrFlags.Flashed);\n newFlags = isHilited ? (newFlags | OvrFlags.Hilited) : (newFlags & ~OvrFlags.Hilited);\n if (pickExcludes) {\n newFlags = pickExcludes.hasPair(feature.elementId) ? (newFlags | OvrFlags.InvisibleDuringPick) : (newFlags & ~OvrFlags.InvisibleDuringPick);\n }\n\n data.setOvrFlagsAtIndex(dataIndex, newFlags);\n if (OvrFlags.None !== newFlags) {\n this._anyOverridden = true;\n this._anyHilited = this._anyHilited || isHilited || OvrFlags.None !== (newFlags & OvrFlags.Emphasized);\n }\n }\n\n this.updateUniformSymbologyFlags();\n }\n\n private updateFlashed(data: Texture2DDataUpdater, map: RenderFeatureTable, pickExcludes: Id64.Uint32Set | undefined, flashed?: Id64.Uint32Pair): void {\n if (true === this._options.noFlash && !pickExcludes)\n return;\n\n this._anyOverridden = false;\n const elemId = { lower: 0, upper: 0 };\n for (let i = 0; i < map.numFeatures; i++) {\n const dataIndex = i * 4 * 3;\n const oldFlags = data.getOvrFlagsAtIndex(dataIndex);\n if (OvrFlags.None !== (oldFlags & OvrFlags.Visibility)) {\n // If it's invisible, none of the other flags matter and we can't flash it.\n this._anyOverridden = true;\n continue;\n }\n\n let isFlashed = false;\n let thisElemId: Id64.Uint32Pair | undefined;\n if (flashed && !this._options.noFlash) {\n thisElemId = map.getElementIdPair(i, elemId);\n isFlashed = thisElemId.lower === flashed.lower && thisElemId.upper === flashed.upper;\n }\n\n let newFlags = isFlashed ? (oldFlags | OvrFlags.Flashed) : (oldFlags & ~OvrFlags.Flashed);\n if (pickExcludes) {\n if (!thisElemId) {\n thisElemId = map.getElementIdPair(i, elemId);\n }\n\n newFlags = pickExcludes.hasPair(thisElemId) ? (newFlags | OvrFlags.InvisibleDuringPick) : (newFlags & ~OvrFlags.InvisibleDuringPick);\n }\n\n data.setOvrFlagsAtIndex(dataIndex, newFlags);\n if (OvrFlags.None !== newFlags)\n this._anyOverridden = true;\n }\n\n this.updateUniformSymbologyFlags();\n }\n\n private constructor(target: Target, options: BatchOptions, cleanup: FeatureOverridesCleanup | undefined) {\n this.target = target;\n this._options = options;\n this._cleanup = cleanup;\n }\n\n public static createFromTarget(target: Target, options: BatchOptions, cleanup: FeatureOverridesCleanup | undefined) {\n return new FeatureOverrides(target, options, cleanup);\n }\n\n public get isDisposed(): boolean { return undefined === this._lut; }\n\n public [Symbol.dispose]() {\n this._lut = dispose(this._lut);\n if (this._cleanup) {\n this._cleanup();\n this._cleanup = undefined;\n }\n }\n\n public initFromMap(map: RenderFeatureTable) {\n const nFeatures = map.numFeatures;\n assert(0 < nFeatures);\n\n this._lut = dispose(this._lut);\n\n const ovrs: FeatureSymbology.Overrides = this.target.currentFeatureSymbologyOverrides;\n this._mostRecentSymbologyOverrides = ovrs;\n const hilite = this.target.hilites;\n this._lut = this._initialize(map, ovrs, this.target.pickExclusions, hilite, this.target.flashed);\n this._lastFlashId = Id64.invalid;\n this._hiliteSyncObserver = {};\n this._pickExclusionsSyncObserver = {};\n }\n\n public update(features: RenderFeatureTable) {\n let ovrs: FeatureSymbology.Overrides | undefined = this.target.currentFeatureSymbologyOverrides;\n const ovrsUpdated = ovrs !== this._mostRecentSymbologyOverrides;\n if (ovrsUpdated)\n this._mostRecentSymbologyOverrides = ovrs;\n else\n ovrs = undefined;\n\n const flashedId = this.target.flashedId;\n\n const hilite = this.target.hilites;\n const hiliteUpdated = !sync(this.target.hiliteSyncTarget, this._hiliteSyncObserver);\n const pickExcludesUpdated = !sync(this.target.pickExclusionsSyncTarget, this._pickExclusionsSyncObserver);\n\n if (ovrsUpdated || hiliteUpdated || flashedId !== this._lastFlashId || pickExcludesUpdated) {\n // _lut can be undefined if context was lost, (gl.createTexture returns null)\n if (this._lut) {\n this._update(\n features,\n this._lut,\n undefined !== ovrs || pickExcludesUpdated ? this.target.pickExclusions : undefined,\n this.target.flashed,\n undefined !== ovrs || hiliteUpdated ? hilite : undefined, ovrs,\n );\n }\n\n this._lastFlashId = flashedId;\n }\n }\n\n public bindLUTParams(uniform: UniformHandle): void {\n uniform.setUniform2fv(this._lutParams);\n }\n\n public bindLUT(uniform: UniformHandle): void {\n if (this._lut)\n this._lut.bindSampler(uniform, TextureUnit.FeatureSymbology);\n }\n\n public bindUniformSymbologyFlags(uniform: UniformHandle): void {\n uniform.setUniform1f(this._uniformSymbologyFlags);\n }\n}\n"]}
|
|
@@ -39,7 +39,7 @@ export declare class FrameBuffer implements WebGLDisposable {
|
|
|
39
39
|
};
|
|
40
40
|
private constructor();
|
|
41
41
|
static create(colorTextures: TextureHandle[], depthBuffer?: DepthBuffer, colorMsBuffers?: RenderBufferMultiSample[], msFilters?: GL.MultiSampling.Filter[], depthBufferMs?: DepthBuffer): FrameBuffer | undefined;
|
|
42
|
-
dispose(): void;
|
|
42
|
+
[Symbol.dispose](): void;
|
|
43
43
|
bind(bindAttachments?: boolean, bindMS?: boolean): boolean;
|
|
44
44
|
unbind(): void;
|
|
45
45
|
suspend(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FrameBuffer.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/FrameBuffer.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,gBAAgB;AAChB,MAAM,MAAM,WAAW,GAAG,YAAY,GAAG,uBAAuB,GAAG,aAAa,CAAC;AAGjF,gBAAgB;AAChB,0BAAkB,oBAAoB;IACpC,OAAO,IAAA;IACP,KAAK,IAAA;IACL,oBAAoB,IAAA;IACpB,iBAAiB,IAAA;IACjB,gCAAgC,IAAA;IAChC,SAAS,IAAA;CACV;AAED,gBAAgB;AAChB,qBAAa,WAAY,YAAW,eAAe;IACjD,OAAO,CAAC,IAAI,CAAC,CAAmB;IAChC,OAAO,CAAC,MAAM,CAAC,CAAmB;IAClC,OAAO,CAAC,UAAU,CAAsD;IACxE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuB;IACtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;IACjE,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAgB;IAClD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;IACjE,SAAgB,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1C,SAAgB,aAAa,CAAC,EAAE,WAAW,CAAC;IAE5C,IAAW,UAAU,IAAI,OAAO,CAAoC;IAEpE,IAAW,OAAO,IAAI,OAAO,CAAsI;IAEnK,IAAW,mBAAmB,IAAI,OAAO,CAAoJ;IAE7L,IAAW,WAAW,IAAI,OAAO,CAA+D;IAEhG,IAAW,cAAc,IAAI,OAAO,CAAgF;IAE7G,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa;IAQpC,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,uBAAuB,GAAG,SAAS,CAAA;KAAE;IAU9H,OAAO;WAiEO,MAAM,CAAC,aAAa,EAAE,aAAa,EAAE,EAAE,WAAW,CAAC,EAAE,WAAW,EAAE,cAAc,CAAC,EAAE,uBAAuB,EAAE,EAAE,SAAS,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,aAAa,CAAC,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS;IAQjN,OAAO,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"FrameBuffer.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/FrameBuffer.ts"],"names":[],"mappings":"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"}
|
|
@@ -107,7 +107,7 @@ class FrameBuffer {
|
|
|
107
107
|
}
|
|
108
108
|
return new FrameBuffer(fbo, colorTextures, depthBuffer, colorMsBuffers, msFilters, depthBufferMs);
|
|
109
109
|
}
|
|
110
|
-
dispose() {
|
|
110
|
+
[Symbol.dispose]() {
|
|
111
111
|
// NB: The FrameBuffer does not *own* the textures and depth buffer.
|
|
112
112
|
if (!this.isDisposed) {
|
|
113
113
|
System_1.System.instance.context.deleteFramebuffer(this._fbo);
|