@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":"ScratchDrawParams.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScratchDrawParams.ts"],"names":[],"mappings":";;AAYA,sCASC;AAGD,wCAGC;AAtBD,+CAAgE;AAGhE,IAAI,UAA2C,CAAC;AAChD,IAAI,UAAkC,CAAC;AAEvC,gBAAgB;AAChB,SAAgB,aAAa,CAAC,MAAc,EAAE,QAAwB;IACpE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,UAAU,GAAG,IAAI,iCAAmB,EAAE,CAAC;QACvC,UAAU,GAAG,IAAI,wBAAU,EAAE,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,UAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,UAAW,CAAC;AACrB,CAAC;AAED,gBAAgB;AAChB,SAAgB,cAAc;IAC5B,UAAU,GAAG,SAAS,CAAC;IACvB,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC"
|
|
1
|
+
{"version":3,"file":"ScratchDrawParams.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScratchDrawParams.ts"],"names":[],"mappings":";;AAYA,sCASC;AAGD,wCAGC;AAtBD,+CAAgE;AAGhE,IAAI,UAA2C,CAAC;AAChD,IAAI,UAAkC,CAAC;AAEvC,gBAAgB;AAChB,SAAgB,aAAa,CAAC,MAAc,EAAE,QAAwB;IACpE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,UAAU,GAAG,IAAI,iCAAmB,EAAE,CAAC;QACvC,UAAU,GAAG,IAAI,wBAAU,EAAE,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,UAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,UAAW,CAAC;AACrB,CAAC;AAED,gBAAgB;AAChB,SAAgB,cAAc;IAC5B,UAAU,GAAG,SAAS,CAAC;IACvB,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenSpaceEffect.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScreenSpaceEffect.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 } from \"@itwin/core-bentley\";\r\nimport {\r\n ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams, ScreenSpaceEffectContext, UniformArrayParams, UniformParams, UniformType, VaryingType,\r\n} from \"../../../render/ScreenSpaceEffectBuilder\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { ProgramBuilder, VariableType } from \"./ShaderBuilder\";\r\nimport { CompileStatus, ShaderProgram } from \"./ShaderProgram\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { SingleTexturedViewportQuadGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { FrameBuffer } from \"./FrameBuffer\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { SingularTechnique } from \"./Technique\";\r\nimport { Target } from \"./Target\";\r\nimport { System } from \"./System\";\r\nimport { createScreenSpaceEffectProgramBuilder } from \"./glsl/ScreenSpaceEffect\";\r\n\r\ntype ShouldApply = (context: ScreenSpaceEffectContext) => boolean;\r\n\r\nfunction getUniformVariableType(type: UniformType): VariableType {\r\n switch (type) {\r\n case UniformType.Bool: return VariableType.Boolean;\r\n case UniformType.Int: return VariableType.Int;\r\n case UniformType.Float: return VariableType.Float;\r\n case UniformType.Vec2: return VariableType.Vec2;\r\n case UniformType.Vec3: return VariableType.Vec3;\r\n case UniformType.Vec4: return VariableType.Vec4;\r\n }\r\n}\r\n\r\nfunction getVaryingVariableType(type: VaryingType): VariableType {\r\n switch (type) {\r\n case VaryingType.Float: return VariableType.Float;\r\n case VaryingType.Vec2: return VariableType.Vec2;\r\n case VaryingType.Vec3: return VariableType.Vec3;\r\n case VaryingType.Vec4: return VariableType.Vec4;\r\n }\r\n}\r\n\r\nclass Builder {\r\n private readonly _name: string;\r\n private readonly _builder: ProgramBuilder;\r\n private readonly _shiftsPixels: boolean;\r\n public shouldApply?: ShouldApply;\r\n\r\n public constructor(params: ScreenSpaceEffectBuilderParams) {\r\n this._name = params.name;\r\n this._builder = createScreenSpaceEffectProgramBuilder(params);\r\n this._builder.setDebugDescription(`Screen-space: ${this._name}`);\r\n this._shiftsPixels = undefined !== params.source.sampleSourcePixel;\r\n }\r\n\r\n public get isWebGL2(): boolean {\r\n return true;\r\n }\r\n\r\n public addUniform(params: UniformParams): void {\r\n const name = params.name;\r\n const type = getUniformVariableType(params.type);\r\n const bind = params.bind;\r\n\r\n this._builder.addUniform(name, type, (prog: ShaderProgram) => {\r\n prog.addProgramUniform(name, (uniform, progParams) => {\r\n bind(uniform, progParams.target.screenSpaceEffectContext);\r\n });\r\n });\r\n }\r\n\r\n public addUniformArray(params: UniformArrayParams): void {\r\n const { name, bind, length } = { ...params };\r\n const type = getUniformVariableType(params.type);\r\n this._builder.addUniformArray(name, type, length, (prog) => {\r\n prog.addProgramUniform(name, (uniform, progParams) => {\r\n bind(uniform, progParams.target.screenSpaceEffectContext);\r\n });\r\n });\r\n }\r\n\r\n public addVarying(name: string, type: VaryingType): void {\r\n this._builder.addVarying(name, getVaryingVariableType(type));\r\n }\r\n\r\n public finish(): void {\r\n const program = this._builder.buildProgram(System.instance.context);\r\n\r\n // NB: compile() will throw with WebGL error log if compile/link fails.\r\n if (CompileStatus.Success !== program.compile())\r\n throw new Error(`Failed to produce shader program for screen-space effect \"${this._name}\"`);\r\n\r\n const technique = new SingularTechnique(program);\r\n const techniqueId = System.instance.techniques.addDynamicTechnique(technique, this._name);\r\n\r\n const effect = new ScreenSpaceEffect(techniqueId, this._name, this._shiftsPixels, this.shouldApply);\r\n System.instance.screenSpaceEffects.add(effect);\r\n }\r\n}\r\n\r\nclass ScreenSpaceEffect {\r\n public readonly techniqueId: TechniqueId;\r\n public readonly name: string;\r\n private readonly _shouldApply?: ShouldApply;\r\n private readonly _shiftsPixels: boolean;\r\n\r\n public constructor(techniqueId: TechniqueId, name: string, shiftsPixels: boolean, shouldApply?: ShouldApply) {\r\n this.techniqueId = techniqueId;\r\n this.name = name;\r\n this._shouldApply = shouldApply;\r\n this._shiftsPixels = shiftsPixels;\r\n }\r\n\r\n public shouldApply(target: Target): boolean {\r\n // Effects only apply during readPixels() if they move pixels around (we need to move pixels in the pick buffers correspondingly).\r\n if (target.isReadPixelsInProgress && !this._shiftsPixels)\r\n return false;\r\n\r\n return undefined === this._shouldApply || this._shouldApply(target.screenSpaceEffectContext);\r\n }\r\n}\r\n\r\nclass ScreenSpaceGeometry extends ViewportQuadGeometry {\r\n public setTechniqueId(id: TechniqueId) {\r\n this._techniqueId = id;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ScreenSpaceEffects {\r\n private readonly _effects = new Map<string, ScreenSpaceEffect>();\r\n private readonly _effectGeometry: ScreenSpaceGeometry;\r\n private readonly _copyGeometry: SingleTexturedViewportQuadGeometry;\r\n private readonly _workingArray: ScreenSpaceEffect[] = [];\r\n\r\n public constructor() {\r\n // We will change the geometry's TechniqueId before applying each technique.\r\n const effectGeometry = ScreenSpaceGeometry.create(TechniqueId.Invalid);\r\n assert(effectGeometry instanceof ScreenSpaceGeometry);\r\n this._effectGeometry = effectGeometry;\r\n\r\n // NB: We'll replace the texture each time we draw.\r\n const copyGeometry = SingleTexturedViewportQuadGeometry.createGeometry(System.instance.lineCodeTexture!.getHandle()!, TechniqueId.CopyColor);\r\n assert(undefined !== copyGeometry);\r\n this._copyGeometry = copyGeometry;\r\n }\r\n\r\n public [Symbol.dispose](): void {\r\n dispose(this._effectGeometry);\r\n dispose(this._copyGeometry);\r\n }\r\n\r\n public add(effect: ScreenSpaceEffect): void {\r\n if (undefined !== this._effects.get(effect.name))\r\n throw new Error(`Screen-space effect \"${effect.name}\" is already registered.`);\r\n\r\n this._effects.set(effect.name, effect);\r\n }\r\n\r\n /** Return true if any effects should be applied to this Target. */\r\n public shouldApply(target: Target): boolean {\r\n return this.getApplicableEffects(target).length > 0;\r\n }\r\n\r\n private getApplicableEffects(target: Target): ScreenSpaceEffect[] {\r\n const effects = this._workingArray;\r\n effects.length = 0;\r\n\r\n const names = target.screenSpaceEffects;\r\n for (const name of names) {\r\n const effect = this._effects.get(name);\r\n if (effect && effect.shouldApply(target))\r\n effects.push(effect);\r\n }\r\n\r\n return effects;\r\n }\r\n\r\n /** Apply screen-space effects to the Target's rendered image. */\r\n public apply(target: Target): void {\r\n if (0 === this._effects.size)\r\n return;\r\n\r\n const effects = this.getApplicableEffects(target);\r\n if (0 === effects.length)\r\n return;\r\n\r\n if (target.isReadPixelsInProgress) {\r\n this.applyForReadPixels(effects, target);\r\n return;\r\n }\r\n\r\n const system = System.instance;\r\n system.applyRenderState(RenderState.defaults);\r\n\r\n const copyFbo = target.compositor.screenSpaceEffectFbo;\r\n for (const effect of effects) {\r\n // Copy the rendered image to texture as input to the effect shader.\r\n this._copyGeometry.texture = system.frameBufferStack.currentColorBuffer!.getHandle()!;\r\n system.frameBufferStack.execute(copyFbo, true, false, () => {\r\n const copyParams = getDrawParams(target, this._copyGeometry);\r\n system.techniques.draw(copyParams);\r\n });\r\n\r\n // Run the effect shader with a copy of the current image as input.\r\n this._effectGeometry.setTechniqueId(effect.techniqueId);\r\n const params = getDrawParams(target, this._effectGeometry);\r\n system.techniques.draw(params);\r\n }\r\n }\r\n\r\n private applyForReadPixels(effects: ScreenSpaceEffect[], target: Target): void {\r\n const system = System.instance;\r\n system.applyRenderState(RenderState.defaults);\r\n\r\n // ###TODO: We could use MRT if available here rather than two passes.\r\n const copyFbo = target.compositor.screenSpaceEffectFbo;\r\n for (const effect of effects) {\r\n this._effectGeometry.setTechniqueId(effect.techniqueId);\r\n for (let i = 0; i <= 1; i++) {\r\n // Copy the pick buffer as input to the effect shader.\r\n const buffer = 0 === i ? target.compositor.featureIds : target.compositor.depthAndOrder;\r\n this._copyGeometry.texture = buffer.getHandle()!;\r\n system.frameBufferStack.execute(copyFbo, true, false, () => {\r\n const copyParams = getDrawParams(target, this._copyGeometry);\r\n system.techniques.draw(copyParams);\r\n });\r\n\r\n // Run the effect shader with a copy of the current pick buffer to output to pick buffer.\r\n // ###TODO: Avoid frequent framebuffer allocation.\r\n const effectFbo = FrameBuffer.create([buffer]);\r\n assert(undefined !== effectFbo);\r\n system.frameBufferStack.execute(effectFbo, true, false, () => {\r\n const effectParams = getDrawParams(target, this._effectGeometry);\r\n system.techniques.draw(effectParams);\r\n });\r\n\r\n effectFbo[Symbol.dispose]();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function createScreenSpaceEffectBuilder(params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder {\r\n return new Builder(params);\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ScreenSpaceEffect.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScreenSpaceEffect.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShaderBuilder.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderBuilder.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 } from \"@itwin/core-bentley\";\r\nimport { AttributeDetails } from \"./AttributeMap\";\r\nimport { addInstancedModelMatrixRTC } from \"./glsl/Instancing\";\r\nimport { volClassOpaqueColor } from \"./glsl/PlanarClassification\";\r\nimport { addPosition, earlyVertexDiscard, lateVertexDiscard, vertexDiscard } from \"./glsl/Vertex\";\r\nimport { ShaderProgram } from \"./ShaderProgram\";\r\nimport { PositionType } from \"./TechniqueFlags\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** Describes the data type of a shader program variable.\r\n * @internal\r\n */\r\nexport const enum VariableType {\r\n Boolean, // bool\r\n Int, // int\r\n Float, // float\r\n Vec2, // vec2\r\n Vec3, // vec3\r\n Vec4, // vec4\r\n Mat3, // mat3\r\n Mat4, // mat4\r\n Sampler2D, // sampler2D\r\n SamplerCube, // samplerCube\r\n Uint, // uint\r\n BVec2, // bvec2\r\n\r\n COUNT,\r\n}\r\n\r\n/** Describes the qualifier associated with a shader program variable.\r\n * @internal\r\n */\r\nexport const enum VariableScope {\r\n Global, // no qualifier\r\n Varying, // varying\r\n Uniform, // uniform\r\n\r\n COUNT,\r\n}\r\n\r\n/** Describes the declared or undeclared precision of a shader program variable.\r\n * @internal\r\n */\r\nexport const enum VariablePrecision {\r\n Default, // undeclared precision - variable uses the explicit or implicit precision default for its type\r\n Low, // lowp\r\n Medium, // mediump\r\n High, // highp\r\n\r\n COUNT,\r\n}\r\n\r\n/** @internal */\r\nnamespace Convert {\r\n export function typeToString(type: VariableType): string {\r\n switch (type) {\r\n case VariableType.Boolean: return \"bool\";\r\n case VariableType.Int: return \"int\";\r\n case VariableType.Float: return \"float\";\r\n case VariableType.Vec2: return \"vec2\";\r\n case VariableType.Vec3: return \"vec3\";\r\n case VariableType.Vec4: return \"vec4\";\r\n case VariableType.Mat3: return \"mat3\";\r\n case VariableType.Mat4: return \"mat4\";\r\n case VariableType.Sampler2D: return \"sampler2D\";\r\n case VariableType.SamplerCube: return \"samplerCube\";\r\n case VariableType.Uint: return \"uint\";\r\n case VariableType.BVec2: return \"bvec2\";\r\n default:\r\n assert(false);\r\n return \"undefined\";\r\n }\r\n }\r\n\r\n export function scopeToString(scope: VariableScope, isVertexShader: boolean): string {\r\n switch (scope) {\r\n case VariableScope.Global: return \"\";\r\n case VariableScope.Varying: return (isVertexShader ? \"out\" : \"in\");\r\n case VariableScope.Uniform: return \"uniform\";\r\n default:\r\n assert(false);\r\n return \"undefined\";\r\n }\r\n }\r\n\r\n export function precisionToString(precision: VariablePrecision): string {\r\n switch (precision) {\r\n case VariablePrecision.Default: return \"\";\r\n case VariablePrecision.Low: return \"lowp\";\r\n case VariablePrecision.Medium: return \"mediump\";\r\n case VariablePrecision.High: return \"highp\";\r\n default:\r\n assert(false);\r\n return \"undefined\";\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Function invoked by ShaderVariable::AddBinding() to bind the variable to the compiled program.\r\n * The implementation should call ShaderProgram::AddShaderUniform or ShaderProgram::AddGraphicUniform/Attribute to register a function\r\n * which can be used to bind the value of the variable when program is used.\r\n * @internal\r\n */\r\nexport type AddVariableBinding = (prog: ShaderProgram) => void;\r\n\r\n/** Represents a variable within a fragment or vertex shader.\r\n * @internal\r\n */\r\nexport class ShaderVariable {\r\n private readonly _addBinding?: AddVariableBinding;\r\n public readonly name: string;\r\n public readonly value?: string; // for global variables only\r\n public readonly type: VariableType;\r\n public readonly scope: VariableScope;\r\n public readonly precision: VariablePrecision;\r\n public readonly isConst: boolean = false; // for global variables only\r\n public readonly length: number; // for uniform arrays only\r\n\r\n private constructor(name: string, type: VariableType, scope: VariableScope, precision: VariablePrecision, isConst: boolean, addBinding?: AddVariableBinding, value?: string, length: number = 0) {\r\n this._addBinding = addBinding;\r\n this.name = name;\r\n this.value = value;\r\n this.type = type;\r\n this.scope = scope;\r\n this.precision = precision;\r\n this.isConst = isConst;\r\n this.length = length;\r\n }\r\n\r\n public static create(name: string, type: VariableType, scope: VariableScope, addBinding?: AddVariableBinding, precision: VariablePrecision = VariablePrecision.Default): ShaderVariable {\r\n return new ShaderVariable(name, type, scope, precision, false, addBinding, undefined);\r\n }\r\n\r\n public static createArray(name: string, type: VariableType, length: number, scope: VariableScope, addBinding?: AddVariableBinding, precision: VariablePrecision = VariablePrecision.Default): ShaderVariable {\r\n return new ShaderVariable(name, type, scope, precision, false, addBinding, undefined, length);\r\n }\r\n\r\n public static createGlobal(name: string, type: VariableType, value?: string, isConst: boolean = false) {\r\n return new ShaderVariable(name, type, VariableScope.Global, VariablePrecision.Default, isConst, undefined, value);\r\n }\r\n\r\n public get hasBinding(): boolean { return undefined !== this._addBinding; }\r\n public addBinding(prog: ShaderProgram) {\r\n if (undefined !== this._addBinding)\r\n this._addBinding(prog);\r\n }\r\n\r\n public get typeName(): string { return Convert.typeToString(this.type); }\r\n public getScopeName(isVertexShader: boolean): string { return Convert.scopeToString(this.scope, isVertexShader); }\r\n public get precisionName(): string { return Convert.precisionToString(this.precision); }\r\n\r\n /** Constructs the single-line declaration of this variable */\r\n public buildDeclaration(isVertexShader: boolean): string {\r\n const parts = new Array<string>();\r\n if (this.isConst)\r\n parts.push(\"const\");\r\n\r\n const scopeName = this.getScopeName(isVertexShader);\r\n if (0 < scopeName.length)\r\n parts.push(scopeName);\r\n\r\n const precisionName = this.precisionName;\r\n if (0 < precisionName.length)\r\n parts.push(precisionName);\r\n\r\n parts.push(this.typeName);\r\n\r\n if (this.length > 0)\r\n parts.push(`${this.name}[${this.length.toFixed(0)}]`);\r\n else\r\n parts.push(this.name);\r\n\r\n if (undefined !== this.value && 0 < this.value.length) {\r\n parts.push(\"=\");\r\n parts.push(this.value);\r\n }\r\n\r\n return `${parts.join(\" \")};`;\r\n }\r\n}\r\n\r\n/**\r\n * Represents the set of variables defined and used within a fragment or vertex shader.\r\n * If the same variable is used in both the fragment and vertex shader (e.g., a varying variable), it should be defined in both ShaderBuilders' ShaderVariables object.\r\n * @internal\r\n */\r\nexport class ShaderVariables {\r\n protected _list: ShaderVariable[] = new Array<ShaderVariable>();\r\n\r\n /** Find an existing variable with the specified name */\r\n public find(name: string): ShaderVariable | undefined { return this._list.find((v: ShaderVariable) => v.name === name); }\r\n\r\n /** Add a new variable, if a variable with the same name does not already exist. return true if added */\r\n public addVariable(v: ShaderVariable): boolean {\r\n const found = this.find(v.name);\r\n if (undefined !== found) {\r\n assert(found.type === v.type);\r\n // assume same binding etc...\r\n return false;\r\n } else {\r\n this._list.push(v);\r\n return true;\r\n }\r\n }\r\n\r\n public addUniform(name: string, type: VariableType, binding: AddVariableBinding, precision: VariablePrecision = VariablePrecision.Default) {\r\n this.addVariable(ShaderVariable.create(name, type, VariableScope.Uniform, binding, precision));\r\n }\r\n\r\n public addUniformArray(name: string, type: VariableType, length: number, binding: AddVariableBinding) {\r\n this.addVariable(ShaderVariable.createArray(name, type, length, VariableScope.Uniform, binding));\r\n }\r\n\r\n public addVarying(name: string, type: VariableType): boolean {\r\n return this.addVariable(ShaderVariable.create(name, type, VariableScope.Varying));\r\n }\r\n\r\n public addGlobal(name: string, type: VariableType, value?: string, isConst: boolean = false) {\r\n this.addVariable(ShaderVariable.createGlobal(name, type, value, isConst));\r\n }\r\n\r\n public addConstant(name: string, type: VariableType, value: string) {\r\n this.addGlobal(name, type, value, true);\r\n }\r\n\r\n public addBitFlagConstant(name: string, value: number) {\r\n this.addGlobal(name, VariableType.Uint, `${(2 ** value).toFixed(0)}u`, true);\r\n }\r\n\r\n /** Constructs the lines of glsl code declaring the variables of a certain scope. */\r\n public buildScopeDeclarations(isVertexShader: boolean, scope: VariableScope, constants?: boolean): string {\r\n let decls = \"\";\r\n for (const v of this._list) {\r\n if (scope === v.scope && (undefined === constants ? true : v.isConst === constants))\r\n decls += `${v.buildDeclaration(isVertexShader)}\\n`;\r\n }\r\n\r\n return decls;\r\n }\r\n\r\n /** Constructs the lines of glsl code declaring all of the variables. */\r\n public buildDeclarations(isVertexShader: boolean): string {\r\n let decls = \"\";\r\n if (isVertexShader) {\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Uniform);\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, true);\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, false);\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Varying);\r\n } else {\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Varying);\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Uniform);\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, true);\r\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, false);\r\n }\r\n return decls;\r\n }\r\n\r\n /**\r\n * For every uniform and attribute variable not contained in the optional 'predefined' list, invokes the associated binding function\r\n * to add the corresponding Uniform or Attribute object to the ShaderProgram.\r\n */\r\n public addBindings(prog: ShaderProgram, predefined?: ShaderVariables): void {\r\n for (const v of this._list) {\r\n // Some variables exist in both frag and vert shaders - only add them to the program once.\r\n if (v.hasBinding && (undefined === predefined || undefined === predefined.find(v.name))) {\r\n v.addBinding(prog);\r\n }\r\n }\r\n }\r\n\r\n public get length(): number { return this._list.length; }\r\n\r\n private findSlot(variableSize: number, loopSize: number, registers: number[]): number {\r\n // Find the first available slot into which to insert this variable\r\n for (let i = 0; i < loopSize; i++) {\r\n const newSize = registers[i] + variableSize;\r\n if (newSize <= 4) {\r\n registers[i] = newSize;\r\n return i;\r\n }\r\n }\r\n return -1;\r\n }\r\n\r\n // Return string of varying types with their theoretical slot numbers\r\n public checkMaxVaryingVectors(fragSource: string): string {\r\n // Varyings go into a matrix of 4 columns and GL_MAX_VARYING_VECTORS rows of floats.\r\n // The packing rules are defined by the standard. Specifically each row can contain one of:\r\n // vec4\r\n // vec3 (+ float)\r\n // vec2 (+ vec2)\r\n // vec2 (+ float (+ float))\r\n // float (+ float (+ float (+ float)))\r\n // Varyings are packed in order of size from largest to smallest\r\n const loopSize = 64;\r\n const registers = Array(loopSize + 1).fill(0);\r\n let outStr = \"\";\r\n let slot = 0;\r\n\r\n const varyings = this._list.filter((variable) => VariableScope.Varying === variable.scope);\r\n // Add in any built in vars that count as varyings if they are used\r\n if (fragSource.includes(\"gl_FragCoord\")) {\r\n varyings.push(ShaderVariable.create(\"gl_FragCoord\", VariableType.Vec4, VariableScope.Varying));\r\n }\r\n if (fragSource.includes(\"gl_PointCoord\")) {\r\n varyings.push(ShaderVariable.create(\"gl_PointCoord\", VariableType.Vec2, VariableScope.Varying));\r\n }\r\n if (fragSource.includes(\"gl_FrontFacing\")) {\r\n varyings.push(ShaderVariable.create(\"gl_FrontFacing\", VariableType.Boolean, VariableScope.Varying));\r\n }\r\n // Need to process in size order (largest first)\r\n varyings.sort((a, b) => b.type - a.type); // this is good enough to sort by\r\n\r\n for (const variable of varyings) {\r\n let variableSize = 0;\r\n switch (variable.type) {\r\n case VariableType.Boolean:\r\n case VariableType.Int:\r\n case VariableType.Float:\r\n variableSize = 1;\r\n break;\r\n case VariableType.Vec2:\r\n case VariableType.BVec2:\r\n variableSize = 2;\r\n break;\r\n case VariableType.Vec3:\r\n variableSize = 3;\r\n break;\r\n case VariableType.Vec4:\r\n variableSize = 4;\r\n break;\r\n default:\r\n assert(false, \"Invalid varying variable type\");\r\n continue;\r\n }\r\n slot = this.findSlot(variableSize, loopSize, registers);\r\n outStr += `// varying slot ${slot} ${Convert.typeToString(variable.type)} ${variable.name}\\n`;\r\n }\r\n const slotsUsed = registers.indexOf(0);\r\n registers.length = slotsUsed;\r\n outStr += `// Slots used: ${slotsUsed} [${registers.toString()}]\\n`;\r\n\r\n // debug output modes\r\n const outputAll = true; // false just outputs varyings that use more than 8\r\n if (outputAll) {\r\n return outStr;\r\n } else {\r\n if (slotsUsed > 8)\r\n return outStr;\r\n else\r\n return \"\";\r\n }\r\n }\r\n\r\n // Return the number of varying vectors used by the shader.\r\n // Varyings go into a matrix of 4 columns and GL_MAX_VARYING_VECTORS rows of floats.\r\n // The packing rules are defined by the standard. Specifically each row can contain one of:\r\n // vec4\r\n // vec3 (+ float)\r\n // vec2 (+ vec2)\r\n // vec2 (+ float (+ float))\r\n // float (+ float (+ float (+ float)))\r\n // Varyings are packed in order of size from largest to smallest\r\n public computeNumVaryingVectors(fragSource: string): number {\r\n const loopSize = 64;\r\n const registers = Array(loopSize + 1).fill(0);\r\n\r\n const varyings = this._list.filter((variable) => VariableScope.Varying === variable.scope);\r\n // Add in any built in vars that count as varyings if they are used\r\n if (fragSource.includes(\"gl_FragCoord\")) {\r\n varyings.push(ShaderVariable.create(\"gl_FragCoord\", VariableType.Vec4, VariableScope.Varying));\r\n }\r\n if (fragSource.includes(\"gl_PointCoord\")) {\r\n varyings.push(ShaderVariable.create(\"gl_PointCoord\", VariableType.Vec2, VariableScope.Varying));\r\n }\r\n if (fragSource.includes(\"gl_FrontFacing\")) {\r\n varyings.push(ShaderVariable.create(\"gl_FrontFacing\", VariableType.Boolean, VariableScope.Varying));\r\n }\r\n // Need to process in size order (largest first)\r\n varyings.sort((a, b) => b.type - a.type); // this is good enough to sort by\r\n\r\n for (const variable of varyings) {\r\n if (VariableScope.Varying !== variable.scope)\r\n continue;\r\n\r\n let variableSize = 0;\r\n switch (variable.type) {\r\n case VariableType.Boolean:\r\n case VariableType.Int:\r\n case VariableType.Float:\r\n variableSize = 1;\r\n break;\r\n case VariableType.Vec2:\r\n case VariableType.BVec2:\r\n variableSize = 2;\r\n break;\r\n case VariableType.Vec3:\r\n variableSize = 3;\r\n break;\r\n case VariableType.Vec4:\r\n variableSize = 4;\r\n break;\r\n default:\r\n assert(false, \"Invalid varying variable type\");\r\n continue;\r\n }\r\n\r\n this.findSlot(variableSize, loopSize, registers);\r\n }\r\n\r\n const slotsUsed = registers.indexOf(0);\r\n return slotsUsed;\r\n }\r\n}\r\n\r\n/** Convenience API for assembling glsl source code.\r\n * @internal\r\n */\r\nexport class SourceBuilder {\r\n public source: string = \"\";\r\n\r\n /* Append the specified string to the glsl source */\r\n public add(what: string): void { this.source += what; }\r\n\r\n /* Append a new-line to the glsl source */\r\n public newline(): void { this.add(\"\\n\"); }\r\n\r\n /* Append the specified string to the glsl source, followed by a new-line */\r\n public addline(what: string): void {\r\n this.add(what);\r\n this.newline();\r\n }\r\n\r\n /**\r\n * Construct a function definition given the function signature and body. For example:\r\n * buildFunctionDefinition(\"float average(float a, float b)\", \"\\n return (a + b) / 2.0;\\n\");\r\n * will produce:\r\n * \"float average(float a, float b) {\r\n * return (a + b) / 2.0;\r\n * }\"\r\n * For an inline function:\r\n * buildFunctionDefinition(\"float average(float a, float b)\", \"return (a + b) / 2.0;\");\r\n * will produce:\r\n * \"float average(float a, float b) { return (a + b) / 2.0; }\"\r\n */\r\n public static buildFunctionDefinition(declaration: string, implementation: string): string {\r\n // If implementation does not start with a newline then assume it is an inline function & add spaces between braces.\r\n if (\"\\n\" === implementation.charAt(0))\r\n return `${declaration} {${implementation}}\\n\\n`;\r\n else\r\n return `${declaration} { ${implementation} }\\n\\n`;\r\n }\r\n\r\n /** Constructs a function definition as described by buildFunctionDefinition() and appends it to the glsl source. */\r\n public addFunction(declaration: string, implementation: string): void { this.add(SourceBuilder.buildFunctionDefinition(declaration, implementation)); }\r\n\r\n /** Constructs the definition of the main() function using the supplied function body and appends it to the glsl source. */\r\n public addMain(implementation: string): void { this.addFunction(\"void main()\", implementation); }\r\n}\r\n\r\n/** @internal */\r\nexport interface ShaderBuilderFlags {\r\n /** If defined and true, the geometry is instanced. */\r\n readonly instanced?: boolean;\r\n /** If defined, indicates the vertex data comes from a texture and specifies whether the positions are quantized 16-bit integers or unquantized 32-bit floats. */\r\n readonly positionType?: PositionType;\r\n}\r\n\r\n/**\r\n * Represents a fragment or vertex shader under construction. The shader consists of a set of defined variables,\r\n * plus a set of code snippets which can be concatenated together to form the shader source.\r\n * @internal\r\n */\r\nexport class ShaderBuilder extends ShaderVariables {\r\n protected _components = new Array<string | undefined>();\r\n protected _functions: string[] = [];\r\n protected _extensions: string[] = [];\r\n protected _macros: string[] = [];\r\n protected _fragOutputs: string[] = [];\r\n protected _version: string = \"\";\r\n public headerComment: string = \"\";\r\n protected readonly _flags: ShaderBuilderFlags;\r\n protected _initializers: string[] = new Array<string>();\r\n\r\n public get usesInstancedGeometry(): boolean {\r\n return !!this._flags.instanced;\r\n }\r\n\r\n public addInitializer(initializer: string): void {\r\n if (-1 === this._initializers.indexOf(initializer))\r\n this._initializers.push(initializer);\r\n }\r\n\r\n protected constructor(maxComponents: number, flags: ShaderBuilderFlags) {\r\n super();\r\n this._components.length = maxComponents;\r\n this._flags = flags;\r\n this._version = \"#version 300 es\";\r\n this.addDefine(\"TEXTURE\", \"texture\");\r\n this.addDefine(\"TEXTURE_CUBE\", \"texture\");\r\n this.addDefine(\"TEXTURE_PROJ\", \"textureProj\");\r\n }\r\n\r\n protected addComponent(index: number, component: string): void {\r\n assert(index < this._components.length);\r\n\r\n // assume if caller is replacing an existing component, they know what they're doing...\r\n this._components[index] = component;\r\n }\r\n protected removeComponent(index: number) {\r\n assert(index < this._components.length);\r\n this._components[index] = undefined;\r\n }\r\n\r\n protected getComponent(index: number): string | undefined {\r\n assert(index < this._components.length);\r\n return this._components[index];\r\n }\r\n\r\n public addFunction(declarationOrFull: string, implementation?: string): void {\r\n let def = declarationOrFull;\r\n if (undefined !== implementation)\r\n def = SourceBuilder.buildFunctionDefinition(`\\n${declarationOrFull}`, implementation);\r\n\r\n if (undefined === this.findFunction(def))\r\n this._functions.push(def);\r\n }\r\n\r\n public replaceFunction(existing: string, replacement: string): boolean {\r\n const index = this._functions.indexOf(existing);\r\n if (-1 !== index) {\r\n this._functions[index] = replacement;\r\n }\r\n\r\n assert(-1 !== index);\r\n return -1 !== index;\r\n }\r\n\r\n public findFunction(func: string): string | undefined {\r\n return this._functions.find((f: string | undefined) => f === func);\r\n }\r\n\r\n public addExtension(extName: string): void {\r\n if (-1 === this._extensions.indexOf(extName))\r\n this._extensions.push(extName);\r\n }\r\n\r\n public addMacro(macro: string): void {\r\n if (-1 === this._macros.indexOf(macro))\r\n this._macros.push(macro);\r\n }\r\n\r\n public addDefine(name: string, value: string): void {\r\n const defineName = `#define ${name} `;\r\n const macro = defineName + value;\r\n\r\n const index = this._macros.findIndex((x) => x.startsWith(defineName));\r\n if (-1 !== index)\r\n this._macros[index] = macro;\r\n else\r\n this._macros.push(defineName + value);\r\n }\r\n\r\n public clearFragOutput(): void {\r\n while (this._fragOutputs.length > 0)\r\n this._fragOutputs.pop();\r\n }\r\n\r\n public addFragOutput(name: string, value: number): void {\r\n if (-1 === value) {\r\n this._fragOutputs.push(\"out vec4 FragColor;\");\r\n return;\r\n }\r\n this._fragOutputs.push(`layout(location = ${value}) out vec4 ${name};`);\r\n }\r\n\r\n protected buildPreludeCommon(attrMap: Map<string, AttributeDetails> | undefined, isVertexShader: boolean): SourceBuilder {\r\n const src = new SourceBuilder();\r\n\r\n // Version number (must be first thing for GLSL 300)\r\n src.addline(this._version);\r\n\r\n // Header comment\r\n src.newline();\r\n if (\"\" !== this.headerComment) {\r\n src.addline(this.headerComment);\r\n src.newline();\r\n }\r\n\r\n // Macros\r\n for (const macro of this._macros)\r\n src.addline(macro);\r\n\r\n // Extensions\r\n for (const ext of this._extensions)\r\n src.addline(`#extension ${ext} : enable`);\r\n\r\n // Default precisions\r\n src.addline(\"precision highp float;\");\r\n src.addline(\"precision highp int;\");\r\n src.newline();\r\n\r\n // Attribute declarations\r\n if (attrMap !== undefined) {\r\n attrMap.forEach((attr: AttributeDetails, key: string) => {\r\n src.addline(`in ${Convert.typeToString(attr.type)} ${key};`);\r\n });\r\n }\r\n\r\n // Variable declarations\r\n src.add(this.buildDeclarations(isVertexShader));\r\n\r\n // Layouts\r\n for (const layout of this._fragOutputs)\r\n src.addline(layout);\r\n\r\n // Functions\r\n for (const func of this._functions) {\r\n src.add(func);\r\n }\r\n\r\n if (!src.source.endsWith(\"\\n\\n\"))\r\n src.newline();\r\n\r\n return src;\r\n }\r\n\r\n protected copyCommon(src: ShaderBuilder): void {\r\n this._version = src._version;\r\n this.headerComment = src.headerComment;\r\n this._initializers = [...src._initializers];\r\n this._components = [...src._components];\r\n this._functions = [...src._functions];\r\n this._extensions = [...src._extensions];\r\n this._list = [...src._list];\r\n this._macros = [...src._macros];\r\n this._fragOutputs = [...src._fragOutputs];\r\n }\r\n}\r\n\r\n/** Describes the optional and required components which can be assembled into complete\r\n * @internal\r\n */\r\nexport const enum VertexShaderComponent {\r\n // (Optional) Compute the quantized position. By default this simply returns the `a_pos` attribute.\r\n // This runs before any initializers.\r\n // vec3 computeQuantizedPosition()\r\n ComputeQuantizedPosition,\r\n // (Optional) Adjust the result of computeVertexPosition().\r\n // vec4 adjustRawPosition(vec4 rawPosition)\r\n AdjustRawPosition,\r\n // (Optional) Return true to discard this vertex before evaluating feature overrides etc, given the model-space position.\r\n // bool checkForEarlyDiscard(vec4 rawPos)\r\n CheckForEarlyDiscard,\r\n // (Optional) Compute feature overrides like visibility, rgb, transparency, line weight.\r\n // void computeFeatureOverrides()\r\n ComputeFeatureOverrides,\r\n // (Optional) Compute material parameters.\r\n // void computeMaterial()\r\n ComputeMaterial,\r\n // (Optional) Compute the vertex's base color. Requires the program to have a `varying vec4 v_color`.\r\n // vec4 computeBaseColor()\r\n ComputeBaseColor,\r\n // (Optional - does nothing if ComputeBaseColor not specified) Apply material overrides to vertex color\r\n // vec4 applyMaterialColor(vec4 baseColor)\r\n ApplyMaterialColor,\r\n // (Optional - does nothing if ComputeBaseColor not specified) Apply feature overrides to vertex color\r\n // vec4 applyFeatureColor(vec4 baseColor)\r\n ApplyFeatureColor,\r\n // (Optional - does nothing if ComputeBaseColor not specified)) Adjust base color for contrast\r\n // vec4 adjustContrast(vec4 baseColor)\r\n AdjustContrast,\r\n // (Optional - does nothing if ComputeBaseColor not specified) Return true if this vertex should be \"discarded\" (is not visible)\r\n // bool checkForDiscard()\r\n // If this returns true, gl_Position will be set to 0; presumably related vertices will also do so, resulting in a degenerate triangle.\r\n // If this returns true, no further processing will be performed.\r\n CheckForDiscard,\r\n // (Required) Return this vertex's position in clip space.\r\n // vec4 computePosition(vec4 rawPos)\r\n ComputePosition,\r\n // (Optional) Compute all atmospheric scattering values in one pass and assign them to varyings (For Skybox and RealityMesh only)\r\n // void computeAtmosphericScatteringVaryings\r\n ComputeAtmosphericScatteringVaryings,\r\n // (Optional) After all output (varying) values have been computed, return true if this vertex should be discarded.\r\n // bool checkForLateDiscard()\r\n CheckForLateDiscard,\r\n // (Optional) Adjust the final position\r\n // vec4 adjustPosition(vec4 pos)\r\n FinalizePosition,\r\n\r\n COUNT,\r\n}\r\n\r\n/** Assembles the source code for a vertex shader from a set of modular components.\r\n * @internal\r\n */\r\nexport class VertexShaderBuilder extends ShaderBuilder {\r\n private _computedVarying: string[] = new Array<string>();\r\n\r\n private buildPrelude(attrMap?: Map<string, AttributeDetails>): SourceBuilder { return this.buildPreludeCommon(attrMap, true); }\r\n\r\n public constructor(flags: ShaderBuilderFlags = {}) {\r\n super(VertexShaderComponent.COUNT, flags);\r\n\r\n this.addDefine(\"MAT_NORM\", \"g_nmx\");\r\n if (this.usesInstancedGeometry) {\r\n addInstancedModelMatrixRTC(this);\r\n this.addDefine(\"MAT_MV\", \"g_mv\");\r\n this.addDefine(\"MAT_MVP\", \"g_mvp\");\r\n } else {\r\n this.addDefine(\"MAT_MV\", \"u_mv\");\r\n this.addDefine(\"MAT_MVP\", \"u_mvp\");\r\n }\r\n\r\n addPosition(this, this.usesVertexTable);\r\n }\r\n\r\n public get usesVertexTable(): boolean {\r\n return undefined !== this._flags.positionType;\r\n }\r\n\r\n public get positionType(): PositionType {\r\n assert(undefined !== this._flags.positionType);\r\n return this._flags.positionType;\r\n }\r\n\r\n public get(id: VertexShaderComponent): string | undefined { return this.getComponent(id); }\r\n public set(id: VertexShaderComponent, component: string) { this.addComponent(id, component); }\r\n public unset(id: VertexShaderComponent) { this.removeComponent(id); }\r\n\r\n public addComputedVarying(name: string, type: VariableType, computation: string): void {\r\n this.addVarying(name, type);\r\n this._computedVarying.push(computation);\r\n }\r\n\r\n public buildSource(attrMap?: Map<string, AttributeDetails>): string {\r\n const prelude = this.buildPrelude(attrMap);\r\n const main = new SourceBuilder();\r\n main.newline();\r\n\r\n const computePosition = this.get(VertexShaderComponent.ComputePosition);\r\n assert(undefined !== computePosition);\r\n if (undefined !== computePosition) {\r\n prelude.addFunction(\"vec4 computePosition(vec4 rawPos)\", computePosition);\r\n }\r\n\r\n const computeQPos = this.get(VertexShaderComponent.ComputeQuantizedPosition) ?? \"return a_pos;\";\r\n prelude.addFunction(\"vec3 computeQuantizedPosition()\", computeQPos);\r\n main.addline(\" vec3 qpos = computeQuantizedPosition();\");\r\n\r\n // Initialization logic that should occur at start of main() - primarily global variables whose values\r\n // are too complex to compute inline or which depend on uniforms and/or other globals.\r\n for (const init of this._initializers) {\r\n if (\"\\n\" === init.charAt(0))\r\n main.addline(` {${init} }\\n`);\r\n else\r\n main.addline(` { ${init} }\\n`);\r\n }\r\n\r\n main.addline(\" vec4 rawPosition = computeVertexPosition(qpos);\");\r\n const adjustRawPosition = this.get(VertexShaderComponent.AdjustRawPosition);\r\n if (undefined !== adjustRawPosition) {\r\n prelude.addFunction(\"vec4 adjustRawPosition(vec4 rawPos)\", adjustRawPosition);\r\n main.addline(\" rawPosition = adjustRawPosition(rawPosition);\");\r\n }\r\n\r\n const checkForEarlyDiscard = this.get(VertexShaderComponent.CheckForEarlyDiscard);\r\n if (undefined !== checkForEarlyDiscard) {\r\n prelude.addFunction(\"bool checkForEarlyDiscard(vec4 rawPos)\", checkForEarlyDiscard);\r\n main.add(earlyVertexDiscard);\r\n }\r\n\r\n const computeFeatureOverrides = this.get(VertexShaderComponent.ComputeFeatureOverrides);\r\n if (undefined !== computeFeatureOverrides) {\r\n prelude.addFunction(\"void computeFeatureOverrides()\", computeFeatureOverrides);\r\n main.addline(\" computeFeatureOverrides();\");\r\n }\r\n\r\n const computeMaterial = this.get(VertexShaderComponent.ComputeMaterial);\r\n if (undefined !== computeMaterial) {\r\n prelude.addFunction(\"void computeMaterial()\", computeMaterial);\r\n main.addline(\" computeMaterial();\");\r\n }\r\n\r\n const computeBaseColor = this.get(VertexShaderComponent.ComputeBaseColor);\r\n if (undefined !== computeBaseColor) {\r\n assert(undefined !== this.find(\"v_color\"));\r\n prelude.addFunction(\"vec4 computeBaseColor()\", computeBaseColor);\r\n main.addline(\" vec4 baseColor = computeBaseColor();\");\r\n\r\n const applyMaterialColor = this.get(VertexShaderComponent.ApplyMaterialColor);\r\n if (undefined !== applyMaterialColor) {\r\n prelude.addFunction(\"vec4 applyMaterialColor(vec4 baseColor)\", applyMaterialColor);\r\n main.addline(\" baseColor = applyMaterialColor(baseColor);\");\r\n }\r\n\r\n const applyFeatureColor = this.get(VertexShaderComponent.ApplyFeatureColor);\r\n if (undefined !== applyFeatureColor) {\r\n prelude.addFunction(\"vec4 applyFeatureColor(vec4 baseColor)\", applyFeatureColor);\r\n main.addline(\" baseColor = applyFeatureColor(baseColor);\");\r\n }\r\n\r\n const adjustContrast = this.get(VertexShaderComponent.AdjustContrast);\r\n if (adjustContrast) {\r\n prelude.addFunction(\"vec4 adjustContrast(vec4 baseColor)\", adjustContrast);\r\n main.addline(\" baseColor = adjustContrast(baseColor);\");\r\n }\r\n\r\n main.addline(\" v_color = baseColor;\");\r\n }\r\n\r\n const checkForDiscard = this.get(VertexShaderComponent.CheckForDiscard);\r\n if (undefined !== checkForDiscard) {\r\n prelude.addFunction(\"bool checkForDiscard()\", checkForDiscard);\r\n main.add(vertexDiscard);\r\n }\r\n\r\n main.addline(\" gl_Position = computePosition(rawPosition);\");\r\n\r\n const finalizePos = this.get(VertexShaderComponent.FinalizePosition);\r\n if (undefined !== finalizePos) {\r\n prelude.addFunction(\"vec4 finalizePosition(vec4 pos)\", finalizePos);\r\n main.addline(\" gl_Position = finalizePosition(gl_Position);\");\r\n }\r\n\r\n for (const comp of this._computedVarying) {\r\n main.addline(` ${comp}`);\r\n }\r\n\r\n const computeAtmosphericScatteringVaryings = this.get(VertexShaderComponent.ComputeAtmosphericScatteringVaryings);\r\n if (undefined !== computeAtmosphericScatteringVaryings) {\r\n prelude.addFunction(\"void computeAtmosphericScatteringVaryings()\", computeAtmosphericScatteringVaryings);\r\n main.addline(\" computeAtmosphericScatteringVaryings();\");\r\n }\r\n\r\n const checkForLateDiscard = this.get(VertexShaderComponent.CheckForLateDiscard);\r\n if (undefined !== checkForLateDiscard) {\r\n prelude.addFunction(\"bool checkForLateDiscard()\", checkForLateDiscard);\r\n main.addline(lateVertexDiscard);\r\n }\r\n\r\n prelude.addMain(main.source);\r\n return prelude.source;\r\n }\r\n\r\n public copyFrom(src: VertexShaderBuilder): void {\r\n this.copyCommon(src);\r\n this._computedVarying = [...src._computedVarying];\r\n }\r\n}\r\n\r\n/** Describes the optional and required components which can be assembled into complete\r\n * @internal\r\n */\r\nexport const enum FragmentShaderComponent {\r\n // (Optional) Return true to immediately discard this fragment.\r\n // bool checkForEarlyDiscard()\r\n CheckForEarlyDiscard,\r\n // (Required) Compute this fragment's base color\r\n // vec4 computeBaseColor()\r\n ComputeBaseColor,\r\n // (Optional) Apply material overrides to base color\r\n // vec4 applyMaterialOverrides(vec4 baseColor)\r\n ApplyMaterialOverrides,\r\n // (Optional) Adjust base color after material and/or feature overrides have been applied.\r\n // vec4 finalizeBaseColor(vec4 baseColor)\r\n FinalizeBaseColor,\r\n // (Optional) Return true if this fragment should be discarded\r\n // Do not invoke discard directly in your shader components - instead, return true from this function to generate a discard statement.\r\n // bool checkForDiscard(vec4 baseColor)\r\n CheckForDiscard,\r\n // (Optional) Return true if the alpha value is not suitable for the current render pass\r\n // bool discardByAlpha(float alpha)\r\n DiscardByAlpha,\r\n // (Optional) Apply monochrome overrides to base color\r\n // vec4 applyMonochrome(vec4 baseColor)\r\n ApplyMonochrome,\r\n // (Optional) Apply thematic display to base color. This happens before lighting and can alter the fragment color that is lit.\r\n // vec4 applyThematicDisplay(vec4 baseColor)\r\n ApplyThematicDisplay,\r\n // (Optional) Apply lighting to base color\r\n // vec4 applyLighting(vec4 baseColor)\r\n ApplyLighting,\r\n // (Optional) Apply white-on-white reversal to base color\r\n ReverseWhiteOnWhite,\r\n // (Optional) Discard if outside any clipping planes\r\n // void applyClipping()\r\n ApplyClipping,\r\n // (Optional) Apply countour lines to lit base color\r\n // vec4 applyClipping(vec4 baseColor)\r\n ApplyContours,\r\n // (Optional) Apply flash hilite to lit base color\r\n // vec4 applyFlash(vec4 baseColor)\r\n ApplyFlash,\r\n // (Optional) Apply planar classifier.\r\n // vec4 applyPlanarClassification(vec4)\r\n ApplyPlanarClassifier,\r\n // (Optional) Apply Draping.\r\n // vec4 ApplyDraping(vec4)\r\n ApplyDraping,\r\n // (Optional) Apply solar shadow map.\r\n // vec4 applySolarShadowMap(vec4)\r\n ApplySolarShadowMap,\r\n // (Optional) Apply wiremesh to edges of triangles\r\n // vec4 applyWiremesh(vec4 baseColor)\r\n ApplyWiremesh,\r\n // (Optional) Apply a debug color\r\n // vec4 applyDebugColor(vec4 baseColor)\r\n ApplyDebugColor,\r\n // (Required) Assign the final color to gl_FragColor or gl_FragData\r\n // void assignFragData(vec4 baseColor)\r\n AssignFragData,\r\n // (Optional) Override current featureId\r\n // vec4 overrideFeatureId(vec4 currentId)\r\n OverrideFeatureId,\r\n // (Optional) Override fragment depth\r\n // float finalizeDepth()\r\n FinalizeDepth,\r\n // (Optional) Override fragment color. This is invoked just after alpha is multiplied, and just before FragColor is assigned.\r\n // vec4 overrideColor(vec4 currentColor)\r\n OverrideColor,\r\n // (Optional) Override render order to be output to pick buffers.\r\n // float overrideRenderOrder(float renderOrder)\r\n OverrideRenderOrder,\r\n // (Optional) Compute the contour line information to be output to pick buffers.\r\n // vec4 computeContourLineInfo()\r\n // Defaults to vec4(0.0) indicating no contour line.\r\n ComputeContourLineInfo,\r\n // (Optional) Apply atmospheric scattering effect. (For Skybox and RealityMesh only)\r\n // vec4 applyAtmosphericScattering()\r\n ApplyAtmosphericScattering,\r\n // (Optional) Override normal\r\n // float finalizeNormal()\r\n FinalizeNormal,\r\n COUNT,\r\n}\r\n\r\n/** Assembles the source code for a fragment shader from a set of modular components.\r\n * @internal\r\n */\r\nexport class FragmentShaderBuilder extends ShaderBuilder {\r\n public requiresEarlyZWorkaround = false;\r\n\r\n public constructor(flags: ShaderBuilderFlags = {}) {\r\n super(FragmentShaderComponent.COUNT, flags);\r\n this.addFragOutput(\"FragColor\", -1);\r\n }\r\n\r\n public get(id: FragmentShaderComponent): string | undefined { return this.getComponent(id); }\r\n public set(id: FragmentShaderComponent, component: string) { this.addComponent(id, component); }\r\n public unset(id: FragmentShaderComponent) { this.removeComponent(id); }\r\n\r\n public addDrawBuffersExtension(n: number): void {\r\n this.clearFragOutput();\r\n for (let i = 0; i < n; i++)\r\n this.addFragOutput(`FragColor${i}`, i);\r\n }\r\n\r\n public buildSource(): string {\r\n const applyLighting = this.get(FragmentShaderComponent.ApplyLighting);\r\n const prelude = this.buildPrelude(undefined);\r\n\r\n const computeBaseColor = this.get(FragmentShaderComponent.ComputeBaseColor);\r\n assert(undefined !== computeBaseColor);\r\n if (undefined !== computeBaseColor) {\r\n prelude.addFunction(\"vec4 computeBaseColor()\", computeBaseColor);\r\n }\r\n\r\n const main = new SourceBuilder();\r\n main.newline();\r\n\r\n // Initialization logic that should occur at start of main() - primarily global variables whose values\r\n // are too complex to compute inline or which depend on uniforms and/or other globals.\r\n for (const init of this._initializers) {\r\n if (\"\\n\" === init.charAt(0))\r\n main.addline(` {${init} }\\n`);\r\n else\r\n main.addline(` { ${init} }\\n`);\r\n }\r\n\r\n const checkForEarlyDiscard = this.get(FragmentShaderComponent.CheckForEarlyDiscard);\r\n if (undefined !== checkForEarlyDiscard) {\r\n prelude.addFunction(\"bool checkForEarlyDiscard()\", checkForEarlyDiscard);\r\n main.addline(\" if (checkForEarlyDiscard()) { discard; return; }\");\r\n }\r\n\r\n const finalizeNormal = this.get(FragmentShaderComponent.FinalizeNormal);\r\n if (undefined !== finalizeNormal) {\r\n prelude.addFunction(\"vec3 finalizeNormal()\", finalizeNormal);\r\n main.addline(\" g_normal = finalizeNormal();\");\r\n }\r\n\r\n main.addline(\" vec4 baseColor = computeBaseColor();\");\r\n\r\n const finalizeDepth = this.get(FragmentShaderComponent.FinalizeDepth);\r\n if (undefined !== finalizeDepth) {\r\n prelude.addFunction(\"float finalizeDepth()\", finalizeDepth);\r\n main.addline(\" float finalDepth = finalizeDepth();\");\r\n main.addline(\" gl_FragDepth = finalDepth;\");\r\n }\r\n\r\n let clipIndent = \"\";\r\n const applyClipping = this.get(FragmentShaderComponent.ApplyClipping);\r\n if (undefined !== applyClipping) {\r\n prelude.addline(\"vec3 g_clipColor;\\n\");\r\n prelude.addFunction(\"bvec2 applyClipping(vec4 baseColor)\", applyClipping);\r\n main.addline(\" g_hasClipColor = applyClipping(baseColor);\");\r\n main.addline(\" if (g_hasClipColor.x) { baseColor.rgb = g_clipColor; } else {\");\r\n clipIndent = \" \";\r\n }\r\n\r\n const applyMaterialOverrides = this.get(FragmentShaderComponent.ApplyMaterialOverrides);\r\n if (undefined !== applyMaterialOverrides) {\r\n prelude.addFunction(\"vec4 applyMaterialOverrides(vec4 baseColor)\", applyMaterialOverrides);\r\n main.addline(`${clipIndent} baseColor = applyMaterialOverrides(baseColor);`);\r\n }\r\n\r\n const applyThematicDisplay = this.get(FragmentShaderComponent.ApplyThematicDisplay);\r\n if (undefined !== applyThematicDisplay) {\r\n prelude.addFunction(\"vec4 applyThematicDisplay(vec4 baseColor)\", applyThematicDisplay);\r\n main.addline(`${clipIndent} if (u_renderPass != kRenderPass_PlanarClassification)`);\r\n main.addline(`${clipIndent} baseColor = applyThematicDisplay(baseColor);`);\r\n }\r\n\r\n const applyPlanarClassifier = this.get(FragmentShaderComponent.ApplyPlanarClassifier);\r\n if (undefined !== applyPlanarClassifier) {\r\n if (undefined === finalizeDepth) {\r\n if (this.findFunction(volClassOpaqueColor))\r\n main.addline(`${clipIndent} float finalDepth = gl_FragCoord.z;`);\r\n else\r\n main.addline(`${clipIndent} float finalDepth = 1.0;`);\r\n }\r\n prelude.addFunction(\"vec4 applyPlanarClassifications(vec4 baseColor, float depth)\", applyPlanarClassifier);\r\n main.addline(`${clipIndent} baseColor = applyPlanarClassifications(baseColor, finalDepth);`);\r\n }\r\n\r\n const applySolarShadowMap = this.get(FragmentShaderComponent.ApplySolarShadowMap);\r\n if (undefined !== applySolarShadowMap) {\r\n prelude.addFunction(\"vec4 applySolarShadowMap(vec4 baseColor)\", applySolarShadowMap);\r\n main.addline(`${clipIndent} baseColor = applySolarShadowMap(baseColor);`);\r\n }\r\n\r\n const finalize = this.get(FragmentShaderComponent.FinalizeBaseColor);\r\n if (undefined !== finalize) {\r\n prelude.addFunction(\"vec4 finalizeBaseColor(vec4 baseColor)\", finalize);\r\n main.addline(`${clipIndent} baseColor = finalizeBaseColor(baseColor);`);\r\n }\r\n\r\n const checkForDiscard = this.get(FragmentShaderComponent.CheckForDiscard);\r\n if (undefined !== checkForDiscard) {\r\n prelude.addFunction(\"bool checkForDiscard(vec4 baseColor)\", checkForDiscard);\r\n main.addline(`${clipIndent} if (checkForDiscard(baseColor)) { discard; return; }`);\r\n }\r\n\r\n const discardByAlpha = this.get(FragmentShaderComponent.DiscardByAlpha);\r\n if (undefined !== discardByAlpha) {\r\n prelude.addFunction(\"bool discardByAlpha(float alpha)\", discardByAlpha);\r\n main.addline(`${clipIndent} if (discardByAlpha(baseColor.a)) { discard; return; }`);\r\n }\r\n\r\n if (undefined !== applyClipping)\r\n main.addline(\" }\");\r\n\r\n const applyMonochrome = this.get(FragmentShaderComponent.ApplyMonochrome);\r\n if (undefined !== applyMonochrome) {\r\n prelude.addFunction(\"vec4 applyMonochrome(vec4 baseColor)\", applyMonochrome);\r\n main.addline(\" baseColor = applyMonochrome(baseColor);\");\r\n }\r\n\r\n if (undefined !== applyLighting) {\r\n prelude.addFunction(\"vec4 applyLighting(vec4 baseColor)\", applyLighting);\r\n main.addline(\" baseColor = applyLighting(baseColor);\");\r\n }\r\n\r\n if (undefined !== applyClipping) {\r\n main.addline(\" if (g_hasClipColor.y) { baseColor.rgba = vec4(g_clipColor, 1.0); } \");\r\n }\r\n\r\n const reverseWoW = this.get(FragmentShaderComponent.ReverseWhiteOnWhite);\r\n if (undefined !== reverseWoW) {\r\n prelude.addFunction(\"vec4 reverseWhiteOnWhite(vec4 baseColor)\", reverseWoW);\r\n main.addline(\" baseColor = reverseWhiteOnWhite(baseColor);\");\r\n }\r\n\r\n const applyContours = this.get(FragmentShaderComponent.ApplyContours);\r\n if (undefined !== applyContours) {\r\n prelude.addFunction(\"vec4 applyContours(vec4 baseColor)\", applyContours);\r\n main.addline(\" baseColor = applyContours(baseColor);\");\r\n }\r\n\r\n const applyFlash = this.get(FragmentShaderComponent.ApplyFlash);\r\n if (undefined !== applyFlash) {\r\n prelude.addFunction(\"vec4 applyFlash(vec4 baseColor)\", applyFlash);\r\n main.addline(\" baseColor = applyFlash(baseColor);\");\r\n }\r\n\r\n const applyWiremesh = this.get(FragmentShaderComponent.ApplyWiremesh);\r\n if (applyWiremesh) {\r\n prelude.addFunction(\"vec4 applyWiremesh(vec4 baseColor)\", applyWiremesh);\r\n main.addline(\" baseColor = applyWiremesh(baseColor);\");\r\n }\r\n\r\n const applyAtmosphericScattering = this.get(FragmentShaderComponent.ApplyAtmosphericScattering);\r\n if (applyAtmosphericScattering) {\r\n prelude.addFunction(\"vec4 applyAtmosphericScattering(vec4 baseColor)\", applyAtmosphericScattering);\r\n main.addline(\" baseColor = applyAtmosphericScattering(baseColor);\");\r\n }\r\n\r\n const applyDraping = this.get(FragmentShaderComponent.ApplyDraping);\r\n if (undefined !== applyDraping) {\r\n prelude.addFunction(\"vec4 applyDraping(vec4 baseColor)\", applyDraping);\r\n main.addline(`${clipIndent} baseColor = applyDraping(baseColor);`);\r\n }\r\n\r\n const applyDebug = this.get(FragmentShaderComponent.ApplyDebugColor);\r\n if (undefined !== applyDebug) {\r\n prelude.addFunction(\"vec4 applyDebugColor(vec4 baseColor)\", applyDebug);\r\n main.addline(\" baseColor = applyDebugColor(baseColor);\");\r\n }\r\n\r\n const assignFragData = this.get(FragmentShaderComponent.AssignFragData);\r\n assert(undefined !== assignFragData);\r\n if (undefined !== assignFragData) {\r\n prelude.addFunction(\"void assignFragData(vec4 baseColor)\", assignFragData);\r\n main.addline(\" assignFragData(baseColor);\");\r\n }\r\n\r\n if (this.requiresEarlyZWorkaround) {\r\n // Add a conditional discard that never executes to force buggy Intel driver to skip early Z despite our fragment shader writing depth.\r\n main.addline(\"if (v_eyeSpace.z == 9999999.0) discard;\");\r\n }\r\n\r\n prelude.addMain(main.source);\r\n return prelude.source;\r\n }\r\n\r\n private buildPrelude(attrMap: Map<string, AttributeDetails> | undefined): SourceBuilder {\r\n return this.buildPreludeCommon(attrMap, false);\r\n }\r\n\r\n public copyFrom(src: FragmentShaderBuilder): void {\r\n this.copyCommon(src);\r\n this.requiresEarlyZWorkaround = src.requiresEarlyZWorkaround;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport const enum ShaderType {\r\n Fragment = 1 << 0,\r\n Vertex = 1 << 1,\r\n Both = Fragment | Vertex,\r\n}\r\n\r\n/**\r\n * Assembles vertex and fragment shaders from a set of modular components to produce a compiled ShaderProgram.\r\n * Be very careful with components which use samplers to ensure that no conflicts exist with texture units used by other components (see TextureUnit enum).\r\n * @internal\r\n */\r\nexport class ProgramBuilder {\r\n public readonly vert: VertexShaderBuilder;\r\n public readonly frag: FragmentShaderBuilder;\r\n private readonly _flags: ShaderBuilderFlags;\r\n private readonly _attrMap?: Map<string, AttributeDetails>;\r\n\r\n public constructor(attrMap?: Map<string, AttributeDetails>, flags: ShaderBuilderFlags = {}) {\r\n this._attrMap = attrMap;\r\n this.vert = new VertexShaderBuilder(flags);\r\n this.frag = new FragmentShaderBuilder(flags);\r\n this._flags = flags; // only needed for clone - though could look up from vert or frag shader.\r\n }\r\n\r\n private addVariable(v: ShaderVariable, which: ShaderType) {\r\n if (which & ShaderType.Fragment) {\r\n this.frag.addVariable(v);\r\n }\r\n\r\n if (which & ShaderType.Vertex) {\r\n this.vert.addVariable(v);\r\n }\r\n }\r\n\r\n public addUniform(name: string, type: VariableType, binding: AddVariableBinding, which: ShaderType = ShaderType.Both) {\r\n this.addVariable(ShaderVariable.create(name, type, VariableScope.Uniform, binding), which);\r\n }\r\n public addUniformArray(name: string, type: VariableType, length: number, binding: AddVariableBinding, which: ShaderType = ShaderType.Both) {\r\n this.addVariable(ShaderVariable.createArray(name, type, length, VariableScope.Uniform, binding), which);\r\n }\r\n public addVarying(name: string, type: VariableType) {\r\n this.addVariable(ShaderVariable.create(name, type, VariableScope.Varying), ShaderType.Both);\r\n }\r\n public addGlobal(name: string, type: VariableType, which: ShaderType = ShaderType.Both, value?: string, isConst: boolean = false) {\r\n this.addVariable(ShaderVariable.createGlobal(name, type, value, isConst), which);\r\n }\r\n\r\n public addInlineComputedVarying(name: string, type: VariableType, inlineComputation: string) {\r\n if (this.frag.addVarying(name, type))\r\n this.vert.addComputedVarying(name, type, inlineComputation);\r\n }\r\n public addFunctionComputedVarying(name: string, type: VariableType, funcName: string, funcBody: string) {\r\n let funcDecl = `\\n${Convert.typeToString(type)} ${funcName}()`;\r\n funcDecl = SourceBuilder.buildFunctionDefinition(funcDecl, funcBody);\r\n\r\n const funcCall = `${funcName}()`;\r\n this.addFunctionComputedVaryingWithArgs(name, type, funcCall, funcDecl);\r\n }\r\n public addFunctionComputedVaryingWithArgs(name: string, type: VariableType, funcCall: string, funcDef: string) {\r\n this.vert.addFunction(funcDef);\r\n const computation = `${name} = ${funcCall};`;\r\n this.addInlineComputedVarying(name, type, computation);\r\n }\r\n\r\n /** Assembles the vertex and fragment shader code and returns a ready-to-compile shader program */\r\n public buildProgram(gl: WebGL2RenderingContext): ShaderProgram {\r\n const vertSource = this.vert.buildSource(this._attrMap);\r\n const fragSource = this.frag.buildSource(); // NB: frag has no need to specify attributes, only vertex does.\r\n\r\n // Debug output\r\n const debugVaryings = false;\r\n if (debugVaryings) {\r\n const dbgLog = (x: string) => console.log(x); // eslint-disable-line no-console\r\n const outSrc = false; // true for source out, false for just varying info\r\n if (this.frag.headerComment) {\r\n let tStr = \"\";\r\n if (!outSrc) {\r\n tStr = `${this.frag.headerComment}\\n`;\r\n }\r\n const tStr2 = this.vert.checkMaxVaryingVectors(fragSource);\r\n if (tStr2) {\r\n if (outSrc) {\r\n dbgLog(\"//===============================================================================================================\");\r\n dbgLog(vertSource);\r\n dbgLog(\"//========= Varying Info =========\");\r\n dbgLog(tStr2);\r\n dbgLog(fragSource);\r\n } else {\r\n dbgLog(tStr + tStr2);\r\n }\r\n }\r\n }\r\n }\r\n\r\n const prog = new ShaderProgram(gl, vertSource, fragSource, this._attrMap, this.vert.headerComment, this.frag.headerComment);\r\n this.vert.addBindings(prog);\r\n this.frag.addBindings(prog, this.vert);\r\n return prog;\r\n }\r\n\r\n public setDebugDescription(description: string): void {\r\n this.vert.headerComment = (`//!V! ${description}`);\r\n this.frag.headerComment = (`//!F! ${description}`);\r\n }\r\n\r\n /** Returns a deep copy of this program builder. */\r\n public clone(): ProgramBuilder {\r\n const clone = new ProgramBuilder(this._attrMap, this._flags);\r\n clone.vert.copyFrom(this.vert);\r\n clone.frag.copyFrom(this.frag);\r\n return clone;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ShaderBuilder.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShaderProgram.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderProgram.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 } from \"@itwin/core-bentley\";\r\nimport { DebugShaderFile } from \"../RenderSystemDebugControl\";\r\nimport { AttributeDetails } from \"./AttributeMap\";\r\nimport { WebGLDisposable } from \"./Disposable\";\r\nimport { DrawParams, ShaderProgramParams } from \"./DrawCommand\";\r\nimport { GL } from \"./GL\";\r\nimport { Batch, Branch } from \"./Graphic\";\r\nimport { UniformHandle } from \"./UniformHandle\";\r\nimport { RenderPass } from \"./RenderFlags\";\r\nimport { System } from \"./System\";\r\nimport { Target } from \"./Target\";\r\nimport { TechniqueFlags } from \"./TechniqueFlags\";\r\n\r\n/* eslint-disable no-restricted-syntax */\r\n\r\n/** Flags which control some conditional branches in shader code\r\n * @internal\r\n */\r\nexport const enum ShaderFlags {\r\n None = 0,\r\n Monochrome = 1 << 0,\r\n NonUniformColor = 1 << 1,\r\n OITFlatAlphaWeight = 1 << 2,\r\n OITScaleOutput = 1 << 3,\r\n IgnoreNonLocatable = 1 << 4,\r\n}\r\n\r\n/** Describes the location of a uniform variable within a shader program.\r\n * @internal\r\n */\r\nexport class Uniform {\r\n private readonly _name: string;\r\n protected _handle?: UniformHandle;\r\n\r\n protected constructor(name: string) { this._name = name; }\r\n\r\n public compile(prog: ShaderProgram): boolean {\r\n assert(!this.isValid);\r\n if (undefined !== prog.glProgram) {\r\n this._handle = UniformHandle.create(prog, this._name);\r\n }\r\n\r\n return this.isValid;\r\n }\r\n\r\n public get isValid(): boolean { return undefined !== this._handle; }\r\n}\r\n\r\n/**\r\n * A function associated with a ProgramUniform which is invoked each time the shader program becomes active.\r\n * The function is responsible for setting the value of the uniform.\r\n * @internal\r\n */\r\nexport type BindProgramUniform = (uniform: UniformHandle, params: ShaderProgramParams) => void;\r\n\r\n/**\r\n * Describes the location of a uniform variable within a shader program, the value of which does not change while the program is active.\r\n * The supplied binding function will be invoked once each time the shader becomes active to set the value of the uniform.\r\n * @internal\r\n */\r\nexport class ProgramUniform extends Uniform {\r\n private readonly _bind: BindProgramUniform;\r\n\r\n public constructor(name: string, bind: BindProgramUniform) {\r\n super(name);\r\n this._bind = bind;\r\n }\r\n\r\n public bind(params: ShaderProgramParams): void {\r\n if (undefined !== this._handle) {\r\n this._bind(this._handle, params);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * A function associated with a GraphicUniform which is invoked each time a new graphic primitive is rendered using the associated shader.\r\n * The function is responsible for setting the value of the uniform.\r\n * @internal\r\n */\r\nexport type BindGraphicUniform = (uniform: UniformHandle, params: DrawParams) => void;\r\n\r\n/**\r\n * Describes the location of a uniform variable within a shader program, the value of which is dependent upon the graphic primitive\r\n * currently being rendered by the program. The supplied binding function will be invoked once for each graphic primitive submitted\r\n * to the program to set the value of the uniform.\r\n * @internal\r\n */\r\nexport class GraphicUniform extends Uniform {\r\n private readonly _bind: BindGraphicUniform;\r\n\r\n public constructor(name: string, bind: BindGraphicUniform) {\r\n super(name);\r\n this._bind = bind;\r\n }\r\n\r\n public bind(params: DrawParams): void {\r\n if (undefined !== this._handle) {\r\n this._bind(this._handle, params);\r\n }\r\n }\r\n}\r\n\r\n/** Describes the compilation status of a shader program. Programs may be compiled during idle time, or upon first use.\r\n * @internal\r\n */\r\nexport const enum CompileStatus {\r\n Success, // The program was successfully compiled.\r\n Failure, // The program failed to compile.\r\n Uncompiled, // No attempt has yet been made to compile the program.\r\n}\r\n\r\n/** @internal */\r\nexport class ShaderProgram implements WebGLDisposable {\r\n public vertSource: string;\r\n public fragSource: string;\r\n private _glProgram?: WebGLProgram;\r\n private _inUse: boolean = false;\r\n private _status: CompileStatus = CompileStatus.Uncompiled;\r\n private readonly _programUniforms = new Array<ProgramUniform>();\r\n private readonly _graphicUniforms = new Array<GraphicUniform>();\r\n private readonly _attrMap?: Map<string, AttributeDetails>;\r\n // for debugging purposes...\r\n public readonly description: string;\r\n private _fragDescription: string;\r\n private _vertGNdx: number = -1;\r\n private _fragGNdx: number = -1;\r\n private _vertHNdx: number = -1;\r\n private _fragHNdx: number = -1;\r\n public readonly outputsToPick;\r\n\r\n public constructor(gl: WebGL2RenderingContext, vertSource: string, fragSource: string, attrMap: Map<string, AttributeDetails> | undefined, description: string, fragDescription: string) {\r\n this.description = description;\r\n this.outputsToPick = description.includes(\"Overrides\") || description.includes(\"Pick\");\r\n this._fragDescription = fragDescription;\r\n this.vertSource = vertSource;\r\n this.fragSource = fragSource;\r\n this._attrMap = attrMap;\r\n\r\n const glProgram = gl.createProgram();\r\n this._glProgram = (null === glProgram) ? undefined : glProgram;\r\n }\r\n\r\n public get isDisposed(): boolean { return this._glProgram === undefined; }\r\n\r\n public [Symbol.dispose](): void {\r\n if (!this.isDisposed) {\r\n assert(!this._inUse);\r\n System.instance.context.deleteProgram(this._glProgram!);\r\n this._glProgram = undefined;\r\n this._status = CompileStatus.Uncompiled;\r\n }\r\n }\r\n\r\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\r\n public dispose(): void {\r\n this[Symbol.dispose]();\r\n }\r\n\r\n public get glProgram(): WebGLProgram | undefined { return this._glProgram; }\r\n public get isUncompiled() { return CompileStatus.Uncompiled === this._status; }\r\n public get isCompiled() { return CompileStatus.Success === this._status; }\r\n\r\n private compileShader(type: GL.ShaderType): WebGLShader | undefined {\r\n const gl = System.instance.context;\r\n\r\n const shader = gl.createShader(type);\r\n if (null === shader)\r\n return undefined;\r\n\r\n const src = GL.ShaderType.Vertex === type ? this.vertSource : this.fragSource;\r\n gl.shaderSource(shader, src);\r\n gl.compileShader(shader);\r\n const succeeded = gl.getShaderParameter(shader, GL.ShaderParameter.CompileStatus) as boolean;\r\n if (!succeeded) {\r\n const compileLog = `${GL.ShaderType.Vertex === type ? \"Vertex\" : \"Fragment\"} shader failed to compile. Errors: ${gl.getShaderInfoLog(shader)} Program description: ${this.description}`;\r\n throw new Error(compileLog);\r\n }\r\n\r\n if (System.instance.options.debugShaders) {\r\n const isVS = GL.ShaderType.Vertex === type;\r\n const desc = isVS ? this.description : this._fragDescription;\r\n this.saveShaderCode(isVS, desc, src, shader);\r\n }\r\n\r\n return shader;\r\n }\r\n\r\n private linkProgram(vert: WebGLShader, frag: WebGLShader): boolean {\r\n assert(undefined !== this.glProgram);\r\n if (undefined === this._glProgram || null === this._glProgram) // because WebGL APIs used Thing|null, not Thing|undefined...\r\n return false;\r\n\r\n const gl = System.instance.context;\r\n gl.attachShader(this._glProgram, vert);\r\n gl.attachShader(this._glProgram, frag);\r\n\r\n // bind attribute locations before final linking\r\n if (this._attrMap !== undefined) {\r\n this._attrMap.forEach((attr: AttributeDetails, key: string) => {\r\n gl.bindAttribLocation(this._glProgram!, attr.location, key);\r\n });\r\n }\r\n\r\n gl.linkProgram(this._glProgram);\r\n\r\n const linkLog = gl.getProgramInfoLog(this._glProgram);\r\n gl.validateProgram(this._glProgram);\r\n\r\n const succeeded = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.LinkStatus) as boolean;\r\n if (!succeeded) {\r\n const validateLog = gl.getProgramInfoLog(this._glProgram);\r\n const msg = `Shader program failed to link. Link errors: ${linkLog} Validation errors: ${validateLog} Program description: ${this.description}`;\r\n throw new Error(msg);\r\n }\r\n\r\n // Debug output\r\n const debugUniforms = false;\r\n if (debugUniforms) {\r\n const dbgLog = (x: string) => console.log(x); // eslint-disable-line no-console\r\n const outSrc = false; // true for source out, false for just varying info\r\n if (this._fragDescription) {\r\n let tStr = \"\";\r\n if (!outSrc) {\r\n tStr = `${this._fragDescription}`;\r\n }\r\n const numUniforms = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.ActiveUniforms);\r\n const tStr2 = `Active Uniforms: ${numUniforms}`;\r\n if (tStr2) {\r\n if (outSrc) {\r\n dbgLog(\"//===============================================================================================================\");\r\n dbgLog(this.vertSource);\r\n dbgLog(\"//========= Num Active Uniforms =========\");\r\n dbgLog(`${tStr2}\\n`);\r\n dbgLog(this.fragSource);\r\n } else {\r\n dbgLog(`\\n${tStr2} ${tStr}\\n`);\r\n }\r\n }\r\n }\r\n }\r\n\r\n return true;\r\n }\r\n\r\n public compile(forUse: boolean = false): CompileStatus {\r\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\r\n this.setDebugShaderUsage();\r\n\r\n switch (this._status) {\r\n case CompileStatus.Failure: return CompileStatus.Failure;\r\n case CompileStatus.Success: return CompileStatus.Success;\r\n default: {\r\n if (this.isDisposed) {\r\n this._status = CompileStatus.Failure;\r\n return CompileStatus.Failure;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n this._status = CompileStatus.Failure;\r\n\r\n const vert = this.compileShader(GL.ShaderType.Vertex);\r\n const frag = this.compileShader(GL.ShaderType.Fragment);\r\n if (undefined !== vert && undefined !== frag)\r\n if (this.linkProgram(vert, frag) && this.compileUniforms(this._programUniforms) && this.compileUniforms(this._graphicUniforms))\r\n this._status = CompileStatus.Success;\r\n\r\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\r\n this.setDebugShaderUsage();\r\n\r\n if (true !== System.instance.options.preserveShaderSourceCode)\r\n this.vertSource = this.fragSource = \"\";\r\n\r\n return this._status;\r\n }\r\n\r\n public use(params: ShaderProgramParams): boolean {\r\n if (this.compile(true) !== CompileStatus.Success)\r\n return false;\r\n\r\n assert(undefined !== this._glProgram);\r\n if (null === this._glProgram || undefined === this._glProgram)\r\n return false;\r\n\r\n assert(!this._inUse);\r\n this._inUse = true;\r\n params.context.useProgram(this._glProgram);\r\n\r\n for (const uniform of this._programUniforms)\r\n uniform.bind(params);\r\n\r\n return true;\r\n }\r\n\r\n public endUse() {\r\n this._inUse = false;\r\n System.instance.context.useProgram(null);\r\n }\r\n\r\n public draw(params: DrawParams): void {\r\n assert(this._inUse);\r\n for (const uniform of this._graphicUniforms)\r\n uniform.bind(params);\r\n\r\n params.geometry.draw();\r\n }\r\n\r\n public addProgramUniform(name: string, binding: BindProgramUniform) {\r\n assert(this.isUncompiled);\r\n this._programUniforms.push(new ProgramUniform(name, binding));\r\n }\r\n\r\n public addGraphicUniform(name: string, binding: BindGraphicUniform) {\r\n assert(this.isUncompiled);\r\n this._graphicUniforms.push(new GraphicUniform(name, binding));\r\n }\r\n\r\n private compileUniforms<T extends Uniform>(uniforms: T[]): boolean {\r\n for (const uniform of uniforms) {\r\n if (!uniform.compile(this))\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n private setDebugShaderUsage() {\r\n if (!System.instance.options.debugShaders)\r\n return;\r\n\r\n const shaderFiles = System.instance.debugShaderFiles;\r\n if (this._vertGNdx >= 0)\r\n shaderFiles[this._vertGNdx].isUsed = true;\r\n\r\n if (this._fragGNdx >= 0)\r\n shaderFiles[this._fragGNdx].isUsed = true;\r\n\r\n if (this._vertHNdx >= 0)\r\n shaderFiles[this._vertHNdx].isUsed = true;\r\n\r\n if (this._fragHNdx >= 0)\r\n shaderFiles[this._fragHNdx].isUsed = true;\r\n }\r\n\r\n private saveShaderCode(isVS: boolean, desc: string, src: string, shader: WebGLShader) {\r\n // save glsl and hlsl (from Angle and fixed up) in DebugShaderFile\r\n if (!System.instance.options.debugShaders)\r\n return;\r\n\r\n const shaderFiles = System.instance.debugShaderFiles;\r\n let sname: string;\r\n if (desc) {\r\n sname = desc.split(isVS ? \"//!V! \" : \"//!F! \").join(\"\");\r\n sname = sname.split(\": \").join(\"-\");\r\n sname = sname.split(\"; \").join(\"-\");\r\n } else {\r\n // need to investigate shaders with no comments to derive names, for now come up with unique name\r\n sname = `noname-${shaderFiles.length}`;\r\n }\r\n\r\n sname += isVS ? \"_VS\" : \"_FS\";\r\n const fname = `${sname}.glsl`;\r\n let dsfNdx = shaderFiles.push(new DebugShaderFile(fname, src, isVS, true, false));\r\n if (isVS)\r\n this._vertGNdx = dsfNdx - 1;\r\n else\r\n this._fragGNdx = dsfNdx - 1;\r\n\r\n const ext2 = System.instance.context.getExtension(\"WEBGL_debug_shaders\");\r\n if (!ext2)\r\n return;\r\n\r\n const srcH = ext2.getTranslatedShaderSource(shader);\r\n if (!srcH)\r\n return;\r\n\r\n // TODO: implement WebGL2 specific inputs for gl_VertexID and gl_InstanceID if ever used\r\n\r\n // parse and edit srcH to make it compilable\r\n const fnameH = `${sname}.hlsl`;\r\n let numTargets = 0; // for gl_Color cases\r\n let haveGLpos = false;\r\n let haveGLpntsz = false;\r\n let haveGLDepth = false;\r\n let haveGLFrontFacing = false;\r\n let haveGLPointCoord = false;\r\n let haveGLFragCoord = false;\r\n let haveGLFragColorOnly = false; // for only 1 output\r\n const haveGLFragColor = [false, false, false, false, false, false, false, false];\r\n const attrs: string[] = new Array<string>();\r\n const varyings: string[] = new Array<string>();\r\n const lines = srcH.split(\"\\n\");\r\n let toss = true;\r\n for (let ndx = 0; ndx < lines.length;) {\r\n let line = lines[ndx];\r\n if (line.indexOf(\"// INITIAL HLSL END\") >= 0)\r\n toss = true;\r\n\r\n if (toss)\r\n lines.splice(ndx, 1);\r\n\r\n if (line.indexOf(\"// INITIAL HLSL BEGIN\") >= 0) {\r\n toss = false;\r\n } else if (!toss) { // look for lines that need editing\r\n if (line.indexOf(\"Varyings\") >= 0) { // save off varyings in either case\r\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\r\n ++ndx;\r\n line = lines[ndx].substring(6).trimStart();\r\n varyings.push(line.substring(0, line.indexOf(\"=\")));\r\n }\r\n }\r\n\r\n if (isVS) {\r\n if (line.indexOf(\"Attributes\") >= 0) { // save off attributes\r\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\r\n ++ndx;\r\n line = lines[ndx].substring(6).trimStart();\r\n attrs.push(line.substring(0, line.indexOf(\"=\")));\r\n }\r\n } else if (line.indexOf(\"static float4 gl_Position\") >= 0) {\r\n haveGLpos = true;\r\n } else if (line.indexOf(\"static float gl_PointSize\") >= 0) {\r\n haveGLpntsz = true;\r\n } else if (line.indexOf(\"@@ VERTEX ATTRIBUTES @@\") >= 0) {\r\n lines[ndx] = \"// @@ VERTEX ATTRIBUTES @@\";\r\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\r\n lines[ndx] = \"// @@ MAIN PROLOGUE @@\\ngetInput(input);\";\r\n } else if (line.indexOf(\"@@ VERTEX OUTPUT @@\") >= 0) {\r\n // have to create a VS_OUTPUT struct and a generateOutput function from varyings\r\n lines[ndx] = \"// @@ VERTEX OUTPUT @@\\nstruct VS_INPUT\\n {\";\r\n let aNdx = 0;\r\n for (const tstr of attrs) {\r\n ++ndx;\r\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${aNdx};`);\r\n ++aNdx;\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \" };\\nvoid getInput(VS_INPUT input) {\");\r\n for (const tstr of attrs) {\r\n let t = tstr.indexOf(\"_a\");\r\n let vName = tstr.substring(t);\r\n t = vName.indexOf(\" \");\r\n vName = vName.substring(0, t);\r\n ++ndx;\r\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \"}\\nstruct VS_OUTPUT\\n {\");\r\n if (haveGLpos) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" float4 _v_position : SV_Position;\");\r\n }\r\n\r\n if (haveGLpntsz) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" float gl_PointSize : PointSize;\");\r\n }\r\n\r\n let vNdx = 0;\r\n for (const tstr of varyings) {\r\n ++ndx;\r\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\r\n ++vNdx;\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \" };\\nVS_OUTPUT generateOutput(VS_INPUT input) {\\n VS_OUTPUT output;\");\r\n if (haveGLpos) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" output._v_position = gl_Position;\");\r\n }\r\n\r\n if (haveGLpntsz) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" output.gl_PointSize = gl_PointSize;\");\r\n }\r\n\r\n for (const tstr of varyings) {\r\n let t = tstr.indexOf(\"_v\");\r\n let vName = tstr.substring(t);\r\n t = vName.indexOf(\" \");\r\n vName = vName.substring(0, t);\r\n ++ndx;\r\n lines.splice(ndx, 0, ` output.${vName} = ${vName};`);\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \" return output;\\n}\");\r\n }\r\n } else { // fragment shader\r\n let tNdx = 0;\r\n if (line.indexOf(\"static float4 gl_Color[\") >= 0) {\r\n //\r\n } else if (line.indexOf(\"gl_Color[0] =\") >= 0) {\r\n if (numTargets < 1)\r\n numTargets = 1;\r\n } else if (line.indexOf(\"gl_Color[1] =\") >= 0) {\r\n if (numTargets < 2)\r\n numTargets = 2;\r\n } else if (line.indexOf(\"gl_Color[2] =\") >= 0) {\r\n if (numTargets < 3)\r\n numTargets = 3;\r\n } else if (line.indexOf(\"gl_Color[3] =\") >= 0) {\r\n numTargets = 4;\r\n } else if (line.indexOf(\"gl_Depth\") >= 0) {\r\n haveGLDepth = true;\r\n } else if (line.indexOf(\"gl_FrontFacing\") >= 0) {\r\n haveGLFrontFacing = true;\r\n } else if (line.indexOf(\"gl_PointCoord\") >= 0) {\r\n haveGLPointCoord = true;\r\n } else if (line.indexOf(\"gl_FragCoord\") >= 0) {\r\n haveGLFragCoord = true;\r\n } else if ((tNdx = line.indexOf(\"out_FragColor\")) >= 0) {\r\n const c = line.substring(tNdx + 13, tNdx + 13 + 1);\r\n if (c === \" \" || c === \"=\")\r\n haveGLFragColorOnly = true;\r\n else {\r\n tNdx = +c;\r\n haveGLFragColor[tNdx] = true;\r\n }\r\n } else if (line.indexOf(\"@@ PIXEL OUTPUT @@\") >= 0) {\r\n // have to create a VS_OUTPUT struct, a getInputs function (both from varyings),\r\n // a PS_OUTPUT struct, and a generateOutput function (both based on numTargets or haveGLFragColor)\r\n lines[ndx] = \"// @@ PIXEL OUTPUT @@\\nstruct VS_OUTPUT\\n {\";\r\n if (haveGLFragCoord) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" float4 gl_FragCoord : SV_POSITION;\");\r\n }\r\n\r\n let vNdx = 0;\r\n for (const tstr of varyings) {\r\n ++ndx;\r\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\r\n ++vNdx;\r\n }\r\n\r\n if (haveGLFrontFacing) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" bool gl_FrontFacing : SV_IsFrontFace;\");\r\n }\r\n\r\n if (haveGLPointCoord) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" float2 gl_PointCoord : PointCoord;\");\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \" };\\nvoid getInputs(VS_OUTPUT input) {\");\r\n if (haveGLFragCoord) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" gl_FragCoord = input.gl_FragCoord;\");\r\n }\r\n\r\n for (const tstr of varyings) {\r\n let t = tstr.indexOf(\"_v\");\r\n let vName = tstr.substring(t);\r\n t = vName.indexOf(\" \");\r\n vName = vName.substring(0, t);\r\n ++ndx;\r\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\r\n }\r\n\r\n if (haveGLFrontFacing) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" gl_FrontFacing = input.gl_FrontFacing;\");\r\n }\r\n\r\n if (haveGLPointCoord) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" gl_PointCoord = input.gl_PointCoord;\");\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \"}\\nstruct PS_OUTPUT\\n {\");\r\n let cNdx = 0;\r\n while (cNdx < numTargets) {\r\n ++ndx;\r\n lines.splice(ndx, 0, ` float4 col${cNdx} : SV_TARGET${cNdx};`);\r\n ++cNdx;\r\n }\r\n\r\n if (haveGLFragColorOnly) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" float4 out_FragColor : SV_TARGET;\");\r\n } else {\r\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\r\n if (haveGLFragColor[cNdx]) {\r\n ++ndx;\r\n lines.splice(ndx, 0, ` float4 out_FragColor${cNdx} : SV_TARGET${cNdx};`);\r\n }\r\n }\r\n }\r\n\r\n if (haveGLDepth) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" float gl_Depth : SV_Depth;\");\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \" };\\nPS_OUTPUT generateOutput () {\\n PS_OUTPUT output;\");\r\n cNdx = 0;\r\n while (cNdx < numTargets) {\r\n ++ndx;\r\n lines.splice(ndx, 0, ` output.col${cNdx} = gl_Color[${cNdx}];`);\r\n ++cNdx;\r\n }\r\n\r\n if (haveGLFragColorOnly) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" output.out_FragColor = out_FragColor;\");\r\n } else {\r\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\r\n if (haveGLFragColor[cNdx]) {\r\n ++ndx;\r\n lines.splice(ndx, 0, ` output.out_FragColor${cNdx} = out_FragColor${cNdx};`);\r\n }\r\n }\r\n }\r\n\r\n if (haveGLDepth) {\r\n ++ndx;\r\n lines.splice(ndx, 0, \" output.gl_Depth = gl_Depth;\");\r\n }\r\n\r\n ++ndx;\r\n lines.splice(ndx, 0, \" return output;\\n}\");\r\n } else if (line.indexOf(\"PS_OUTPUT main\") >= 0) {\r\n lines[ndx] = `// ${line}\\nPS_OUTPUT main(VS_OUTPUT input){`;\r\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\r\n lines[ndx] = `// ${line}\\ngetInputs(input);`;\r\n }\r\n }\r\n\r\n ++ndx;\r\n }\r\n }\r\n\r\n const srcH2 = lines.join(\"\\n\");\r\n dsfNdx = shaderFiles.push(new DebugShaderFile(fnameH, srcH2, isVS, false, false));\r\n if (isVS)\r\n this._vertHNdx = dsfNdx - 1;\r\n else\r\n this._fragHNdx = dsfNdx - 1;\r\n }\r\n}\r\n\r\n/** Context in which ShaderPrograms are executed. Avoids switching shaders unnecessarily.\r\n * Ensures shader programs are compiled before use and un-bound when scope is disposed.\r\n * Instances of this class must *only* be declared with the `using` keyword!\r\n * @internal\r\n */\r\nexport class ShaderProgramExecutor {\r\n private _program?: ShaderProgram;\r\n private static _params?: ShaderProgramParams;\r\n\r\n public constructor(target: Target, pass: RenderPass, program?: ShaderProgram) {\r\n this.params.init(target, pass);\r\n this.changeProgram(program);\r\n }\r\n\r\n public static freeParams(): void {\r\n this._params = undefined;\r\n }\r\n\r\n private _isDisposed = false;\r\n public get isDisposed(): boolean { return this._isDisposed; }\r\n\r\n /** Clears the current program to be executed. This does not free WebGL resources, since those are owned by Techniques. */\r\n public [Symbol.dispose]() {\r\n this.changeProgram(undefined);\r\n ShaderProgramExecutor.freeParams();\r\n this._isDisposed = true;\r\n }\r\n\r\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\r\n public dispose() {\r\n this[Symbol.dispose]();\r\n }\r\n\r\n public setProgram(program: ShaderProgram): boolean { return this.changeProgram(program); }\r\n public get isValid() { return undefined !== this._program; }\r\n public get target() { return this.params.target; }\r\n public get renderPass() { return this.params.renderPass; }\r\n public get params() {\r\n if (undefined === ShaderProgramExecutor._params)\r\n ShaderProgramExecutor._params = new ShaderProgramParams();\r\n\r\n return ShaderProgramExecutor._params;\r\n }\r\n\r\n public draw(params: DrawParams) {\r\n assert(this.isValid);\r\n if (undefined !== this._program) {\r\n this._program.draw(params);\r\n }\r\n }\r\n public drawInterrupt(params: DrawParams) {\r\n assert(params.target === this.params.target);\r\n\r\n const tech = params.target.techniques.getTechnique(params.geometry.techniqueId);\r\n const program = tech.getShader(TechniqueFlags.defaults);\r\n if (this.setProgram(program)) {\r\n this.draw(params);\r\n }\r\n }\r\n\r\n public pushBranch(branch: Branch): void { this.target.pushBranch(branch); }\r\n public popBranch(): void { this.target.popBranch(); }\r\n public pushBatch(batch: Batch): void { this.target.pushBatch(batch); }\r\n public popBatch(): void { this.target.popBatch(); }\r\n\r\n private changeProgram(program?: ShaderProgram): boolean {\r\n if (this._program === program) {\r\n return true;\r\n } else if (undefined !== this._program) {\r\n this._program.endUse();\r\n }\r\n\r\n this._program = program;\r\n if (undefined !== program && !program.use(this.params)) {\r\n this._program = undefined;\r\n return false;\r\n }\r\n\r\n return true;\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"ShaderProgram.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderProgram.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShadowUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShadowUniforms.ts"],"names":[],"mappings":"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"
|
|
1
|
+
{"version":3,"file":"ShadowUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShadowUniforms.ts"],"names":[],"mappings":"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"}
|