@itwin/core-frontend 4.0.0-dev.2 → 4.0.0-dev.4
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/lib/cjs/IModelApp.d.ts +1 -0
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +2 -4
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
- package/lib/cjs/SubCategoriesCache.js +0 -1
- package/lib/cjs/SubCategoriesCache.js.map +1 -1
- package/lib/cjs/render/RealityMeshParams.d.ts +4 -1
- package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/cjs/render/RealityMeshParams.js +14 -4
- package/lib/cjs/render/RealityMeshParams.js.map +1 -1
- package/lib/cjs/render/RenderSystem.d.ts +5 -16
- package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
- package/lib/cjs/render/RenderSystem.js +0 -6
- package/lib/cjs/render/RenderSystem.js.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +3 -4
- package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/AttributeBuffers.d.ts +9 -79
- package/lib/cjs/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/cjs/render/webgl/AttributeBuffers.js +19 -152
- package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BackgroundMapDrape.js +0 -3
- package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/cjs/render/webgl/BranchUniforms.js +0 -8
- package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/ClipStack.d.ts +0 -1
- package/lib/cjs/render/webgl/ClipStack.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClipStack.js +2 -6
- package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/render/webgl/ClipVolume.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClipVolume.js +1 -5
- package/lib/cjs/render/webgl/ClipVolume.js.map +1 -1
- package/lib/cjs/render/webgl/ClippingProgram.d.ts +3 -2
- package/lib/cjs/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ClippingProgram.js +10 -37
- package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -2
- package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js +1 -1
- package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
- package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
- package/lib/cjs/render/webgl/FloatRGBA.js +0 -4
- package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/GLTimer.js +2 -35
- package/lib/cjs/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PlanarClassifier.js +13 -71
- package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/cjs/render/webgl/PointCloud.js +1 -3
- package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.d.ts +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderBuffer.js +2 -3
- package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.d.ts +1 -2
- package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/cjs/render/webgl/RenderFlags.js +4 -6
- package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.d.ts +0 -2
- package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SceneCompositor.js +754 -1135
- package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
- package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts +1 -2
- package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderBuilder.js +13 -48
- package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -2
- package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/cjs/render/webgl/SolarShadowMap.js +6 -18
- package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/render/webgl/System.d.ts +11 -10
- package/lib/cjs/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/render/webgl/System.js +40 -122
- package/lib/cjs/render/webgl/System.js.map +1 -1
- package/lib/cjs/render/webgl/Technique.d.ts +4 -5
- package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Technique.js +4 -28
- package/lib/cjs/render/webgl/Technique.js.map +1 -1
- package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/render/webgl/Texture.js +14 -18
- package/lib/cjs/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.d.ts +4 -3
- package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/cjs/render/webgl/ThematicSensors.js +9 -50
- package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.js +1 -1
- package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/cjs/render/webgl/UniformHandle.js +1 -4
- package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Animation.js +23 -26
- package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -9
- package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -10
- package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.d.ts +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Clipping.js +5 -36
- package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Combine3Textures.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Combine3Textures.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CombineTextures.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/CombineTextures.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Common.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Common.js +9 -55
- package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Composite.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyColor.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +12 -19
- package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts +4 -7
- package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/CopyStencil.js +2 -39
- package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/EDL.d.ts +4 -5
- package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Edge.js +2 -2
- package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +3 -24
- package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Fragment.d.ts +0 -7
- package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Fragment.js +5 -40
- package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Instancing.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Instancing.js +1 -5
- package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +0 -2
- package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarGrid.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -12
- package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/RealityMesh.js +3 -8
- package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkySphere.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/SkySphere.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Surface.js +33 -57
- package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Thematic.js +3 -36
- package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Translucency.js +2 -12
- package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts +1 -2
- package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Vertex.js +15 -78
- package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -1
- package/lib/cjs/render/webgl/glsl/Wiremesh.js +2 -5
- package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.d.ts +0 -3
- package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/PrimaryTileTree.js +6 -28
- package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
- package/lib/cjs/tile/TileAdmin.js +2 -2
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/esm/IModelApp.d.ts +1 -0
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +2 -4
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
- package/lib/esm/SubCategoriesCache.js +0 -1
- package/lib/esm/SubCategoriesCache.js.map +1 -1
- package/lib/esm/render/RealityMeshParams.d.ts +4 -1
- package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
- package/lib/esm/render/RealityMeshParams.js +14 -4
- package/lib/esm/render/RealityMeshParams.js.map +1 -1
- package/lib/esm/render/RenderSystem.d.ts +5 -16
- package/lib/esm/render/RenderSystem.d.ts.map +1 -1
- package/lib/esm/render/RenderSystem.js +0 -6
- package/lib/esm/render/RenderSystem.js.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +3 -4
- package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
- package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
- package/lib/esm/render/webgl/AttributeBuffers.d.ts +9 -79
- package/lib/esm/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/esm/render/webgl/AttributeBuffers.js +16 -144
- package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/esm/render/webgl/BackgroundMapDrape.js +0 -3
- package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
- package/lib/esm/render/webgl/BranchUniforms.js +0 -8
- package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/render/webgl/ClipStack.d.ts +0 -1
- package/lib/esm/render/webgl/ClipStack.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClipStack.js +2 -6
- package/lib/esm/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/render/webgl/ClipVolume.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClipVolume.js +1 -5
- package/lib/esm/render/webgl/ClipVolume.js.map +1 -1
- package/lib/esm/render/webgl/ClippingProgram.d.ts +3 -2
- package/lib/esm/render/webgl/ClippingProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ClippingProgram.js +10 -37
- package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.d.ts +2 -2
- package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
- package/lib/esm/render/webgl/DrawCommand.js +1 -1
- package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
- package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
- package/lib/esm/render/webgl/FloatRGBA.js +0 -4
- package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
- package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/esm/render/webgl/GLTimer.js +2 -35
- package/lib/esm/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/render/webgl/PlanarClassifier.js +13 -71
- package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
- package/lib/esm/render/webgl/PointCloud.js +1 -3
- package/lib/esm/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/render/webgl/RenderBuffer.d.ts +1 -1
- package/lib/esm/render/webgl/RenderBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderBuffer.js +2 -3
- package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.d.ts +1 -2
- package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
- package/lib/esm/render/webgl/RenderFlags.js +4 -6
- package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.d.ts +0 -2
- package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/render/webgl/SceneCompositor.js +756 -1137
- package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
- package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.d.ts +1 -2
- package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderBuilder.js +13 -48
- package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -2
- package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
- package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/esm/render/webgl/SolarShadowMap.js +6 -18
- package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/render/webgl/System.d.ts +11 -10
- package/lib/esm/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/render/webgl/System.js +42 -124
- package/lib/esm/render/webgl/System.js.map +1 -1
- package/lib/esm/render/webgl/Technique.d.ts +4 -5
- package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
- package/lib/esm/render/webgl/Technique.js +5 -29
- package/lib/esm/render/webgl/Technique.js.map +1 -1
- package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/render/webgl/Texture.js +14 -18
- package/lib/esm/render/webgl/Texture.js.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.d.ts +4 -3
- package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
- package/lib/esm/render/webgl/ThematicSensors.js +9 -50
- package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.js +1 -1
- package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
- package/lib/esm/render/webgl/UniformHandle.js +1 -4
- package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
- package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Animation.js +23 -26
- package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Blur.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -9
- package/lib/esm/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearTranslucent.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/ClearTranslucent.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -10
- package/lib/esm/render/webgl/glsl/ClearTranslucent.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.d.ts +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Clipping.js +5 -36
- package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Combine3Textures.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Combine3Textures.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Combine3Textures.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CombineTextures.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/CombineTextures.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CombineTextures.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Common.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Common.js +9 -55
- package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Composite.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Composite.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyColor.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +12 -19
- package/lib/esm/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.d.ts +4 -7
- package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/CopyStencil.js +1 -37
- package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/esm/render/webgl/glsl/EDL.d.ts +4 -5
- package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/EDL.js.map +1 -1
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Edge.js +2 -2
- package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js +3 -24
- package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Fragment.d.ts +0 -7
- package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Fragment.js +4 -38
- package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Instancing.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Instancing.js +1 -5
- package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +0 -2
- package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
- package/lib/esm/render/webgl/glsl/PlanarGrid.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -12
- package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -8
- package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
- package/lib/esm/render/webgl/glsl/SkySphere.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/SkySphere.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/SkySphere.js.map +1 -1
- package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
- package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Surface.js +33 -57
- package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Thematic.js +3 -36
- package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Translucency.js +3 -13
- package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.d.ts +1 -2
- package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Vertex.js +16 -79
- package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -1
- package/lib/esm/render/webgl/glsl/Wiremesh.js +2 -5
- package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.d.ts +0 -3
- package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
- package/lib/esm/tile/PrimaryTileTree.js +8 -30
- package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
- package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
- package/lib/esm/tile/TileAdmin.js +2 -2
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScreenSpaceEffect.js","sourceRoot":"","sources":["../../../../src/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 \"../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 System.instance.isWebGL2;\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 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.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/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 \"../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 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.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,7 +1,6 @@
|
|
|
1
1
|
/** @packageDocumentation
|
|
2
2
|
* @module WebGL
|
|
3
3
|
*/
|
|
4
|
-
import { WebGLContext } from "@itwin/webgl-compatibility";
|
|
5
4
|
import { AttributeDetails } from "./AttributeMap";
|
|
6
5
|
import { ShaderProgram } from "./ShaderProgram";
|
|
7
6
|
import { PositionType } from "./TechniqueFlags";
|
|
@@ -270,7 +269,7 @@ export declare class ProgramBuilder {
|
|
|
270
269
|
addFunctionComputedVarying(name: string, type: VariableType, funcName: string, funcBody: string): void;
|
|
271
270
|
addFunctionComputedVaryingWithArgs(name: string, type: VariableType, funcCall: string, funcDef: string): void;
|
|
272
271
|
/** Assembles the vertex and fragment shader code and returns a ready-to-compile shader program */
|
|
273
|
-
buildProgram(gl:
|
|
272
|
+
buildProgram(gl: WebGL2RenderingContext): ShaderProgram;
|
|
274
273
|
setDebugDescription(description: string): void;
|
|
275
274
|
/** Returns a deep copy of this program builder. */
|
|
276
275
|
clone(): ProgramBuilder;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,6 @@ const Instancing_1 = require("./glsl/Instancing");
|
|
|
13
13
|
const PlanarClassification_1 = require("./glsl/PlanarClassification");
|
|
14
14
|
const Vertex_1 = require("./glsl/Vertex");
|
|
15
15
|
const ShaderProgram_1 = require("./ShaderProgram");
|
|
16
|
-
const System_1 = require("./System");
|
|
17
16
|
/** @internal */
|
|
18
17
|
var Convert;
|
|
19
18
|
(function (Convert) {
|
|
@@ -39,12 +38,7 @@ var Convert;
|
|
|
39
38
|
function scopeToString(scope, isVertexShader) {
|
|
40
39
|
switch (scope) {
|
|
41
40
|
case 0 /* Global */: return "";
|
|
42
|
-
case 1 /* Varying */:
|
|
43
|
-
if (System_1.System.instance.capabilities.isWebGL2)
|
|
44
|
-
return (isVertexShader ? "out" : "in");
|
|
45
|
-
else
|
|
46
|
-
return "varying";
|
|
47
|
-
}
|
|
41
|
+
case 1 /* Varying */: return (isVertexShader ? "out" : "in");
|
|
48
42
|
case 2 /* Uniform */: return "uniform";
|
|
49
43
|
default:
|
|
50
44
|
(0, core_bentley_1.assert)(false);
|
|
@@ -158,10 +152,7 @@ class ShaderVariables {
|
|
|
158
152
|
this.addGlobal(name, type, value, true);
|
|
159
153
|
}
|
|
160
154
|
addBitFlagConstant(name, value) {
|
|
161
|
-
|
|
162
|
-
this.addGlobal(name, 10 /* Uint */, `${(2 ** value).toFixed(0)}u`, true);
|
|
163
|
-
else
|
|
164
|
-
this.addGlobal(name, 2 /* Float */, (1.0 / (2 ** (value + 1))).toExponential(7), true);
|
|
155
|
+
this.addGlobal(name, 10 /* Uint */, `${(2 ** value).toFixed(0)}u`, true);
|
|
165
156
|
}
|
|
166
157
|
/** Constructs the lines of glsl code declaring the variables of a certain scope. */
|
|
167
158
|
buildScopeDeclarations(isVertexShader, scope, constants) {
|
|
@@ -393,18 +384,10 @@ class ShaderBuilder extends ShaderVariables {
|
|
|
393
384
|
this._initializers = new Array();
|
|
394
385
|
this._components.length = maxComponents;
|
|
395
386
|
this._flags = flags;
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
this.addDefine("TEXTURE_PROJ", "textureProj");
|
|
401
|
-
}
|
|
402
|
-
else {
|
|
403
|
-
this._version = "#version 100";
|
|
404
|
-
this.addDefine("TEXTURE", "texture2D");
|
|
405
|
-
this.addDefine("TEXTURE_CUBE", "textureCube");
|
|
406
|
-
this.addDefine("TEXTURE_PROJ", "texture2DProj");
|
|
407
|
-
}
|
|
387
|
+
this._version = "#version 300 es";
|
|
388
|
+
this.addDefine("TEXTURE", "texture");
|
|
389
|
+
this.addDefine("TEXTURE_CUBE", "texture");
|
|
390
|
+
this.addDefine("TEXTURE_PROJ", "textureProj");
|
|
408
391
|
}
|
|
409
392
|
get usesInstancedGeometry() {
|
|
410
393
|
return !!this._flags.instanced;
|
|
@@ -494,17 +477,13 @@ class ShaderBuilder extends ShaderVariables {
|
|
|
494
477
|
src.newline();
|
|
495
478
|
// Attribute declarations
|
|
496
479
|
if (attrMap !== undefined) {
|
|
497
|
-
const webGL2 = System_1.System.instance.capabilities.isWebGL2;
|
|
498
480
|
attrMap.forEach((attr, key) => {
|
|
499
|
-
|
|
500
|
-
src.addline(`in ${Convert.typeToString(attr.type)} ${key};`);
|
|
501
|
-
else
|
|
502
|
-
src.addline(`attribute ${Convert.typeToString(attr.type)} ${key};`);
|
|
481
|
+
src.addline(`in ${Convert.typeToString(attr.type)} ${key};`);
|
|
503
482
|
});
|
|
504
483
|
}
|
|
505
484
|
// Variable declarations
|
|
506
485
|
src.add(this.buildDeclarations(isVertexShader));
|
|
507
|
-
// Layouts
|
|
486
|
+
// Layouts
|
|
508
487
|
for (const layout of this._fragOutputs)
|
|
509
488
|
src.addline(layout);
|
|
510
489
|
// Functions
|
|
@@ -661,26 +640,15 @@ class FragmentShaderBuilder extends ShaderBuilder {
|
|
|
661
640
|
constructor(flags = {}) {
|
|
662
641
|
super(22 /* COUNT */, flags);
|
|
663
642
|
this.requiresEarlyZWorkaround = false;
|
|
664
|
-
|
|
665
|
-
this.addFragOutput("FragColor", -1);
|
|
666
|
-
else
|
|
667
|
-
this.addDefine("FragColor", "gl_FragColor");
|
|
643
|
+
this.addFragOutput("FragColor", -1);
|
|
668
644
|
}
|
|
669
645
|
get(id) { return this.getComponent(id); }
|
|
670
646
|
set(id, component) { this.addComponent(id, component); }
|
|
671
647
|
unset(id) { this.removeComponent(id); }
|
|
672
648
|
addDrawBuffersExtension(n) {
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
this.addFragOutput(`FragColor${i}`, i);
|
|
677
|
-
}
|
|
678
|
-
else {
|
|
679
|
-
(0, core_bentley_1.assert)(System_1.System.instance.capabilities.supportsDrawBuffers, "WEBGL_draw_buffers unsupported");
|
|
680
|
-
this.addExtension("GL_EXT_draw_buffers");
|
|
681
|
-
for (let i = 0; i < n; i++)
|
|
682
|
-
this.addDefine(`FragColor${i}`, `gl_FragData[${i}]`);
|
|
683
|
-
}
|
|
649
|
+
this.clearFragOutput();
|
|
650
|
+
for (let i = 0; i < n; i++)
|
|
651
|
+
this.addFragOutput(`FragColor${i}`, i);
|
|
684
652
|
}
|
|
685
653
|
buildSource() {
|
|
686
654
|
const applyLighting = this.get(8 /* ApplyLighting */);
|
|
@@ -715,10 +683,7 @@ class FragmentShaderBuilder extends ShaderBuilder {
|
|
|
715
683
|
if (undefined !== finalizeDepth) {
|
|
716
684
|
prelude.addFunction("float finalizeDepth()", finalizeDepth);
|
|
717
685
|
main.addline(" float finalDepth = finalizeDepth();");
|
|
718
|
-
|
|
719
|
-
main.addline(" gl_FragDepth = finalDepth;");
|
|
720
|
-
else
|
|
721
|
-
main.addline(" gl_FragDepthEXT = finalDepth;");
|
|
686
|
+
main.addline(" gl_FragDepth = finalDepth;");
|
|
722
687
|
}
|
|
723
688
|
let clipIndent = "";
|
|
724
689
|
const applyClipping = this.get(10 /* ApplyClipping */);
|