@itwin/core-frontend 5.1.1 → 5.1.3-experimental.1
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 +13 -1
- package/lib/cjs/AccuDraw.js.map +1 -1
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
- package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/cjs/AuxCoordSys.js.map +1 -1
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BingLocation.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/BriefcaseTxns.js.map +1 -1
- package/lib/cjs/CatalogConnection.js.map +1 -1
- package/lib/cjs/CategorySelectorState.js.map +1 -1
- package/lib/cjs/ChangeFlags.js.map +1 -1
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/CoordSystem.js.map +1 -1
- package/lib/cjs/DecorationsCache.js.map +1 -1
- package/lib/cjs/DevTools.js.map +1 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/DrawingViewState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EntityState.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
- package/lib/cjs/FlashSettings.js.map +1 -1
- package/lib/cjs/FrontendHubAccess.js.map +1 -1
- package/lib/cjs/Frustum2d.js.map +1 -1
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/FuzzySearch.js.map +1 -1
- package/lib/cjs/GeoServices.js.map +1 -1
- package/lib/cjs/GlobeAnimator.js.map +1 -1
- package/lib/cjs/GraphicalEditingScope.js.map +1 -1
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IModelRoutingContext.js.map +1 -1
- package/lib/cjs/IModeljs-css.js.map +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LinePlaneIntersect.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/MarginPercent.js.map +1 -1
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelSelectorState.js.map +1 -1
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NativeAppLogger.js.map +1 -1
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/NotificationManager.js.map +1 -1
- package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/RealityDataSource.js.map +1 -1
- package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialClassifiersState.js.map +1 -1
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/StandardView.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/Tiles.js.map +1 -1
- package/lib/cjs/TxnEntityChanges.js.map +1 -1
- package/lib/cjs/UserPreferences.js.map +1 -1
- package/lib/cjs/ViewAnimation.js.map +1 -1
- package/lib/cjs/ViewContext.js.map +1 -1
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewGlobalLocation.js.map +1 -1
- package/lib/cjs/ViewManager.js.map +1 -1
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewStatus.js.map +1 -1
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/ViewportSync.js.map +1 -1
- package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/cjs/common/ImageUtil.js.map +1 -1
- package/lib/cjs/common/ViewRect.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
- package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
- package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
- package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.js.map +1 -1
- package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/cjs/common/internal/render/ColorMap.js.map +1 -1
- package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryList.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Polyface.js.map +1 -1
- package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/cjs/common/internal/render/Primitives.js.map +1 -1
- package/lib/cjs/common/internal/render/Strokes.js.map +1 -1
- package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexKey.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/cjs/common/render/BatchOptions.js.map +1 -1
- package/lib/cjs/common/render/GraphicAssembler.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/cjs/common/render/GraphicType.js.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/common/render/MaterialParams.js.map +1 -1
- package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/cjs/common/render/TextureParams.js.map +1 -1
- package/lib/cjs/common.js.map +1 -1
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/extension/Extension.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/extension/ExtensionHost.js.map +1 -1
- package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
- package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/cjs/internal/ScriptUtils.js.map +1 -1
- package/lib/cjs/internal/cross-package.js.map +1 -1
- package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/cjs/internal/render/MockRender.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
- package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/cjs/internal/render/RenderTerrain.js.map +1 -1
- package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Layer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Sync.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/cjs/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/internal/tile/ImdlParser.js.map +1 -1
- package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/PntsReader.js.map +1 -1
- package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
- package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/internal/webgl.js.map +1 -1
- package/lib/cjs/properties/AngleDescription.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/properties/LengthDescription.js.map +1 -1
- package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/cjs/render/CanvasDecoration.js.map +1 -1
- package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
- package/lib/cjs/render/Decorations.js.map +1 -1
- package/lib/cjs/render/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/FrameStats.js.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.js.map +1 -1
- package/lib/cjs/render/MeshArgs.js.map +1 -1
- package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/PolylineArgs.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderClipVolume.js.map +1 -1
- package/lib/cjs/render/RenderGraphic.js.map +1 -1
- package/lib/cjs/render/RenderMemory.js.map +1 -1
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/Scene.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/VisibleFeature.js.map +1 -1
- package/lib/cjs/request/Request.js.map +1 -1
- package/lib/cjs/request/utils.js.map +1 -1
- package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlReader.js.map +1 -1
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/cjs/tile/Tile.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileContent.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
- package/lib/cjs/tile/TileParams.js.map +1 -1
- package/lib/cjs/tile/TileRequest.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
- package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
- package/lib/cjs/tile/TileStorage.js.map +1 -1
- package/lib/cjs/tile/TileTree.js.map +1 -1
- package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
- package/lib/cjs/tile/TileTreeParams.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
- package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
- package/lib/cjs/tile/TileUser.js.map +1 -1
- package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/internal.js.map +1 -1
- package/lib/cjs/tile/map/BingElevation.js.map +1 -1
- package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tile/map/QuadId.js.map +1 -1
- package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
- package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
- package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/cjs/tools/ClipViewTool.js.map +1 -1
- package/lib/cjs/tools/EditManipulator.js.map +1 -1
- package/lib/cjs/tools/ElementSetTool.js.map +1 -1
- package/lib/cjs/tools/EventController.js.map +1 -1
- package/lib/cjs/tools/IdleTool.js.map +1 -1
- package/lib/cjs/tools/MeasureTool.js.map +1 -1
- package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
- package/lib/cjs/tools/SelectTool.js.map +1 -1
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/cjs/tools/ToolAdmin.js.map +1 -1
- package/lib/cjs/tools/ToolAssistance.js.map +1 -1
- package/lib/cjs/tools/ToolSettings.js.map +1 -1
- package/lib/cjs/tools/ViewTool.js.map +1 -1
- package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/cjs/workers/RegisterWorker.js.map +1 -1
- package/lib/esm/AccuDraw.js.map +1 -1
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
- package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
- package/lib/esm/AuxCoordSys.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BingLocation.js.map +1 -1
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/BriefcaseTxns.js.map +1 -1
- package/lib/esm/CatalogConnection.js.map +1 -1
- package/lib/esm/CategorySelectorState.js.map +1 -1
- package/lib/esm/ChangeFlags.js.map +1 -1
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/CoordSystem.js.map +1 -1
- package/lib/esm/DecorationsCache.js.map +1 -1
- package/lib/esm/DevTools.js.map +1 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/DrawingViewState.js.map +1 -1
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EntityState.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/FeatureOverrideProvider.js.map +1 -1
- package/lib/esm/FlashSettings.js.map +1 -1
- package/lib/esm/FrontendHubAccess.js.map +1 -1
- package/lib/esm/Frustum2d.js.map +1 -1
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/FuzzySearch.js.map +1 -1
- package/lib/esm/GeoServices.js.map +1 -1
- package/lib/esm/GlobeAnimator.js.map +1 -1
- package/lib/esm/GraphicalEditingScope.js.map +1 -1
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IModelRoutingContext.js.map +1 -1
- package/lib/esm/IModeljs-css.js.map +1 -1
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LinePlaneIntersect.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/MarginPercent.js.map +1 -1
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelSelectorState.js.map +1 -1
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NativeAppLogger.js.map +1 -1
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/NotificationManager.js.map +1 -1
- package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/RealityDataSource.js.map +1 -1
- package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
- package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialClassifiersState.js.map +1 -1
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/StandardView.js.map +1 -1
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/Tiles.js.map +1 -1
- package/lib/esm/TxnEntityChanges.js.map +1 -1
- package/lib/esm/UserPreferences.js.map +1 -1
- package/lib/esm/ViewAnimation.js.map +1 -1
- package/lib/esm/ViewContext.js.map +1 -1
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewGlobalLocation.js.map +1 -1
- package/lib/esm/ViewManager.js.map +1 -1
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewStatus.js.map +1 -1
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/ViewportSync.js.map +1 -1
- package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
- package/lib/esm/common/ImageUtil.js.map +1 -1
- package/lib/esm/common/ViewRect.js.map +1 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/gltf/GltfModel.js.map +1 -1
- package/lib/esm/common/gltf/GltfParser.js.map +1 -1
- package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
- package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
- package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
- package/lib/esm/common/internal/Symbols.js.map +1 -1
- package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -1
- package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -1
- package/lib/esm/common/internal/render/ColorMap.js.map +1 -1
- package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
- package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryList.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
- package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/LineCode.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
- package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
- package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
- package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -1
- package/lib/esm/common/internal/render/PointStringParams.js.map +1 -1
- package/lib/esm/common/internal/render/Polyface.js.map +1 -1
- package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
- package/lib/esm/common/internal/render/Primitives.js.map +1 -1
- package/lib/esm/common/internal/render/Strokes.js.map +1 -1
- package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -1
- package/lib/esm/common/internal/render/VertexIndices.js.map +1 -1
- package/lib/esm/common/internal/render/VertexKey.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
- package/lib/esm/common/render/BatchOptions.js.map +1 -1
- package/lib/esm/common/render/GraphicAssembler.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -1
- package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -1
- package/lib/esm/common/render/GraphicPrimitive.js.map +1 -1
- package/lib/esm/common/render/GraphicType.js.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/common/render/MaterialParams.js.map +1 -1
- package/lib/esm/common/render/RenderInstancesParams.js.map +1 -1
- package/lib/esm/common/render/TextureParams.js.map +1 -1
- package/lib/esm/common.js.map +1 -1
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/extension/Extension.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/extension/ExtensionHost.js.map +1 -1
- package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
- package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
- package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
- package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
- package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
- package/lib/esm/internal/ScriptUtils.js.map +1 -1
- package/lib/esm/internal/cross-package.js.map +1 -1
- package/lib/esm/internal/render/AnimationBranchState.js.map +1 -1
- package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -1
- package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -1
- package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -1
- package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
- package/lib/esm/internal/render/MockRender.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -1
- package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
- package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -1
- package/lib/esm/internal/render/RenderPlan.js.map +1 -1
- package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -1
- package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -1
- package/lib/esm/internal/render/RenderTerrain.js.map +1 -1
- package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -1
- package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -1
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipVolume.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/Diagnostics.js.map +1 -1
- package/lib/esm/internal/render/webgl/Disposable.js.map +1 -1
- package/lib/esm/internal/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/internal/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/GL.js.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/internal/render/webgl/HiliteUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
- package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Layer.js.map +1 -1
- package/lib/esm/internal/render/webgl/LayerCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/LightingUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/LineCode.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/Material.js.map +1 -1
- package/lib/esm/internal/render/webgl/Matrix.js.map +1 -1
- package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityModelUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderState.js.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/Sync.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
- package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueFlags.js.map +1 -1
- package/lib/esm/internal/render/webgl/TechniqueId.js.map +1 -1
- package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
- package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/internal/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/internal/render/webgl/VertexLUT.js.map +1 -1
- package/lib/esm/internal/render/webgl/ViewRectUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Common.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Decode.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Lighting.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/LookupTable.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Monochrome.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PointString.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Polyline.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RenderPass.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Viewport.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -1
- package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -1
- package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -1
- package/lib/esm/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
- package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/IModelTile.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -1
- package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
- package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/internal/tile/ImdlParser.js.map +1 -1
- package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -1
- package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/internal/tile/PntsReader.js.map +1 -1
- package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
- package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/internal/webgl.js.map +1 -1
- package/lib/esm/properties/AngleDescription.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/properties/LengthDescription.js.map +1 -1
- package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
- package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
- package/lib/esm/render/CanvasDecoration.js.map +1 -1
- package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
- package/lib/esm/render/CreateTextureArgs.js.map +1 -1
- package/lib/esm/render/Decorations.js.map +1 -1
- package/lib/esm/render/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/FrameStats.js.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.js.map +1 -1
- package/lib/esm/render/MeshArgs.js.map +1 -1
- package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/PolylineArgs.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderClipVolume.js.map +1 -1
- package/lib/esm/render/RenderGraphic.js.map +1 -1
- package/lib/esm/render/RenderMemory.js.map +1 -1
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/Scene.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/VisibleFeature.js.map +1 -1
- package/lib/esm/request/Request.js.map +1 -1
- package/lib/esm/request/utils.js.map +1 -1
- package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlReader.js.map +1 -1
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
- package/lib/esm/tile/Tile.js.map +1 -1
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileContent.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
- package/lib/esm/tile/TileParams.js.map +1 -1
- package/lib/esm/tile/TileRequest.js.map +1 -1
- package/lib/esm/tile/TileRequestChannel.js.map +1 -1
- package/lib/esm/tile/TileRequestChannels.js.map +1 -1
- package/lib/esm/tile/TileStorage.js.map +1 -1
- package/lib/esm/tile/TileTree.js.map +1 -1
- package/lib/esm/tile/TileTreeOwner.js.map +1 -1
- package/lib/esm/tile/TileTreeParams.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
- package/lib/esm/tile/TileUsageMarker.js.map +1 -1
- package/lib/esm/tile/TileUser.js.map +1 -1
- package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/internal.js.map +1 -1
- package/lib/esm/tile/map/BingElevation.js.map +1 -1
- package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
- package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
- package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
- package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tile/map/QuadId.js.map +1 -1
- package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
- package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
- package/lib/esm/tools/AccuDrawTool.js.map +1 -1
- package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
- package/lib/esm/tools/ClipViewTool.js.map +1 -1
- package/lib/esm/tools/EditManipulator.js.map +1 -1
- package/lib/esm/tools/ElementSetTool.js.map +1 -1
- package/lib/esm/tools/EventController.js.map +1 -1
- package/lib/esm/tools/IdleTool.js.map +1 -1
- package/lib/esm/tools/MeasureTool.js.map +1 -1
- package/lib/esm/tools/PrimitiveTool.js.map +1 -1
- package/lib/esm/tools/SelectTool.js.map +1 -1
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/esm/tools/ToolAdmin.js.map +1 -1
- package/lib/esm/tools/ToolAssistance.js.map +1 -1
- package/lib/esm/tools/ToolSettings.js.map +1 -1
- package/lib/esm/tools/ViewTool.js.map +1 -1
- package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
- package/lib/esm/workers/RegisterWorker.js.map +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SceneCompositor.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/SceneCompositor.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose, Id64String } from \"@itwin/core-bentley\";\r\nimport { Transform, Vector2d, Vector3d } from \"@itwin/core-geometry\";\r\nimport {\r\n ContourDisplay,\r\n ModelFeature, PointCloudDisplaySettings, RenderFeatureTable, RenderMode, SpatialClassifierInsideDisplay, SpatialClassifierOutsideDisplay,\r\n} from \"@itwin/core-common\";\r\nimport { RenderType } from \"@itwin/webgl-compatibility\";\r\nimport { IModelConnection } from \"../../../IModelConnection\";\r\nimport { SceneContext } from \"../../../ViewContext\";\r\nimport { ContourHit } from \"../../../HitDetail\";\r\nimport { ViewRect } from \"../../../common/ViewRect\";\r\nimport { Pixel } from \"../../../render/Pixel\";\r\nimport { GraphicList } from \"../../../render/RenderGraphic\";\r\nimport { RenderMemory } from \"../../../render/RenderMemory\";\r\nimport { BranchState } from \"./BranchState\";\r\nimport { BatchState } from \"./BatchState\";\r\nimport {\r\n AmbientOcclusionGeometry, BlurGeometry, BlurType, BoundaryType, CachedGeometry, CompositeGeometry, CopyPickBufferGeometry,\r\n SingleTexturedViewportQuadGeometry, ViewportQuadGeometry, VolumeClassifierGeometry,\r\n} from \"./CachedGeometry\";\r\nimport { Debug } from \"./Diagnostics\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DrawCommands, extractFlashedVolumeClassifierCommands, extractHilitedVolumeClassifierCommands } from \"./DrawCommand\";\r\nimport { DepthBuffer, FrameBuffer } from \"./FrameBuffer\";\r\nimport { GL } from \"./GL\";\r\nimport { IModelFrameLifecycle } from \"./IModelFrameLifecycle\";\r\nimport { Matrix4 } from \"./Matrix\";\r\nimport { RenderCommands } from \"./RenderCommands\";\r\nimport { CompositeFlags, RenderOrder, RenderPass, TextureUnit } from \"./RenderFlags\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { SolarShadowMap } from \"./SolarShadowMap\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { TextureHandle } from \"./Texture\";\r\nimport { RenderBufferMultiSample } from \"./RenderBuffer\";\r\nimport { Primitive } from \"./Primitive\";\r\nimport { ShaderProgramExecutor } from \"./ShaderProgram\";\r\nimport { EDLMode, EyeDomeLighting } from \"./EDL\";\r\nimport { FrustumUniformType } from \"./FrustumUniforms\";\r\n\r\nexport function collectTextureStatistics(texture: TextureHandle | undefined, stats: RenderMemory.Statistics): void {\r\n if (undefined !== texture)\r\n stats.addTextureAttachment(texture.bytesUsed);\r\n}\r\n\r\nfunction collectMsBufferStatistics(msBuff: RenderBufferMultiSample | undefined, stats: RenderMemory.Statistics): void {\r\n if (undefined !== msBuff)\r\n stats.addTextureAttachment(msBuff.bytesUsed);\r\n}\r\n\r\n// Maintains the textures used by a SceneCompositor. The textures are reallocated when the dimensions of the viewport change.\r\nclass Textures implements WebGLDisposable, RenderMemory.Consumer {\r\n public accumulation?: TextureHandle;\r\n public revealage?: TextureHandle;\r\n public color?: TextureHandle;\r\n public featureId?: TextureHandle;\r\n public depthAndOrder?: TextureHandle;\r\n public depthAndOrderHidden?: TextureHandle; // only used if AO and multisampling\r\n public contours?: TextureHandle;\r\n public contoursMsBuff?: RenderBufferMultiSample;\r\n public hilite?: TextureHandle;\r\n public occlusion?: TextureHandle;\r\n public occlusionBlur?: TextureHandle;\r\n public volClassBlend?: TextureHandle;\r\n public colorMsBuff?: RenderBufferMultiSample;\r\n public featureIdMsBuff?: RenderBufferMultiSample;\r\n public featureIdMsBuffHidden?: RenderBufferMultiSample;\r\n public depthAndOrderMsBuff?: RenderBufferMultiSample;\r\n public depthAndOrderMsBuffHidden?: RenderBufferMultiSample;\r\n public hiliteMsBuff?: RenderBufferMultiSample;\r\n public volClassBlendMsBuff?: RenderBufferMultiSample;\r\n\r\n public get isDisposed(): boolean {\r\n return undefined === this.accumulation\r\n && undefined === this.revealage\r\n && undefined === this.color\r\n && undefined === this.featureId\r\n && undefined === this.depthAndOrder\r\n && undefined === this.contours\r\n && undefined === this.contoursMsBuff\r\n && undefined === this.depthAndOrderHidden\r\n && undefined === this.hilite\r\n && undefined === this.occlusion\r\n && undefined === this.occlusionBlur\r\n && undefined === this.volClassBlend\r\n && undefined === this.colorMsBuff\r\n && undefined === this.featureIdMsBuff\r\n && undefined === this.featureIdMsBuffHidden\r\n && undefined === this.depthAndOrderMsBuff\r\n && undefined === this.depthAndOrderMsBuffHidden\r\n && undefined === this.hiliteMsBuff\r\n && undefined === this.volClassBlendMsBuff;\r\n }\r\n\r\n public [Symbol.dispose]() {\r\n this.accumulation = dispose(this.accumulation);\r\n this.revealage = dispose(this.revealage);\r\n this.color = dispose(this.color);\r\n this.featureId = dispose(this.featureId);\r\n this.depthAndOrder = dispose(this.depthAndOrder);\r\n this.contours = dispose(this.contours);\r\n this.contoursMsBuff = dispose(this.contoursMsBuff);\r\n this.depthAndOrderHidden = dispose(this.depthAndOrderHidden);\r\n this.hilite = dispose(this.hilite);\r\n this.occlusion = dispose(this.occlusion);\r\n this.occlusionBlur = dispose(this.occlusionBlur);\r\n this.colorMsBuff = dispose(this.colorMsBuff);\r\n this.featureIdMsBuff = dispose(this.featureIdMsBuff);\r\n this.featureIdMsBuffHidden = dispose(this.featureIdMsBuffHidden);\r\n this.depthAndOrderMsBuff = dispose(this.depthAndOrderMsBuff);\r\n this.depthAndOrderMsBuffHidden = dispose(this.depthAndOrderMsBuffHidden);\r\n this.hiliteMsBuff = dispose(this.hiliteMsBuff);\r\n this.volClassBlend = dispose(this.volClassBlend);\r\n this.volClassBlendMsBuff = dispose(this.volClassBlendMsBuff);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n collectTextureStatistics(this.accumulation, stats);\r\n collectTextureStatistics(this.revealage, stats);\r\n collectTextureStatistics(this.color, stats);\r\n collectTextureStatistics(this.featureId, stats);\r\n collectTextureStatistics(this.depthAndOrder, stats);\r\n collectTextureStatistics(this.contours, stats);\r\n collectMsBufferStatistics(this.contoursMsBuff, stats);\r\n collectTextureStatistics(this.depthAndOrderHidden, stats);\r\n collectTextureStatistics(this.hilite, stats);\r\n collectTextureStatistics(this.occlusion, stats);\r\n collectTextureStatistics(this.occlusionBlur, stats);\r\n collectTextureStatistics(this.volClassBlend, stats);\r\n collectMsBufferStatistics(this.colorMsBuff, stats);\r\n collectMsBufferStatistics(this.featureIdMsBuff, stats);\r\n collectMsBufferStatistics(this.featureIdMsBuffHidden, stats);\r\n collectMsBufferStatistics(this.depthAndOrderMsBuff, stats);\r\n collectMsBufferStatistics(this.depthAndOrderMsBuffHidden, stats);\r\n collectMsBufferStatistics(this.hiliteMsBuff, stats);\r\n collectMsBufferStatistics(this.volClassBlendMsBuff, stats);\r\n }\r\n\r\n public init(width: number, height: number, numSamples: number): boolean {\r\n assert(undefined === this.accumulation);\r\n\r\n let pixelDataType: GL.Texture.DataType = GL.Texture.DataType.UnsignedByte;\r\n switch (System.instance.maxRenderType) {\r\n case RenderType.TextureFloat: {\r\n pixelDataType = GL.Texture.DataType.Float;\r\n break;\r\n }\r\n case RenderType.TextureHalfFloat: {\r\n pixelDataType = System.instance.context.HALF_FLOAT;\r\n break;\r\n }\r\n /* falls through */\r\n case RenderType.TextureUnsignedByte: {\r\n break;\r\n }\r\n }\r\n\r\n // NB: Both of these must be of the same type, because they are borrowed by pingpong and bound to the same frame buffer.\r\n this.accumulation = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, pixelDataType);\r\n this.revealage = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, pixelDataType);\r\n\r\n // Hilite texture is a simple on-off, but the smallest texture format WebGL allows us to use as output is RGBA with a byte per component.\r\n this.hilite = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n\r\n this.color = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n\r\n this.featureId = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n this.depthAndOrder = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n this.contours = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n\r\n let rVal = undefined !== this.accumulation\r\n && undefined !== this.revealage\r\n && undefined !== this.color\r\n && undefined !== this.featureId\r\n && undefined !== this.depthAndOrder\r\n && undefined !== this.contours\r\n && undefined !== this.hilite;\r\n\r\n if (rVal && numSamples > 1) {\r\n rVal = this.enableMultiSampling(width, height, numSamples);\r\n }\r\n\r\n return rVal;\r\n }\r\n\r\n public enableOcclusion(width: number, height: number, numSamples: number): boolean {\r\n assert(undefined === this.occlusion && undefined === this.occlusionBlur);\r\n this.occlusion = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n this.occlusionBlur = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n let rVal = undefined !== this.occlusion && undefined !== this.occlusionBlur;\r\n if (numSamples > 1) {\r\n // If multisampling then we need a texture for storing depth and order for hidden edges.\r\n this.depthAndOrderHidden = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n rVal = rVal && undefined !== this.depthAndOrderHidden;\r\n }\r\n return rVal;\r\n }\r\n\r\n public disableOcclusion(): void {\r\n assert(undefined !== this.occlusion && undefined !== this.occlusionBlur);\r\n this.occlusion = dispose(this.occlusion);\r\n this.occlusionBlur = dispose(this.occlusionBlur);\r\n this.depthAndOrderHidden = dispose(this.depthAndOrderHidden);\r\n }\r\n\r\n public enableVolumeClassifier(width: number, height: number, numSamples: number): boolean {\r\n assert(undefined === this.volClassBlend);\r\n this.volClassBlend = TextureHandle.createForAttachment(width, height, GL.Texture.Format.Rgba, GL.Texture.DataType.UnsignedByte);\r\n let rVal = undefined !== this.volClassBlend;\r\n if (rVal && undefined !== numSamples && numSamples > 1) {\r\n this.volClassBlendMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n rVal = undefined !== this.volClassBlendMsBuff;\r\n }\r\n return rVal;\r\n }\r\n\r\n public disableVolumeClassifier(): void {\r\n this.volClassBlend = dispose(this.volClassBlend);\r\n this.volClassBlendMsBuff = dispose(this.volClassBlendMsBuff);\r\n }\r\n\r\n public enableMultiSampling(width: number, height: number, numSamples: number): boolean {\r\n this.colorMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n this.featureIdMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n this.featureIdMsBuffHidden = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n this.depthAndOrderMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n this.depthAndOrderMsBuffHidden = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n this.contoursMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n this.hiliteMsBuff = RenderBufferMultiSample.create(width, height, WebGL2RenderingContext.RGBA8, numSamples);\r\n return undefined !== this.colorMsBuff\r\n && undefined !== this.featureIdMsBuff\r\n && undefined !== this.featureIdMsBuffHidden\r\n && undefined !== this.depthAndOrderMsBuff\r\n && undefined !== this.depthAndOrderMsBuffHidden\r\n && undefined !== this.contoursMsBuff\r\n && undefined !== this.hiliteMsBuff;\r\n }\r\n\r\n public disableMultiSampling(): boolean {\r\n this.colorMsBuff = dispose(this.colorMsBuff);\r\n this.featureIdMsBuff = dispose(this.featureIdMsBuff);\r\n this.featureIdMsBuffHidden = dispose(this.featureIdMsBuffHidden);\r\n this.depthAndOrderMsBuff = dispose(this.depthAndOrderMsBuff);\r\n this.depthAndOrderMsBuffHidden = dispose(this.depthAndOrderMsBuffHidden);\r\n this.contoursMsBuff = dispose(this.contoursMsBuff);\r\n this.hiliteMsBuff = dispose(this.hiliteMsBuff);\r\n return true;\r\n }\r\n}\r\n\r\n// Maintains the framebuffers used by a SceneCompositor. The color attachments are supplied by a Textures object.\r\nclass FrameBuffers implements WebGLDisposable {\r\n public opaqueColor?: FrameBuffer;\r\n public opaqueAndCompositeColor?: FrameBuffer;\r\n public depthAndOrder?: FrameBuffer;\r\n public contours?: FrameBuffer;\r\n public hilite?: FrameBuffer;\r\n public hiliteUsingStencil?: FrameBuffer;\r\n public stencilSet?: FrameBuffer;\r\n public occlusion?: FrameBuffer;\r\n public occlusionBlur?: FrameBuffer;\r\n public altZOnly?: FrameBuffer;\r\n public volClassCreateBlend?: FrameBuffer;\r\n public volClassCreateBlendAltZ?: FrameBuffer;\r\n public opaqueAll?: FrameBuffer;\r\n public opaqueAndCompositeAll?: FrameBuffer;\r\n public opaqueAndCompositeAllHidden?: FrameBuffer;\r\n public pingPong?: FrameBuffer;\r\n public pingPongMS?: FrameBuffer;\r\n public translucent?: FrameBuffer;\r\n public clearTranslucent?: FrameBuffer;\r\n public idsAndZ?: FrameBuffer;\r\n public idsAndAltZ?: FrameBuffer;\r\n public idsAndZComposite?: FrameBuffer;\r\n public idsAndAltZComposite?: FrameBuffer;\r\n public edlDrawCol?: FrameBuffer;\r\n\r\n public init(textures: Textures, depth: DepthBuffer, depthMS: DepthBuffer | undefined): boolean {\r\n if (!this.initPotentialMSFbos(textures, depth, depthMS))\r\n return false;\r\n\r\n this.depthAndOrder = FrameBuffer.create([textures.depthAndOrder!], depth);\r\n this.contours = FrameBuffer.create([textures.contours!], depth);\r\n this.hilite = FrameBuffer.create([textures.hilite!], depth);\r\n this.hiliteUsingStencil = FrameBuffer.create([textures.hilite!], depth);\r\n\r\n if (!this.depthAndOrder || !this.contours || !this.hilite || !this.hiliteUsingStencil)\r\n return false;\r\n\r\n assert(undefined === this.opaqueAll);\r\n\r\n if (!this.initPotentialMSMRTFbos(textures, depth, depthMS))\r\n return false;\r\n\r\n assert(undefined !== textures.accumulation && undefined !== textures.revealage);\r\n const colors = [textures.accumulation, textures.revealage];\r\n this.translucent = FrameBuffer.create(colors, depth);\r\n this.clearTranslucent = FrameBuffer.create(colors);\r\n\r\n // We borrow the SceneCompositor's accum and revealage textures for the surface pass.\r\n // First we render edges, writing to our textures.\r\n // Then we copy our textures to borrowed textures.\r\n // Finally we render surfaces, writing to our textures and reading from borrowed textures.\r\n assert(undefined !== textures.accumulation && undefined !== textures.revealage);\r\n const pingPong = [textures.accumulation, textures.revealage];\r\n this.pingPong = FrameBuffer.create(pingPong);\r\n\r\n return undefined !== this.translucent\r\n && undefined !== this.clearTranslucent\r\n && undefined !== this.pingPong;\r\n }\r\n\r\n private initPotentialMSFbos(textures: Textures, depth: DepthBuffer, depthMS: DepthBuffer | undefined): boolean {\r\n const boundColor = System.instance.frameBufferStack.currentColorBuffer;\r\n assert(undefined !== boundColor && undefined !== textures.color);\r\n if (undefined === depthMS) {\r\n this.opaqueColor = FrameBuffer.create([boundColor], depth);\r\n this.opaqueAndCompositeColor = FrameBuffer.create([textures.color], depth);\r\n } else {\r\n assert(undefined !== textures.colorMsBuff);\r\n this.opaqueColor = FrameBuffer.create([boundColor], depth, [textures.colorMsBuff], [GL.MultiSampling.Filter.Linear], depthMS);\r\n this.opaqueAndCompositeColor = FrameBuffer.create([textures.color], depth, [textures.colorMsBuff], [GL.MultiSampling.Filter.Linear], depthMS);\r\n }\r\n return undefined !== this.opaqueColor\r\n && undefined !== this.opaqueAndCompositeColor;\r\n }\r\n\r\n private initPotentialMSMRTFbos(textures: Textures, depth: DepthBuffer, depthMs: DepthBuffer | undefined): boolean {\r\n const boundColor = System.instance.frameBufferStack.currentColorBuffer;\r\n assert(\r\n undefined !== boundColor &&\r\n undefined !== textures.color &&\r\n undefined !== textures.featureId &&\r\n undefined !== textures.depthAndOrder &&\r\n undefined !== textures.contours &&\r\n undefined !== textures.accumulation &&\r\n undefined !== textures.revealage\r\n );\r\n const colorAndPick = [boundColor, textures.featureId, textures.depthAndOrder, textures.contours];\r\n\r\n if (undefined === depthMs) {\r\n this.opaqueAll = FrameBuffer.create(colorAndPick, depth);\r\n colorAndPick[0] = textures.color;\r\n this.opaqueAndCompositeAll = FrameBuffer.create(colorAndPick, depth);\r\n } else {\r\n assert(\r\n undefined !== textures.colorMsBuff &&\r\n undefined !== textures.featureIdMsBuff &&\r\n undefined !== textures.featureIdMsBuffHidden &&\r\n undefined !== textures.contoursMsBuff &&\r\n undefined !== textures.depthAndOrderMsBuff &&\r\n undefined !== textures.depthAndOrderMsBuffHidden\r\n );\r\n const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuff, textures.depthAndOrderMsBuff, textures.contoursMsBuff];\r\n const colorAndPickFilters = [GL.MultiSampling.Filter.Linear, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest];\r\n this.opaqueAll = FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);\r\n colorAndPick[0] = textures.color;\r\n this.opaqueAndCompositeAll = FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);\r\n }\r\n\r\n return undefined !== this.opaqueAll\r\n && undefined !== this.opaqueAndCompositeAll;\r\n }\r\n\r\n public enableOcclusion(textures: Textures, depth: DepthBuffer, depthMs: DepthBuffer | undefined): boolean {\r\n assert(undefined !== textures.occlusion && undefined !== textures.occlusionBlur);\r\n this.occlusion = FrameBuffer.create([textures.occlusion]);\r\n this.occlusionBlur = FrameBuffer.create([textures.occlusionBlur]);\r\n let rVal = undefined !== this.occlusion && undefined !== this.occlusionBlur;\r\n\r\n if (undefined === depthMs) {\r\n // If not using multisampling then we can use the accumulation and revealage textures for the hidden pick buffers,\r\n assert(undefined !== textures.color && undefined !== textures.accumulation && undefined !== textures.revealage);\r\n const colorAndPick = [textures.color, textures.accumulation, textures.revealage];\r\n this.opaqueAndCompositeAllHidden = FrameBuffer.create(colorAndPick, depth);\r\n rVal = rVal && undefined !== this.opaqueAndCompositeAllHidden;\r\n } else {\r\n // If multisampling then we cannot use the revealage texture for depthAndOrder for the hidden edges since it is of the wrong type for blitting,\r\n // so instead use a special depthAndOrderHidden texture just for this purpose.\r\n // The featureId texture is not needed for hidden edges, so the accumulation texture can be used for it if we don't blit from the multisample bufffer into it.\r\n assert(undefined !== textures.color && undefined !== textures.accumulation && undefined !== textures.depthAndOrderHidden);\r\n assert(undefined !== textures.colorMsBuff && undefined !== textures.featureIdMsBuffHidden && undefined !== textures.depthAndOrderMsBuffHidden);\r\n const colorAndPick = [textures.color, textures.accumulation, textures.depthAndOrderHidden];\r\n const colorAndPickMsBuffs = [textures.colorMsBuff, textures.featureIdMsBuffHidden, textures.depthAndOrderMsBuffHidden];\r\n const colorAndPickFilters = [GL.MultiSampling.Filter.Linear, GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest];\r\n this.opaqueAndCompositeAllHidden = FrameBuffer.create(colorAndPick, depth, colorAndPickMsBuffs, colorAndPickFilters, depthMs);\r\n // We will also need a frame buffer for copying the real pick data buffers into these hidden edge pick data buffers.\r\n const pingPong = [textures.accumulation, textures.depthAndOrderHidden];\r\n const pingPongMSBuffs = [textures.featureIdMsBuffHidden, textures.depthAndOrderMsBuffHidden];\r\n const pingPongFilters = [GL.MultiSampling.Filter.Nearest, GL.MultiSampling.Filter.Nearest];\r\n this.pingPongMS = FrameBuffer.create(pingPong, depth, pingPongMSBuffs, pingPongFilters, depthMs);\r\n rVal = rVal && undefined !== this.opaqueAndCompositeAllHidden && (undefined === depthMs || undefined !== this.pingPongMS);\r\n }\r\n\r\n return rVal;\r\n }\r\n\r\n public disableOcclusion(): void {\r\n if (undefined !== this.occlusion) {\r\n this.occlusion = dispose(this.occlusion);\r\n this.occlusionBlur = dispose(this.occlusionBlur);\r\n }\r\n\r\n this.opaqueAndCompositeAllHidden = dispose(this.opaqueAndCompositeAllHidden);\r\n this.pingPongMS = dispose(this.pingPongMS);\r\n }\r\n\r\n public enableVolumeClassifier(textures: Textures, depth: DepthBuffer, volClassDepth: DepthBuffer | undefined, depthMS?: DepthBuffer, volClassDepthMS?: DepthBuffer): void {\r\n const boundColor = System.instance.frameBufferStack.currentColorBuffer;\r\n if (undefined === boundColor)\r\n return;\r\n\r\n if (undefined === this.stencilSet) {\r\n if (undefined !== depthMS) { // if multisampling use the multisampled depth everywhere\r\n this.stencilSet = FrameBuffer.create([], depth, [], [], depthMS);\r\n this.altZOnly = FrameBuffer.create([], volClassDepth, [], [], volClassDepthMS);\r\n this.volClassCreateBlend = FrameBuffer.create([textures.volClassBlend!], depth, [textures.volClassBlendMsBuff!], [GL.MultiSampling.Filter.Nearest], depthMS);\r\n this.volClassCreateBlendAltZ = FrameBuffer.create([textures.volClassBlend!], volClassDepth, [textures.volClassBlendMsBuff!], [GL.MultiSampling.Filter.Nearest], volClassDepthMS);\r\n } else if (undefined !== volClassDepth) {\r\n this.stencilSet = FrameBuffer.create([], depth);\r\n this.altZOnly = FrameBuffer.create([], volClassDepth);\r\n this.volClassCreateBlend = FrameBuffer.create([textures.volClassBlend!], depth);\r\n this.volClassCreateBlendAltZ = FrameBuffer.create([textures.volClassBlend!], volClassDepth);\r\n }\r\n }\r\n\r\n if (undefined !== this.opaqueAll && undefined !== this.opaqueAndCompositeAll) {\r\n if (undefined !== volClassDepth) {\r\n let ids = [this.opaqueAll.getColor(0), this.opaqueAll.getColor(1)];\r\n this.idsAndZ = FrameBuffer.create(ids, depth);\r\n this.idsAndAltZ = FrameBuffer.create(ids, volClassDepth);\r\n ids = [this.opaqueAndCompositeAll.getColor(0), this.opaqueAndCompositeAll.getColor(1)];\r\n this.idsAndZComposite = FrameBuffer.create(ids, depth);\r\n this.idsAndAltZComposite = FrameBuffer.create(ids, volClassDepth);\r\n }\r\n }\r\n }\r\n\r\n public disableVolumeClassifier(): void {\r\n if (undefined !== this.stencilSet) {\r\n this.stencilSet = dispose(this.stencilSet);\r\n this.altZOnly = dispose(this.altZOnly);\r\n this.volClassCreateBlend = dispose(this.volClassCreateBlend);\r\n this.volClassCreateBlendAltZ = dispose(this.volClassCreateBlendAltZ);\r\n }\r\n\r\n if (undefined !== this.idsAndZ) {\r\n this.idsAndZ = dispose(this.idsAndZ);\r\n this.idsAndAltZ = dispose(this.idsAndAltZ);\r\n this.idsAndZComposite = dispose(this.idsAndZComposite);\r\n this.idsAndAltZComposite = dispose(this.idsAndAltZComposite);\r\n }\r\n }\r\n\r\n public enableMultiSampling(textures: Textures, depth: DepthBuffer, depthMS: DepthBuffer): boolean {\r\n this.opaqueColor = dispose(this.opaqueColor);\r\n this.opaqueAndCompositeColor = dispose(this.opaqueAndCompositeColor);\r\n let rVal = this.initPotentialMSFbos(textures, depth, depthMS);\r\n\r\n this.opaqueAll = dispose(this.opaqueAll);\r\n this.opaqueAndCompositeAll = dispose(this.opaqueAndCompositeAll);\r\n rVal = this.initPotentialMSMRTFbos(textures, depth, depthMS);\r\n return rVal;\r\n }\r\n\r\n public disableMultiSampling(textures: Textures, depth: DepthBuffer): boolean {\r\n this.opaqueAll = dispose(this.opaqueAll);\r\n this.opaqueAndCompositeAll = dispose(this.opaqueAndCompositeAll);\r\n if (!this.initPotentialMSMRTFbos(textures, depth, undefined))\r\n return false;\r\n\r\n this.opaqueColor = dispose(this.opaqueColor);\r\n this.opaqueAndCompositeColor = dispose(this.opaqueAndCompositeColor);\r\n return this.initPotentialMSFbos(textures, depth, undefined);\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return undefined === this.opaqueColor && undefined === this.opaqueAndCompositeColor && undefined === this.depthAndOrder && undefined === this.contours\r\n && undefined === this.hilite && undefined === this.hiliteUsingStencil && undefined === this.occlusion\r\n && undefined === this.occlusionBlur && undefined === this.stencilSet && undefined === this.altZOnly\r\n && undefined === this.volClassCreateBlend && undefined === this.volClassCreateBlendAltZ && undefined === this.opaqueAll\r\n && undefined === this.opaqueAndCompositeAll && undefined === this.opaqueAndCompositeAllHidden && undefined === this.pingPong\r\n && undefined === this.pingPongMS && undefined === this.translucent && undefined === this.clearTranslucent\r\n && undefined === this.idsAndZ && undefined === this.idsAndAltZ && undefined === this.idsAndZComposite\r\n && undefined === this.idsAndAltZComposite && undefined === this.edlDrawCol;\r\n }\r\n\r\n public [Symbol.dispose]() {\r\n this.opaqueColor = dispose(this.opaqueColor);\r\n this.opaqueAndCompositeColor = dispose(this.opaqueAndCompositeColor);\r\n this.depthAndOrder = dispose(this.depthAndOrder);\r\n this.contours = dispose(this.contours);\r\n this.hilite = dispose(this.hilite);\r\n this.hiliteUsingStencil = dispose(this.hiliteUsingStencil);\r\n this.occlusion = dispose(this.occlusion);\r\n this.occlusionBlur = dispose(this.occlusionBlur);\r\n this.stencilSet = dispose(this.stencilSet);\r\n this.altZOnly = dispose(this.altZOnly);\r\n this.volClassCreateBlend = dispose(this.volClassCreateBlend);\r\n this.volClassCreateBlendAltZ = dispose(this.volClassCreateBlendAltZ);\r\n\r\n this.opaqueAll = dispose(this.opaqueAll);\r\n this.opaqueAndCompositeAll = dispose(this.opaqueAndCompositeAll);\r\n this.opaqueAndCompositeAll = dispose(this.opaqueAndCompositeAllHidden);\r\n this.pingPong = dispose(this.pingPong);\r\n this.pingPongMS = dispose(this.pingPongMS);\r\n this.translucent = dispose(this.translucent);\r\n this.clearTranslucent = dispose(this.clearTranslucent);\r\n this.idsAndZ = dispose(this.idsAndZ);\r\n this.idsAndAltZ = dispose(this.idsAndAltZ);\r\n this.idsAndZComposite = dispose(this.idsAndZComposite);\r\n this.idsAndAltZComposite = dispose(this.idsAndAltZComposite);\r\n this.edlDrawCol = dispose(this.edlDrawCol);\r\n }\r\n}\r\n\r\nexport function collectGeometryStatistics(geom: CachedGeometry | undefined, stats: RenderMemory.Statistics): void {\r\n if (undefined !== geom)\r\n geom.collectStatistics(stats);\r\n}\r\n\r\n// Maintains the geometry used to execute screenspace operations for a SceneCompositor.\r\nclass Geometry implements WebGLDisposable, RenderMemory.Consumer {\r\n public composite?: CompositeGeometry;\r\n public volClassColorStencil?: ViewportQuadGeometry;\r\n public volClassCopyZ?: SingleTexturedViewportQuadGeometry;\r\n public volClassSetBlend?: VolumeClassifierGeometry;\r\n public volClassBlend?: SingleTexturedViewportQuadGeometry;\r\n public occlusion?: AmbientOcclusionGeometry;\r\n public occlusionXBlur?: BlurGeometry;\r\n public occlusionYBlur?: BlurGeometry;\r\n public copyPickBuffers?: CopyPickBufferGeometry;\r\n public clearTranslucent?: ViewportQuadGeometry;\r\n public clearPickAndColor?: ViewportQuadGeometry;\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n collectGeometryStatistics(this.composite, stats);\r\n collectGeometryStatistics(this.volClassColorStencil, stats);\r\n collectGeometryStatistics(this.volClassCopyZ, stats);\r\n collectGeometryStatistics(this.volClassSetBlend, stats);\r\n collectGeometryStatistics(this.volClassBlend, stats);\r\n collectGeometryStatistics(this.occlusion, stats);\r\n collectGeometryStatistics(this.occlusionXBlur, stats);\r\n collectGeometryStatistics(this.occlusionYBlur, stats);\r\n collectGeometryStatistics(this.copyPickBuffers, stats);\r\n collectGeometryStatistics(this.clearTranslucent, stats);\r\n collectGeometryStatistics(this.clearPickAndColor, stats);\r\n }\r\n\r\n public init(textures: Textures): boolean {\r\n assert(undefined === this.composite);\r\n this.composite = CompositeGeometry.createGeometry(\r\n textures.color!.getHandle()!,\r\n textures.accumulation!.getHandle()!,\r\n textures.revealage!.getHandle()!, textures.hilite!.getHandle()!);\r\n\r\n if (undefined === this.composite)\r\n return false;\r\n\r\n assert(undefined === this.copyPickBuffers);\r\n\r\n this.copyPickBuffers = CopyPickBufferGeometry.createGeometry(textures.featureId!.getHandle()!, textures.depthAndOrder!.getHandle()!);\r\n this.clearTranslucent = ViewportQuadGeometry.create(TechniqueId.OITClearTranslucent);\r\n this.clearPickAndColor = ViewportQuadGeometry.create(TechniqueId.ClearPickAndColor);\r\n\r\n return undefined !== this.copyPickBuffers && undefined !== this.clearTranslucent && undefined !== this.clearPickAndColor;\r\n }\r\n\r\n public enableOcclusion(textures: Textures, depth: DepthBuffer): void {\r\n assert(undefined !== textures.occlusion && undefined !== textures.occlusionBlur && undefined !== textures.depthAndOrder && undefined !== textures.occlusionBlur);\r\n this.composite!.occlusion = textures.occlusion.getHandle();\r\n this.occlusion = AmbientOcclusionGeometry.createGeometry(textures.depthAndOrder.getHandle()!, depth.getHandle()!);\r\n this.occlusionXBlur = BlurGeometry.createGeometry(textures.occlusion.getHandle()!, textures.depthAndOrder.getHandle()!, undefined, new Vector2d(1.0, 0.0), BlurType.NoTest);\r\n const depthAndOrderHidden = (undefined === textures.depthAndOrderHidden ? textures.revealage?.getHandle() : textures.depthAndOrderHidden.getHandle());\r\n this.occlusionYBlur = BlurGeometry.createGeometry(textures.occlusionBlur.getHandle()!, textures.depthAndOrder.getHandle()!, depthAndOrderHidden, new Vector2d(0.0, 1.0), BlurType.TestOrder);\r\n }\r\n\r\n public disableOcclusion(): void {\r\n this.composite!.occlusion = undefined;\r\n this.occlusion = dispose(this.occlusion);\r\n this.occlusionXBlur = dispose(this.occlusionXBlur);\r\n this.occlusionYBlur = dispose(this.occlusionYBlur);\r\n }\r\n\r\n public enableVolumeClassifier(textures: Textures, depth: DepthBuffer): boolean {\r\n assert(undefined === this.volClassColorStencil && undefined === this.volClassCopyZ && undefined === this.volClassSetBlend && undefined === this.volClassBlend);\r\n this.volClassColorStencil = ViewportQuadGeometry.create(TechniqueId.VolClassColorUsingStencil);\r\n this.volClassCopyZ = SingleTexturedViewportQuadGeometry.createGeometry(depth.getHandle()!, TechniqueId.VolClassCopyZ);\r\n this.volClassSetBlend = VolumeClassifierGeometry.createVCGeometry(depth.getHandle()!);\r\n this.volClassBlend = SingleTexturedViewportQuadGeometry.createGeometry(textures.volClassBlend!.getHandle()!, TechniqueId.VolClassBlend);\r\n return undefined !== this.volClassColorStencil && undefined !== this.volClassCopyZ && undefined !== this.volClassSetBlend && undefined !== this.volClassBlend;\r\n }\r\n\r\n public disableVolumeClassifier(): void {\r\n if (undefined !== this.volClassColorStencil) {\r\n this.volClassColorStencil = dispose(this.volClassColorStencil);\r\n this.volClassCopyZ = dispose(this.volClassCopyZ);\r\n this.volClassSetBlend = dispose(this.volClassSetBlend);\r\n this.volClassBlend = dispose(this.volClassBlend);\r\n }\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return undefined === this.composite && undefined === this.occlusion && undefined === this.occlusionXBlur\r\n && undefined === this.occlusionYBlur && undefined === this.volClassColorStencil && undefined === this.volClassCopyZ\r\n && undefined === this.volClassSetBlend && undefined === this.volClassBlend && undefined === this.copyPickBuffers\r\n && undefined === this.clearTranslucent && undefined === this.clearPickAndColor;\r\n }\r\n\r\n public [Symbol.dispose]() {\r\n this.composite = dispose(this.composite);\r\n this.occlusion = dispose(this.occlusion);\r\n this.occlusionXBlur = dispose(this.occlusionXBlur);\r\n this.occlusionYBlur = dispose(this.occlusionYBlur);\r\n this.disableVolumeClassifier();\r\n this.copyPickBuffers = dispose(this.copyPickBuffers);\r\n this.clearTranslucent = dispose(this.clearTranslucent);\r\n this.clearPickAndColor = dispose(this.clearPickAndColor);\r\n }\r\n}\r\n\r\ninterface BatchInfo {\r\n featureTable: RenderFeatureTable;\r\n iModel?: IModelConnection;\r\n transformFromIModel?: Transform;\r\n tileId?: string;\r\n viewAttachmentId?: Id64String;\r\n inSectionDrawingAttachment?: boolean;\r\n}\r\n\r\ninterface ContourPixels {\r\n display: ContourDisplay;\r\n data: Uint32Array;\r\n zLow: number;\r\n zHigh: number;\r\n}\r\n\r\n// Represents a view of data read from a region of the frame buffer.\r\nclass PixelBuffer implements Pixel.Buffer {\r\n private readonly _rect: ViewRect;\r\n private readonly _selector: Pixel.Selector;\r\n private readonly _featureId?: Uint32Array;\r\n private readonly _depthAndOrder?: Uint32Array;\r\n private readonly _contours?: ContourPixels;\r\n private readonly _batchState: BatchState;\r\n private readonly _scratchModelFeature = ModelFeature.create();\r\n\r\n private get _numPixels(): number { return this._rect.width * this._rect.height; }\r\n\r\n private getPixelIndex(x: number, y: number): number {\r\n if (x < this._rect.left || y < this._rect.top)\r\n return this._numPixels;\r\n\r\n x -= this._rect.left;\r\n y -= this._rect.top;\r\n if (x >= this._rect.width || y >= this._rect.height)\r\n return this._numPixels;\r\n\r\n // NB: View coords have origin at top-left; GL at bottom-left. So our rows are upside-down.\r\n y = this._rect.height - 1 - y;\r\n return y * this._rect.width + x;\r\n }\r\n\r\n private getPixel32(data: Uint32Array, pixelIndex: number): number | undefined {\r\n return pixelIndex < data.length ? data[pixelIndex] : undefined;\r\n }\r\n\r\n private getFeature(pixelIndex: number, result: ModelFeature): ModelFeature | undefined {\r\n const featureId = this.getFeatureId(pixelIndex);\r\n return undefined !== featureId ? this._batchState.getFeature(featureId, result) : undefined;\r\n }\r\n\r\n private getFeatureId(pixelIndex: number): number | undefined {\r\n return undefined !== this._featureId ? this.getPixel32(this._featureId, pixelIndex) : undefined;\r\n }\r\n\r\n private getBatchInfo(pixelIndex: number): BatchInfo | undefined {\r\n const featureId = this.getFeatureId(pixelIndex);\r\n if (undefined !== featureId) {\r\n const batch = this._batchState.find(featureId);\r\n if (undefined !== batch) {\r\n return {\r\n featureTable: batch.featureTable,\r\n iModel: batch.batchIModel,\r\n transformFromIModel: batch.transformFromBatchIModel,\r\n tileId: batch.tileId,\r\n viewAttachmentId: batch.viewAttachmentId,\r\n inSectionDrawingAttachment: batch.inSectionDrawingAttachment,\r\n };\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n private readonly _scratchUint32Array = new Uint32Array(1);\r\n private readonly _scratchUint8Array = new Uint8Array(this._scratchUint32Array.buffer);\r\n private readonly _scratchVector3d = new Vector3d();\r\n private readonly _mult = new Vector3d(1.0, 1.0 / 255.0, 1.0 / 65025.0);\r\n private decodeDepthRgba(depthAndOrder: number): number {\r\n this._scratchUint32Array[0] = depthAndOrder;\r\n const bytes = this._scratchUint8Array;\r\n const fpt = Vector3d.create(bytes[1] / 255.0, bytes[2] / 255.0, bytes[3] / 255.0, this._scratchVector3d);\r\n let depth = fpt.dotProduct(this._mult);\r\n\r\n assert(0.0 <= depth);\r\n assert(1.01 >= depth); // rounding error...\r\n\r\n depth = Math.min(1.0, depth);\r\n depth = Math.max(0.0, depth);\r\n\r\n return depth;\r\n }\r\n\r\n private decodeRenderOrderRgba(depthAndOrder: number): RenderOrder { return this.decodeUint8(depthAndOrder, 16); }\r\n private decodeUint8(rgba32: number, basis: number): number {\r\n this._scratchUint32Array[0] = rgba32;\r\n const encByte = this._scratchUint8Array[0];\r\n const enc = encByte / 255.0;\r\n const dec = Math.floor(basis * enc + 0.5);\r\n return dec;\r\n }\r\n\r\n\r\n private readonly _invalidPixelData = new Pixel.Data();\r\n public getPixel(x: number, y: number): Pixel.Data {\r\n const px = this._invalidPixelData;\r\n const index = this.getPixelIndex(x, y);\r\n if (index >= this._numPixels)\r\n return px;\r\n\r\n // Initialize to the defaults...\r\n let distanceFraction = px.distanceFraction;\r\n let geometryType = px.type;\r\n let planarity = px.planarity;\r\n\r\n const haveFeatureIds = Pixel.Selector.None !== (this._selector & Pixel.Selector.Feature);\r\n const feature = haveFeatureIds ? this.getFeature(index, this._scratchModelFeature) : undefined;\r\n const batchInfo = haveFeatureIds ? this.getBatchInfo(index) : undefined;\r\n if (Pixel.Selector.None !== (this._selector & Pixel.Selector.GeometryAndDistance) && undefined !== this._depthAndOrder) {\r\n const depthAndOrder = this.getPixel32(this._depthAndOrder, index);\r\n if (undefined !== depthAndOrder) {\r\n distanceFraction = this.decodeDepthRgba(depthAndOrder);\r\n\r\n const orderWithPlanarBit = this.decodeRenderOrderRgba(depthAndOrder);\r\n const order = orderWithPlanarBit & ~RenderOrder.PlanarBit;\r\n planarity = (orderWithPlanarBit === order) ? Pixel.Planarity.NonPlanar : Pixel.Planarity.Planar;\r\n switch (order) {\r\n case RenderOrder.None:\r\n geometryType = Pixel.GeometryType.None;\r\n planarity = Pixel.Planarity.None;\r\n break;\r\n case RenderOrder.Background:\r\n case RenderOrder.BlankingRegion:\r\n case RenderOrder.LitSurface:\r\n case RenderOrder.UnlitSurface:\r\n geometryType = Pixel.GeometryType.Surface;\r\n break;\r\n case RenderOrder.Linear:\r\n geometryType = Pixel.GeometryType.Linear;\r\n break;\r\n case RenderOrder.Edge:\r\n geometryType = Pixel.GeometryType.Edge;\r\n break;\r\n case RenderOrder.Silhouette:\r\n geometryType = Pixel.GeometryType.Silhouette;\r\n break;\r\n default:\r\n // ###TODO: may run into issues with point clouds - they are not written correctly in C++.\r\n assert(false, \"Invalid render order\");\r\n geometryType = Pixel.GeometryType.None;\r\n planarity = Pixel.Planarity.None;\r\n break;\r\n }\r\n }\r\n }\r\n\r\n let contour: ContourHit | undefined;\r\n if (this._contours) {\r\n const contour32 = this.getPixel32(this._contours.data, index);\r\n if (contour32) { // undefined means out of bounds; zero means not a contour.\r\n const groupIndexAndType = this.decodeUint8(contour32, 32);\r\n const groupIndex = groupIndexAndType & ~(8 | 16);\r\n const group = this._contours.display.groups[groupIndex];\r\n if (group) {\r\n const elevationFraction = this.decodeDepthRgba(contour32);\r\n let elevation = elevationFraction * (this._contours.zHigh - this._contours.zLow) + this._contours.zLow;\r\n // The shader rounds to the nearest contour elevation using single-precision arithmetic.\r\n // Re-round here using double-precision to get closer.\r\n const interval = group.contourDef.minorInterval;\r\n elevation = (elevation >= 0 ? Math.floor((elevation + interval / 2) / interval) : Math.ceil((elevation - interval / 2) / interval)) * interval;\r\n contour = {\r\n group,\r\n elevation,\r\n isMajor: groupIndexAndType > 15,\r\n };\r\n }\r\n }\r\n\r\n }\r\n\r\n let featureTable, iModel, transformToIModel, tileId, viewAttachmentId, inSectionDrawingAttachment;\r\n if (undefined !== batchInfo) {\r\n featureTable = batchInfo.featureTable;\r\n iModel = batchInfo.iModel;\r\n transformToIModel = batchInfo.transformFromIModel;\r\n tileId = batchInfo.tileId;\r\n viewAttachmentId = batchInfo.viewAttachmentId;\r\n inSectionDrawingAttachment = batchInfo.inSectionDrawingAttachment;\r\n }\r\n\r\n return new Pixel.Data({\r\n feature,\r\n distanceFraction,\r\n type: geometryType,\r\n planarity,\r\n batchType: featureTable?.type,\r\n iModel,\r\n transformFromIModel: transformToIModel,\r\n tileId,\r\n viewAttachmentId,\r\n inSectionDrawingAttachment,\r\n contour,\r\n });\r\n }\r\n\r\n private constructor(rect: ViewRect, selector: Pixel.Selector, compositor: SceneCompositor) {\r\n this._rect = rect.clone();\r\n this._selector = selector;\r\n this._batchState = compositor.target.uniforms.batch.state;\r\n\r\n if (Pixel.Selector.None !== (selector & Pixel.Selector.GeometryAndDistance)) {\r\n const depthAndOrderBytes = compositor.readDepthAndOrder(rect);\r\n if (undefined !== depthAndOrderBytes)\r\n this._depthAndOrder = new Uint32Array(depthAndOrderBytes.buffer);\r\n else\r\n this._selector &= ~Pixel.Selector.GeometryAndDistance;\r\n }\r\n\r\n if (Pixel.Selector.None !== (selector & Pixel.Selector.Feature)) {\r\n const features = compositor.readFeatureIds(rect);\r\n if (undefined !== features)\r\n this._featureId = new Uint32Array(features.buffer);\r\n else\r\n this._selector &= ~Pixel.Selector.Feature;\r\n }\r\n\r\n // Note: readContours is a no-op unless contours are actually being drawn.\r\n if (Pixel.Selector.None !== (selector & Pixel.Selector.Contours)) {\r\n this._contours = compositor.readContours(rect);\r\n }\r\n }\r\n\r\n public get isEmpty(): boolean { return Pixel.Selector.None === this._selector; }\r\n\r\n public static create(rect: ViewRect, selector: Pixel.Selector, compositor: SceneCompositor): Pixel.Buffer | undefined {\r\n const pdb = new PixelBuffer(rect, selector, compositor);\r\n return pdb.isEmpty ? undefined : pdb;\r\n }\r\n}\r\n\r\n/** Orchestrates rendering of the scene on behalf of a Target.\r\n * This base class exists only so we don't have to export all the types of the shared Compositor members like Textures, FrameBuffers, etc.\r\n * @internal\r\n */\r\nexport abstract class SceneCompositor implements WebGLDisposable, RenderMemory.Consumer {\r\n public readonly target: Target;\r\n public readonly solarShadowMap: SolarShadowMap;\r\n public readonly eyeDomeLighting: EyeDomeLighting;\r\n\r\n protected _needHiddenEdges: boolean;\r\n\r\n public abstract get isDisposed(): boolean;\r\n public abstract [Symbol.dispose](): void;\r\n public abstract preDraw(): void;\r\n public abstract draw(_commands: RenderCommands): void;\r\n public abstract drawForReadPixels(_commands: RenderCommands, sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void;\r\n public abstract readPixels(rect: ViewRect, selector: Pixel.Selector): Pixel.Buffer | undefined;\r\n public abstract readDepthAndOrder(rect: ViewRect): Uint8Array | undefined;\r\n public abstract readContours(rect: ViewRect): ContourPixels | undefined;\r\n public abstract readFeatureIds(rect: ViewRect): Uint8Array | undefined;\r\n public abstract updateSolarShadows(context: SceneContext | undefined): void;\r\n public abstract drawPrimitive(primitive: Primitive, exec: ShaderProgramExecutor, outputsToPick: boolean): void;\r\n public abstract forceBufferChange(): void;\r\n\r\n /** Obtain a framebuffer with a single spare RGBA texture that can be used for screen-space effect shaders. */\r\n public abstract get screenSpaceEffectFbo(): FrameBuffer;\r\n\r\n public abstract get featureIds(): TextureHandle;\r\n public abstract get depthAndOrder(): TextureHandle;\r\n public abstract get antialiasSamples(): number;\r\n\r\n public get needHiddenEdges(): boolean { return this._needHiddenEdges; }\r\n\r\n protected constructor(target: Target) {\r\n this.target = target;\r\n this.solarShadowMap = new SolarShadowMap(target);\r\n this.eyeDomeLighting = new EyeDomeLighting(target);\r\n this._needHiddenEdges = false;\r\n }\r\n\r\n public static create(target: Target): SceneCompositor {\r\n return new Compositor(target);\r\n }\r\n\r\n public abstract collectStatistics(stats: RenderMemory.Statistics): void;\r\n}\r\n\r\n// This describes what types of primitives a compositor should draw. See the `drawPrimitive` method of Compositor.\r\nenum PrimitiveDrawState {\r\n Both,\r\n Pickable,\r\n NonPickable,\r\n}\r\n\r\n// The actual base class. Specializations are provided based on whether or not multiple render targets are supported.\r\nclass Compositor extends SceneCompositor {\r\n protected _width: number = -1;\r\n protected _height: number = -1;\r\n protected _includeOcclusion: boolean = false;\r\n protected _textures = new Textures();\r\n protected _depth?: DepthBuffer;\r\n protected _depthMS?: DepthBuffer; // multisample depth buffer\r\n protected _fbos: FrameBuffers;\r\n protected _geom: Geometry;\r\n protected _readPickDataFromPingPong: boolean = true;\r\n protected _opaqueRenderState = new RenderState();\r\n protected _layerRenderState = new RenderState();\r\n protected _translucentRenderState = new RenderState();\r\n protected _hiliteRenderState = new RenderState();\r\n protected _noDepthMaskRenderState = new RenderState();\r\n protected _backgroundMapRenderState = new RenderState();\r\n protected _pointCloudRenderState = new RenderState();\r\n protected _debugStencil: number = 0; // 0 to draw stencil volumes normally, 1 to draw as opaque, 2 to draw blended\r\n protected _vcBranchState?: BranchState;\r\n protected _vcSetStencilRenderState?: RenderState;\r\n protected _vcCopyZRenderState?: RenderState;\r\n protected _vcColorRenderState?: RenderState;\r\n protected _vcBlendRenderState?: RenderState;\r\n protected _vcPickDataRenderState?: RenderState;\r\n protected _vcDebugRenderState?: RenderState;\r\n protected _vcAltDepthStencil?: DepthBuffer;\r\n protected _vcAltDepthStencilMS?: DepthBuffer;\r\n protected _haveVolumeClassifier: boolean = false;\r\n protected _antialiasSamples: number = 1;\r\n protected readonly _viewProjectionMatrix = new Matrix4();\r\n protected _primitiveDrawState = PrimitiveDrawState.Both; // used by drawPrimitive to decide whether a primitive needs to be drawn.\r\n\r\n public forceBufferChange(): void { this._width = this._height = -1; }\r\n public get featureIds(): TextureHandle { return this.getSamplerTexture(this._readPickDataFromPingPong ? 0 : 1); }\r\n public get depthAndOrder(): TextureHandle { return this.getSamplerTexture(this._readPickDataFromPingPong ? 1 : 2); }\r\n private get _samplerFbo(): FrameBuffer { return this._readPickDataFromPingPong ? this._fbos.pingPong! : this._fbos.opaqueAll!; }\r\n private getSamplerTexture(index: number) { return this._samplerFbo.getColor(index); }\r\n\r\n public drawPrimitive(primitive: Primitive, exec: ShaderProgramExecutor, outputsToPick: boolean) {\r\n if ((outputsToPick && this._primitiveDrawState !== PrimitiveDrawState.NonPickable) ||\r\n (!outputsToPick && this._primitiveDrawState !== PrimitiveDrawState.Pickable))\r\n primitive.draw(exec);\r\n }\r\n\r\n protected clearOpaque(needComposite: boolean): void {\r\n const fbo = needComposite ? this._fbos.opaqueAndCompositeAll! : this._fbos.opaqueAll!;\r\n const system = System.instance;\r\n system.frameBufferStack.execute(fbo, true, this.useMsBuffers, () => {\r\n // Clear pick data buffers to 0's and color buffer to background color\r\n // (0,0,0,0) in elementID0 and ElementID1 buffers indicates invalid element id\r\n // (0,0,0,0) in DepthAndOrder buffer indicates render order 0 and encoded depth of 0 (= far plane)\r\n system.applyRenderState(this._noDepthMaskRenderState);\r\n const params = getDrawParams(this.target, this._geom.clearPickAndColor!);\r\n this.target.techniques.draw(params);\r\n\r\n // Clear depth buffer\r\n system.applyRenderState(RenderState.defaults); // depthMask == true.\r\n system.context.clearDepth(1.0);\r\n system.context.clear(GL.BufferBit.Depth);\r\n });\r\n }\r\n\r\n protected renderLayers(commands: RenderCommands, needComposite: boolean, pass: RenderPass): void {\r\n const fbo = (needComposite ? this._fbos.opaqueAndCompositeAll! : this._fbos.opaqueAll!);\r\n const useMsBuffers = RenderPass.OpaqueLayers === pass && fbo.isMultisampled && this.useMsBuffers;\r\n this._readPickDataFromPingPong = !useMsBuffers;\r\n System.instance.frameBufferStack.execute(fbo, true, useMsBuffers, () => {\r\n this.drawPass(commands, pass, true);\r\n });\r\n\r\n this._readPickDataFromPingPong = false;\r\n }\r\n\r\n protected renderOpaque(commands: RenderCommands, compositeFlags: CompositeFlags, renderForReadPixels: boolean) {\r\n if (CompositeFlags.None !== (compositeFlags & CompositeFlags.AmbientOcclusion) && !renderForReadPixels) {\r\n this.renderOpaqueAO(commands);\r\n return;\r\n }\r\n const needComposite = CompositeFlags.None !== compositeFlags;\r\n const fbStack = System.instance.frameBufferStack;\r\n\r\n // Output the first 2 passes to color and pick data buffers. (All 3 in the case of rendering for readPixels() or ambient occlusion).\r\n let fbo = (needComposite ? this._fbos.opaqueAndCompositeAll! : this._fbos.opaqueAll!);\r\n const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;\r\n this._readPickDataFromPingPong = !useMsBuffers; // if multisampling then can read pick textures directly.\r\n fbStack.execute(fbo, true, useMsBuffers, () => {\r\n this.drawPass(commands, RenderPass.OpaqueLinear);\r\n this.drawPass(commands, RenderPass.OpaquePlanar, true);\r\n if (renderForReadPixels) {\r\n this.drawPass(commands, RenderPass.PointClouds, true); // don't need EDL for this\r\n this.drawPass(commands, RenderPass.OpaqueGeneral, true);\r\n if (useMsBuffers)\r\n fbo.blitMsBuffersToTextures(true);\r\n }\r\n });\r\n this._readPickDataFromPingPong = false;\r\n\r\n // The general pass (and following) will not bother to write to pick buffers and so can read from the actual pick buffers.\r\n if (!renderForReadPixels) {\r\n fbo = (needComposite ? this._fbos.opaqueAndCompositeColor! : this._fbos.opaqueColor!);\r\n fbStack.execute(fbo, true, useMsBuffers, () => {\r\n this.drawPass(commands, RenderPass.OpaqueGeneral, false);\r\n this.drawPass(commands, RenderPass.HiddenEdge, false);\r\n });\r\n // assume we are done with MS at this point, so update the non-MS buffers\r\n if (useMsBuffers)\r\n fbo.blitMsBuffersToTextures(needComposite);\r\n }\r\n }\r\n\r\n protected renderOpaqueAO(commands: RenderCommands) {\r\n const fbStack = System.instance.frameBufferStack;\r\n const haveHiddenEdges = 0 !== commands.getCommands(RenderPass.HiddenEdge).length;\r\n\r\n // Output the linear, planar, and pickable surfaces to color and pick data buffers.\r\n let fbo = this._fbos.opaqueAndCompositeAll!;\r\n const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;\r\n this._readPickDataFromPingPong = !useMsBuffers; // if multisampling then can read pick textures directly.\r\n fbStack.execute(fbo, true, useMsBuffers, () => {\r\n this.drawPass(commands, RenderPass.OpaqueLinear);\r\n this.drawPass(commands, RenderPass.OpaquePlanar, true);\r\n this._primitiveDrawState = PrimitiveDrawState.Pickable;\r\n this.drawPass(commands, RenderPass.OpaqueGeneral, true);\r\n this._primitiveDrawState = PrimitiveDrawState.Both;\r\n if (useMsBuffers)\r\n fbo.blitMsBuffersToTextures(true);\r\n });\r\n this._readPickDataFromPingPong = false;\r\n\r\n // Output the non-pickable surfaces and hidden edges to just the color buffer.\r\n fbo = this._fbos.opaqueAndCompositeColor!;\r\n fbStack.execute(fbo, true, useMsBuffers, () => {\r\n this._primitiveDrawState = PrimitiveDrawState.NonPickable;\r\n this.drawPass(commands, RenderPass.OpaqueGeneral, false);\r\n if (haveHiddenEdges)\r\n this.drawPass(commands, RenderPass.HiddenEdge, false);\r\n this._primitiveDrawState = PrimitiveDrawState.Both;\r\n });\r\n if (useMsBuffers)\r\n fbo.blitMsBuffersToTextures(true);\r\n\r\n // If there are no hidden edges, then we're done & can run the AO passes using the normal depthAndOrder texture.\r\n if (haveHiddenEdges) {\r\n // AO needs the pick data (orderAndDepth) for the hidden edges. We don't want it in with the other pick data though since they are not pickable, so we will use other textures.\r\n // If not multisampling we will re-use the ping-pong/transparency textures since we are done with ping-ponging at this point and transparency happens later.\r\n // If multisampling then we will use the accumulation texture for featureIDs and a special texture for depthAndOrder since the revealage texture is not the right type for multisampling.\r\n // First we will need to copy what's in the pick buffers so far into the hidden pick buffers.\r\n System.instance.applyRenderState(this._noDepthMaskRenderState);\r\n fbo = (useMsBuffers ? this._fbos.pingPongMS! : this._fbos.pingPong!);\r\n fbStack.execute(fbo, true, useMsBuffers, () => {\r\n const params = getDrawParams(this.target, this._geom.copyPickBuffers!);\r\n this.target.techniques.draw(params);\r\n });\r\n if (useMsBuffers)\r\n fbo.blitMsBuffersToTextures(false, 1); // only want to blit the depth/order target\r\n // Now draw the hidden edges, using an fbo which places their depth/order into the hidden pick buffers.\r\n // Since we are not writing to the actual pick buffers we let this._readPickDataFromPingPong remain false.\r\n fbo = this._fbos.opaqueAndCompositeAllHidden!;\r\n this._primitiveDrawState = PrimitiveDrawState.Pickable;\r\n fbStack.execute(fbo, true, useMsBuffers, () => {\r\n this.drawPass(commands, RenderPass.HiddenEdge, false);\r\n });\r\n this._primitiveDrawState = PrimitiveDrawState.Both;\r\n if (useMsBuffers) {\r\n // Only want to blit the color and depth/order targets as the featureId target is not blit-able and will generate a GL error.\r\n fbo.blitMsBuffersToTextures(false, 0);\r\n fbo.blitMsBuffersToTextures(false, 2);\r\n }\r\n this._needHiddenEdges = false;\r\n }\r\n\r\n this._needHiddenEdges = haveHiddenEdges; // this will cause the alternate renderAndOrder texture with the hidden edges to be read for the 2nd AO blur pass.\r\n this.renderAmbientOcclusion();\r\n this._needHiddenEdges = false;\r\n }\r\n\r\n protected renderPointClouds(commands: RenderCommands, compositeFlags: CompositeFlags) {\r\n const is3d = FrustumUniformType.Perspective === this.target.uniforms.frustum.type;\r\n // separate individual point clouds and get their point cloud settings\r\n const pointClouds: Array<SinglePointCloudData> = [];\r\n let pcs: PointCloudDisplaySettings | undefined;\r\n const cmds = commands.getCommands(RenderPass.PointClouds);\r\n let curPC: SinglePointCloudData | undefined;\r\n let pushDepth = 0;\r\n for (const cmd of cmds) {\r\n if (\"pushBranch\" === cmd.opcode) { // should be first command\r\n ++pushDepth;\r\n if (pushDepth === 1) {\r\n pcs = cmd.branch.branch.realityModelDisplaySettings?.pointCloud;\r\n this.target.uniforms.realityModel.pointCloud.updateRange(cmd.branch.branch.realityModelRange,\r\n this.target, cmd.branch.localToWorldTransform, is3d);\r\n pointClouds.push(curPC = { pcs, cmds: [cmd] });\r\n } else {\r\n assert(undefined !== curPC);\r\n curPC.cmds.push(cmd);\r\n }\r\n } else {\r\n if (\"popBranch\" === cmd.opcode)\r\n --pushDepth;\r\n assert(undefined !== curPC);\r\n curPC.cmds.push(cmd);\r\n }\r\n }\r\n\r\n const needComposite = CompositeFlags.None !== compositeFlags;\r\n const fbo = (needComposite ? this._fbos.opaqueAndCompositeColor! : this._fbos.opaqueColor!);\r\n const useMsBuffers = fbo.isMultisampled && this.useMsBuffers;\r\n const system = System.instance;\r\n const fbStack = system.frameBufferStack;\r\n\r\n this._readPickDataFromPingPong = false;\r\n\r\n for (const pc of pointClouds) {\r\n pcs = pc.pcs;\r\n let edlOn = pcs?.edlMode !== \"off\" && is3d;\r\n if (edlOn) {\r\n if (undefined === this._textures.hilite)\r\n edlOn = false;\r\n else {\r\n // create fbo on fly if not present, or has changed (from MS)\r\n // ###TODO consider not drawing point clouds to MS buffers, at least if EDL, it isn't worth the overhead.\r\n // would have to blit depth before draw, use depth for draw, then run shader to copy depth back to MSAA\r\n // at end, wherever color buf changed (test alpha, else discard)\r\n // this would also simplify this code considerably\r\n let drawColBufs;\r\n if (undefined !== this._fbos.edlDrawCol)\r\n drawColBufs = this._fbos.edlDrawCol.getColorTargets(useMsBuffers, 0);\r\n if (undefined === this._fbos.edlDrawCol || this._textures.hilite !== drawColBufs?.tex || this._textures.hiliteMsBuff !== drawColBufs.msBuf) {\r\n this._fbos.edlDrawCol = dispose(this._fbos.edlDrawCol);\r\n const filters = [GL.MultiSampling.Filter.Linear];\r\n if (useMsBuffers)\r\n this._fbos.edlDrawCol = FrameBuffer.create([this._textures.hilite], this._depth,\r\n useMsBuffers && this._textures.hiliteMsBuff ? [this._textures.hiliteMsBuff] : undefined, filters, this._depthMS);\r\n else\r\n this._fbos.edlDrawCol = FrameBuffer.create([this._textures.hilite], this._depth);\r\n }\r\n if (undefined === this._fbos.edlDrawCol)\r\n edlOn = false;\r\n else { // can draw EDL\r\n // first draw pointcloud to borrowed hilite texture(MS) and regular depth(MS) buffers\r\n fbStack.execute(this._fbos.edlDrawCol, true, useMsBuffers, () => {\r\n system.context.clearColor(0, 0, 0, 0);\r\n system.context.clear(GL.BufferBit.Color);\r\n system.applyRenderState(this.getRenderState(RenderPass.PointClouds));\r\n this.target.techniques.execute(this.target, pc.cmds, RenderPass.PointClouds);\r\n });\r\n if (useMsBuffers)\r\n this._fbos.edlDrawCol.blitMsBuffersToTextures(true, 0); // need to read the non-MS depth and hilite buffers\r\n\r\n // next process buffers to generate EDL (depth buffer is passed during init)\r\n this.target.beginPerfMetricRecord(\"Calc EDL\"); // ### todo keep? (probably)\r\n const sts = this.eyeDomeLighting.draw({\r\n edlMode: pc.pcs?.edlMode === \"full\" ? EDLMode.Full : EDLMode.On,\r\n edlFilter: !!pcs?.edlFilter,\r\n useMsBuffers,\r\n inputTex: this._textures.hilite,\r\n curFbo: fbo,\r\n });\r\n this.target.endPerfMetricRecord();\r\n if (!sts) {\r\n edlOn = false;\r\n }\r\n }\r\n }\r\n }\r\n if (!edlOn) {\r\n // draw the regular way\r\n fbStack.execute(fbo, true, useMsBuffers, () => {\r\n system.applyRenderState(this.getRenderState(RenderPass.PointClouds));\r\n this.target.techniques.execute(this.target, pc.cmds, RenderPass.PointClouds);\r\n });\r\n }\r\n }\r\n }\r\n\r\n protected renderForVolumeClassification(commands: RenderCommands, compositeFlags: CompositeFlags, renderForReadPixels: boolean) {\r\n const needComposite = CompositeFlags.None !== compositeFlags;\r\n const needAO = CompositeFlags.None !== (compositeFlags & CompositeFlags.AmbientOcclusion);\r\n const fbStack = System.instance.frameBufferStack;\r\n\r\n if (renderForReadPixels || needAO) {\r\n this._readPickDataFromPingPong = true;\r\n fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeAll! : this._fbos.opaqueAll!, true, this.useMsBuffers, () => {\r\n this.drawPass(commands, RenderPass.OpaqueGeneral, true, RenderPass.VolumeClassifiedRealityData);\r\n });\r\n } else {\r\n this._readPickDataFromPingPong = false;\r\n fbStack.execute(needComposite ? this._fbos.opaqueAndCompositeColor! : this._fbos.opaqueColor!, true, this.useMsBuffers, () => {\r\n this.drawPass(commands, RenderPass.OpaqueGeneral, false, RenderPass.VolumeClassifiedRealityData);\r\n });\r\n }\r\n }\r\n\r\n protected renderIndexedClassifierForReadPixels(cmds: DrawCommands, state: RenderState, renderForIntersectingVolumes: boolean, needComposite: boolean) {\r\n this._readPickDataFromPingPong = true;\r\n const fbo = (renderForIntersectingVolumes ? (needComposite ? this._fbos.idsAndZComposite! : this._fbos.idsAndZ!)\r\n : (needComposite ? this._fbos.idsAndAltZComposite! : this._fbos.idsAndAltZ!));\r\n System.instance.frameBufferStack.execute(fbo, true, false, () => {\r\n System.instance.applyRenderState(state);\r\n this.target.techniques.execute(this.target, cmds, RenderPass.OpaqueGeneral);\r\n });\r\n this._readPickDataFromPingPong = false;\r\n }\r\n\r\n protected clearTranslucent() {\r\n System.instance.applyRenderState(this._noDepthMaskRenderState);\r\n System.instance.frameBufferStack.execute(this._fbos.clearTranslucent!, true, false, () => {\r\n const params = getDrawParams(this.target, this._geom.clearTranslucent!);\r\n this.target.techniques.draw(params);\r\n });\r\n }\r\n\r\n protected renderTranslucent(commands: RenderCommands) {\r\n System.instance.frameBufferStack.execute(this._fbos.translucent!, true, false, () => {\r\n this.drawPass(commands, RenderPass.Translucent);\r\n });\r\n }\r\n\r\n protected getBackgroundFbo(needComposite: boolean): FrameBuffer {\r\n return needComposite ? this._fbos.opaqueAndCompositeColor! : this._fbos.opaqueColor!;\r\n }\r\n\r\n protected pingPong() {\r\n if (this._fbos.opaqueAll!.isMultisampled && this.useMsBuffers) {\r\n // If we are multisampling we can just blit the FeatureId and DepthAndOrder MS buffers to their textures.\r\n this._fbos.opaqueAll!.blitMsBuffersToTextures(false, 1);\r\n this._fbos.opaqueAll!.blitMsBuffersToTextures(false, 2);\r\n } else {\r\n System.instance.applyRenderState(this._noDepthMaskRenderState);\r\n System.instance.frameBufferStack.execute(this._fbos.pingPong!, true, this.useMsBuffers, () => {\r\n const params = getDrawParams(this.target, this._geom.copyPickBuffers!);\r\n this.target.techniques.draw(params);\r\n });\r\n }\r\n }\r\n\r\n public get antialiasSamples(): number { return this._antialiasSamples; }\r\n\r\n protected get useMsBuffers(): boolean { return this._antialiasSamples > 1 && !this.target.isReadPixelsInProgress; }\r\n\r\n protected enableVolumeClassifierFbos(textures: Textures, depth: DepthBuffer, volClassDepth: DepthBuffer | undefined, depthMS?: DepthBuffer, volClassDepthMS?: DepthBuffer): void {\r\n this._fbos.enableVolumeClassifier(textures, depth, volClassDepth, depthMS, volClassDepthMS);\r\n }\r\n\r\n protected disableVolumeClassifierFbos(): void {\r\n this._fbos.disableVolumeClassifier();\r\n }\r\n\r\n /** This function generates a texture that contains ambient occlusion information to be applied later. */\r\n protected renderAmbientOcclusion() {\r\n const system = System.instance;\r\n\r\n // Render unblurred ambient occlusion based on depth buffer\r\n let fbo = this._fbos.occlusion!;\r\n this.target.beginPerfMetricRecord(\"Compute AO\");\r\n system.frameBufferStack.execute(fbo, true, false, () => {\r\n System.instance.applyRenderState(RenderState.defaults);\r\n const params = getDrawParams(this.target, this._geom.occlusion!);\r\n this.target.techniques.draw(params);\r\n });\r\n this.target.endPerfMetricRecord();\r\n\r\n // Render the X-blurred ambient occlusion based on unblurred ambient occlusion\r\n fbo = this._fbos.occlusionBlur!;\r\n this.target.beginPerfMetricRecord(\"Blur AO X\");\r\n system.frameBufferStack.execute(fbo, true, false, () => {\r\n System.instance.applyRenderState(RenderState.defaults);\r\n const params = getDrawParams(this.target, this._geom.occlusionXBlur!);\r\n this.target.techniques.draw(params);\r\n });\r\n this.target.endPerfMetricRecord();\r\n\r\n // Render the Y-blurred ambient occlusion based on X-blurred ambient occlusion (render into original occlusion framebuffer)\r\n fbo = this._fbos.occlusion!;\r\n this.target.beginPerfMetricRecord(\"Blur AO Y\");\r\n system.frameBufferStack.execute(fbo, true, false, () => {\r\n System.instance.applyRenderState(RenderState.defaults);\r\n const params = getDrawParams(this.target, this._geom.occlusionYBlur!);\r\n this.target.techniques.draw(params);\r\n });\r\n this.target.endPerfMetricRecord();\r\n }\r\n\r\n public constructor(target: Target) {\r\n super(target);\r\n this._fbos = new FrameBuffers();\r\n this._geom = new Geometry();\r\n\r\n this._opaqueRenderState.flags.depthTest = true;\r\n\r\n this._pointCloudRenderState.flags.depthTest = true;\r\n\r\n this._translucentRenderState.flags.depthMask = false;\r\n this._translucentRenderState.flags.blend = this._translucentRenderState.flags.depthTest = true;\r\n this._translucentRenderState.blend.setBlendFuncSeparate(GL.BlendFactor.One, GL.BlendFactor.Zero, GL.BlendFactor.One, GL.BlendFactor.OneMinusSrcAlpha);\r\n\r\n this._hiliteRenderState.flags.depthMask = false;\r\n this._hiliteRenderState.flags.blend = true;\r\n this._hiliteRenderState.blend.functionDestRgb = GL.BlendFactor.One;\r\n this._hiliteRenderState.blend.functionDestAlpha = GL.BlendFactor.One;\r\n\r\n this._noDepthMaskRenderState.flags.depthMask = false;\r\n\r\n // Background map supports transparency, even when depth is off, which is mostly useless but should blend with background color / skybox.\r\n this._backgroundMapRenderState.flags.depthMask = false;\r\n this._backgroundMapRenderState.flags.blend = true;\r\n this._backgroundMapRenderState.blend.setBlendFunc(GL.BlendFactor.One, GL.BlendFactor.OneMinusSrcAlpha);\r\n\r\n // Can't write depth without enabling depth test - so make depth test always pass\r\n this._layerRenderState.flags.depthTest = true;\r\n this._layerRenderState.depthFunc = GL.DepthFunc.Always;\r\n this._layerRenderState.blend.setBlendFunc(GL.BlendFactor.One, GL.BlendFactor.OneMinusSrcAlpha);\r\n }\r\n\r\n public collectStatistics(stats: RenderMemory.Statistics): void {\r\n if (undefined !== this._depth)\r\n stats.addTextureAttachment(this._depth.bytesUsed);\r\n if (undefined !== this._depthMS)\r\n stats.addTextureAttachment(this._depthMS.bytesUsed);\r\n this._textures.collectStatistics(stats);\r\n this._geom.collectStatistics(stats);\r\n }\r\n\r\n public preDraw(): boolean {\r\n const rect = this.target.viewRect;\r\n const width = rect.width;\r\n const height = rect.height;\r\n const includeOcclusion = this.target.wantAmbientOcclusion;\r\n const wantVolumeClassifier = (undefined !== this.target.activeVolumeClassifierProps);\r\n let wantAntialiasSamples = this.target.antialiasSamples <= 1 ? 1 : this.target.antialiasSamples;\r\n if (wantAntialiasSamples > System.instance.maxAntialiasSamples)\r\n wantAntialiasSamples = System.instance.maxAntialiasSamples;\r\n\r\n const changeAntialiasSamples = (this._antialiasSamples > 1 && wantAntialiasSamples > 1 && this._antialiasSamples !== wantAntialiasSamples);\r\n\r\n // If not yet initialized, or dimensions changed, or antialiasing changed the number of samples, initialize.\r\n if (undefined === this._textures.accumulation || width !== this._width || height !== this._height || changeAntialiasSamples) {\r\n this._width = width;\r\n this._height = height;\r\n this._antialiasSamples = wantAntialiasSamples;\r\n\r\n // init() first calls dispose(), which releases all of our fbos, textures, etc, and resets the _includeOcclusion flag.\r\n if (!this.init()) {\r\n assert(false, \"Failed to initialize scene compositor\");\r\n return false;\r\n }\r\n } else if (this._antialiasSamples !== wantAntialiasSamples) {\r\n // Turn on or off multisampling. Rather than just re-initializing, we can save the\r\n // non multisampled textures & FBOs and just try to add or delete the multisampled ones.\r\n this._antialiasSamples = wantAntialiasSamples;\r\n if (wantVolumeClassifier && this._haveVolumeClassifier) {\r\n // Multisampling and volume classification buffers are somewhat co-dependent so if volume classification is on\r\n // and is staying on, just disable volume classifiers and let them get re-enabled later.\r\n this.disableVolumeClassifierFbos();\r\n this._geom.disableVolumeClassifier();\r\n this._textures.disableVolumeClassifier();\r\n if (undefined !== this._vcAltDepthStencil) {\r\n this._vcAltDepthStencil[Symbol.dispose]();\r\n this._vcAltDepthStencil = undefined;\r\n }\r\n this._haveVolumeClassifier = false;\r\n }\r\n if (includeOcclusion && this._includeOcclusion) {\r\n // Multisampling and AO buffers are also somewhat co-dependent, so if AO is on\r\n // and is staying on, just disable AO and let it get re-enabled later.\r\n this._geom.disableOcclusion();\r\n this._fbos.disableOcclusion();\r\n this._textures.disableOcclusion();\r\n this._includeOcclusion = false;\r\n }\r\n if (this._antialiasSamples > 1) {\r\n if (!this.enableMultiSampling()) {\r\n assert(false, \"Failed to initialize multisampling buffers\");\r\n return false;\r\n }\r\n } else {\r\n if (!this.disableMultiSampling()) {\r\n assert(false, \"Failed to initialize multisampling buffers\");\r\n return false;\r\n }\r\n }\r\n }\r\n\r\n // Allocate or free ambient occlusion-related resources if necessary\r\n if (includeOcclusion !== this._includeOcclusion) {\r\n this._includeOcclusion = includeOcclusion;\r\n if (includeOcclusion) {\r\n if (!this._textures.enableOcclusion(width, height, this._antialiasSamples)) {\r\n assert(false, \"Failed to initialize occlusion textures\");\r\n return false;\r\n }\r\n if (!this._fbos.enableOcclusion(this._textures, this._depth!, this._depthMS)) {\r\n assert(false, \"Failed to initialize occlusion frame buffers\");\r\n return false;\r\n }\r\n this._geom.enableOcclusion(this._textures, this._depth!);\r\n } else {\r\n this._geom.disableOcclusion();\r\n this._fbos.disableOcclusion();\r\n this._textures.disableOcclusion();\r\n }\r\n }\r\n\r\n // Allocate or free volume classifier-related resources if necessary.\r\n if (wantVolumeClassifier !== this._haveVolumeClassifier) {\r\n if (wantVolumeClassifier) {\r\n this._vcAltDepthStencil = System.instance.createDepthBuffer(width, height) as TextureHandle;\r\n if (undefined !== this._depthMS)\r\n this._vcAltDepthStencilMS = System.instance.createDepthBuffer(width, height, this._antialiasSamples) as TextureHandle;\r\n\r\n if (undefined === this._vcAltDepthStencil || (undefined !== this._depthMS && undefined === this._vcAltDepthStencilMS))\r\n return false;\r\n\r\n if (!this._textures.enableVolumeClassifier(width, height, this._antialiasSamples))\r\n return false;\r\n\r\n if (!this._geom.enableVolumeClassifier(this._textures, this._depth!))\r\n return false;\r\n\r\n this.enableVolumeClassifierFbos(this._textures, this._depth!, this._vcAltDepthStencil, this._depthMS, this._vcAltDepthStencilMS);\r\n this._haveVolumeClassifier = true;\r\n } else {\r\n this.disableVolumeClassifierFbos();\r\n this._geom.disableVolumeClassifier();\r\n this._textures.disableVolumeClassifier();\r\n if (undefined !== this._vcAltDepthStencil) {\r\n this._vcAltDepthStencil[Symbol.dispose]();\r\n this._vcAltDepthStencil = undefined;\r\n }\r\n this._haveVolumeClassifier = false;\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public draw(commands: RenderCommands) {\r\n if (!this.preDraw())\r\n return;\r\n\r\n const compositeFlags = commands.compositeFlags;\r\n const needComposite = CompositeFlags.None !== compositeFlags;\r\n\r\n // Clear output targets\r\n this.target.frameStatsCollector.beginTime(\"opaqueTime\");\r\n this.target.beginPerfMetricRecord(\"Clear Opaque\");\r\n this.clearOpaque(needComposite);\r\n this.target.endPerfMetricRecord();\r\n this.target.frameStatsCollector.endTime(\"opaqueTime\");\r\n\r\n this.target.frameStatsCollector.beginTime(\"backgroundTime\"); // includes skybox\r\n\r\n // Render the background\r\n this.target.beginPerfMetricRecord(\"Render Background\");\r\n this.renderBackground(commands, needComposite);\r\n this.target.endPerfMetricRecord();\r\n\r\n // Render the sky box\r\n this.target.beginPerfMetricRecord(\"Render Skybox\");\r\n this.renderSkyBox(commands, needComposite);\r\n this.target.endPerfMetricRecord();\r\n\r\n // Render the background map graphics\r\n this.target.beginPerfMetricRecord(\"Render Background Map\");\r\n this.renderBackgroundMap(commands, needComposite);\r\n this.target.endPerfMetricRecord();\r\n\r\n this.target.frameStatsCollector.endTime(\"backgroundTime\");\r\n\r\n // Enable clipping\r\n this.target.beginPerfMetricRecord(\"Enable Clipping\");\r\n this.target.pushViewClip();\r\n this.target.endPerfMetricRecord();\r\n\r\n // Render volume classification first so that we only classify the reality data\r\n this.target.frameStatsCollector.beginTime(\"classifiersTime\");\r\n this.target.beginPerfMetricRecord(\"Render VolumeClassification\");\r\n this.renderVolumeClassification(commands, compositeFlags, false);\r\n this.target.endPerfMetricRecord();\r\n this.target.frameStatsCollector.endTime(\"classifiersTime\");\r\n\r\n this.target.frameStatsCollector.beginTime(\"opaqueTime\");\r\n\r\n // Render layers\r\n this.target.beginPerfMetricRecord(\"Render Opaque Layers\");\r\n this.renderLayers(commands, needComposite, RenderPass.OpaqueLayers);\r\n this.target.endPerfMetricRecord();\r\n\r\n // Render opaque geometry\r\n this.target.frameStatsCollector.beginTime(\"onRenderOpaqueTime\");\r\n IModelFrameLifecycle.onRenderOpaque.raiseEvent({\r\n commands,\r\n needComposite,\r\n compositeFlags,\r\n fbo: this.getBackgroundFbo(needComposite),\r\n frameBufferStack: System.instance.frameBufferStack,\r\n });\r\n this.target.frameStatsCollector.endTime(\"onRenderOpaqueTime\");\r\n\r\n // Render point cloud geometry with possible EDL\r\n this.target.beginPerfMetricRecord(\"Render PointClouds\");\r\n this.renderPointClouds(commands, compositeFlags);\r\n this.target.endPerfMetricRecord();\r\n\r\n // Render opaque geometry\r\n this.target.beginPerfMetricRecord(\"Render Opaque\");\r\n this.renderOpaque(commands, compositeFlags, false);\r\n this.target.endPerfMetricRecord();\r\n\r\n this.target.frameStatsCollector.endTime(\"opaqueTime\");\r\n\r\n this.target.frameStatsCollector.beginTime(\"translucentTime\");\r\n\r\n // Render translucent layers\r\n this.target.beginPerfMetricRecord(\"Render Translucent Layers\");\r\n this.renderLayers(commands, needComposite, RenderPass.TranslucentLayers);\r\n this.target.endPerfMetricRecord();\r\n\r\n if (needComposite) {\r\n this._geom.composite!.update(compositeFlags);\r\n this.target.beginPerfMetricRecord(\"Render Translucent\");\r\n this.clearTranslucent();\r\n this.renderTranslucent(commands);\r\n this.target.endPerfMetricRecord();\r\n\r\n this.target.frameStatsCollector.endTime(\"translucentTime\");\r\n\r\n this.target.beginPerfMetricRecord(\"Render Hilite\");\r\n this.renderHilite(commands);\r\n this.target.endPerfMetricRecord();\r\n\r\n this.target.beginPerfMetricRecord(\"Composite\");\r\n this.composite();\r\n this.target.endPerfMetricRecord();\r\n } else\r\n this.target.frameStatsCollector.endTime(\"translucentTime\");\r\n\r\n // Render overlay Layers\r\n this.target.frameStatsCollector.beginTime(\"overlaysTime\");\r\n this.target.beginPerfMetricRecord(\"Render Overlay Layers\");\r\n this.renderLayers(commands, false, RenderPass.OverlayLayers);\r\n this.target.endPerfMetricRecord();\r\n this.target.frameStatsCollector.endTime(\"overlaysTime\");\r\n\r\n this.target.popViewClip();\r\n }\r\n\r\n public get fullHeight(): number { return this.target.viewRect.height; }\r\n\r\n public drawForReadPixels(commands: RenderCommands, sceneOverlays: GraphicList, worldOverlayDecorations: GraphicList | undefined, viewOverlayDecorations: GraphicList | undefined): void {\r\n this.target.beginPerfMetricRecord(\"Render Background\", true);\r\n if (!this.preDraw()) {\r\n this.target.endPerfMetricRecord(true); // End Render Background record if returning\r\n assert(false);\r\n return;\r\n }\r\n\r\n this.clearOpaque(false);\r\n this.target.endPerfMetricRecord(true);\r\n\r\n // On entry the RenderCommands has been initialized for all scene graphics and pickable decorations with the exception of world overlays.\r\n // It's possible we have no pickable scene graphics or decorations, but do have pickable world overlays.\r\n const haveRenderCommands = !commands.isEmpty;\r\n if (haveRenderCommands) {\r\n this.target.beginPerfMetricRecord(\"Enable Clipping\", true);\r\n this.target.pushViewClip();\r\n this.target.endPerfMetricRecord(true);\r\n\r\n this.target.beginPerfMetricRecord(\"Render VolumeClassification\", true);\r\n this.renderVolumeClassification(commands, CompositeFlags.None, true);\r\n this.target.endPerfMetricRecord(true);\r\n\r\n // RenderPass.BackgroundMap is used only when depth is turned off for the map.\r\n // Ensure it draws before any opaque geometry (including layers), without depth.\r\n this.target.beginPerfMetricRecord(\"Render background map\", true);\r\n this.target.drawingBackgroundForReadPixels = true;\r\n this.renderLayers(commands, false, RenderPass.BackgroundMap);\r\n this.target.drawingBackgroundForReadPixels = false;\r\n this.target.endPerfMetricRecord(true);\r\n\r\n this.target.beginPerfMetricRecord(\"Render Opaque Layers\", true);\r\n this.renderLayers(commands, false, RenderPass.OpaqueLayers);\r\n this.target.endPerfMetricRecord(true);\r\n\r\n // PointClouds are rendered in Opaque pass for readPixels\r\n this.target.beginPerfMetricRecord(\"Render Opaque\", true);\r\n this.renderOpaque(commands, CompositeFlags.None, true);\r\n this.target.endPerfMetricRecord(true);\r\n\r\n this.target.beginPerfMetricRecord(\"Render Translucent Layers\", true);\r\n this.renderLayers(commands, false, RenderPass.TranslucentLayers);\r\n this.target.endPerfMetricRecord(true);\r\n\r\n this.target.beginPerfMetricRecord(\"Render Overlay Layers\", true);\r\n this.renderLayers(commands, false, RenderPass.OverlayLayers);\r\n this.target.endPerfMetricRecord(true);\r\n\r\n this.target.popViewClip();\r\n }\r\n\r\n if (!sceneOverlays.length && !worldOverlayDecorations?.length && !viewOverlayDecorations?.length)\r\n return;\r\n\r\n // Now populate the opaque passes with any pickable world overlays\r\n this.target.beginPerfMetricRecord(\"Overlay Draws\", true);\r\n commands.initForPickOverlays(sceneOverlays, worldOverlayDecorations, viewOverlayDecorations);\r\n if (commands.isEmpty) {\r\n this.target.endPerfMetricRecord(true); // End Overlay Draws record if returning\r\n return;\r\n }\r\n\r\n // Clear the depth buffer so that overlay decorations win the depth test.\r\n // (If *only* overlays exist, then clearOpaque() above already took care of this).\r\n if (haveRenderCommands) {\r\n const system = System.instance;\r\n system.frameBufferStack.execute(this._fbos.opaqueColor!, true, this.useMsBuffers, () => {\r\n system.applyRenderState(RenderState.defaults);\r\n system.context.clearDepth(1.0);\r\n system.context.clear(GL.BufferBit.Depth);\r\n });\r\n }\r\n\r\n // Render overlays as opaque into the pick buffers. Make sure we use the decoration state (to ignore symbology overrides, esp. the non-locatable flag).\r\n const decState = this.target.decorationsState;\r\n const vf = decState.viewFlags;\r\n if (vf.transparency)\r\n decState.viewFlags = vf.copy({ transparency: false });\r\n\r\n this.renderOpaque(commands, CompositeFlags.None, true);\r\n this.target.endPerfMetricRecord();\r\n decState.viewFlags = vf;\r\n }\r\n\r\n public readPixels(rect: ViewRect, selector: Pixel.Selector): Pixel.Buffer | undefined {\r\n return PixelBuffer.create(rect, selector, this);\r\n }\r\n\r\n public readDepthAndOrder(rect: ViewRect): Uint8Array | undefined {\r\n return this.readFrameBuffer(rect, this._fbos.depthAndOrder);\r\n }\r\n\r\n public override readContours(rect: ViewRect): ContourPixels | undefined {\r\n // Are we actually drawing any contours? If not, don't bother reading an array of all zeroes off the GPU.\r\n const contours = this.target.currentContours;\r\n if (!contours || !contours.displayContours || contours.groups.length === 0) {\r\n return undefined;\r\n }\r\n\r\n const info = this.readFrameBuffer(rect, this._fbos.contours);\r\n if (!info) {\r\n return undefined;\r\n }\r\n\r\n return {\r\n data: new Uint32Array(info.buffer),\r\n display: contours,\r\n zLow: this.target.uniforms.frustum.worldFrustumZRange[0],\r\n zHigh: this.target.uniforms.frustum.worldFrustumZRange[1],\r\n };\r\n }\r\n\r\n public readFeatureIds(rect: ViewRect): Uint8Array | undefined {\r\n const tex = this._textures.featureId;\r\n if (undefined === tex)\r\n return undefined;\r\n\r\n const fbo = FrameBuffer.create([tex]);\r\n const result = this.readFrameBuffer(rect, fbo);\r\n\r\n dispose(fbo);\r\n\r\n return result;\r\n }\r\n\r\n public updateSolarShadows(context: SceneContext | undefined): void {\r\n this.solarShadowMap.update(context);\r\n }\r\n\r\n public get screenSpaceEffectFbo(): FrameBuffer {\r\n assert(undefined !== this._fbos.hilite);\r\n return this._fbos.hilite;\r\n }\r\n\r\n private readFrameBuffer(rect: ViewRect, fbo?: FrameBuffer): Uint8Array | undefined {\r\n if (undefined === fbo || !Debug.isValidFrameBuffer)\r\n return undefined;\r\n\r\n // NB: ViewRect origin at top-left; GL origin at bottom-left\r\n const bottom = this.fullHeight - rect.bottom;\r\n const gl = System.instance.context;\r\n const bytes = new Uint8Array(rect.width * rect.height * 4);\r\n let result: Uint8Array | undefined = bytes;\r\n System.instance.frameBufferStack.execute(fbo, true, false, () => {\r\n try {\r\n gl.readPixels(rect.left, bottom, rect.width, rect.height, gl.RGBA, gl.UNSIGNED_BYTE, bytes);\r\n } catch {\r\n result = undefined;\r\n }\r\n });\r\n\r\n return result;\r\n }\r\n\r\n public get isDisposed(): boolean {\r\n return undefined === this._depth\r\n && undefined === this._vcAltDepthStencil\r\n && !this._includeOcclusion\r\n && this._textures.isDisposed\r\n && this._fbos.isDisposed\r\n && this._geom.isDisposed\r\n && !this._haveVolumeClassifier\r\n && this.solarShadowMap.isDisposed\r\n && this.eyeDomeLighting.isDisposed;\r\n }\r\n\r\n public [Symbol.dispose]() {\r\n this.reset();\r\n dispose(this.solarShadowMap);\r\n dispose(this.eyeDomeLighting);\r\n }\r\n\r\n // Resets anything that depends on the dimensions of the render target.\r\n // Does *not* dispose the solar shadow map.\r\n private reset() {\r\n this._depth = dispose(this._depth);\r\n this._depthMS = dispose(this._depthMS);\r\n this._vcAltDepthStencil = dispose(this._vcAltDepthStencil);\r\n this._includeOcclusion = false;\r\n dispose(this._textures);\r\n dispose(this._fbos);\r\n dispose(this._geom);\r\n this._haveVolumeClassifier = false;\r\n this.eyeDomeLighting.reset();\r\n }\r\n\r\n private init(): boolean {\r\n this.reset();\r\n this._depth = System.instance.createDepthBuffer(this._width, this._height, 1);\r\n if (this._antialiasSamples > 1)\r\n this._depthMS = System.instance.createDepthBuffer(this._width, this._height, this._antialiasSamples);\r\n else\r\n this._depthMS = undefined;\r\n if (this._depth !== undefined) {\r\n return this._textures.init(this._width, this._height, this._antialiasSamples)\r\n && this._fbos.init(this._textures, this._depth, this._depthMS)\r\n && this._geom.init(this._textures)\r\n && this.eyeDomeLighting.init(this._width, this._height, this._depth);\r\n }\r\n return false;\r\n }\r\n\r\n protected enableMultiSampling(): boolean {\r\n // Assume that non-multisampled stuff is already allocated. Just need to add multisampled textures, buffers, & geometry.\r\n assert(undefined === this._depthMS && undefined !== this._depth);\r\n this._depthMS = System.instance.createDepthBuffer(this._width, this._height, this._antialiasSamples);\r\n if (undefined === this._depthMS)\r\n return false;\r\n\r\n if (!this._textures.enableMultiSampling(this._width, this._height, this._antialiasSamples))\r\n return false;\r\n\r\n assert(undefined !== this._depth && undefined !== this._depthMS);\r\n return this._fbos.enableMultiSampling(this._textures, this._depth, this._depthMS);\r\n }\r\n\r\n protected disableMultiSampling(): boolean {\r\n assert(undefined !== this._depth);\r\n if (!this._fbos.disableMultiSampling(this._textures, this._depth))\r\n return false;\r\n\r\n // Want to disable multisampling without deleting & reallocating other stuff.\r\n this._depthMS = dispose(this._depthMS);\r\n assert(undefined !== this._depth);\r\n return this._textures.disableMultiSampling();\r\n }\r\n\r\n private renderBackgroundMap(commands: RenderCommands, needComposite: boolean) {\r\n const cmds = commands.getCommands(RenderPass.BackgroundMap);\r\n if (0 === cmds.length) {\r\n return;\r\n }\r\n\r\n const fbStack = System.instance.frameBufferStack;\r\n const fbo = this.getBackgroundFbo(needComposite);\r\n fbStack.execute(fbo, true, this.useMsBuffers, () => {\r\n System.instance.applyRenderState(this.getRenderState(RenderPass.BackgroundMap));\r\n this.target.techniques.execute(this.target, cmds, RenderPass.BackgroundMap);\r\n });\r\n }\r\n\r\n private renderSkyBox(commands: RenderCommands, needComposite: boolean) {\r\n const cmds = commands.getCommands(RenderPass.SkyBox);\r\n if (0 === cmds.length) {\r\n return;\r\n }\r\n\r\n const fbStack = System.instance.frameBufferStack;\r\n const fbo = this.getBackgroundFbo(needComposite);\r\n fbStack.execute(fbo, true, this.useMsBuffers, () => {\r\n System.instance.applyRenderState(this.getRenderState(RenderPass.SkyBox));\r\n this.target.techniques.execute(this.target, cmds, RenderPass.SkyBox);\r\n });\r\n }\r\n\r\n private renderBackground(commands: RenderCommands, needComposite: boolean) {\r\n const cmds = commands.getCommands(RenderPass.Background);\r\n if (0 === cmds.length)\r\n return;\r\n\r\n const fbStack = System.instance.frameBufferStack;\r\n const fbo = this.getBackgroundFbo(needComposite);\r\n fbStack.execute(fbo, true, this.useMsBuffers, () => {\r\n System.instance.applyRenderState(this.getRenderState(RenderPass.Background));\r\n this.target.techniques.execute(this.target, cmds, RenderPass.Background);\r\n });\r\n }\r\n\r\n private createVolumeClassifierStates() {\r\n // If we have already created a branch state for use in rendering the volume classifiers we must at least swap out its symbology overrides for the current one.\r\n if (undefined !== this._vcBranchState) {\r\n this._vcBranchState.symbologyOverrides = this.target.uniforms.branch.top.symbologyOverrides;\r\n return;\r\n }\r\n\r\n // Create a BranchState and several RenderStates to use when drawing the classifier volumes.\r\n // The BranchState needs to be created every time in case the symbology overrides changes.\r\n // It is based off of the current state, but turns off unnecessary and unwanted options, lighting being the most important.\r\n const top = this.target.uniforms.branch.top;\r\n const viewFlags = top.viewFlags.copy({\r\n renderMode: RenderMode.SmoothShade,\r\n wiremesh: false,\r\n lighting: false,\r\n forceSurfaceDiscard: false,\r\n hiddenEdges: false,\r\n visibleEdges: false,\r\n materials: false,\r\n textures: false,\r\n transparency: false,\r\n });\r\n\r\n this._vcBranchState = new BranchState({\r\n symbologyOverrides: top.symbologyOverrides,\r\n viewFlags,\r\n transform: Transform.createIdentity(),\r\n clipVolume: top.clipVolume,\r\n planarClassifier: top.planarClassifier,\r\n iModel: top.iModel,\r\n is3d: top.is3d,\r\n edgeSettings: top.edgeSettings,\r\n contourLine: top.contourLine,\r\n });\r\n\r\n this._vcSetStencilRenderState = new RenderState();\r\n this._vcCopyZRenderState = new RenderState();\r\n this._vcColorRenderState = new RenderState();\r\n this._vcBlendRenderState = new RenderState();\r\n this._vcPickDataRenderState = new RenderState();\r\n\r\n this._vcCopyZRenderState.flags.depthTest = true;\r\n this._vcCopyZRenderState.flags.depthMask = true;\r\n this._vcCopyZRenderState.depthFunc = GL.DepthFunc.Always;\r\n this._vcCopyZRenderState.flags.colorWrite = true;\r\n this._vcCopyZRenderState.flags.stencilTest = true;\r\n this._vcCopyZRenderState.stencil.frontFunction.function = GL.StencilFunction.Always;\r\n this._vcCopyZRenderState.stencil.frontOperation.fail = GL.StencilOperation.Zero;\r\n this._vcCopyZRenderState.stencil.frontOperation.zFail = GL.StencilOperation.Zero;\r\n this._vcCopyZRenderState.stencil.frontOperation.zPass = GL.StencilOperation.Zero;\r\n this._vcCopyZRenderState.stencil.backFunction.function = GL.StencilFunction.Always;\r\n this._vcCopyZRenderState.stencil.backOperation.fail = GL.StencilOperation.Zero;\r\n this._vcCopyZRenderState.stencil.backOperation.zFail = GL.StencilOperation.Zero;\r\n this._vcCopyZRenderState.stencil.backOperation.zPass = GL.StencilOperation.Zero;\r\n\r\n this._vcSetStencilRenderState.flags.depthTest = true;\r\n this._vcSetStencilRenderState.flags.depthMask = false;\r\n this._vcSetStencilRenderState.flags.colorWrite = false;\r\n this._vcSetStencilRenderState.flags.stencilTest = true;\r\n this._vcSetStencilRenderState.depthFunc = GL.DepthFunc.LessOrEqual;\r\n this._vcSetStencilRenderState.stencil.frontFunction.function = GL.StencilFunction.Always;\r\n this._vcSetStencilRenderState.stencil.frontOperation.zFail = GL.StencilOperation.IncrWrap;\r\n this._vcSetStencilRenderState.stencil.backFunction.function = GL.StencilFunction.Always;\r\n this._vcSetStencilRenderState.stencil.backOperation.zFail = GL.StencilOperation.DecrWrap;\r\n\r\n this._vcPickDataRenderState.flags.depthTest = false;\r\n this._vcPickDataRenderState.flags.depthMask = false;\r\n this._vcPickDataRenderState.flags.colorWrite = true;\r\n this._vcPickDataRenderState.flags.stencilTest = true;\r\n this._vcPickDataRenderState.flags.cull = true;\r\n this._vcPickDataRenderState.cullFace = GL.CullFace.Front;\r\n this._vcPickDataRenderState.stencil.backFunction.function = GL.StencilFunction.NotEqual;\r\n this._vcPickDataRenderState.stencil.backOperation.zPass = GL.StencilOperation.Zero; // this will clear the stencil\r\n // Let all of the operations remain at Keep so that the stencil will remain in tact for the subsequent blend draw to the color buffer.\r\n\r\n this._vcColorRenderState.flags.depthTest = false;\r\n this._vcColorRenderState.flags.depthMask = false;\r\n this._vcColorRenderState.flags.colorWrite = true;\r\n this._vcColorRenderState.flags.stencilTest = true;\r\n this._vcColorRenderState.cullFace = GL.CullFace.Front;\r\n this._vcColorRenderState.stencil.frontFunction.function = GL.StencilFunction.NotEqual;\r\n this._vcColorRenderState.stencil.frontOperation.fail = GL.StencilOperation.Zero;\r\n this._vcColorRenderState.stencil.frontOperation.zFail = GL.StencilOperation.Zero;\r\n this._vcColorRenderState.stencil.frontOperation.zPass = GL.StencilOperation.Zero; // this will clear the stencil\r\n this._vcColorRenderState.stencil.backFunction.function = GL.StencilFunction.NotEqual;\r\n this._vcColorRenderState.stencil.backOperation.fail = GL.StencilOperation.Zero;\r\n this._vcColorRenderState.stencil.backOperation.zFail = GL.StencilOperation.Zero;\r\n this._vcColorRenderState.stencil.backOperation.zPass = GL.StencilOperation.Zero; // this will clear the stencil\r\n this._vcColorRenderState.flags.blend = true; // blend func and color will be set before using\r\n\r\n this._vcBlendRenderState.flags.depthTest = false;\r\n this._vcBlendRenderState.flags.depthMask = false;\r\n this._vcBlendRenderState.flags.colorWrite = true;\r\n this._vcBlendRenderState.flags.stencilTest = false;\r\n this._vcBlendRenderState.flags.blend = true;\r\n this._vcBlendRenderState.blend.setBlendFuncSeparate(GL.BlendFactor.SrcAlpha, GL.BlendFactor.Zero, GL.BlendFactor.OneMinusSrcAlpha, GL.BlendFactor.One);\r\n\r\n if (this._debugStencil > 0) {\r\n this._vcDebugRenderState = new RenderState();\r\n this._vcDebugRenderState.flags.depthTest = true;\r\n this._vcDebugRenderState.flags.blend = true;\r\n this._vcDebugRenderState.blend.setBlendFunc(GL.BlendFactor.OneMinusConstColor, GL.BlendFactor.ConstColor);\r\n this._vcDebugRenderState.blend.color = [0.67, 0.67, 0.67, 1.0];\r\n }\r\n }\r\n\r\n private setAllStencilOps(state: RenderState, op: GL.StencilOperation): void {\r\n state.stencil.frontOperation.fail = op;\r\n state.stencil.frontOperation.zFail = op;\r\n state.stencil.frontOperation.zPass = op;\r\n state.stencil.backOperation.fail = op;\r\n state.stencil.backOperation.zFail = op;\r\n state.stencil.backOperation.zPass = op;\r\n }\r\n\r\n private renderIndexedVolumeClassifier(cmdsByIndex: DrawCommands, needComposite: boolean) {\r\n // Set the stencil for the given classifier stencil volume.\r\n System.instance.frameBufferStack.execute(this._fbos.stencilSet!, false, this.useMsBuffers, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n System.instance.applyRenderState(this._vcSetStencilRenderState!);\r\n this.target.techniques.executeForIndexedClassifier(this.target, cmdsByIndex, RenderPass.Classification);\r\n this.target.popBranch();\r\n });\r\n // Process the stencil for the pick data.\r\n this.renderIndexedClassifierForReadPixels(cmdsByIndex, this._vcPickDataRenderState!, true, needComposite);\r\n }\r\n\r\n private renderVolumeClassification(commands: RenderCommands, compositeFlags: CompositeFlags, renderForReadPixels: boolean) {\r\n // Sometimes we need to render the classifier stencil volumes one at a time, if so draw them from the cmdsByIndex list\r\n const cmds = commands.getCommands(RenderPass.Classification);\r\n const cmdsByIndex = commands.getCommands(RenderPass.ClassificationByIndex);\r\n let numCmdsPerClassifier = 0;\r\n for (const cmd of cmdsByIndex) { // Figure out how many commands there are per index/primitive\r\n numCmdsPerClassifier++;\r\n if (\"drawPrimitive\" === cmd.opcode) {\r\n numCmdsPerClassifier += numCmdsPerClassifier - 1;\r\n break;\r\n }\r\n }\r\n const cmdsForVC = commands.getCommands(RenderPass.VolumeClassifiedRealityData);\r\n if (!this.target.activeVolumeClassifierProps || (renderForReadPixels && 0 === cmds.length) || 0 === cmdsForVC.length)\r\n return;\r\n\r\n let outsideFlags = this.target.activeVolumeClassifierProps.flags.outside;\r\n let insideFlags = this.target.activeVolumeClassifierProps.flags.inside;\r\n\r\n if (this.target.wantThematicDisplay) {\r\n if (outsideFlags !== SpatialClassifierOutsideDisplay.Off)\r\n outsideFlags = SpatialClassifierOutsideDisplay.On;\r\n if (insideFlags !== SpatialClassifierInsideDisplay.Off)\r\n insideFlags = SpatialClassifierInsideDisplay.On;\r\n }\r\n\r\n // Render the geometry which we are going to classify.\r\n this.renderForVolumeClassification(commands, compositeFlags, renderForReadPixels);\r\n\r\n this.createVolumeClassifierStates();\r\n\r\n const fbStack = System.instance.frameBufferStack;\r\n const needComposite = CompositeFlags.None !== compositeFlags;\r\n const fboColorAndZ = this.getBackgroundFbo(needComposite);\r\n\r\n if (this._debugStencil > 0) {\r\n fbStack.execute(fboColorAndZ, true, this.useMsBuffers, () => {\r\n if (1 === this._debugStencil) {\r\n System.instance.applyRenderState(this.getRenderState(RenderPass.OpaqueGeneral));\r\n this.target.techniques.execute(this.target, cmds, RenderPass.OpaqueGeneral);\r\n } else {\r\n this.target.pushState(this._vcBranchState!);\r\n System.instance.applyRenderState(this._vcDebugRenderState!);\r\n this.target.techniques.execute(this.target, cmds, RenderPass.Classification);\r\n this.target.popBranch();\r\n }\r\n });\r\n return;\r\n }\r\n\r\n if (undefined === this._fbos.altZOnly || undefined === this._fbos.stencilSet)\r\n return;\r\n\r\n if (renderForReadPixels && this.target.vcSupportIntersectingVolumes) {\r\n // Clear the stencil.\r\n fbStack.execute(this._fbos.stencilSet, false, this.useMsBuffers, () => {\r\n System.instance.context.clearStencil(0);\r\n System.instance.context.clear(GL.BufferBit.Stencil);\r\n });\r\n\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)\r\n this._fbos.stencilSet.blitMsBuffersToTextures(true, -1); // make sure that the Z buffer that we are about to read has been blitted\r\n\r\n for (let i = 0; i < cmdsByIndex.length; i += numCmdsPerClassifier)\r\n this.renderIndexedVolumeClassifier(cmdsByIndex.slice(i, i + numCmdsPerClassifier), needComposite);\r\n\r\n return;\r\n }\r\n\r\n const needOutsideDraw = SpatialClassifierOutsideDisplay.On !== outsideFlags;\r\n const needInsideDraw = SpatialClassifierInsideDisplay.On !== insideFlags;\r\n const doColorByElement = SpatialClassifierInsideDisplay.ElementColor === insideFlags || renderForReadPixels;\r\n const doColorByElementForIntersectingVolumes = this.target.vcSupportIntersectingVolumes;\r\n const needAltZ = (doColorByElement && !doColorByElementForIntersectingVolumes) || needOutsideDraw;\r\n let zOnlyFbo = this._fbos.stencilSet;\r\n let volClassBlendFbo = this._fbos.volClassCreateBlend;\r\n let volClassBlendReadZTexture = this._vcAltDepthStencil!.getHandle()!;\r\n let volClassBlendReadZTextureFbo = this._fbos.altZOnly;\r\n if (!needAltZ) {\r\n // Initialize the blend texture and the stencil.\r\n assert(undefined !== volClassBlendFbo);\r\n fbStack.execute(volClassBlendFbo, true, this.useMsBuffers, () => {\r\n System.instance.context.clearColor(0.0, 0.0, 0.0, 0.0);\r\n System.instance.context.clearStencil(0);\r\n System.instance.context.clear(GL.BufferBit.Color | GL.BufferBit.Stencil);\r\n });\r\n } else {\r\n // If we are doing color-by-element for the inside do not care about intersecting volumes or we need to color the outside\r\n // then we need to copy the Z buffer and set up a different zbuffer/stencil to render in.\r\n zOnlyFbo = this._fbos.altZOnly;\r\n volClassBlendFbo = this._fbos.volClassCreateBlendAltZ;\r\n assert(undefined !== volClassBlendFbo);\r\n volClassBlendReadZTexture = this._depth!.getHandle()!;\r\n volClassBlendReadZTextureFbo = this._fbos.stencilSet;\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)\r\n volClassBlendReadZTextureFbo.blitMsBuffersToTextures(true, -1); // make sure that the Z buffer that we are about to read has been blitted\r\n // Copy the current Z into the Alt-Z. At the same time go ahead and clear the stencil and the blend texture.\r\n fbStack.execute(volClassBlendFbo, true, this.useMsBuffers, () => {\r\n this.target.pushState(this.target.decorationsState);\r\n System.instance.applyRenderState(this._vcCopyZRenderState!);\r\n\r\n this.target.techniques.draw(getDrawParams(this.target, this._geom.volClassCopyZ!)); // This method uses the EXT_frag_depth extension\r\n\r\n System.instance.bindTexture2d(TextureUnit.Zero, undefined);\r\n this.target.popBranch();\r\n });\r\n }\r\n\r\n if (renderForReadPixels) {\r\n // Set the stencil for all of the classifier volumes.\r\n System.instance.frameBufferStack.execute(this._fbos.altZOnly, false, this.useMsBuffers, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n System.instance.applyRenderState(this._vcSetStencilRenderState!);\r\n this.target.techniques.execute(this.target, cmds, RenderPass.Classification);\r\n // After we create the stencil we need to clear the Z for the next step (so also must turn on z writing temporarily).\r\n this._vcSetStencilRenderState!.flags.depthMask = true;\r\n System.instance.applyRenderState(this._vcSetStencilRenderState!);\r\n System.instance.context.clearDepth(1.0);\r\n System.instance.context.clear(GL.BufferBit.Depth);\r\n this._vcSetStencilRenderState!.flags.depthMask = false;\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.Two, undefined);\r\n System.instance.bindTexture2d(TextureUnit.Five, undefined);\r\n });\r\n this.target.pushState(this._vcBranchState!);\r\n this._vcColorRenderState!.flags.depthTest = true;\r\n this._vcColorRenderState!.flags.depthMask = true;\r\n this._vcColorRenderState!.flags.cull = true;\r\n this._vcColorRenderState!.flags.blend = false;\r\n this.setAllStencilOps(this._vcColorRenderState!, GL.StencilOperation.Keep); // don't clear the stencil so that all classifiers behind reality mesh will still draw\r\n this.target.activeVolumeClassifierTexture = this._geom.volClassCopyZ!.texture;\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)\r\n this._fbos.stencilSet.blitMsBuffersToTextures(true, -1); // make sure that the Z buffer that we are about to read has been blitted\r\n this.renderIndexedClassifierForReadPixels(cmds, this._vcColorRenderState!, false, needComposite);\r\n this.target.activeVolumeClassifierTexture = undefined;\r\n this._vcColorRenderState!.flags.depthTest = false;\r\n this._vcColorRenderState!.flags.depthMask = false;\r\n this._vcColorRenderState!.flags.cull = false;\r\n this._vcColorRenderState!.flags.blend = true;\r\n this.setAllStencilOps(this._vcColorRenderState!, GL.StencilOperation.Zero);\r\n System.instance.context.clearStencil(0); // must clear stencil afterwards since we had to draw with stencil set to KEEP\r\n System.instance.context.clear(GL.BufferBit.Stencil);\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.PlanarClassification, undefined);\r\n return;\r\n }\r\n\r\n if ((needOutsideDraw && cmds.length > 0) || (needInsideDraw && !(doColorByElement && doColorByElementForIntersectingVolumes))) {\r\n // Set the stencil using all of the volume classifiers. This will be used to do the outside and/or the inside if they need to be done.\r\n // If we are not modifying the outside and the inside is using color-by-element for intersecting volumes, then the stencil will get set later.\r\n fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n System.instance.applyRenderState(this._vcSetStencilRenderState!);\r\n this.target.techniques.execute(this.target, cmds, RenderPass.Classification);\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.Two, undefined);\r\n System.instance.bindTexture2d(TextureUnit.Five, undefined);\r\n });\r\n }\r\n if (needOutsideDraw) {\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)\r\n volClassBlendReadZTextureFbo.blitMsBuffersToTextures(true, -1); // make sure that the Z buffer that we are about to read has been blitted\r\n fbStack.execute(volClassBlendFbo, false, this.useMsBuffers, () => {\r\n this._geom.volClassSetBlend!.boundaryType = BoundaryType.Outside;\r\n this._geom.volClassSetBlend!.texture = volClassBlendReadZTexture;\r\n this.target.pushState(this.target.decorationsState);\r\n this._vcColorRenderState!.flags.blend = false;\r\n this._vcColorRenderState!.stencil.frontFunction.function = GL.StencilFunction.Equal; // temp swap the functions so we get what is not set in the stencil\r\n this._vcColorRenderState!.stencil.backFunction.function = GL.StencilFunction.Equal;\r\n if (needInsideDraw)\r\n this.setAllStencilOps(this._vcColorRenderState!, GL.StencilOperation.Keep); // don't clear the stencil since we'll use it again\r\n System.instance.applyRenderState(this._vcColorRenderState!);\r\n const params = getDrawParams(this.target, this._geom.volClassSetBlend!);\r\n this.target.techniques.draw(params);\r\n this._vcColorRenderState!.flags.blend = true;\r\n this._vcColorRenderState!.stencil.frontFunction.function = GL.StencilFunction.NotEqual;\r\n this._vcColorRenderState!.stencil.backFunction.function = GL.StencilFunction.NotEqual;\r\n if (needInsideDraw)\r\n this.setAllStencilOps(this._vcColorRenderState!, GL.StencilOperation.Zero);\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.Zero, undefined); // unbind the depth buffer that we used as a texture as we'll need it as an output later\r\n });\r\n }\r\n if (needInsideDraw) {\r\n if (!doColorByElement) {\r\n // In this case our stencil is already set and it is all getting colored the same, so we can just draw with a viewport quad to color it.\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)\r\n volClassBlendReadZTextureFbo.blitMsBuffersToTextures(true, -1); // make sure that the Z buffer that we are about to read has been blitted\r\n fbStack.execute(volClassBlendFbo, false, this.useMsBuffers, () => {\r\n this._geom.volClassSetBlend!.boundaryType = BoundaryType.Inside;\r\n this._geom.volClassSetBlend!.texture = volClassBlendReadZTexture;\r\n this.target.pushState(this.target.decorationsState);\r\n this._vcColorRenderState!.flags.blend = false;\r\n System.instance.applyRenderState(this._vcColorRenderState!);\r\n const params = getDrawParams(this.target, this._geom.volClassSetBlend!);\r\n this.target.techniques.draw(params);\r\n this._vcColorRenderState!.flags.blend = true;\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.Zero, undefined);\r\n });\r\n } else if (doColorByElementForIntersectingVolumes) {\r\n // If we have intersecting classifier volumes, then we must stencil them individually to get their colors in the blend texture.\r\n for (let i = 0; i < cmdsByIndex.length; i += numCmdsPerClassifier) {\r\n const nxtCmds = cmdsByIndex.slice(i, i + numCmdsPerClassifier);\r\n // Set the stencil for this one classifier.\r\n fbStack.execute(zOnlyFbo, false, this.useMsBuffers, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n System.instance.applyRenderState(this._vcSetStencilRenderState!);\r\n this.target.techniques.execute(this.target, nxtCmds, RenderPass.Classification);\r\n this.target.popBranch();\r\n });\r\n // Process the stencil. Just render the volume normally (us opaque pass), but use blending to modify the source alpha that gets written to the blend texture.\r\n fbStack.execute(volClassBlendFbo, true, this.useMsBuffers, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n this._vcColorRenderState!.blend.color = [1.0, 1.0, 1.0, 0.35];\r\n this._vcColorRenderState!.blend.setBlendFuncSeparate(GL.BlendFactor.One, GL.BlendFactor.ConstAlpha, GL.BlendFactor.Zero, GL.BlendFactor.Zero);\r\n this._vcColorRenderState!.flags.cull = true;\r\n System.instance.applyRenderState(this._vcColorRenderState!);\r\n this.target.activeVolumeClassifierTexture = undefined; // make sure this texture is undefined so we do not use the planar classification shader\r\n this.target.techniques.execute(this.target, nxtCmds, RenderPass.OpaqueGeneral);\r\n this._vcColorRenderState!.flags.cull = false;\r\n this.target.popBranch();\r\n });\r\n }\r\n } else {\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)\r\n this._fbos.stencilSet.blitMsBuffersToTextures(true, -1); // make sure that the Z buffer that we are about to read has been blitted\r\n fbStack.execute(volClassBlendFbo, false, this.useMsBuffers, () => {\r\n // For coloring the inside by element color we will draw the inside using the the classifiers themselves.\r\n // To do this we need to first clear our Alt-Z. The shader will then test and write Z and will discard\r\n // anything that is in front of the reality model by reading the Z texture from the standard Z buffer (which has the reality mesh Z's in it).\r\n // What we end up with is the closest volume behind the terrain which works if the classifier volumes do not intersect.\r\n // Since we need the blend texture to have alpha in it, we will use blending just to modify the alpha that gets written.\r\n this.target.pushState(this._vcBranchState!);\r\n this._vcColorRenderState!.blend.color = [1.0, 1.0, 1.0, 0.35];\r\n this._vcColorRenderState!.blend.setBlendFuncSeparate(GL.BlendFactor.One, GL.BlendFactor.ConstAlpha, GL.BlendFactor.Zero, GL.BlendFactor.Zero);\r\n this._vcColorRenderState!.flags.depthTest = true;\r\n this._vcColorRenderState!.flags.depthMask = true;\r\n this._vcColorRenderState!.flags.cull = true;\r\n this.setAllStencilOps(this._vcColorRenderState!, GL.StencilOperation.Keep); // don't clear the stencil so that all classifiers behind reality mesh will still draw\r\n System.instance.applyRenderState(this._vcColorRenderState!);\r\n System.instance.context.clearDepth(1.0);\r\n System.instance.context.clear(GL.BufferBit.Depth);\r\n this.target.activeVolumeClassifierTexture = this._geom.volClassCopyZ!.texture;\r\n this.target.techniques.execute(this.target, cmds, RenderPass.OpaqueGeneral);\r\n this.target.activeVolumeClassifierTexture = undefined;\r\n this._vcColorRenderState!.flags.depthTest = false;\r\n this._vcColorRenderState!.flags.depthMask = false;\r\n this._vcColorRenderState!.flags.cull = false;\r\n this.setAllStencilOps(this._vcColorRenderState!, GL.StencilOperation.Zero);\r\n System.instance.context.clearStencil(0); // must clear stencil afterwards since we had to draw with stencil set to KEEP\r\n System.instance.context.clear(GL.BufferBit.Stencil);\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.PlanarClassification, undefined);\r\n });\r\n }\r\n }\r\n\r\n // Handle the selected classifier volumes. Note though that if color-by-element is being used, then the selected volumes are already hilited\r\n // and this stage can be skipped. In order for this to work the list of commands needs to get reduced to only the ones which draw hilited volumes.\r\n // We cannot use the hillite shader to draw them since it doesn't handle logZ properly (it doesn't need to since it is only used elsewhere when Z write is turned off)\r\n // and we don't really want another whole set of hilite shaders just for this.\r\n const cmdsSelected = extractHilitedVolumeClassifierCommands(this.target.hilites, commands.getCommands(RenderPass.HiliteClassification));\r\n commands.replaceCommands(RenderPass.HiliteClassification, cmdsSelected); // replace the hilite command list for use in hilite pass as well.\r\n // if (cmdsSelected.length > 0 && insideFlags !== this.target.activeVolumeClassifierProps!.flags.selected) {\r\n if (!doColorByElement && cmdsSelected.length > 0 && insideFlags !== SpatialClassifierInsideDisplay.Hilite) { // assume selected ones are always hilited\r\n // Set the stencil using just the hilited volume classifiers.\r\n fbStack.execute(this._fbos.stencilSet, false, this.useMsBuffers, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n System.instance.applyRenderState(this._vcSetStencilRenderState!);\r\n if (needAltZ) {\r\n // If we are using the alternate Z then the stencil that goes with the original Z has not been cleared yet, so clear it here.\r\n System.instance.context.clearStencil(0);\r\n System.instance.context.clear(GL.BufferBit.Stencil);\r\n }\r\n\r\n this.target.techniques.execute(this.target, cmdsSelected, RenderPass.Classification);\r\n this.target.popBranch();\r\n });\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers)\r\n this._fbos.altZOnly.blitMsBuffersToTextures(true, -1); // make sure that the Z buffer that we are about to read has been blitted\r\n\r\n fbStack.execute(this._fbos.volClassCreateBlend!, false, this.useMsBuffers, () => {\r\n this._geom.volClassSetBlend!.boundaryType = BoundaryType.Selected;\r\n this._geom.volClassSetBlend!.texture = this._vcAltDepthStencil!.getHandle()!; // need to attach the alt depth instead of the real one since it is bound to the frame buffer\r\n this.target.pushState(this.target.decorationsState);\r\n this._vcColorRenderState!.flags.blend = false;\r\n System.instance.applyRenderState(this._vcColorRenderState!);\r\n const params = getDrawParams(this.target, this._geom.volClassSetBlend!);\r\n this.target.techniques.draw(params);\r\n this._vcColorRenderState!.flags.blend = true;\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.Zero, undefined);\r\n });\r\n }\r\n\r\n // Now modify the color of the reality mesh by using the blend texture to blend with it.\r\n if (this._antialiasSamples > 1 && undefined !== this._depthMS && this.useMsBuffers) {\r\n volClassBlendFbo.blitMsBuffersToTextures(false); // make sure the volClassBlend texture that we are about to read has been blitted\r\n }\r\n\r\n fbStack.execute(fboColorAndZ, false, this.useMsBuffers, () => {\r\n this.target.pushState(this.target.decorationsState);\r\n this._vcBlendRenderState!.blend.setBlendFuncSeparate(GL.BlendFactor.SrcAlpha, GL.BlendFactor.Zero, GL.BlendFactor.OneMinusSrcAlpha, GL.BlendFactor.One);\r\n System.instance.applyRenderState(this._vcBlendRenderState!);\r\n const params = getDrawParams(this.target, this._geom.volClassBlend!);\r\n this.target.techniques.draw(params);\r\n this.target.popBranch();\r\n System.instance.bindTexture2d(TextureUnit.Zero, undefined);\r\n });\r\n\r\n // Process the flashed classifier if there is one.\r\n // Like the selected volumes, we do not need to do this step if we used by-element-color since the flashing is included in the element color.\r\n const flashedClassifierCmds = extractFlashedVolumeClassifierCommands(this.target.flashedId, cmdsByIndex, numCmdsPerClassifier);\r\n if (undefined !== flashedClassifierCmds && !doColorByElement) {\r\n // Set the stencil for this one classifier.\r\n fbStack.execute(this._fbos.stencilSet, false, this.useMsBuffers, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n System.instance.applyRenderState(this._vcSetStencilRenderState!);\r\n this.target.techniques.executeForIndexedClassifier(this.target, flashedClassifierCmds, RenderPass.OpaqueGeneral);\r\n this.target.popBranch();\r\n });\r\n\r\n // Process the stencil to flash the contents.\r\n fbStack.execute(fboColorAndZ, true, this.useMsBuffers, () => {\r\n this.target.pushState(this.target.decorationsState);\r\n this._vcColorRenderState!.blend.color = [1.0, 1.0, 1.0, this.target.flashIntensity * 0.2];\r\n this._vcColorRenderState!.blend.setBlendFuncSeparate(GL.BlendFactor.ConstAlpha, GL.BlendFactor.Zero, GL.BlendFactor.One, GL.BlendFactor.One);\r\n System.instance.applyRenderState(this._vcColorRenderState!);\r\n const params = getDrawParams(this.target, this._geom.volClassColorStencil!);\r\n this.target.techniques.draw(params);\r\n this.target.popBranch();\r\n });\r\n }\r\n }\r\n\r\n private renderHilite(commands: RenderCommands) {\r\n const system = System.instance;\r\n system.frameBufferStack.execute(this._fbos.hilite!, true, false, () => {\r\n // Clear the hilite buffer.\r\n system.context.clearColor(0, 0, 0, 0);\r\n system.context.clear(GL.BufferBit.Color);\r\n // Draw the normal hilite geometry.\r\n this.drawPass(commands, RenderPass.Hilite);\r\n });\r\n\r\n // Process planar classifiers\r\n const planarClassifierCmds = commands.getCommands(RenderPass.HilitePlanarClassification);\r\n if (0 !== planarClassifierCmds.length) {\r\n system.frameBufferStack.execute(this._fbos.hiliteUsingStencil!, true, false, () => {\r\n system.applyRenderState(this._opaqueRenderState);\r\n this.target.techniques.execute(this.target, planarClassifierCmds, RenderPass.HilitePlanarClassification);\r\n });\r\n }\r\n\r\n // Process the volume classifiers.\r\n const vcHiliteCmds = commands.getCommands(RenderPass.HiliteClassification);\r\n if (0 !== vcHiliteCmds.length && undefined !== this._vcBranchState) {\r\n // Set the stencil for the given classifier stencil volume.\r\n system.frameBufferStack.execute(this._fbos.stencilSet!, false, false, () => {\r\n this.target.pushState(this._vcBranchState!);\r\n system.applyRenderState(this._vcSetStencilRenderState!);\r\n this.target.techniques.execute(this.target, vcHiliteCmds, RenderPass.Hilite);\r\n this.target.popBranch();\r\n });\r\n // Process the stencil for the hilite data.\r\n system.frameBufferStack.execute(this._fbos.hiliteUsingStencil!, true, false, () => {\r\n system.applyRenderState(this._vcPickDataRenderState!);\r\n this.target.techniques.execute(this.target, vcHiliteCmds, RenderPass.Hilite);\r\n });\r\n }\r\n }\r\n\r\n private composite() {\r\n System.instance.applyRenderState(RenderState.defaults);\r\n const params = getDrawParams(this.target, this._geom.composite!);\r\n this.target.techniques.draw(params);\r\n }\r\n\r\n protected getRenderState(pass: RenderPass): RenderState {\r\n switch (pass) {\r\n case RenderPass.OpaqueLayers:\r\n case RenderPass.TranslucentLayers:\r\n case RenderPass.OverlayLayers:\r\n // NB: During pick, we don't want blending - it will mess up our pick buffer data and we don't care about the color data.\r\n // During normal draw, we don't use the pick buffers for anything, and we want color blending.\r\n // (We get away with this because surfaces always draw before their edges, and we're not depth-testing, so edges always draw atop surfaces without pick buffer testing).\r\n this._layerRenderState.flags.blend = !this.target.isReadPixelsInProgress;\r\n\r\n // Transparent non-overlay Layers are drawn between opaque and translucent passes. Test depth, don't write it, so that they blend with opaque.\r\n this._layerRenderState.flags.depthMask = RenderPass.TranslucentLayers !== pass;\r\n this._layerRenderState.depthFunc = (RenderPass.TranslucentLayers === pass) ? GL.DepthFunc.Default : GL.DepthFunc.Always;\r\n return this._layerRenderState;\r\n case RenderPass.OpaqueLinear:\r\n case RenderPass.OpaquePlanar:\r\n case RenderPass.OpaqueGeneral:\r\n case RenderPass.HilitePlanarClassification:\r\n return this._opaqueRenderState;\r\n case RenderPass.Translucent:\r\n return this._translucentRenderState;\r\n case RenderPass.Hilite:\r\n return this._hiliteRenderState;\r\n case RenderPass.BackgroundMap:\r\n return this._backgroundMapRenderState;\r\n case RenderPass.PointClouds:\r\n return this._pointCloudRenderState;\r\n default:\r\n return this._noDepthMaskRenderState;\r\n }\r\n }\r\n\r\n protected drawPass(commands: RenderCommands, pass: RenderPass, pingPong: boolean = false, cmdPass: RenderPass = RenderPass.None) {\r\n const cmds = commands.getCommands(RenderPass.None !== cmdPass ? cmdPass : pass);\r\n if (0 === cmds.length) {\r\n return;\r\n } else if (pingPong) {\r\n this.pingPong();\r\n }\r\n\r\n System.instance.applyRenderState(this.getRenderState(pass));\r\n this.target.techniques.execute(this.target, cmds, pass);\r\n }\r\n}\r\n\r\ninterface SinglePointCloudData {\r\n pcs?: PointCloudDisplaySettings;\r\n cmds: DrawCommands;\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"SceneCompositor.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/SceneCompositor.ts"],"names":[],"mappings":"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"}
|