@itwin/core-frontend 4.10.0-dev.2 → 4.10.0-dev.22
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 +33 -1
- package/lib/cjs/AccuSnap.d.ts.map +1 -1
- package/lib/cjs/AccuSnap.js +9 -5
- package/lib/cjs/AccuSnap.js.map +1 -1
- package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
- package/lib/cjs/DisplayStyleState.js +5 -1
- package/lib/cjs/DisplayStyleState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts +7 -1
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +34 -10
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts +4 -0
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +3 -0
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +1 -0
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +2 -1
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/NoRenderApp.d.ts +1 -0
- package/lib/cjs/NoRenderApp.d.ts.map +1 -1
- package/lib/cjs/NoRenderApp.js +1 -0
- package/lib/cjs/NoRenderApp.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts +0 -1
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +0 -1
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/Viewport.d.ts +25 -1
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +20 -12
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/WorkerProxy.d.ts +8 -4
- package/lib/cjs/common/WorkerProxy.d.ts.map +1 -1
- package/lib/cjs/common/WorkerProxy.js.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.d.ts +3 -8
- package/lib/cjs/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
- package/lib/cjs/common/internal/Symbols.d.ts +7 -0
- package/lib/cjs/common/internal/Symbols.d.ts.map +1 -1
- package/lib/cjs/common/internal/Symbols.js +8 -1
- package/lib/cjs/common/internal/Symbols.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js +95 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
- package/lib/cjs/common/internal/render/LineCode.d.ts +9 -0
- package/lib/cjs/common/internal/render/LineCode.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/LineCode.js +31 -0
- package/lib/cjs/common/internal/render/LineCode.js.map +1 -0
- package/lib/cjs/common/internal/render/OvrFlags.d.ts +27 -0
- package/lib/cjs/common/internal/render/OvrFlags.d.ts.map +1 -0
- package/lib/cjs/common/internal/render/OvrFlags.js +10 -0
- package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -0
- package/lib/cjs/common/internal/render/VertexTable.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/VertexTable.js +3 -5
- package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts +25 -1
- package/lib/cjs/common/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/cjs/common/render/InstancedGraphicParams.js +59 -0
- package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/cjs/common/render/RenderInstancesParams.d.ts +76 -0
- package/lib/cjs/common/render/RenderInstancesParams.d.ts.map +1 -0
- package/lib/cjs/common/render/RenderInstancesParams.js +33 -0
- package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -0
- package/lib/cjs/common.d.ts +1 -0
- package/lib/cjs/common.d.ts.map +1 -1
- package/lib/cjs/common.js +1 -0
- package/lib/cjs/common.js.map +1 -1
- package/lib/cjs/core-frontend.d.ts +1 -0
- package/lib/cjs/core-frontend.d.ts.map +1 -1
- package/lib/cjs/core-frontend.js +1 -0
- package/lib/cjs/core-frontend.js.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts +4 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/cjs/internal/render/PrimitiveBuilder.js +82 -35
- package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/cjs/internal/render/RenderGeometry.d.ts +20 -0
- package/lib/cjs/internal/render/RenderGeometry.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderGeometry.js +10 -0
- package/lib/cjs/internal/render/RenderGeometry.js.map +1 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js +69 -0
- package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -0
- package/lib/cjs/render/GraphicBranch.d.ts +10 -1
- package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBranch.js.map +1 -1
- package/lib/cjs/render/GraphicBuilder.d.ts +17 -3
- package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/cjs/render/GraphicBuilder.js +7 -1
- package/lib/cjs/render/GraphicBuilder.js.map +1 -1
- package/lib/cjs/render/GraphicTemplate.d.ts +76 -0
- package/lib/cjs/render/GraphicTemplate.d.ts.map +1 -0
- package/lib/cjs/render/GraphicTemplate.js +41 -0
- package/lib/cjs/render/GraphicTemplate.js.map +1 -0
- package/lib/cjs/render/MockRender.d.ts +12 -2
- package/lib/cjs/render/MockRender.d.ts.map +1 -1
- package/lib/cjs/render/MockRender.js +19 -5
- package/lib/cjs/render/MockRender.js.map +1 -1
- package/lib/cjs/render/Pixel.d.ts +6 -0
- package/lib/cjs/render/Pixel.d.ts.map +1 -1
- package/lib/cjs/render/Pixel.js +2 -0
- package/lib/cjs/render/Pixel.js.map +1 -1
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts +1 -0
- package/lib/cjs/render/RealityMeshGraphicParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
- package/lib/cjs/render/RenderMemory.d.ts +2 -0
- package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
- package/lib/cjs/render/RenderMemory.js +2 -0
- package/lib/cjs/render/RenderMemory.js.map +1 -1
- package/lib/cjs/render/RenderPlan.d.ts +2 -1
- package/lib/cjs/render/RenderPlan.d.ts.map +1 -1
- package/lib/cjs/render/RenderPlan.js +2 -0
- package/lib/cjs/render/RenderPlan.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +59 -11
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +44 -6
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/RenderTarget.d.ts +1 -1
- package/lib/cjs/render/RenderTarget.d.ts.map +1 -1
- package/lib/cjs/render/RenderTarget.js.map +1 -1
- package/lib/cjs/render/webgl/BatchUniforms.d.ts +4 -0
- package/lib/cjs/render/webgl/BatchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BatchUniforms.js +18 -0
- package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/BranchState.d.ts +7 -0
- package/lib/cjs/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchState.js +4 -0
- package/lib/cjs/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.d.ts +1 -0
- package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.js +14 -1
- package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/ContourUniforms.d.ts +22 -0
- package/lib/cjs/render/webgl/ContourUniforms.d.ts.map +1 -0
- package/lib/cjs/render/webgl/ContourUniforms.js +98 -0
- package/lib/cjs/render/webgl/ContourUniforms.js.map +1 -0
- package/lib/cjs/render/webgl/Contours.d.ts +34 -0
- package/lib/cjs/render/webgl/Contours.d.ts.map +1 -0
- package/lib/cjs/render/webgl/Contours.js +127 -0
- package/lib/cjs/render/webgl/Contours.js.map +1 -0
- package/lib/cjs/render/webgl/EdgeSettings.d.ts +2 -1
- package/lib/cjs/render/webgl/EdgeSettings.d.ts.map +1 -1
- package/lib/cjs/render/webgl/EdgeSettings.js +1 -1
- package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts +2 -0
- package/lib/cjs/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +83 -69
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/GL.d.ts +2 -1
- package/lib/cjs/render/webgl/GL.d.ts.map +1 -1
- package/lib/cjs/render/webgl/GL.js +1 -0
- package/lib/cjs/render/webgl/GL.js.map +1 -1
- package/lib/cjs/render/webgl/Graphic.d.ts +9 -0
- package/lib/cjs/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Graphic.js +27 -0
- package/lib/cjs/render/webgl/Graphic.js.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts +40 -10
- package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/cjs/render/webgl/InstancedGeometry.js +99 -31
- package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/cjs/render/webgl/LineCode.d.ts.map +1 -1
- package/lib/cjs/render/webgl/LineCode.js +2 -14
- package/lib/cjs/render/webgl/LineCode.js.map +1 -1
- package/lib/cjs/render/webgl/Mesh.d.ts +9 -4
- package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Mesh.js +18 -16
- package/lib/cjs/render/webgl/Mesh.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts +5 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +7 -2
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/PointString.d.ts +5 -1
- package/lib/cjs/render/webgl/PointString.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointString.js +8 -3
- package/lib/cjs/render/webgl/PointString.js.map +1 -1
- package/lib/cjs/render/webgl/Polyline.d.ts +5 -1
- package/lib/cjs/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Polyline.js +7 -2
- package/lib/cjs/render/webgl/Polyline.js.map +1 -1
- package/lib/cjs/render/webgl/Primitive.d.ts +1 -3
- package/lib/cjs/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Primitive.js +1 -6
- package/lib/cjs/render/webgl/Primitive.js.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts +5 -1
- package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RealityMesh.js +7 -1
- package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +2 -19
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +2 -0
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +12 -3
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +15 -13
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +18 -10
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js +26 -0
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +11 -5
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +81 -13
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Target.d.ts +6 -2
- package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Target.js +24 -1
- package/lib/cjs/render/webgl/Target.js.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/TargetUniforms.js +2 -0
- package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts +2 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/cjs/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.js +1 -1
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.js +1 -1
- package/lib/cjs/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/cjs/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.js +1 -1
- package/lib/cjs/render/webgl/glsl/Contours.d.ts +4 -0
- package/lib/cjs/render/webgl/glsl/Contours.d.ts.map +1 -0
- package/lib/cjs/render/webgl/glsl/Contours.js +138 -0
- package/lib/cjs/render/webgl/glsl/Contours.js.map +1 -0
- package/lib/cjs/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/cjs/render/webgl/glsl/EDL.js +4 -4
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +28 -15
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Fragment.js +9 -9
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarClassification.js +4 -4
- package/lib/cjs/render/webgl/glsl/PointCloud.js +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +3 -3
- package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/cjs/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +5 -3
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.js +1 -1
- package/lib/cjs/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +27 -7
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +84 -68
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts +4 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/cjs/tile/ImdlGraphicsCreator.js +32 -22
- package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts +4 -0
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +2 -0
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
- package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/cjs/tile/TileTreeReference.js +3 -0
- package/lib/cjs/tile/TileTreeReference.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +1 -1
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/esm/AccuSnap.d.ts.map +1 -1
- package/lib/esm/AccuSnap.js +9 -5
- package/lib/esm/AccuSnap.js.map +1 -1
- package/lib/esm/DisplayStyleState.d.ts.map +1 -1
- package/lib/esm/DisplayStyleState.js +5 -1
- package/lib/esm/DisplayStyleState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts +7 -1
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +34 -10
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/HitDetail.d.ts +4 -0
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +3 -0
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +1 -0
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +2 -1
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/NoRenderApp.d.ts +1 -0
- package/lib/esm/NoRenderApp.d.ts.map +1 -1
- package/lib/esm/NoRenderApp.js +1 -0
- package/lib/esm/NoRenderApp.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts +0 -1
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +0 -1
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/Viewport.d.ts +25 -1
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +20 -12
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/WorkerProxy.d.ts +8 -4
- package/lib/esm/common/WorkerProxy.d.ts.map +1 -1
- package/lib/esm/common/WorkerProxy.js.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.d.ts +3 -8
- package/lib/esm/common/imdl/ImdlModel.d.ts.map +1 -1
- package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
- package/lib/esm/common/internal/Symbols.d.ts +7 -0
- package/lib/esm/common/internal/Symbols.d.ts.map +1 -1
- package/lib/esm/common/internal/Symbols.js +7 -0
- package/lib/esm/common/internal/Symbols.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts +15 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js +91 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -0
- package/lib/esm/common/internal/render/LineCode.d.ts +9 -0
- package/lib/esm/common/internal/render/LineCode.d.ts.map +1 -0
- package/lib/esm/common/internal/render/LineCode.js +27 -0
- package/lib/esm/common/internal/render/LineCode.js.map +1 -0
- package/lib/esm/common/internal/render/OvrFlags.d.ts +27 -0
- package/lib/esm/common/internal/render/OvrFlags.d.ts.map +1 -0
- package/lib/esm/common/internal/render/OvrFlags.js +9 -0
- package/lib/esm/common/internal/render/OvrFlags.js.map +1 -0
- package/lib/esm/common/internal/render/VertexTable.d.ts.map +1 -1
- package/lib/esm/common/internal/render/VertexTable.js +3 -5
- package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.d.ts +25 -1
- package/lib/esm/common/render/InstancedGraphicParams.d.ts.map +1 -1
- package/lib/esm/common/render/InstancedGraphicParams.js +58 -1
- package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
- package/lib/esm/common/render/RenderInstancesParams.d.ts +76 -0
- package/lib/esm/common/render/RenderInstancesParams.d.ts.map +1 -0
- package/lib/esm/common/render/RenderInstancesParams.js +30 -0
- package/lib/esm/common/render/RenderInstancesParams.js.map +1 -0
- package/lib/esm/common.d.ts +1 -0
- package/lib/esm/common.d.ts.map +1 -1
- package/lib/esm/common.js +1 -0
- package/lib/esm/common.js.map +1 -1
- package/lib/esm/core-frontend.d.ts +1 -0
- package/lib/esm/core-frontend.d.ts.map +1 -1
- package/lib/esm/core-frontend.js +1 -0
- package/lib/esm/core-frontend.js.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts +4 -1
- package/lib/esm/internal/render/PrimitiveBuilder.d.ts.map +1 -1
- package/lib/esm/internal/render/PrimitiveBuilder.js +82 -35
- package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
- package/lib/esm/internal/render/RenderGeometry.d.ts +20 -0
- package/lib/esm/internal/render/RenderGeometry.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderGeometry.js +9 -0
- package/lib/esm/internal/render/RenderGeometry.js.map +1 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts +24 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.d.ts.map +1 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js +64 -0
- package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -0
- package/lib/esm/render/GraphicBranch.d.ts +10 -1
- package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
- package/lib/esm/render/GraphicBranch.js.map +1 -1
- package/lib/esm/render/GraphicBuilder.d.ts +17 -3
- package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
- package/lib/esm/render/GraphicBuilder.js +7 -1
- package/lib/esm/render/GraphicBuilder.js.map +1 -1
- package/lib/esm/render/GraphicTemplate.d.ts +76 -0
- package/lib/esm/render/GraphicTemplate.d.ts.map +1 -0
- package/lib/esm/render/GraphicTemplate.js +37 -0
- package/lib/esm/render/GraphicTemplate.js.map +1 -0
- package/lib/esm/render/MockRender.d.ts +12 -2
- package/lib/esm/render/MockRender.d.ts.map +1 -1
- package/lib/esm/render/MockRender.js +19 -5
- package/lib/esm/render/MockRender.js.map +1 -1
- package/lib/esm/render/Pixel.d.ts +6 -0
- package/lib/esm/render/Pixel.d.ts.map +1 -1
- package/lib/esm/render/Pixel.js +2 -0
- package/lib/esm/render/Pixel.js.map +1 -1
- package/lib/esm/render/RealityMeshGraphicParams.d.ts +1 -0
- package/lib/esm/render/RealityMeshGraphicParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
- package/lib/esm/render/RenderMemory.d.ts +2 -0
- package/lib/esm/render/RenderMemory.d.ts.map +1 -1
- package/lib/esm/render/RenderMemory.js +2 -0
- package/lib/esm/render/RenderMemory.js.map +1 -1
- package/lib/esm/render/RenderPlan.d.ts +2 -1
- package/lib/esm/render/RenderPlan.d.ts.map +1 -1
- package/lib/esm/render/RenderPlan.js +2 -0
- package/lib/esm/render/RenderPlan.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +59 -11
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +46 -8
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/RenderTarget.d.ts +1 -1
- package/lib/esm/render/RenderTarget.d.ts.map +1 -1
- package/lib/esm/render/RenderTarget.js.map +1 -1
- package/lib/esm/render/webgl/BatchUniforms.d.ts +4 -0
- package/lib/esm/render/webgl/BatchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BatchUniforms.js +18 -0
- package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/BranchState.d.ts +7 -0
- package/lib/esm/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchState.js +4 -0
- package/lib/esm/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.d.ts +1 -0
- package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.js +14 -1
- package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/ContourUniforms.d.ts +22 -0
- package/lib/esm/render/webgl/ContourUniforms.d.ts.map +1 -0
- package/lib/esm/render/webgl/ContourUniforms.js +94 -0
- package/lib/esm/render/webgl/ContourUniforms.js.map +1 -0
- package/lib/esm/render/webgl/Contours.d.ts +34 -0
- package/lib/esm/render/webgl/Contours.d.ts.map +1 -0
- package/lib/esm/render/webgl/Contours.js +123 -0
- package/lib/esm/render/webgl/Contours.js.map +1 -0
- package/lib/esm/render/webgl/EdgeSettings.d.ts +2 -1
- package/lib/esm/render/webgl/EdgeSettings.d.ts.map +1 -1
- package/lib/esm/render/webgl/EdgeSettings.js +1 -1
- package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.d.ts +2 -0
- package/lib/esm/render/webgl/FeatureOverrides.d.ts.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +83 -69
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/GL.d.ts +2 -1
- package/lib/esm/render/webgl/GL.d.ts.map +1 -1
- package/lib/esm/render/webgl/GL.js +1 -0
- package/lib/esm/render/webgl/GL.js.map +1 -1
- package/lib/esm/render/webgl/Graphic.d.ts +9 -0
- package/lib/esm/render/webgl/Graphic.d.ts.map +1 -1
- package/lib/esm/render/webgl/Graphic.js +27 -0
- package/lib/esm/render/webgl/Graphic.js.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.d.ts +40 -10
- package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
- package/lib/esm/render/webgl/InstancedGeometry.js +97 -30
- package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
- package/lib/esm/render/webgl/LineCode.d.ts.map +1 -1
- package/lib/esm/render/webgl/LineCode.js +2 -14
- package/lib/esm/render/webgl/LineCode.js.map +1 -1
- package/lib/esm/render/webgl/Mesh.d.ts +9 -4
- package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/Mesh.js +19 -17
- package/lib/esm/render/webgl/Mesh.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts +5 -1
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +7 -2
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/PointString.d.ts +5 -1
- package/lib/esm/render/webgl/PointString.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointString.js +8 -3
- package/lib/esm/render/webgl/PointString.js.map +1 -1
- package/lib/esm/render/webgl/Polyline.d.ts +5 -1
- package/lib/esm/render/webgl/Polyline.d.ts.map +1 -1
- package/lib/esm/render/webgl/Polyline.js +7 -2
- package/lib/esm/render/webgl/Polyline.js.map +1 -1
- package/lib/esm/render/webgl/Primitive.d.ts +1 -3
- package/lib/esm/render/webgl/Primitive.d.ts.map +1 -1
- package/lib/esm/render/webgl/Primitive.js +2 -7
- package/lib/esm/render/webgl/Primitive.js.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts +5 -1
- package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/RealityMesh.js +7 -1
- package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +2 -19
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +2 -0
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +12 -3
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +15 -13
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +18 -10
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js +26 -0
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +11 -5
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +82 -14
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Target.d.ts +6 -2
- package/lib/esm/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/render/webgl/Target.js +24 -1
- package/lib/esm/render/webgl/Target.js.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.d.ts +2 -0
- package/lib/esm/render/webgl/TargetUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/TargetUniforms.js +2 -0
- package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts +2 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/esm/render/webgl/glsl/Atmosphere.js +1 -1
- package/lib/esm/render/webgl/glsl/Blur.js +1 -1
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +1 -1
- package/lib/esm/render/webgl/glsl/ClearTranslucent.js +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.js +1 -1
- package/lib/esm/render/webgl/glsl/Combine3Textures.js +1 -1
- package/lib/esm/render/webgl/glsl/CombineTextures.js +1 -1
- package/lib/esm/render/webgl/glsl/Composite.js +1 -1
- package/lib/esm/render/webgl/glsl/Contours.d.ts +4 -0
- package/lib/esm/render/webgl/glsl/Contours.d.ts.map +1 -0
- package/lib/esm/render/webgl/glsl/Contours.js +134 -0
- package/lib/esm/render/webgl/glsl/Contours.js.map +1 -0
- package/lib/esm/render/webgl/glsl/CopyColor.js +1 -1
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.js +5 -5
- package/lib/esm/render/webgl/glsl/EDL.js +4 -4
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts +2 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +27 -15
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Fragment.js +9 -9
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +1 -1
- package/lib/esm/render/webgl/glsl/PlanarClassification.js +4 -4
- package/lib/esm/render/webgl/glsl/PointCloud.js +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -3
- package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
- package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
- package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +5 -3
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.js +1 -1
- package/lib/esm/render/webgl/glsl/Wiremesh.js +1 -1
- package/lib/esm/tile/GltfReader.d.ts +27 -7
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +82 -67
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts +4 -1
- package/lib/esm/tile/ImdlGraphicsCreator.d.ts.map +1 -1
- package/lib/esm/tile/ImdlGraphicsCreator.js +31 -22
- package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts +4 -0
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +2 -0
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/TileTreeReference.d.ts +2 -0
- package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
- package/lib/esm/tile/TileTreeReference.js +3 -0
- package/lib/esm/tile/TileTreeReference.js.map +1 -1
- package/lib/esm/tile/map/MapTile.js +1 -1
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +18 -18
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addApplyContours = void 0;
|
|
4
|
+
/*---------------------------------------------------------------------------------------------
|
|
5
|
+
* Copyright (c) Bentley Systems, Incorporated. All rights reserved.
|
|
6
|
+
* See LICENSE.md in the project root for license terms and full copyright notice.
|
|
7
|
+
*--------------------------------------------------------------------------------------------*/
|
|
8
|
+
/** @packageDocumentation
|
|
9
|
+
* @module WebGL
|
|
10
|
+
*/
|
|
11
|
+
const core_common_1 = require("@itwin/core-common");
|
|
12
|
+
const RenderFlags_1 = require("../RenderFlags");
|
|
13
|
+
const FeatureSymbology_1 = require("./FeatureSymbology");
|
|
14
|
+
const Vertex_1 = require("./Vertex");
|
|
15
|
+
const computeContourNdx = `
|
|
16
|
+
if (u_contourLUTWidth == 0u)
|
|
17
|
+
return 15.0;
|
|
18
|
+
uint lutIndex = uint(getFeatureIndex());
|
|
19
|
+
bool odd = bool(lutIndex & 1u);
|
|
20
|
+
lutIndex /= 2u;
|
|
21
|
+
uint byteSel = lutIndex & 0x3u;
|
|
22
|
+
lutIndex /= 4u;
|
|
23
|
+
ivec2 coords = ivec2(lutIndex % u_contourLUTWidth, lutIndex / u_contourLUTWidth);
|
|
24
|
+
uvec4 contourNdx4 = uvec4(texelFetch(u_contourLUT, coords, 0) * 255.0 + 0.5);
|
|
25
|
+
uvec2 contourNdx2 = bool(byteSel & 2u) ? contourNdx4.ba : contourNdx4.rg;
|
|
26
|
+
uint contourNdx = bool(byteSel & 1u) ? contourNdx2.g : contourNdx2.r;
|
|
27
|
+
return float(odd ? contourNdx >> 4u : contourNdx & 0xFu);
|
|
28
|
+
`;
|
|
29
|
+
const unpack2BytesVec4 = `
|
|
30
|
+
vec4 unpack2BytesVec4(vec4 f, bool upper) {
|
|
31
|
+
f = floor(f + 0.5);
|
|
32
|
+
vec4 outUpper = floor(f / 256.0);
|
|
33
|
+
vec4 outLower = floor(f - outUpper * 256.0);
|
|
34
|
+
return upper ? outUpper : outLower;
|
|
35
|
+
}
|
|
36
|
+
`;
|
|
37
|
+
const unpackAndNormalize2BytesVec4 = `
|
|
38
|
+
vec4 unpackAndNormalize2BytesVec4(vec4 f, bool upper) {
|
|
39
|
+
return unpack2BytesVec4(f, upper) / 255.0;
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
const applyContours = `
|
|
43
|
+
int contourNdx = int(v_contourNdx + 0.5);
|
|
44
|
+
if (contourNdx > 14) // 15 => no contours
|
|
45
|
+
return baseColor;
|
|
46
|
+
|
|
47
|
+
const int maxDefs = ${core_common_1.ContourDisplay.maxContourGroups}; // max number of contour definitions allowed, have to change index arrays if this changes
|
|
48
|
+
int contourNdxC = clamp(contourNdx, 0, maxDefs - 1);
|
|
49
|
+
|
|
50
|
+
bool even = (contourNdxC & 1) == 0;
|
|
51
|
+
vec4 rgbfp = u_contourDefs[even ? contourNdxC * 3 / 2 : (contourNdxC - 1) * 3 / 2 + 2];
|
|
52
|
+
vec4 intervalsPair = u_contourDefs[(contourNdxC / 2) * 3 + 1];
|
|
53
|
+
// intervals.r => minor interval distance, intervals.g => major index count
|
|
54
|
+
vec2 intervals = even ? intervalsPair.rg : intervalsPair.ba;
|
|
55
|
+
|
|
56
|
+
float coord = v_height / intervals.r;
|
|
57
|
+
// determine if this is in the vicinity of a major contour line (1/2 an interval either way, which is one limit of drawing width)
|
|
58
|
+
bool maj = (fract((abs(coord) + 0.5) / intervals.g) < (1.0 / intervals.g));
|
|
59
|
+
vec4 rgbf = unpackAndNormalize2BytesVec4(rgbfp, maj);
|
|
60
|
+
// rgbf.a => (4-bit linecode / 4-bit weight) maj/min, where the 4-bit weight is a 3-bit weight value with one fraction bit and a 1.5 offset.
|
|
61
|
+
// This gives a weight range of 1.5 to 9 in 0.5 increments.
|
|
62
|
+
// NB: the showGeometry bit flag is stuck in at bit 16 of this, so the major line code has an extra bit in it that needs to be masked out
|
|
63
|
+
int lineCodeWt = int((rgbf.a * 255.0) + 0.5);
|
|
64
|
+
// first * 0.5 is for fractional part of width, then have to add 1.0 for offset, then another 1.0 for actual width bias
|
|
65
|
+
float lineRadius = (float(lineCodeWt & 0xf) * 0.5 + 2.0) * 0.5;
|
|
66
|
+
|
|
67
|
+
// abs(fract(coord - 0.5) - 0.5) will produce 0.0 at the contour line, and 0.5 at the mid-point between contour lines
|
|
68
|
+
// fwidth(coord) is sum of absolute diffs in coord in adjacent pixels
|
|
69
|
+
float line = abs(fract(coord - 0.5) - 0.5) / fwidth(coord);
|
|
70
|
+
// If line is 0 (like at contour line), contourAlpha = lineRadius, so will use draw in contour color
|
|
71
|
+
// If line >= lineRadius, contourAlpha = 0, so won't show contour
|
|
72
|
+
float contourAlpha = lineRadius - min(line, lineRadius);
|
|
73
|
+
|
|
74
|
+
// figure out which direction line is going, to know which screen pattern offset to use
|
|
75
|
+
float dx = dFdx(contourAlpha);
|
|
76
|
+
float dy = dFdy(contourAlpha);
|
|
77
|
+
|
|
78
|
+
const float patLength = 32.0;
|
|
79
|
+
uint patterns[10] = uint[](0xffffffffu, 0x80808080u, 0xf8f8f8f8u, 0xffe0ffe0u, 0xfe10fe10u, 0xe0e0e0e0u, 0xf888f888u, 0xff18ff18u, 0xccccccccu, 0x00000001u);
|
|
80
|
+
|
|
81
|
+
float offset = trunc((abs(dx) > abs(dy)) ? gl_FragCoord.y : gl_FragCoord.x);
|
|
82
|
+
offset = mod(offset, patLength);
|
|
83
|
+
uint msk = 1u << uint(offset);
|
|
84
|
+
contourAlpha *= (patterns[(lineCodeWt / 16) & 0xf] & msk) > 0u ? 1.0 : 0.0;
|
|
85
|
+
contourAlpha = min(contourAlpha, 1.0);
|
|
86
|
+
if (rgbfp.a / 65536.0 < 0.5) { // showGeometry == 0
|
|
87
|
+
if (contourAlpha < 0.5)
|
|
88
|
+
discard;
|
|
89
|
+
return vec4(rgbf.rgb, 1.0);
|
|
90
|
+
}
|
|
91
|
+
// set contour opaque even if base color is transparent
|
|
92
|
+
float alpha = contourAlpha >= 0.5 ? 1.0 : baseColor.a;
|
|
93
|
+
return vec4(mix(baseColor.rgb, rgbf.rgb, contourAlpha), alpha);
|
|
94
|
+
`;
|
|
95
|
+
/** @internal */
|
|
96
|
+
function addApplyContours(builder) {
|
|
97
|
+
const modelPos = builder.vert.usesInstancedGeometry ? "(g_instancedRtcMatrix * rawPosition)" : "rawPosition";
|
|
98
|
+
const computeWorldHeight = `
|
|
99
|
+
float computeWorldHeight(vec4 rawPosition) {
|
|
100
|
+
float height = (u_modelToWorldC * ${modelPos}).z;
|
|
101
|
+
// TODO: apply ECEF correction to height
|
|
102
|
+
return height;
|
|
103
|
+
}
|
|
104
|
+
`;
|
|
105
|
+
(0, FeatureSymbology_1.addFeatureIndex)(builder.vert);
|
|
106
|
+
builder.addFunctionComputedVarying("v_contourNdx", 2 /* VariableType.Float */, "computeContourNdx", computeContourNdx);
|
|
107
|
+
builder.addFunctionComputedVaryingWithArgs("v_height", 2 /* VariableType.Float */, "computeWorldHeight(rawPosition)", computeWorldHeight);
|
|
108
|
+
if (builder.vert.usesInstancedGeometry)
|
|
109
|
+
(0, Vertex_1.addInstancedRtcMatrix)(builder.vert);
|
|
110
|
+
builder.vert.addUniform("u_contourLUT", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
111
|
+
prog.addGraphicUniform("u_contourLUT", (uniform, params) => {
|
|
112
|
+
// set this uniform here so that it won't cause problems (e.g.: loopback) if it does not end up being set by bindContourLUT call
|
|
113
|
+
uniform.setUniform1i(RenderFlags_1.TextureUnit.Contours - RenderFlags_1.TextureUnit.Zero);
|
|
114
|
+
params.target.uniforms.batch.bindContourLUT(uniform);
|
|
115
|
+
});
|
|
116
|
+
});
|
|
117
|
+
builder.vert.addUniform("u_contourLUTWidth", 10 /* VariableType.Uint */, (prog) => {
|
|
118
|
+
prog.addGraphicUniform("u_contourLUTWidth", (uniform, params) => {
|
|
119
|
+
params.target.uniforms.batch.bindContourLUTWidth(uniform);
|
|
120
|
+
});
|
|
121
|
+
});
|
|
122
|
+
builder.vert.addUniform("u_modelToWorldC", 7 /* VariableType.Mat4 */, (prog) => {
|
|
123
|
+
prog.addGraphicUniform("u_modelToWorldC", (uniform, params) => {
|
|
124
|
+
params.target.uniforms.branch.bindModelToWorldTransform(uniform, params.geometry, false);
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
const contourDefsSize = 8;
|
|
128
|
+
builder.frag.addUniformArray("u_contourDefs", 5 /* VariableType.Vec4 */, contourDefsSize, (prog) => {
|
|
129
|
+
prog.addGraphicUniform("u_contourDefs", (uniform, params) => {
|
|
130
|
+
params.target.uniforms.contours.bindcontourDefs(uniform);
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
builder.frag.addFunction(unpack2BytesVec4);
|
|
134
|
+
builder.frag.addFunction(unpackAndNormalize2BytesVec4);
|
|
135
|
+
builder.frag.set(11 /* FragmentShaderComponent.ApplyContours */, applyContours);
|
|
136
|
+
}
|
|
137
|
+
exports.addApplyContours = addApplyContours;
|
|
138
|
+
//# sourceMappingURL=Contours.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Contours.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Contours.ts"],"names":[],"mappings":";;;AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,oDAAoD;AACpD,gDAA6C;AAI7C,yDAAqD;AACrD,qCAAiD;AAEjD,MAAM,iBAAiB,GAAG;;;;;;;;;;;;;CAazB,CAAC;AAEF,MAAM,gBAAgB,GAAG;;;;;;;CAOxB,CAAC;AAEF,MAAM,4BAA4B,GAAG;;;;CAIpC,CAAC;AAEF,MAAM,aAAa,GAAG;;;;;wBAKE,4BAAc,CAAC,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+CtD,CAAC;AAEF,gBAAgB;AAChB,SAAgB,gBAAgB,CAAC,OAAuB;IACtD,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,aAAa,CAAC;IAE7G,MAAM,kBAAkB,GAAG;;sCAES,QAAQ;;;;CAI7C,CAAC;IAEA,IAAA,kCAAe,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAE9B,OAAO,CAAC,0BAA0B,CAAC,cAAc,8BAAsB,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;IAC/G,OAAO,CAAC,kCAAkC,CAAC,UAAU,8BAAsB,iCAAiC,EAAE,kBAAkB,CAAC,CAAC;IAElI,IAAI,OAAO,CAAC,IAAI,CAAC,qBAAqB;QACpC,IAAA,8BAAqB,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEtC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,kCAA0B,CAAC,IAAI,EAAE,EAAE;QACvE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACzD,gIAAgI;YAChI,OAAO,CAAC,YAAY,CAAC,yBAAW,CAAC,QAAQ,GAAG,yBAAW,CAAC,IAAI,CAAC,CAAC;YAC9D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,8BAAqB,CAAC,IAAI,EAAE,EAAE;QACvE,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC9D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,iBAAiB,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACrE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,yBAAyB,CAAC,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,CAAC,CAAC;IAC1B,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,eAAe,6BAAqB,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE;QACzF,IAAI,CAAC,iBAAiB,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1D,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;IAC3C,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,4BAA4B,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,GAAG,iDAAwC,aAAa,CAAC,CAAC;AACzE,CAAC;AAjDD,4CAiDC","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\nimport { ContourDisplay } from \"@itwin/core-common\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport {\r\n FragmentShaderComponent, ProgramBuilder, VariableType,\r\n} from \"../ShaderBuilder\";\r\nimport { addFeatureIndex } from \"./FeatureSymbology\";\r\nimport { addInstancedRtcMatrix } from \"./Vertex\";\r\n\r\nconst computeContourNdx = `\r\n if (u_contourLUTWidth == 0u)\r\n return 15.0;\r\n uint lutIndex = uint(getFeatureIndex());\r\n bool odd = bool(lutIndex & 1u);\r\n lutIndex /= 2u;\r\n uint byteSel = lutIndex & 0x3u;\r\n lutIndex /= 4u;\r\n ivec2 coords = ivec2(lutIndex % u_contourLUTWidth, lutIndex / u_contourLUTWidth);\r\n uvec4 contourNdx4 = uvec4(texelFetch(u_contourLUT, coords, 0) * 255.0 + 0.5);\r\n uvec2 contourNdx2 = bool(byteSel & 2u) ? contourNdx4.ba : contourNdx4.rg;\r\n uint contourNdx = bool(byteSel & 1u) ? contourNdx2.g : contourNdx2.r;\r\n return float(odd ? contourNdx >> 4u : contourNdx & 0xFu);\r\n`;\r\n\r\nconst unpack2BytesVec4 = `\r\nvec4 unpack2BytesVec4(vec4 f, bool upper) {\r\n f = floor(f + 0.5);\r\n vec4 outUpper = floor(f / 256.0);\r\n vec4 outLower = floor(f - outUpper * 256.0);\r\n return upper ? outUpper : outLower;\r\n}\r\n`;\r\n\r\nconst unpackAndNormalize2BytesVec4 = `\r\nvec4 unpackAndNormalize2BytesVec4(vec4 f, bool upper) {\r\n return unpack2BytesVec4(f, upper) / 255.0;\r\n}\r\n`;\r\n\r\nconst applyContours = `\r\n int contourNdx = int(v_contourNdx + 0.5);\r\n if (contourNdx > 14) // 15 => no contours\r\n return baseColor;\r\n\r\n const int maxDefs = ${ContourDisplay.maxContourGroups}; // max number of contour definitions allowed, have to change index arrays if this changes\r\n int contourNdxC = clamp(contourNdx, 0, maxDefs - 1);\r\n\r\n bool even = (contourNdxC & 1) == 0;\r\n vec4 rgbfp = u_contourDefs[even ? contourNdxC * 3 / 2 : (contourNdxC - 1) * 3 / 2 + 2];\r\n vec4 intervalsPair = u_contourDefs[(contourNdxC / 2) * 3 + 1];\r\n // intervals.r => minor interval distance, intervals.g => major index count\r\n vec2 intervals = even ? intervalsPair.rg : intervalsPair.ba;\r\n\r\n float coord = v_height / intervals.r;\r\n // determine if this is in the vicinity of a major contour line (1/2 an interval either way, which is one limit of drawing width)\r\n bool maj = (fract((abs(coord) + 0.5) / intervals.g) < (1.0 / intervals.g));\r\n vec4 rgbf = unpackAndNormalize2BytesVec4(rgbfp, maj);\r\n // rgbf.a => (4-bit linecode / 4-bit weight) maj/min, where the 4-bit weight is a 3-bit weight value with one fraction bit and a 1.5 offset.\r\n // This gives a weight range of 1.5 to 9 in 0.5 increments.\r\n // NB: the showGeometry bit flag is stuck in at bit 16 of this, so the major line code has an extra bit in it that needs to be masked out\r\n int lineCodeWt = int((rgbf.a * 255.0) + 0.5);\r\n // first * 0.5 is for fractional part of width, then have to add 1.0 for offset, then another 1.0 for actual width bias\r\n float lineRadius = (float(lineCodeWt & 0xf) * 0.5 + 2.0) * 0.5;\r\n\r\n // abs(fract(coord - 0.5) - 0.5) will produce 0.0 at the contour line, and 0.5 at the mid-point between contour lines\r\n // fwidth(coord) is sum of absolute diffs in coord in adjacent pixels\r\n float line = abs(fract(coord - 0.5) - 0.5) / fwidth(coord);\r\n // If line is 0 (like at contour line), contourAlpha = lineRadius, so will use draw in contour color\r\n\t// If line >= lineRadius, contourAlpha = 0, so won't show contour\r\n float contourAlpha = lineRadius - min(line, lineRadius);\r\n\r\n // figure out which direction line is going, to know which screen pattern offset to use\r\n float dx = dFdx(contourAlpha);\r\n float dy = dFdy(contourAlpha);\r\n\r\n const float patLength = 32.0;\r\n uint patterns[10] = uint[](0xffffffffu, 0x80808080u, 0xf8f8f8f8u, 0xffe0ffe0u, 0xfe10fe10u, 0xe0e0e0e0u, 0xf888f888u, 0xff18ff18u, 0xccccccccu, 0x00000001u);\r\n\r\n float offset = trunc((abs(dx) > abs(dy)) ? gl_FragCoord.y : gl_FragCoord.x);\r\n offset = mod(offset, patLength);\r\n uint msk = 1u << uint(offset);\r\n contourAlpha *= (patterns[(lineCodeWt / 16) & 0xf] & msk) > 0u ? 1.0 : 0.0;\r\n contourAlpha = min(contourAlpha, 1.0);\r\n if (rgbfp.a / 65536.0 < 0.5) { // showGeometry == 0\r\n if (contourAlpha < 0.5)\r\n discard;\r\n return vec4(rgbf.rgb, 1.0);\r\n }\r\n // set contour opaque even if base color is transparent\r\n float alpha = contourAlpha >= 0.5 ? 1.0 : baseColor.a;\r\n return vec4(mix(baseColor.rgb, rgbf.rgb, contourAlpha), alpha);\r\n`;\r\n\r\n/** @internal */\r\nexport function addApplyContours(builder: ProgramBuilder) {\r\n const modelPos = builder.vert.usesInstancedGeometry ? \"(g_instancedRtcMatrix * rawPosition)\" : \"rawPosition\";\r\n\r\n const computeWorldHeight = `\r\nfloat computeWorldHeight(vec4 rawPosition) {\r\n float height = (u_modelToWorldC * ${modelPos}).z;\r\n // TODO: apply ECEF correction to height\r\n return height;\r\n}\r\n`;\r\n\r\n addFeatureIndex(builder.vert);\r\n\r\n builder.addFunctionComputedVarying(\"v_contourNdx\", VariableType.Float, \"computeContourNdx\", computeContourNdx);\r\n builder.addFunctionComputedVaryingWithArgs(\"v_height\", VariableType.Float, \"computeWorldHeight(rawPosition)\", computeWorldHeight);\r\n\r\n if (builder.vert.usesInstancedGeometry)\r\n addInstancedRtcMatrix(builder.vert);\r\n\r\n builder.vert.addUniform(\"u_contourLUT\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_contourLUT\", (uniform, params) => {\r\n // set this uniform here so that it won't cause problems (e.g.: loopback) if it does not end up being set by bindContourLUT call\r\n uniform.setUniform1i(TextureUnit.Contours - TextureUnit.Zero);\r\n params.target.uniforms.batch.bindContourLUT(uniform);\r\n });\r\n });\r\n\r\n builder.vert.addUniform(\"u_contourLUTWidth\", VariableType.Uint, (prog) => {\r\n prog.addGraphicUniform(\"u_contourLUTWidth\", (uniform, params) => {\r\n params.target.uniforms.batch.bindContourLUTWidth(uniform);\r\n });\r\n });\r\n\r\n builder.vert.addUniform(\"u_modelToWorldC\", VariableType.Mat4, (prog) => {\r\n prog.addGraphicUniform(\"u_modelToWorldC\", (uniform, params) => {\r\n params.target.uniforms.branch.bindModelToWorldTransform(uniform, params.geometry, false);\r\n });\r\n });\r\n\r\n const contourDefsSize = 8;\r\n builder.frag.addUniformArray(\"u_contourDefs\", VariableType.Vec4, contourDefsSize, (prog) => {\r\n prog.addGraphicUniform(\"u_contourDefs\", (uniform, params) => {\r\n params.target.uniforms.contours.bindcontourDefs(uniform);\r\n });\r\n });\r\n\r\n builder.frag.addFunction(unpack2BytesVec4);\r\n builder.frag.addFunction(unpackAndNormalize2BytesVec4);\r\n builder.frag.set(FragmentShaderComponent.ApplyContours, applyContours);\r\n}\r\n"]}
|
|
@@ -27,7 +27,7 @@ function createCopyColorProgram(context, copyAlpha = true) {
|
|
|
27
27
|
const builder = (0, ViewportQuad_1.createViewportQuadBuilder)(true);
|
|
28
28
|
const frag = builder.frag;
|
|
29
29
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, copyAlpha ? computeColor : computeColorNoAlpha);
|
|
30
|
-
frag.set(
|
|
30
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
31
31
|
frag.addUniform("u_color", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
32
32
|
prog.addGraphicUniform("u_color", (uniform, params) => {
|
|
33
33
|
const geom = params.geometry;
|
|
@@ -32,7 +32,7 @@ function createCopyPickBuffersProgram(context) {
|
|
|
32
32
|
});
|
|
33
33
|
}, 3 /* VariablePrecision.High */);
|
|
34
34
|
frag.addDrawBuffersExtension(2);
|
|
35
|
-
frag.set(
|
|
35
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, assignFragData);
|
|
36
36
|
builder.vert.headerComment = "//!V! CopyPickBuffers";
|
|
37
37
|
builder.frag.headerComment = "//!F! CopyPickBuffers";
|
|
38
38
|
return builder.buildProgram(context);
|
|
@@ -55,7 +55,7 @@ function createVolClassColorUsingStencilProgram(context) {
|
|
|
55
55
|
const builder = (0, ViewportQuad_1.createViewportQuadBuilder)(false);
|
|
56
56
|
const frag = builder.frag;
|
|
57
57
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computehiliteColor);
|
|
58
|
-
frag.set(
|
|
58
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
59
59
|
frag.addUniform("u_hilite_color", 5 /* VariableType.Vec4 */, (prog) => {
|
|
60
60
|
prog.addGraphicUniform("u_hilite_color", (uniform, params) => {
|
|
61
61
|
const useLighting = params.geometry.getFlashMode(params);
|
|
@@ -79,7 +79,7 @@ function createVolClassCopyZProgram(context) {
|
|
|
79
79
|
builder.addInlineComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, computeTexCoord); // TODO: I think this is not necessary because it's already added from the create above
|
|
80
80
|
const frag = builder.frag;
|
|
81
81
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeSetBlendColor);
|
|
82
|
-
frag.set(
|
|
82
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
83
83
|
frag.addUniform("u_blend_color", 5 /* VariableType.Vec4 */, (prog) => {
|
|
84
84
|
prog.addGraphicUniform("u_blend_color", (uniform, _params) => {
|
|
85
85
|
scratchColor.set(0.0, 0.0, 0.0, 0.0);
|
|
@@ -92,7 +92,7 @@ function createVolClassCopyZProgram(context) {
|
|
|
92
92
|
Texture_1.Texture2DHandle.bindSampler(uniform, geom.texture, RenderFlags_1.TextureUnit.Zero);
|
|
93
93
|
});
|
|
94
94
|
});
|
|
95
|
-
frag.set(
|
|
95
|
+
frag.set(19 /* FragmentShaderComponent.FinalizeDepth */, depthFromTexture);
|
|
96
96
|
builder.vert.headerComment = "//!V! VolClassCopyZ";
|
|
97
97
|
builder.frag.headerComment = "//!F! VolClassCopyZ";
|
|
98
98
|
return builder.buildProgram(context);
|
|
@@ -106,7 +106,7 @@ function createVolClassSetBlendProgram(context) {
|
|
|
106
106
|
addBoundaryTypeConstants(frag);
|
|
107
107
|
frag.set(0 /* FragmentShaderComponent.CheckForEarlyDiscard */, checkDiscardBackgroundByZ);
|
|
108
108
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeSetBlendColor);
|
|
109
|
-
frag.set(
|
|
109
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
110
110
|
frag.addUniform("u_boundaryType", 1 /* VariableType.Int */, (prog) => {
|
|
111
111
|
prog.addGraphicUniform("u_boundaryType", (uniform, params) => {
|
|
112
112
|
const geom = params.geometry;
|
|
@@ -150,7 +150,7 @@ function createVolClassBlendProgram(context) {
|
|
|
150
150
|
builder.addInlineComputedVarying("v_texCoord", 3 /* VariableType.Vec2 */, computeTexCoord);
|
|
151
151
|
const frag = builder.frag;
|
|
152
152
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeBlendTextureColor);
|
|
153
|
-
frag.set(
|
|
153
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
154
154
|
frag.addUniform("u_blendTexture", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
155
155
|
prog.addGraphicUniform("u_blendTexture", (uniform, params) => {
|
|
156
156
|
const geom = params.geometry;
|
|
@@ -48,7 +48,7 @@ function createEDLCalcBasicProgram(context) {
|
|
|
48
48
|
const builder = (0, ViewportQuad_1.createViewportQuadBuilder)(true);
|
|
49
49
|
const frag = builder.frag;
|
|
50
50
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, calcBasicEDL);
|
|
51
|
-
frag.set(
|
|
51
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
52
52
|
frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
|
|
53
53
|
prog.addGraphicUniform("u_texInfo", (uniform, params) => {
|
|
54
54
|
const geom = params.geometry;
|
|
@@ -115,7 +115,7 @@ function createEDLCalcFullProgram(context) {
|
|
|
115
115
|
const builder = (0, ViewportQuad_1.createViewportQuadBuilder)(true);
|
|
116
116
|
const frag = builder.frag;
|
|
117
117
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, calcFullEDL);
|
|
118
|
-
frag.set(
|
|
118
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
119
119
|
frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
|
|
120
120
|
prog.addGraphicUniform("u_texInfo", (uniform, params) => {
|
|
121
121
|
const geom = params.geometry;
|
|
@@ -187,7 +187,7 @@ function createEDLFilterProgram(context) {
|
|
|
187
187
|
const builder = (0, ViewportQuad_1.createViewportQuadBuilder)(true);
|
|
188
188
|
const frag = builder.frag;
|
|
189
189
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, filterEDL);
|
|
190
|
-
frag.set(
|
|
190
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
191
191
|
frag.addUniform("u_texInfo", 4 /* VariableType.Vec3 */, (prog) => {
|
|
192
192
|
prog.addGraphicUniform("u_texInfo", (uniform, params) => {
|
|
193
193
|
const geom = params.geometry;
|
|
@@ -227,7 +227,7 @@ function createEDLMixProgram(context) {
|
|
|
227
227
|
const builder = (0, ViewportQuad_1.createViewportQuadBuilder)(true);
|
|
228
228
|
const frag = builder.frag;
|
|
229
229
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, mixEDL);
|
|
230
|
-
frag.set(
|
|
230
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
231
231
|
frag.addUniform("u_colorTexture1", 8 /* VariableType.Sampler2D */, (prog) => {
|
|
232
232
|
prog.addGraphicUniform("u_colorTexture1", (uniform, params) => {
|
|
233
233
|
const geom = params.geometry;
|
|
@@ -66,7 +66,7 @@ function createEVSMProgram(context) {
|
|
|
66
66
|
(0, SolarShadowMapping_1.addEvsmExponent)(frag);
|
|
67
67
|
frag.addFunction(SolarShadowMapping_1.warpDepth);
|
|
68
68
|
frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeEVSM);
|
|
69
|
-
frag.set(
|
|
69
|
+
frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
70
70
|
builder.vert.headerComment = "//!V! EVSMFromDepth";
|
|
71
71
|
builder.frag.headerComment = "//!F! EVSMFromDepth";
|
|
72
72
|
return builder.buildProgram(context);
|
|
@@ -241,7 +241,7 @@ function createBase(type, instanced, isAnimated, positionType) {
|
|
|
241
241
|
(0, FeatureSymbology_1.addRenderOrder)(vert);
|
|
242
242
|
(0, FeatureSymbology_1.addRenderOrderConstants)(vert);
|
|
243
243
|
builder.addInlineComputedVarying("v_renderOrder", 2 /* VariableType.Float */, computeIndexedRenderOrder);
|
|
244
|
-
builder.frag.set(
|
|
244
|
+
builder.frag.set(21 /* FragmentShaderComponent.OverrideRenderOrder */, "return v_renderOrder;");
|
|
245
245
|
}
|
|
246
246
|
else {
|
|
247
247
|
vert.addInitializer(decodeEndPointAndQuadIndices);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module WebGL
|
|
3
3
|
*/
|
|
4
|
-
import { FragmentShaderBuilder, ProgramBuilder, ShaderBuilder } from "../ShaderBuilder";
|
|
4
|
+
import { FragmentShaderBuilder, ProgramBuilder, ShaderBuilder, VertexShaderBuilder } from "../ShaderBuilder";
|
|
5
5
|
import { FeatureMode, TechniqueFlags } from "../TechniqueFlags";
|
|
6
6
|
/** @internal */
|
|
7
7
|
export declare const enum FeatureSymbologyOptions {
|
|
@@ -17,6 +17,7 @@ export declare const enum FeatureSymbologyOptions {
|
|
|
17
17
|
}
|
|
18
18
|
/** @internal */
|
|
19
19
|
export declare function addOvrFlagConstants(builder: ShaderBuilder): void;
|
|
20
|
+
export declare function addFeatureIndex(vert: VertexShaderBuilder): void;
|
|
20
21
|
export declare function addMaxAlpha(builder: ShaderBuilder): void;
|
|
21
22
|
/** @internal */
|
|
22
23
|
export declare function addSurfaceHiliter(builder: ProgramBuilder, wantWeight?: boolean): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FeatureSymbology.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/FeatureSymbology.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EACL,qBAAqB,EAA2B,cAAc,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"FeatureSymbology.d.ts","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/FeatureSymbology.ts"],"names":[],"mappings":"AAIA;;GAEG;AAIH,OAAO,EACL,qBAAqB,EAA2B,cAAc,EAAE,aAAa,EAAmC,mBAAmB,EAEpI,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAWhE,gBAAgB;AAChB,0BAAkB,uBAAuB;IACvC,IAAI,IAAI;IACR,MAAM,IAAS;IACf,QAAQ,IAAS;IACjB,YAAY,IAAS;IACrB,KAAK,IAAS;IACd,KAAK,KAAS;IAEd,OAAO,KAA+B;IACtC,KAAK,KAAwC;IAC7C,MAAM,KAAmD;CAC1D;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAkBhE;AAwED,wBAAgB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI,CAK/D;AAsJD,wBAAgB,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI,CAIxD;AA6DD,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI,CAG5F;AAED,gBAAgB;AAChB,wBAAgB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI,CAkBrF;AAkBD,gBAAgB;AAChB,eAAO,MAAM,iBAAiB,yLAM7B,CAAC;AAuEF,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,aAAa,QAc7D;AAED,gBAAgB;AAChB,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,QAOpD;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,aAAa,QAMzD;AAgBD,gBAAgB;AAChB,wBAAgB,YAAY,CAAC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,OAAO,QAiB3E;AASD,gBAAgB;AAChB,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,cAAc,QA4D/E;AAkED,eAAO,MAAM,eAAe,sOAIzB,CAAC;AAwCJ,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI,CAIpE;AAoBD,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,GAAG,IAAI,CAsBnH;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAW/D;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI,CA0ClG"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @module WebGL
|
|
8
8
|
*/
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.addUniformFeatureSymbology = exports.addUniformHiliter = exports.addFeatureSymbology = exports.addClassifierFlash = exports.mixFeatureColor = exports.addSurfaceDiscard = exports.addFeatureId = exports.addPixelWidthFactor = exports.addRenderOrder = exports.addRenderOrderConstants = exports.readDepthAndOrder = exports.addHiliter = exports.addSurfaceHiliter = exports.addMaxAlpha = exports.addOvrFlagConstants = void 0;
|
|
10
|
+
exports.addUniformFeatureSymbology = exports.addUniformHiliter = exports.addFeatureSymbology = exports.addClassifierFlash = exports.mixFeatureColor = exports.addSurfaceDiscard = exports.addFeatureId = exports.addPixelWidthFactor = exports.addRenderOrder = exports.addRenderOrderConstants = exports.readDepthAndOrder = exports.addHiliter = exports.addSurfaceHiliter = exports.addMaxAlpha = exports.addFeatureIndex = exports.addOvrFlagConstants = void 0;
|
|
11
11
|
const core_bentley_1 = require("@itwin/core-bentley");
|
|
12
12
|
const RenderFlags_1 = require("../RenderFlags");
|
|
13
13
|
const Common_1 = require("./Common");
|
|
@@ -19,10 +19,10 @@ const Vertex_1 = require("./Vertex");
|
|
|
19
19
|
/** @internal */
|
|
20
20
|
function addOvrFlagConstants(builder) {
|
|
21
21
|
// NB: These are the bit positions of each flag in OvrFlags enum - not the flag values
|
|
22
|
-
builder.addBitFlagConstant("
|
|
22
|
+
builder.addBitFlagConstant("kOvrBit_LineRgb", 0);
|
|
23
23
|
builder.addBitFlagConstant("kOvrBit_Rgb", 1);
|
|
24
24
|
builder.addBitFlagConstant("kOvrBit_Alpha", 2);
|
|
25
|
-
builder.addBitFlagConstant("
|
|
25
|
+
builder.addBitFlagConstant("kOvrBit_LineAlpha", 3);
|
|
26
26
|
builder.addBitFlagConstant("kOvrBit_Flashed", 4);
|
|
27
27
|
builder.addBitFlagConstant("kOvrBit_NonLocatable", 5);
|
|
28
28
|
builder.addBitFlagConstant("kOvrBit_LineCode", 6);
|
|
@@ -31,6 +31,9 @@ function addOvrFlagConstants(builder) {
|
|
|
31
31
|
builder.addBitFlagConstant("kOvrBit_Hilited", 0);
|
|
32
32
|
builder.addBitFlagConstant("kOvrBit_Emphasized", 1);
|
|
33
33
|
builder.addBitFlagConstant("kOvrBit_ViewIndependentTransparency", 2);
|
|
34
|
+
builder.addBitFlagConstant("kOvrBit_InvisibleDuringPick", 3);
|
|
35
|
+
builder.addBitFlagConstant("kOvrBit_Visibility", 4);
|
|
36
|
+
builder.addBitFlagConstant("kOvrBit_IgnoreMaterial", 5);
|
|
34
37
|
}
|
|
35
38
|
exports.addOvrFlagConstants = addOvrFlagConstants;
|
|
36
39
|
const computeLUTFeatureIndex = `g_featureAndMaterialIndex.xyz`;
|
|
@@ -77,9 +80,9 @@ vec4 getFirstFeatureRgba() {
|
|
|
77
80
|
}
|
|
78
81
|
`;
|
|
79
82
|
const getSecondFeatureRgba = `
|
|
80
|
-
vec4 getSecondFeatureRgba() {
|
|
83
|
+
vec4 getSecondFeatureRgba(bool isLinear) {
|
|
81
84
|
vec2 coord = feature_texCoord;
|
|
82
|
-
coord.x += g_feature_stepX;
|
|
85
|
+
coord.x += g_feature_stepX * (isLinear ? 2.0 : 1.0);
|
|
83
86
|
return TEXTURE(u_featureLUT, coord);
|
|
84
87
|
}
|
|
85
88
|
`;
|
|
@@ -98,6 +101,7 @@ function addFeatureIndex(vert) {
|
|
|
98
101
|
vert.addFunction(Decode_1.decodeUint24);
|
|
99
102
|
vert.addFunction(getFeatureIndex(vert));
|
|
100
103
|
}
|
|
104
|
+
exports.addFeatureIndex = addFeatureIndex;
|
|
101
105
|
// Discards vertex if feature is invisible; or rendering opaque during translucent pass or vice-versa
|
|
102
106
|
// (The latter occurs when some translucent feature is overridden to be opaque, or vice-versa)
|
|
103
107
|
const checkVertexDiscard = `
|
|
@@ -197,7 +201,7 @@ function addCommon(builder, mode, opts, wantGlobalOvrFlags = true) {
|
|
|
197
201
|
});
|
|
198
202
|
});
|
|
199
203
|
}
|
|
200
|
-
(0, LookupTable_1.addLookupTable)(vert, "feature", "
|
|
204
|
+
(0, LookupTable_1.addLookupTable)(vert, "feature", "3.0");
|
|
201
205
|
vert.addGlobal("feature_texCoord", 3 /* VariableType.Vec2 */);
|
|
202
206
|
vert.addFunction(computeFeatureTextureCoords);
|
|
203
207
|
vert.addFunction(getFirstFeatureRgba);
|
|
@@ -300,7 +304,7 @@ function addHiliter(builder, wantWeight = false) {
|
|
|
300
304
|
addEmphasisFlags(builder.frag);
|
|
301
305
|
(0, Common_1.addExtractNthBit)(builder.frag);
|
|
302
306
|
builder.frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeHiliteColor);
|
|
303
|
-
builder.frag.set(
|
|
307
|
+
builder.frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
304
308
|
}
|
|
305
309
|
exports.addHiliter = addHiliter;
|
|
306
310
|
function addSamplers(frag, testFeatureId) {
|
|
@@ -395,6 +399,7 @@ const checkForEarlySurfaceDiscardWithFeatureID = `
|
|
|
395
399
|
function addRenderOrderConstants(builder) {
|
|
396
400
|
builder.addConstant("kRenderOrder_BlankingRegion", 2 /* VariableType.Float */, 2 /* RenderOrder.BlankingRegion */.toFixed(1));
|
|
397
401
|
builder.addConstant("kRenderOrder_Linear", 2 /* VariableType.Float */, 5 /* RenderOrder.Linear */.toFixed(1));
|
|
402
|
+
builder.addConstant("kRenderOrder_PlanarLinear", 2 /* VariableType.Float */, 13 /* RenderOrder.PlanarLinear */.toFixed(1));
|
|
398
403
|
builder.addConstant("kRenderOrder_Edge", 2 /* VariableType.Float */, 6 /* RenderOrder.Edge */.toFixed(1));
|
|
399
404
|
builder.addConstant("kRenderOrder_PlanarEdge", 2 /* VariableType.Float */, 14 /* RenderOrder.PlanarEdge */.toFixed(1));
|
|
400
405
|
builder.addConstant("kRenderOrder_Silhouette", 2 /* VariableType.Float */, 7 /* RenderOrder.Silhouette */.toFixed(1));
|
|
@@ -527,23 +532,29 @@ const computeFeatureOverrides = `
|
|
|
527
532
|
vec4 value = getFirstFeatureRgba();
|
|
528
533
|
|
|
529
534
|
float emphFlags = value.y * 256.0;
|
|
535
|
+
if (nthFeatureBitSet(emphFlags, kOvrBit_InvisibleDuringPick)) {
|
|
536
|
+
feature_invisible = true;
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
|
|
530
540
|
v_feature_emphasis = kEmphFlag_Hilite * extractNthBit(emphFlags, kOvrBit_Hilited) + kEmphFlag_Emphasize * extractNthBit(emphFlags, kOvrBit_Emphasized);
|
|
531
541
|
|
|
532
542
|
float flags = value.x * 256.0;
|
|
533
|
-
if (0.0 == flags)
|
|
543
|
+
if (0.0 == flags && 0.0 == emphFlags)
|
|
534
544
|
return; // nothing overridden for this feature
|
|
535
545
|
|
|
536
546
|
bool nonLocatable = (u_shaderFlags[kShaderBit_IgnoreNonLocatable] ? nthFeatureBitSet(flags, kOvrBit_NonLocatable) : false);
|
|
537
547
|
v_feature_emphasis += kEmphFlag_NonLocatable * float(nthFeatureBitSet(flags, kOvrBit_NonLocatable));
|
|
538
|
-
bool invisible = nthFeatureBitSet(
|
|
548
|
+
bool invisible = nthFeatureBitSet(emphFlags, kOvrBit_Visibility);
|
|
539
549
|
feature_invisible = invisible || nonLocatable;
|
|
540
550
|
if (feature_invisible)
|
|
541
551
|
return;
|
|
542
552
|
|
|
543
|
-
bool
|
|
544
|
-
bool
|
|
553
|
+
bool isLinear = u_renderOrder == kRenderOrder_Linear || u_renderOrder == kRenderOrder_PlanarLinear || u_renderOrder == kRenderOrder_PlanarEdge;
|
|
554
|
+
bool rgbOverridden = isLinear ? nthFeatureBitSet(flags, kOvrBit_LineRgb) : nthFeatureBitSet(flags, kOvrBit_Rgb);
|
|
555
|
+
bool alphaOverridden = isLinear ? nthFeatureBitSet(flags, kOvrBit_LineAlpha) : nthFeatureBitSet(flags, kOvrBit_Alpha);
|
|
545
556
|
if (alphaOverridden || rgbOverridden) {
|
|
546
|
-
vec4 rgba = getSecondFeatureRgba();
|
|
557
|
+
vec4 rgba = getSecondFeatureRgba(isLinear);
|
|
547
558
|
if (rgbOverridden)
|
|
548
559
|
feature_rgb = rgba.rgb;
|
|
549
560
|
|
|
@@ -558,7 +569,7 @@ const computeFeatureOverrides = `
|
|
|
558
569
|
nthFeatureBitSet(flags, kOvrBit_LineCode),
|
|
559
570
|
value.z * 256.0);
|
|
560
571
|
|
|
561
|
-
feature_ignore_material = nthFeatureBitSet(
|
|
572
|
+
feature_ignore_material = nthFeatureBitSet(emphFlags, kOvrBit_IgnoreMaterial);
|
|
562
573
|
use_material = use_material && !feature_ignore_material;
|
|
563
574
|
|
|
564
575
|
v_feature_emphasis += kEmphFlag_Flash * extractNthFeatureBit(flags, kOvrBit_Flashed);
|
|
@@ -631,7 +642,7 @@ function addApplyFlash(frag) {
|
|
|
631
642
|
addEmphasisFlags(frag);
|
|
632
643
|
(0, Common_1.addExtractNthBit)(frag);
|
|
633
644
|
frag.addFunction(doApplyFlash);
|
|
634
|
-
frag.set(
|
|
645
|
+
frag.set(12 /* FragmentShaderComponent.ApplyFlash */, applyFlash);
|
|
635
646
|
addFlashIntensity(frag);
|
|
636
647
|
}
|
|
637
648
|
/** @internal */
|
|
@@ -647,6 +658,8 @@ function addFeatureSymbology(builder, feat, opts) {
|
|
|
647
658
|
vert.addGlobal("feature_viewIndependentTransparency", 0 /* VariableType.Boolean */, "false");
|
|
648
659
|
addEmphasisFlags(vert);
|
|
649
660
|
vert.addGlobal("use_material", 0 /* VariableType.Boolean */, "true");
|
|
661
|
+
addRenderOrder(vert);
|
|
662
|
+
addRenderOrderConstants(vert);
|
|
650
663
|
vert.set(3 /* VertexShaderComponent.ComputeFeatureOverrides */, computeFeatureOverrides);
|
|
651
664
|
vert.set(7 /* VertexShaderComponent.ApplyFeatureColor */, applyFeatureColor);
|
|
652
665
|
addApplyFlash(builder.frag);
|
|
@@ -665,7 +678,7 @@ function addUniformHiliter(builder) {
|
|
|
665
678
|
addEmphasisFlags(builder.frag);
|
|
666
679
|
(0, Common_1.addExtractNthBit)(builder.frag);
|
|
667
680
|
builder.frag.set(1 /* FragmentShaderComponent.ComputeBaseColor */, computeHiliteColor);
|
|
668
|
-
builder.frag.set(
|
|
681
|
+
builder.frag.set(17 /* FragmentShaderComponent.AssignFragData */, Fragment_1.assignFragColor);
|
|
669
682
|
}
|
|
670
683
|
exports.addUniformHiliter = addUniformHiliter;
|
|
671
684
|
/** For a uniform feature table, the feature ID output to pick buffers is equal to the batch ID.
|