@itwin/core-frontend 4.0.0-dev.75 → 4.0.0-dev.77

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.
Files changed (805) hide show
  1. package/lib/cjs/AccuDraw.js.map +1 -1
  2. package/lib/cjs/AccuSnap.js.map +1 -1
  3. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  5. package/lib/cjs/AuxCoordSys.js.map +1 -1
  6. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  7. package/lib/cjs/BingLocation.js.map +1 -1
  8. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  9. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  10. package/lib/cjs/CategorySelectorState.js.map +1 -1
  11. package/lib/cjs/ChangeFlags.js.map +1 -1
  12. package/lib/cjs/CheckpointConnection.js.map +1 -1
  13. package/lib/cjs/CoordSystem.js.map +1 -1
  14. package/lib/cjs/DecorationsCache.js.map +1 -1
  15. package/lib/cjs/DevTools.js.map +1 -1
  16. package/lib/cjs/DisplayStyleState.js.map +1 -1
  17. package/lib/cjs/DrawingViewState.js +5 -5
  18. package/lib/cjs/DrawingViewState.js.map +1 -1
  19. package/lib/cjs/ElementLocateManager.js.map +1 -1
  20. package/lib/cjs/EmphasizeElements.js.map +1 -1
  21. package/lib/cjs/EntityState.js.map +1 -1
  22. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  23. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  24. package/lib/cjs/FlashSettings.js.map +1 -1
  25. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  26. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  27. package/lib/cjs/Frustum2d.js.map +1 -1
  28. package/lib/cjs/FrustumAnimator.js.map +1 -1
  29. package/lib/cjs/FuzzySearch.js.map +1 -1
  30. package/lib/cjs/GeoServices.js.map +1 -1
  31. package/lib/cjs/GlobeAnimator.js.map +1 -1
  32. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  33. package/lib/cjs/HitDetail.js.map +1 -1
  34. package/lib/cjs/IModelApp.js.map +1 -1
  35. package/lib/cjs/IModelConnection.js +23 -23
  36. package/lib/cjs/IModelConnection.js.map +1 -1
  37. package/lib/cjs/IModelRoutingContext.js.map +1 -1
  38. package/lib/cjs/IModeljs-css.js +133 -133
  39. package/lib/cjs/IModeljs-css.js.map +1 -1
  40. package/lib/cjs/ImageUtil.js.map +1 -1
  41. package/lib/cjs/IpcApp.js.map +1 -1
  42. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  43. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  44. package/lib/cjs/MarginPercent.js.map +1 -1
  45. package/lib/cjs/Marker.js.map +1 -1
  46. package/lib/cjs/ModelSelectorState.js.map +1 -1
  47. package/lib/cjs/NativeApp.js.map +1 -1
  48. package/lib/cjs/NativeAppLogger.js.map +1 -1
  49. package/lib/cjs/NoRenderApp.js.map +1 -1
  50. package/lib/cjs/NotificationManager.js.map +1 -1
  51. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  52. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  53. package/lib/cjs/RealityDataSource.js.map +1 -1
  54. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  55. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  56. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  57. package/lib/cjs/SelectionSet.js.map +1 -1
  58. package/lib/cjs/SheetViewState.js.map +1 -1
  59. package/lib/cjs/SpatialViewState.js.map +1 -1
  60. package/lib/cjs/Sprites.js.map +1 -1
  61. package/lib/cjs/StandardView.js.map +1 -1
  62. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  63. package/lib/cjs/TentativePoint.js.map +1 -1
  64. package/lib/cjs/Tiles.js.map +1 -1
  65. package/lib/cjs/UserPreferences.js.map +1 -1
  66. package/lib/cjs/ViewAnimation.js.map +1 -1
  67. package/lib/cjs/ViewContext.js.map +1 -1
  68. package/lib/cjs/ViewCreator2d.js.map +1 -1
  69. package/lib/cjs/ViewCreator3d.js.map +1 -1
  70. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  71. package/lib/cjs/ViewManager.js.map +1 -1
  72. package/lib/cjs/ViewPose.js.map +1 -1
  73. package/lib/cjs/ViewRect.js.map +1 -1
  74. package/lib/cjs/ViewState.js.map +1 -1
  75. package/lib/cjs/ViewStatus.js.map +1 -1
  76. package/lib/cjs/ViewingSpace.js.map +1 -1
  77. package/lib/cjs/Viewport.js.map +1 -1
  78. package/lib/cjs/ViewportSync.js.map +1 -1
  79. package/lib/cjs/WebWorkerManager.js.map +1 -1
  80. package/lib/cjs/core-frontend.js.map +1 -1
  81. package/lib/cjs/extension/Extension.js.map +1 -1
  82. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  83. package/lib/cjs/extension/ExtensionHost.js.map +1 -1
  84. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  85. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  86. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  87. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
  88. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  89. package/lib/cjs/gltf/GltfModel.js.map +1 -1
  90. package/lib/cjs/gltf/GltfParser.js.map +1 -1
  91. package/lib/cjs/gltf/GltfSchema.js.map +1 -1
  92. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  93. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  94. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  95. package/lib/cjs/public/scripts/checkbrowser.js +24 -24
  96. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  97. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  98. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  99. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  100. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  101. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
  102. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  103. package/lib/cjs/render/Decorations.js.map +1 -1
  104. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  105. package/lib/cjs/render/FrameStats.js.map +1 -1
  106. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  107. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  108. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  109. package/lib/cjs/render/InstancedGraphicParams.js.map +1 -1
  110. package/lib/cjs/render/MockRender.js.map +1 -1
  111. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  112. package/lib/cjs/render/Pixel.js.map +1 -1
  113. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
  114. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  115. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  116. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  117. package/lib/cjs/render/RenderMaterial.js.map +1 -1
  118. package/lib/cjs/render/RenderMemory.js.map +1 -1
  119. package/lib/cjs/render/RenderPlan.js.map +1 -1
  120. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  121. package/lib/cjs/render/RenderSystem.js.map +1 -1
  122. package/lib/cjs/render/RenderTarget.js.map +1 -1
  123. package/lib/cjs/render/RenderTexture.js.map +1 -1
  124. package/lib/cjs/render/Scene.js.map +1 -1
  125. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  126. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
  127. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  128. package/lib/cjs/render/primitives/AuxChannelTable.js.map +1 -1
  129. package/lib/cjs/render/primitives/ColorMap.js.map +1 -1
  130. package/lib/cjs/render/primitives/DisplayParams.js.map +1 -1
  131. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  132. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  133. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  134. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  135. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  136. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  137. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  138. package/lib/cjs/render/primitives/SurfaceParams.js.map +1 -1
  139. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  140. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  141. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  142. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  143. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +1 -1
  144. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  145. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  146. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  147. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  148. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  149. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  150. package/lib/cjs/render/webgl/AttributeMap.js.map +1 -1
  151. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  152. package/lib/cjs/render/webgl/BatchState.js.map +1 -1
  153. package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
  154. package/lib/cjs/render/webgl/BranchStack.js.map +1 -1
  155. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  156. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  157. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  158. package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
  159. package/lib/cjs/render/webgl/ClipVolume.js.map +1 -1
  160. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  161. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  162. package/lib/cjs/render/webgl/Diagnostics.js.map +1 -1
  163. package/lib/cjs/render/webgl/Disposable.js.map +1 -1
  164. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  165. package/lib/cjs/render/webgl/EDL.js.map +1 -1
  166. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  167. package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
  168. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  169. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  170. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  171. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  172. package/lib/cjs/render/webgl/GL.js.map +1 -1
  173. package/lib/cjs/render/webgl/GLTimer.js.map +1 -1
  174. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  175. package/lib/cjs/render/webgl/HiliteUniforms.js.map +1 -1
  176. package/lib/cjs/render/webgl/IModelFrameLifecycle.js.map +1 -1
  177. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  178. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  179. package/lib/cjs/render/webgl/Layer.js.map +1 -1
  180. package/lib/cjs/render/webgl/LayerCommands.js.map +1 -1
  181. package/lib/cjs/render/webgl/LightingUniforms.js.map +1 -1
  182. package/lib/cjs/render/webgl/LineCode.js.map +1 -1
  183. package/lib/cjs/render/webgl/Material.js.map +1 -1
  184. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  185. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  186. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  187. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -1
  188. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  189. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  190. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  191. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  192. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  193. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  194. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  195. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  196. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  197. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  198. package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
  199. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  200. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  201. package/lib/cjs/render/webgl/RenderState.js.map +1 -1
  202. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  203. package/lib/cjs/render/webgl/ScratchDrawParams.js.map +1 -1
  204. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  205. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  206. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  207. package/lib/cjs/render/webgl/ShadowUniforms.js.map +1 -1
  208. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  209. package/lib/cjs/render/webgl/StyleUniforms.js.map +1 -1
  210. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  211. package/lib/cjs/render/webgl/Sync.js.map +1 -1
  212. package/lib/cjs/render/webgl/System.js.map +1 -1
  213. package/lib/cjs/render/webgl/Target.js.map +1 -1
  214. package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
  215. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  216. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  217. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  218. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  219. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  220. package/lib/cjs/render/webgl/TextureDrape.js.map +1 -1
  221. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  222. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  223. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  224. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  225. package/lib/cjs/render/webgl/ViewRectUniforms.js.map +1 -1
  226. package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
  227. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +154 -154
  228. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  229. package/lib/cjs/render/webgl/glsl/Animation.js +83 -83
  230. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  231. package/lib/cjs/render/webgl/glsl/Blur.js +37 -37
  232. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  233. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +4 -4
  234. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  235. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +3 -3
  236. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  237. package/lib/cjs/render/webgl/glsl/Clipping.js +60 -60
  238. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  239. package/lib/cjs/render/webgl/glsl/Color.js +12 -12
  240. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  241. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +7 -7
  242. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  243. package/lib/cjs/render/webgl/glsl/CombineTextures.js +5 -5
  244. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  245. package/lib/cjs/render/webgl/glsl/Common.js +16 -16
  246. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  247. package/lib/cjs/render/webgl/glsl/Composite.js +71 -71
  248. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  249. package/lib/cjs/render/webgl/glsl/CopyColor.js +6 -6
  250. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  251. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +3 -3
  252. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  253. package/lib/cjs/render/webgl/glsl/CopyStencil.js +4 -4
  254. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  255. package/lib/cjs/render/webgl/glsl/Decode.js +65 -65
  256. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  257. package/lib/cjs/render/webgl/glsl/EDL.js +103 -103
  258. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  259. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +25 -25
  260. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  261. package/lib/cjs/render/webgl/glsl/Edge.js +146 -146
  262. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  263. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +232 -232
  264. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  265. package/lib/cjs/render/webgl/glsl/Fragment.js +41 -41
  266. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  267. package/lib/cjs/render/webgl/glsl/Instancing.js +21 -21
  268. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  269. package/lib/cjs/render/webgl/glsl/Lighting.js +92 -92
  270. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  271. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  272. package/lib/cjs/render/webgl/glsl/LookupTable.js +19 -19
  273. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  274. package/lib/cjs/render/webgl/glsl/Monochrome.js +13 -13
  275. package/lib/cjs/render/webgl/glsl/Monochrome.js.map +1 -1
  276. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +188 -188
  277. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  278. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +22 -22
  279. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  280. package/lib/cjs/render/webgl/glsl/PointCloud.js +28 -28
  281. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  282. package/lib/cjs/render/webgl/glsl/PointString.js +9 -9
  283. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  284. package/lib/cjs/render/webgl/glsl/Polyline.js +213 -213
  285. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  286. package/lib/cjs/render/webgl/glsl/RealityMesh.js +83 -83
  287. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  288. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  289. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  290. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  291. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  292. package/lib/cjs/render/webgl/glsl/SkySphere.js +33 -33
  293. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  294. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +51 -51
  295. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  296. package/lib/cjs/render/webgl/glsl/Surface.js +239 -239
  297. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  298. package/lib/cjs/render/webgl/glsl/Thematic.js +134 -134
  299. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  300. package/lib/cjs/render/webgl/glsl/Translucency.js +19 -19
  301. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  302. package/lib/cjs/render/webgl/glsl/Vertex.js +73 -73
  303. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  304. package/lib/cjs/render/webgl/glsl/Viewport.js +38 -38
  305. package/lib/cjs/render/webgl/glsl/Viewport.js.map +1 -1
  306. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  307. package/lib/cjs/render/webgl/glsl/Wiremesh.js +10 -10
  308. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  309. package/lib/cjs/render-primitives.js.map +1 -1
  310. package/lib/cjs/request/Request.js.map +1 -1
  311. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  312. package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
  313. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -1
  314. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  315. package/lib/cjs/tile/ContextShareProvider.js.map +1 -1
  316. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  317. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  318. package/lib/cjs/tile/GltfReader.js.map +1 -1
  319. package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
  320. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  321. package/lib/cjs/tile/IModelTile.js.map +1 -1
  322. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  323. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  324. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  325. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  326. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  327. package/lib/cjs/tile/PntsReader.js.map +1 -1
  328. package/lib/cjs/tile/RealityTile.js.map +1 -1
  329. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  330. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  331. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  332. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  333. package/lib/cjs/tile/Tile.js.map +1 -1
  334. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  335. package/lib/cjs/tile/TileContent.js.map +1 -1
  336. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  337. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  338. package/lib/cjs/tile/TileParams.js.map +1 -1
  339. package/lib/cjs/tile/TileRequest.js.map +1 -1
  340. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  341. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  342. package/lib/cjs/tile/TileStorage.js.map +1 -1
  343. package/lib/cjs/tile/TileTree.js.map +1 -1
  344. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  345. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  346. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  347. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  348. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  349. package/lib/cjs/tile/TileUser.js.map +1 -1
  350. package/lib/cjs/tile/TileUserSet.js.map +1 -1
  351. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  352. package/lib/cjs/tile/ViewFlagOverrides.js.map +1 -1
  353. package/lib/cjs/tile/internal.js.map +1 -1
  354. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  355. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  356. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  357. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  358. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  359. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  360. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  361. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  362. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  363. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  364. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  365. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  366. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  367. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  368. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  369. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  370. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  371. package/lib/cjs/tile/map/MapLayerImageryProvider.js +2 -2
  372. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  373. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  374. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  375. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  376. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  377. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  378. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  379. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  380. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  381. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  382. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  383. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  384. package/lib/cjs/tile/map/WmsUtilities.js.map +1 -1
  385. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  386. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  387. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  388. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  389. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  390. package/lib/cjs/tools/EventController.js.map +1 -1
  391. package/lib/cjs/tools/IdleTool.js.map +1 -1
  392. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  393. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  394. package/lib/cjs/tools/SelectTool.js.map +1 -1
  395. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  396. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  397. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  398. package/lib/cjs/tools/ViewTool.js.map +1 -1
  399. package/lib/cjs/webgl.js.map +1 -1
  400. package/lib/esm/AccuDraw.js.map +1 -1
  401. package/lib/esm/AccuSnap.js.map +1 -1
  402. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  403. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  404. package/lib/esm/AuxCoordSys.js.map +1 -1
  405. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  406. package/lib/esm/BingLocation.js.map +1 -1
  407. package/lib/esm/BriefcaseConnection.js.map +1 -1
  408. package/lib/esm/BriefcaseTxns.js.map +1 -1
  409. package/lib/esm/CategorySelectorState.js.map +1 -1
  410. package/lib/esm/ChangeFlags.js.map +1 -1
  411. package/lib/esm/CheckpointConnection.js.map +1 -1
  412. package/lib/esm/CoordSystem.js.map +1 -1
  413. package/lib/esm/DecorationsCache.js.map +1 -1
  414. package/lib/esm/DevTools.js.map +1 -1
  415. package/lib/esm/DisplayStyleState.js.map +1 -1
  416. package/lib/esm/DrawingViewState.js +5 -5
  417. package/lib/esm/DrawingViewState.js.map +1 -1
  418. package/lib/esm/ElementLocateManager.js.map +1 -1
  419. package/lib/esm/EmphasizeElements.js.map +1 -1
  420. package/lib/esm/EntityState.js.map +1 -1
  421. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  422. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  423. package/lib/esm/FlashSettings.js.map +1 -1
  424. package/lib/esm/FrontendHubAccess.js.map +1 -1
  425. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  426. package/lib/esm/Frustum2d.js.map +1 -1
  427. package/lib/esm/FrustumAnimator.js.map +1 -1
  428. package/lib/esm/FuzzySearch.js.map +1 -1
  429. package/lib/esm/GeoServices.js.map +1 -1
  430. package/lib/esm/GlobeAnimator.js.map +1 -1
  431. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  432. package/lib/esm/HitDetail.js.map +1 -1
  433. package/lib/esm/IModelApp.js.map +1 -1
  434. package/lib/esm/IModelConnection.js +23 -23
  435. package/lib/esm/IModelConnection.js.map +1 -1
  436. package/lib/esm/IModelRoutingContext.js.map +1 -1
  437. package/lib/esm/IModeljs-css.js +133 -133
  438. package/lib/esm/IModeljs-css.js.map +1 -1
  439. package/lib/esm/ImageUtil.js.map +1 -1
  440. package/lib/esm/IpcApp.js.map +1 -1
  441. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  442. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  443. package/lib/esm/MarginPercent.js.map +1 -1
  444. package/lib/esm/Marker.js.map +1 -1
  445. package/lib/esm/ModelSelectorState.js.map +1 -1
  446. package/lib/esm/NativeApp.js.map +1 -1
  447. package/lib/esm/NativeAppLogger.js.map +1 -1
  448. package/lib/esm/NoRenderApp.js.map +1 -1
  449. package/lib/esm/NotificationManager.js.map +1 -1
  450. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  451. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  452. package/lib/esm/RealityDataSource.js.map +1 -1
  453. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  454. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  455. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  456. package/lib/esm/SelectionSet.js.map +1 -1
  457. package/lib/esm/SheetViewState.js.map +1 -1
  458. package/lib/esm/SpatialViewState.js.map +1 -1
  459. package/lib/esm/Sprites.js.map +1 -1
  460. package/lib/esm/StandardView.js.map +1 -1
  461. package/lib/esm/SubCategoriesCache.js.map +1 -1
  462. package/lib/esm/TentativePoint.js.map +1 -1
  463. package/lib/esm/Tiles.js.map +1 -1
  464. package/lib/esm/UserPreferences.js.map +1 -1
  465. package/lib/esm/ViewAnimation.js.map +1 -1
  466. package/lib/esm/ViewContext.js.map +1 -1
  467. package/lib/esm/ViewCreator2d.js.map +1 -1
  468. package/lib/esm/ViewCreator3d.js.map +1 -1
  469. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  470. package/lib/esm/ViewManager.js.map +1 -1
  471. package/lib/esm/ViewPose.js.map +1 -1
  472. package/lib/esm/ViewRect.js.map +1 -1
  473. package/lib/esm/ViewState.js.map +1 -1
  474. package/lib/esm/ViewStatus.js.map +1 -1
  475. package/lib/esm/ViewingSpace.js.map +1 -1
  476. package/lib/esm/Viewport.js.map +1 -1
  477. package/lib/esm/ViewportSync.js.map +1 -1
  478. package/lib/esm/WebWorkerManager.js.map +1 -1
  479. package/lib/esm/core-frontend.js.map +1 -1
  480. package/lib/esm/extension/Extension.js.map +1 -1
  481. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  482. package/lib/esm/extension/ExtensionHost.js.map +1 -1
  483. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  484. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  485. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  486. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
  487. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  488. package/lib/esm/gltf/GltfModel.js.map +1 -1
  489. package/lib/esm/gltf/GltfParser.js.map +1 -1
  490. package/lib/esm/gltf/GltfSchema.js.map +1 -1
  491. package/lib/esm/properties/AngleDescription.js.map +1 -1
  492. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  493. package/lib/esm/properties/LengthDescription.js.map +1 -1
  494. package/lib/esm/public/scripts/checkbrowser.js +24 -24
  495. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  496. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  497. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  498. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  499. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  500. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
  501. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  502. package/lib/esm/render/Decorations.js.map +1 -1
  503. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  504. package/lib/esm/render/FrameStats.js.map +1 -1
  505. package/lib/esm/render/GraphicBranch.js.map +1 -1
  506. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  507. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  508. package/lib/esm/render/InstancedGraphicParams.js.map +1 -1
  509. package/lib/esm/render/MockRender.js.map +1 -1
  510. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  511. package/lib/esm/render/Pixel.js.map +1 -1
  512. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
  513. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  514. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  515. package/lib/esm/render/RenderGraphic.js.map +1 -1
  516. package/lib/esm/render/RenderMaterial.js.map +1 -1
  517. package/lib/esm/render/RenderMemory.js.map +1 -1
  518. package/lib/esm/render/RenderPlan.js.map +1 -1
  519. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  520. package/lib/esm/render/RenderSystem.js.map +1 -1
  521. package/lib/esm/render/RenderTarget.js.map +1 -1
  522. package/lib/esm/render/RenderTexture.js.map +1 -1
  523. package/lib/esm/render/Scene.js.map +1 -1
  524. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  525. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -1
  526. package/lib/esm/render/VisibleFeature.js.map +1 -1
  527. package/lib/esm/render/primitives/AuxChannelTable.js.map +1 -1
  528. package/lib/esm/render/primitives/ColorMap.js.map +1 -1
  529. package/lib/esm/render/primitives/DisplayParams.js.map +1 -1
  530. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  531. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  532. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  533. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  534. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  535. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  536. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  537. package/lib/esm/render/primitives/SurfaceParams.js.map +1 -1
  538. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  539. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  540. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  541. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  542. package/lib/esm/render/primitives/geometry/GeometryList.js.map +1 -1
  543. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  544. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  545. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  546. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  547. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  548. package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
  549. package/lib/esm/render/webgl/AttributeMap.js.map +1 -1
  550. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  551. package/lib/esm/render/webgl/BatchState.js.map +1 -1
  552. package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
  553. package/lib/esm/render/webgl/BranchStack.js.map +1 -1
  554. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  555. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  556. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  557. package/lib/esm/render/webgl/ClipStack.js.map +1 -1
  558. package/lib/esm/render/webgl/ClipVolume.js.map +1 -1
  559. package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
  560. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  561. package/lib/esm/render/webgl/Diagnostics.js.map +1 -1
  562. package/lib/esm/render/webgl/Disposable.js.map +1 -1
  563. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  564. package/lib/esm/render/webgl/EDL.js.map +1 -1
  565. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  566. package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
  567. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  568. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  569. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  570. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  571. package/lib/esm/render/webgl/GL.js.map +1 -1
  572. package/lib/esm/render/webgl/GLTimer.js.map +1 -1
  573. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  574. package/lib/esm/render/webgl/HiliteUniforms.js.map +1 -1
  575. package/lib/esm/render/webgl/IModelFrameLifecycle.js.map +1 -1
  576. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  577. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  578. package/lib/esm/render/webgl/Layer.js.map +1 -1
  579. package/lib/esm/render/webgl/LayerCommands.js.map +1 -1
  580. package/lib/esm/render/webgl/LightingUniforms.js.map +1 -1
  581. package/lib/esm/render/webgl/LineCode.js.map +1 -1
  582. package/lib/esm/render/webgl/Material.js.map +1 -1
  583. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  584. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  585. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  586. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -1
  587. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  588. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  589. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  590. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  591. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  592. package/lib/esm/render/webgl/PointString.js.map +1 -1
  593. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  594. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  595. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  596. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  597. package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
  598. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  599. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  600. package/lib/esm/render/webgl/RenderState.js.map +1 -1
  601. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  602. package/lib/esm/render/webgl/ScratchDrawParams.js.map +1 -1
  603. package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
  604. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  605. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  606. package/lib/esm/render/webgl/ShadowUniforms.js.map +1 -1
  607. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  608. package/lib/esm/render/webgl/StyleUniforms.js.map +1 -1
  609. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  610. package/lib/esm/render/webgl/Sync.js.map +1 -1
  611. package/lib/esm/render/webgl/System.js.map +1 -1
  612. package/lib/esm/render/webgl/Target.js.map +1 -1
  613. package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
  614. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  615. package/lib/esm/render/webgl/Technique.js.map +1 -1
  616. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  617. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  618. package/lib/esm/render/webgl/Texture.js.map +1 -1
  619. package/lib/esm/render/webgl/TextureDrape.js.map +1 -1
  620. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  621. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  622. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  623. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  624. package/lib/esm/render/webgl/ViewRectUniforms.js.map +1 -1
  625. package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
  626. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +154 -154
  627. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  628. package/lib/esm/render/webgl/glsl/Animation.js +83 -83
  629. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  630. package/lib/esm/render/webgl/glsl/Blur.js +37 -37
  631. package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
  632. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +4 -4
  633. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  634. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +3 -3
  635. package/lib/esm/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  636. package/lib/esm/render/webgl/glsl/Clipping.js +60 -60
  637. package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
  638. package/lib/esm/render/webgl/glsl/Color.js +12 -12
  639. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  640. package/lib/esm/render/webgl/glsl/Combine3Textures.js +7 -7
  641. package/lib/esm/render/webgl/glsl/Combine3Textures.js.map +1 -1
  642. package/lib/esm/render/webgl/glsl/CombineTextures.js +5 -5
  643. package/lib/esm/render/webgl/glsl/CombineTextures.js.map +1 -1
  644. package/lib/esm/render/webgl/glsl/Common.js +16 -16
  645. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  646. package/lib/esm/render/webgl/glsl/Composite.js +71 -71
  647. package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
  648. package/lib/esm/render/webgl/glsl/CopyColor.js +6 -6
  649. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  650. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +3 -3
  651. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  652. package/lib/esm/render/webgl/glsl/CopyStencil.js +4 -4
  653. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  654. package/lib/esm/render/webgl/glsl/Decode.js +65 -65
  655. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  656. package/lib/esm/render/webgl/glsl/EDL.js +103 -103
  657. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -1
  658. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +25 -25
  659. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  660. package/lib/esm/render/webgl/glsl/Edge.js +146 -146
  661. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  662. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +232 -232
  663. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  664. package/lib/esm/render/webgl/glsl/Fragment.js +41 -41
  665. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  666. package/lib/esm/render/webgl/glsl/Instancing.js +21 -21
  667. package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
  668. package/lib/esm/render/webgl/glsl/Lighting.js +92 -92
  669. package/lib/esm/render/webgl/glsl/Lighting.js.map +1 -1
  670. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  671. package/lib/esm/render/webgl/glsl/LookupTable.js +19 -19
  672. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  673. package/lib/esm/render/webgl/glsl/Monochrome.js +13 -13
  674. package/lib/esm/render/webgl/glsl/Monochrome.js.map +1 -1
  675. package/lib/esm/render/webgl/glsl/PlanarClassification.js +188 -188
  676. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  677. package/lib/esm/render/webgl/glsl/PlanarGrid.js +22 -22
  678. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  679. package/lib/esm/render/webgl/glsl/PointCloud.js +28 -28
  680. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  681. package/lib/esm/render/webgl/glsl/PointString.js +9 -9
  682. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  683. package/lib/esm/render/webgl/glsl/Polyline.js +213 -213
  684. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  685. package/lib/esm/render/webgl/glsl/RealityMesh.js +83 -83
  686. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  687. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  688. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  689. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  690. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  691. package/lib/esm/render/webgl/glsl/SkySphere.js +33 -33
  692. package/lib/esm/render/webgl/glsl/SkySphere.js.map +1 -1
  693. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +51 -51
  694. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  695. package/lib/esm/render/webgl/glsl/Surface.js +239 -239
  696. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  697. package/lib/esm/render/webgl/glsl/Thematic.js +134 -134
  698. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  699. package/lib/esm/render/webgl/glsl/Translucency.js +19 -19
  700. package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
  701. package/lib/esm/render/webgl/glsl/Vertex.js +73 -73
  702. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  703. package/lib/esm/render/webgl/glsl/Viewport.js +38 -38
  704. package/lib/esm/render/webgl/glsl/Viewport.js.map +1 -1
  705. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  706. package/lib/esm/render/webgl/glsl/Wiremesh.js +10 -10
  707. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -1
  708. package/lib/esm/render-primitives.js.map +1 -1
  709. package/lib/esm/request/Request.js.map +1 -1
  710. package/lib/esm/tile/B3dmReader.js.map +1 -1
  711. package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
  712. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -1
  713. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  714. package/lib/esm/tile/ContextShareProvider.js.map +1 -1
  715. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  716. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  717. package/lib/esm/tile/GltfReader.js.map +1 -1
  718. package/lib/esm/tile/GraphicsCollector.js.map +1 -1
  719. package/lib/esm/tile/I3dmReader.js.map +1 -1
  720. package/lib/esm/tile/IModelTile.js.map +1 -1
  721. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  722. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  723. package/lib/esm/tile/ImdlReader.js.map +1 -1
  724. package/lib/esm/tile/LRUTileList.js.map +1 -1
  725. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  726. package/lib/esm/tile/PntsReader.js.map +1 -1
  727. package/lib/esm/tile/RealityTile.js.map +1 -1
  728. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  729. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  730. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  731. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  732. package/lib/esm/tile/Tile.js.map +1 -1
  733. package/lib/esm/tile/TileAdmin.js.map +1 -1
  734. package/lib/esm/tile/TileContent.js.map +1 -1
  735. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  736. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  737. package/lib/esm/tile/TileParams.js.map +1 -1
  738. package/lib/esm/tile/TileRequest.js.map +1 -1
  739. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  740. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  741. package/lib/esm/tile/TileStorage.js.map +1 -1
  742. package/lib/esm/tile/TileTree.js.map +1 -1
  743. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  744. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  745. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  746. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  747. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  748. package/lib/esm/tile/TileUser.js.map +1 -1
  749. package/lib/esm/tile/TileUserSet.js.map +1 -1
  750. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  751. package/lib/esm/tile/ViewFlagOverrides.js.map +1 -1
  752. package/lib/esm/tile/internal.js.map +1 -1
  753. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  754. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  755. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  756. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  757. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  758. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  759. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  760. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  761. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  762. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  763. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  764. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  765. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  766. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  767. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  768. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  769. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  770. package/lib/esm/tile/map/MapLayerImageryProvider.js +2 -2
  771. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  772. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  773. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  774. package/lib/esm/tile/map/MapTile.js.map +1 -1
  775. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  776. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  777. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  778. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  779. package/lib/esm/tile/map/QuadId.js.map +1 -1
  780. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  781. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  782. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  783. package/lib/esm/tile/map/WmsUtilities.js.map +1 -1
  784. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  785. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  786. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  787. package/lib/esm/tools/EditManipulator.js.map +1 -1
  788. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  789. package/lib/esm/tools/EventController.js.map +1 -1
  790. package/lib/esm/tools/IdleTool.js.map +1 -1
  791. package/lib/esm/tools/MeasureTool.js.map +1 -1
  792. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  793. package/lib/esm/tools/SelectTool.js.map +1 -1
  794. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  795. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  796. package/lib/esm/tools/ToolSettings.js.map +1 -1
  797. package/lib/esm/tools/ViewTool.js.map +1 -1
  798. package/lib/esm/webgl.js.map +1 -1
  799. package/lib/public/assets/MapLayerSources.json +25 -25
  800. package/lib/public/images/cesium-ion.svg +92 -92
  801. package/lib/public/images/imodeljs-icon.svg +2 -2
  802. package/lib/public/locales/en/CoreTools.json +477 -477
  803. package/lib/public/locales/en/iModelJs.json +170 -170
  804. package/lib/public/scripts/checkbrowser.js +24 -24
  805. package/package.json +18 -21
@@ -1 +1 @@
1
- {"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Animation.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { AnalysisStyleDisplacement, AnalysisStyleThematic, ThematicGradientSettings } from \"@itwin/core-common\";\r\nimport { AuxChannel, AuxDisplacementChannel, AuxParamChannel } from \"../../primitives/AuxChannelTable\";\r\nimport { DrawParams } from \"../DrawCommand\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { VariableType, VertexShaderBuilder, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { octDecodeNormal } from \"./Surface\";\r\nimport { unquantizePosition } from \"./Vertex\";\r\n\r\nconst initialize = `\r\n g_anim_step = vec2(1.0) / u_animLUTParams.xy;\r\n g_anim_center = g_anim_step * 0.5;\r\n`;\r\n\r\n// The vertex index is an integer in [0..numVertices].\r\n// The frame index is an integer in [0..numBytesPerVertex/2].\r\n// Therefore each frame index points at 2 bytes within the texture.\r\n// The third component of the return value is 0.0 if the input index points to the first 2 bytes of the texel, or 1.0 if pointing to the second 2 bytes\r\nconst computeAnimLUTCoords = `\r\nvec3 computeAnimLUTCoords(float vertIndex, float frameIndex) {\r\n // float baseIndex = (vertIndex * 2.0) + frameIndex;\r\n float baseIndex = (vertIndex * u_animLUTParams.z) + frameIndex;\r\n float halfIndex = baseIndex * 0.5;\r\n float index = floor(halfIndex);\r\n\r\n float epsilon = 0.5 / u_animLUTParams.x;\r\n float yId = floor(index / u_animLUTParams.x + epsilon);\r\n float xId = index - u_animLUTParams.x * yId;\r\n\r\n vec2 texCoord = g_anim_center + vec2(xId / u_animLUTParams.x, yId / u_animLUTParams.y);\r\n return vec3(texCoord, 2.0 * (halfIndex - index));\r\n}\r\n`;\r\n\r\n// Sample 2 bytes at the specified index.\r\nconst sampleAnimVec2 = `\r\nvec2 sampleAnimVec2(float vertIndex, float frameIndex) {\r\n vec3 tc = computeAnimLUTCoords(vertIndex, frameIndex);\r\n vec4 texel = floor(TEXTURE(u_animLUT, tc.xy) * 255.0 + 0.5);\r\n return texel.xy * (1.0 - tc.z) + texel.zw * tc.z;\r\n}\r\n`;\r\n\r\n// Position is quantized to 6 bytes (2 bytes per component). So we always must sample two adjacent texels. We discard two bytes based on whether the index is even or odd.\r\nconst computeAnimationFrameDisplacement = `\r\nvec3 computeAnimationFrameDisplacement(float vertIndex, float frameIndex, vec3 origin, vec3 scale) {\r\n vec3 tc = computeAnimLUTCoords(vertIndex, frameIndex);\r\n vec4 enc1 = floor(TEXTURE(u_animLUT, tc.xy) * 255.0 + 0.5);\r\n tc.x += g_anim_step.x;\r\n vec4 enc2 = floor(TEXTURE(u_animLUT, tc.xy) * 255.0 + 0.5);\r\n\r\n vec2 ex = enc1.xy * (1.0 - tc.z) + enc1.zw * tc.z;\r\n vec2 ey = enc1.zw * (1.0 - tc.z) + enc2.xy * tc.z;\r\n vec2 ez = enc2.xy * (1.0 - tc.z) + enc2.zw * tc.z;\r\n\r\n vec3 qpos = vec3(decodeUInt16(ex), decodeUInt16(ey), decodeUInt16(ez));\r\n return unquantizePosition(qpos, origin, scale).xyz;\r\n}\r\n`;\r\n\r\nconst computeAnimationDisplacement = `\r\nvec3 computeAnimationDisplacement(float vertIndex, float frameIndex0, float frameIndex1, float fraction, vec3 origin, vec3 scale) {\r\n if (frameIndex0 < 0.0)\r\n return vec3(0.0, 0.0, 0.0);\r\n\r\n vec3 displacement = computeAnimationFrameDisplacement(vertIndex, frameIndex0, origin, scale);\r\n if (fraction > 0.0) {\r\n vec3 displacement1 = computeAnimationFrameDisplacement(vertIndex, frameIndex1, origin, scale);\r\n displacement += fraction * (displacement1 - displacement);\r\n }\r\n\r\n return displacement;\r\n}\r\n`;\r\n\r\nconst adjustRawPosition = `\r\n rawPos.xyz += computeAnimationDisplacement(g_vertexLUTIndex, u_animDispParams.x, u_animDispParams.y, u_animDispParams.z, u_qAnimDispOrigin, u_qAnimDispScale);\r\n return rawPos;\r\n`;\r\n\r\nconst computeAnimationFrameNormal = `\r\nvec3 computeAnimationFrameNormal(float frameIndex) {\r\n vec2 enc = sampleAnimVec2(g_vertexLUTIndex, frameIndex);\r\n return octDecodeNormal(enc);\r\n}\r\n`;\r\n\r\nconst computeAnimationNormal = `\r\nvec3 computeAnimationNormal(float frameIndex0, float frameIndex1, float fraction) {\r\n vec3 normal = computeAnimationFrameNormal(frameIndex0);\r\n if (fraction > 0.0) {\r\n vec3 normal1 = computeAnimationFrameNormal(frameIndex1);\r\n normal += fraction * (normal1 - normal);\r\n }\r\n\r\n return normal;\r\n}\r\n`;\r\n\r\nconst computeAnimationFrameParam = `\r\nfloat computeAnimationFrameParam(float frameIndex, float origin, float scale) {\r\n vec2 enc = sampleAnimVec2(g_vertexLUTIndex, frameIndex);\r\n return clamp((origin + scale * decodeUInt16(enc)), 0.0, 1.0);\r\n}\r\n`;\r\n\r\nconst computeAnimationParam = `\r\nvec2 computeAnimationParam(float frameIndex0, float frameIndex1, float fraction, float origin, float scale) {\r\n float param = computeAnimationFrameParam(frameIndex0, origin, scale);\r\n if (fraction > 0.0) {\r\n float param1 = computeAnimationFrameParam(frameIndex1, origin, scale);\r\n param += fraction * (param1 - param);\r\n }\r\n\r\n return vec2(.5, param);\r\n}\r\n`;\r\n\r\nconst scratchAnimParams = [\r\n undefined,\r\n undefined,\r\n new Float32Array(2), // origin, scale\r\n new Float32Array(3), // index0, index1, fraction\r\n];\r\n\r\nfunction getAnimParams(size: 2 | 3, initialValue?: number): Float32Array {\r\n const array = scratchAnimParams[size]!;\r\n if (undefined !== initialValue)\r\n for (let i = 0; i < array.length; i++)\r\n array[i] = initialValue;\r\n\r\n return array;\r\n}\r\n\r\nfunction getDisplacementChannel(params: DrawParams): { channel: AuxDisplacementChannel, displacement: AnalysisStyleDisplacement } | undefined {\r\n const displacement = params.target.analysisStyle?.displacement;\r\n if (!displacement)\r\n return undefined;\r\n\r\n const channel = params.geometry.asLUT?.lut.auxChannels?.displacements?.get(displacement.channelName);\r\n return channel ? { channel, displacement } : undefined;\r\n}\r\n\r\nfunction getNormalChannel(params: DrawParams): AuxChannel | undefined {\r\n const channelName = params.target.analysisStyle?.normalChannelName;\r\n if (undefined === channelName)\r\n return undefined;\r\n\r\n return params.geometry.asLUT?.lut.auxChannels?.normals?.get(channelName);\r\n}\r\n\r\nfunction getScalarChannel(params: DrawParams): { channel: AuxParamChannel, scalar: AnalysisStyleThematic } | undefined {\r\n const scalar = params.target.analysisStyle?.thematic;\r\n if (!scalar)\r\n return undefined;\r\n\r\n const channel = params.geometry.asMesh?.lut.auxChannels?.params?.get(scalar.channelName);\r\n return channel ? { channel, scalar } : undefined;\r\n}\r\n\r\nfunction computeAnimParams(params: Float32Array, channel: AuxChannel, fraction: number): void {\r\n const { inputs, indices } = channel;\r\n const inputValue = fraction * inputs[inputs.length - 1];\r\n for (let i = 0; i < inputs.length - 1; i++) {\r\n if (inputValue >= inputs[i] && inputValue < inputs[i + 1]) {\r\n params[0] = indices[i];\r\n params[1] = indices[i + 1];\r\n params[2] = inputValue - inputs[i] / (inputs[i + 1] - inputs[i]);\r\n return;\r\n }\r\n }\r\n params[0] = params[1] = indices[inputs.length - 1];\r\n params[2] = 0.0;\r\n}\r\n\r\n/** @internal */\r\nexport function addAnimation(vert: VertexShaderBuilder, isSurface: boolean): void {\r\n // Lookup table\r\n vert.addGlobal(\"g_anim_step\", VariableType.Vec2);\r\n vert.addGlobal(\"g_anim_center\", VariableType.Vec2);\r\n vert.addInitializer(initialize);\r\n vert.addFunction(unquantizePosition);\r\n\r\n vert.addUniform(\"u_animLUT\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_animLUT\", (uniform, params) => {\r\n const channels = (params.geometry.asLUT!).lut.auxChannels!;\r\n assert(undefined !== channels);\r\n channels.texture.bindSampler(uniform, TextureUnit.AuxChannelLUT);\r\n });\r\n });\r\n\r\n vert.addUniform(\"u_animLUTParams\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_animLUTParams\", (uniform, params) => {\r\n const geom = params.geometry.asLUT!;\r\n assert(undefined !== geom && undefined !== geom.lut.auxChannels);\r\n const tex = geom.lut.auxChannels.texture;\r\n const array = getAnimParams(3);\r\n array[0] = tex.width;\r\n array[1] = tex.height;\r\n array[2] = geom.lut.auxChannels.numBytesPerVertex / 2;\r\n uniform.setUniform3fv(array);\r\n });\r\n });\r\n\r\n vert.addFunction(computeAnimLUTCoords);\r\n vert.addFunction(sampleAnimVec2);\r\n\r\n // Displacement\r\n vert.addFunction(computeAnimationFrameDisplacement);\r\n vert.addFunction(computeAnimationDisplacement);\r\n vert.set(VertexShaderComponent.AdjustRawPosition, adjustRawPosition);\r\n\r\n vert.addUniform(\"u_animDispParams\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_animDispParams\", (uniform, params) => {\r\n const animParams = getAnimParams(3, 0.0);\r\n const disp = getDisplacementChannel(params);\r\n if (undefined !== disp)\r\n computeAnimParams(animParams, disp.channel, params.target.analysisFraction);\r\n\r\n uniform.setUniform3fv(animParams);\r\n });\r\n });\r\n vert.addUniform(\"u_qAnimDispScale\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qAnimDispScale\", (uniform, params) => {\r\n const animParams = getAnimParams(3, 0.0);\r\n const disp = getDisplacementChannel(params);\r\n if (undefined !== disp)\r\n for (let i = 0; i < 3; i++)\r\n animParams[i] = disp.channel.qScale[i] * disp.displacement.scale;\r\n\r\n uniform.setUniform3fv(animParams);\r\n });\r\n });\r\n vert.addUniform(\"u_qAnimDispOrigin\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_qAnimDispOrigin\", (uniform, params) => {\r\n const animParams = getAnimParams(3, 0.0);\r\n const disp = getDisplacementChannel(params);\r\n if (undefined !== disp)\r\n for (let i = 0; i < 3; i++)\r\n animParams[i] = disp.channel.qOrigin[i] * disp.displacement.scale;\r\n\r\n uniform.setUniform3fv(animParams);\r\n });\r\n });\r\n\r\n // Normal and param\r\n if (isSurface) {\r\n vert.addFunction(octDecodeNormal);\r\n vert.addFunction(computeAnimationFrameNormal);\r\n vert.addFunction(computeAnimationNormal);\r\n\r\n vert.addFunction(computeAnimationFrameParam);\r\n vert.addFunction(computeAnimationParam);\r\n\r\n vert.addUniform(\"u_animNormalParams\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_animNormalParams\", (uniform, params) => {\r\n const animParams = getAnimParams(3, -1.0);\r\n const channel = getNormalChannel(params);\r\n if (undefined !== channel)\r\n computeAnimParams(animParams, channel, params.target.analysisFraction);\r\n\r\n uniform.setUniform3fv(animParams);\r\n });\r\n });\r\n\r\n vert.addUniform(\"u_animScalarParams\", VariableType.Vec3, (prog) => {\r\n prog.addGraphicUniform(\"u_animScalarParams\", (uniform, params) => {\r\n const scalars = getScalarChannel(params);\r\n const animParams = getAnimParams(3, -1.0);\r\n if (scalars)\r\n computeAnimParams(animParams, scalars.channel, params.target.analysisFraction);\r\n\r\n uniform.setUniform3fv(animParams);\r\n });\r\n });\r\n\r\n vert.addUniform(\"u_animScalarQParams\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_animScalarQParams\", (uniform, params) => {\r\n const scalars = getScalarChannel(params);\r\n const animParams = getAnimParams(2, 1.0);\r\n if (scalars) {\r\n const range = scalars.scalar.range;\r\n let rangeScale = range.high - range.low;\r\n if (rangeScale === 0)\r\n rangeScale = 1;\r\n\r\n animParams[0] = ThematicGradientSettings.margin + (scalars.channel.qOrigin - range.low) / rangeScale;\r\n animParams[1] = ThematicGradientSettings.contentRange * scalars.channel.qScale / rangeScale;\r\n }\r\n\r\n uniform.setUniform2fv(animParams);\r\n });\r\n });\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"Animation.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Animation.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { AnalysisStyleDisplacement, AnalysisStyleThematic, ThematicGradientSettings } from \"@itwin/core-common\";\nimport { AuxChannel, AuxDisplacementChannel, AuxParamChannel } from \"../../primitives/AuxChannelTable\";\nimport { DrawParams } from \"../DrawCommand\";\nimport { TextureUnit } from \"../RenderFlags\";\nimport { VariableType, VertexShaderBuilder, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { octDecodeNormal } from \"./Surface\";\nimport { unquantizePosition } from \"./Vertex\";\n\nconst initialize = `\n g_anim_step = vec2(1.0) / u_animLUTParams.xy;\n g_anim_center = g_anim_step * 0.5;\n`;\n\n// The vertex index is an integer in [0..numVertices].\n// The frame index is an integer in [0..numBytesPerVertex/2].\n// Therefore each frame index points at 2 bytes within the texture.\n// The third component of the return value is 0.0 if the input index points to the first 2 bytes of the texel, or 1.0 if pointing to the second 2 bytes\nconst computeAnimLUTCoords = `\nvec3 computeAnimLUTCoords(float vertIndex, float frameIndex) {\n // float baseIndex = (vertIndex * 2.0) + frameIndex;\n float baseIndex = (vertIndex * u_animLUTParams.z) + frameIndex;\n float halfIndex = baseIndex * 0.5;\n float index = floor(halfIndex);\n\n float epsilon = 0.5 / u_animLUTParams.x;\n float yId = floor(index / u_animLUTParams.x + epsilon);\n float xId = index - u_animLUTParams.x * yId;\n\n vec2 texCoord = g_anim_center + vec2(xId / u_animLUTParams.x, yId / u_animLUTParams.y);\n return vec3(texCoord, 2.0 * (halfIndex - index));\n}\n`;\n\n// Sample 2 bytes at the specified index.\nconst sampleAnimVec2 = `\nvec2 sampleAnimVec2(float vertIndex, float frameIndex) {\n vec3 tc = computeAnimLUTCoords(vertIndex, frameIndex);\n vec4 texel = floor(TEXTURE(u_animLUT, tc.xy) * 255.0 + 0.5);\n return texel.xy * (1.0 - tc.z) + texel.zw * tc.z;\n}\n`;\n\n// Position is quantized to 6 bytes (2 bytes per component). So we always must sample two adjacent texels. We discard two bytes based on whether the index is even or odd.\nconst computeAnimationFrameDisplacement = `\nvec3 computeAnimationFrameDisplacement(float vertIndex, float frameIndex, vec3 origin, vec3 scale) {\n vec3 tc = computeAnimLUTCoords(vertIndex, frameIndex);\n vec4 enc1 = floor(TEXTURE(u_animLUT, tc.xy) * 255.0 + 0.5);\n tc.x += g_anim_step.x;\n vec4 enc2 = floor(TEXTURE(u_animLUT, tc.xy) * 255.0 + 0.5);\n\n vec2 ex = enc1.xy * (1.0 - tc.z) + enc1.zw * tc.z;\n vec2 ey = enc1.zw * (1.0 - tc.z) + enc2.xy * tc.z;\n vec2 ez = enc2.xy * (1.0 - tc.z) + enc2.zw * tc.z;\n\n vec3 qpos = vec3(decodeUInt16(ex), decodeUInt16(ey), decodeUInt16(ez));\n return unquantizePosition(qpos, origin, scale).xyz;\n}\n`;\n\nconst computeAnimationDisplacement = `\nvec3 computeAnimationDisplacement(float vertIndex, float frameIndex0, float frameIndex1, float fraction, vec3 origin, vec3 scale) {\n if (frameIndex0 < 0.0)\n return vec3(0.0, 0.0, 0.0);\n\n vec3 displacement = computeAnimationFrameDisplacement(vertIndex, frameIndex0, origin, scale);\n if (fraction > 0.0) {\n vec3 displacement1 = computeAnimationFrameDisplacement(vertIndex, frameIndex1, origin, scale);\n displacement += fraction * (displacement1 - displacement);\n }\n\n return displacement;\n}\n`;\n\nconst adjustRawPosition = `\n rawPos.xyz += computeAnimationDisplacement(g_vertexLUTIndex, u_animDispParams.x, u_animDispParams.y, u_animDispParams.z, u_qAnimDispOrigin, u_qAnimDispScale);\n return rawPos;\n`;\n\nconst computeAnimationFrameNormal = `\nvec3 computeAnimationFrameNormal(float frameIndex) {\n vec2 enc = sampleAnimVec2(g_vertexLUTIndex, frameIndex);\n return octDecodeNormal(enc);\n}\n`;\n\nconst computeAnimationNormal = `\nvec3 computeAnimationNormal(float frameIndex0, float frameIndex1, float fraction) {\n vec3 normal = computeAnimationFrameNormal(frameIndex0);\n if (fraction > 0.0) {\n vec3 normal1 = computeAnimationFrameNormal(frameIndex1);\n normal += fraction * (normal1 - normal);\n }\n\n return normal;\n}\n`;\n\nconst computeAnimationFrameParam = `\nfloat computeAnimationFrameParam(float frameIndex, float origin, float scale) {\n vec2 enc = sampleAnimVec2(g_vertexLUTIndex, frameIndex);\n return clamp((origin + scale * decodeUInt16(enc)), 0.0, 1.0);\n}\n`;\n\nconst computeAnimationParam = `\nvec2 computeAnimationParam(float frameIndex0, float frameIndex1, float fraction, float origin, float scale) {\n float param = computeAnimationFrameParam(frameIndex0, origin, scale);\n if (fraction > 0.0) {\n float param1 = computeAnimationFrameParam(frameIndex1, origin, scale);\n param += fraction * (param1 - param);\n }\n\n return vec2(.5, param);\n}\n`;\n\nconst scratchAnimParams = [\n undefined,\n undefined,\n new Float32Array(2), // origin, scale\n new Float32Array(3), // index0, index1, fraction\n];\n\nfunction getAnimParams(size: 2 | 3, initialValue?: number): Float32Array {\n const array = scratchAnimParams[size]!;\n if (undefined !== initialValue)\n for (let i = 0; i < array.length; i++)\n array[i] = initialValue;\n\n return array;\n}\n\nfunction getDisplacementChannel(params: DrawParams): { channel: AuxDisplacementChannel, displacement: AnalysisStyleDisplacement } | undefined {\n const displacement = params.target.analysisStyle?.displacement;\n if (!displacement)\n return undefined;\n\n const channel = params.geometry.asLUT?.lut.auxChannels?.displacements?.get(displacement.channelName);\n return channel ? { channel, displacement } : undefined;\n}\n\nfunction getNormalChannel(params: DrawParams): AuxChannel | undefined {\n const channelName = params.target.analysisStyle?.normalChannelName;\n if (undefined === channelName)\n return undefined;\n\n return params.geometry.asLUT?.lut.auxChannels?.normals?.get(channelName);\n}\n\nfunction getScalarChannel(params: DrawParams): { channel: AuxParamChannel, scalar: AnalysisStyleThematic } | undefined {\n const scalar = params.target.analysisStyle?.thematic;\n if (!scalar)\n return undefined;\n\n const channel = params.geometry.asMesh?.lut.auxChannels?.params?.get(scalar.channelName);\n return channel ? { channel, scalar } : undefined;\n}\n\nfunction computeAnimParams(params: Float32Array, channel: AuxChannel, fraction: number): void {\n const { inputs, indices } = channel;\n const inputValue = fraction * inputs[inputs.length - 1];\n for (let i = 0; i < inputs.length - 1; i++) {\n if (inputValue >= inputs[i] && inputValue < inputs[i + 1]) {\n params[0] = indices[i];\n params[1] = indices[i + 1];\n params[2] = inputValue - inputs[i] / (inputs[i + 1] - inputs[i]);\n return;\n }\n }\n params[0] = params[1] = indices[inputs.length - 1];\n params[2] = 0.0;\n}\n\n/** @internal */\nexport function addAnimation(vert: VertexShaderBuilder, isSurface: boolean): void {\n // Lookup table\n vert.addGlobal(\"g_anim_step\", VariableType.Vec2);\n vert.addGlobal(\"g_anim_center\", VariableType.Vec2);\n vert.addInitializer(initialize);\n vert.addFunction(unquantizePosition);\n\n vert.addUniform(\"u_animLUT\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_animLUT\", (uniform, params) => {\n const channels = (params.geometry.asLUT!).lut.auxChannels!;\n assert(undefined !== channels);\n channels.texture.bindSampler(uniform, TextureUnit.AuxChannelLUT);\n });\n });\n\n vert.addUniform(\"u_animLUTParams\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_animLUTParams\", (uniform, params) => {\n const geom = params.geometry.asLUT!;\n assert(undefined !== geom && undefined !== geom.lut.auxChannels);\n const tex = geom.lut.auxChannels.texture;\n const array = getAnimParams(3);\n array[0] = tex.width;\n array[1] = tex.height;\n array[2] = geom.lut.auxChannels.numBytesPerVertex / 2;\n uniform.setUniform3fv(array);\n });\n });\n\n vert.addFunction(computeAnimLUTCoords);\n vert.addFunction(sampleAnimVec2);\n\n // Displacement\n vert.addFunction(computeAnimationFrameDisplacement);\n vert.addFunction(computeAnimationDisplacement);\n vert.set(VertexShaderComponent.AdjustRawPosition, adjustRawPosition);\n\n vert.addUniform(\"u_animDispParams\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_animDispParams\", (uniform, params) => {\n const animParams = getAnimParams(3, 0.0);\n const disp = getDisplacementChannel(params);\n if (undefined !== disp)\n computeAnimParams(animParams, disp.channel, params.target.analysisFraction);\n\n uniform.setUniform3fv(animParams);\n });\n });\n vert.addUniform(\"u_qAnimDispScale\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_qAnimDispScale\", (uniform, params) => {\n const animParams = getAnimParams(3, 0.0);\n const disp = getDisplacementChannel(params);\n if (undefined !== disp)\n for (let i = 0; i < 3; i++)\n animParams[i] = disp.channel.qScale[i] * disp.displacement.scale;\n\n uniform.setUniform3fv(animParams);\n });\n });\n vert.addUniform(\"u_qAnimDispOrigin\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_qAnimDispOrigin\", (uniform, params) => {\n const animParams = getAnimParams(3, 0.0);\n const disp = getDisplacementChannel(params);\n if (undefined !== disp)\n for (let i = 0; i < 3; i++)\n animParams[i] = disp.channel.qOrigin[i] * disp.displacement.scale;\n\n uniform.setUniform3fv(animParams);\n });\n });\n\n // Normal and param\n if (isSurface) {\n vert.addFunction(octDecodeNormal);\n vert.addFunction(computeAnimationFrameNormal);\n vert.addFunction(computeAnimationNormal);\n\n vert.addFunction(computeAnimationFrameParam);\n vert.addFunction(computeAnimationParam);\n\n vert.addUniform(\"u_animNormalParams\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_animNormalParams\", (uniform, params) => {\n const animParams = getAnimParams(3, -1.0);\n const channel = getNormalChannel(params);\n if (undefined !== channel)\n computeAnimParams(animParams, channel, params.target.analysisFraction);\n\n uniform.setUniform3fv(animParams);\n });\n });\n\n vert.addUniform(\"u_animScalarParams\", VariableType.Vec3, (prog) => {\n prog.addGraphicUniform(\"u_animScalarParams\", (uniform, params) => {\n const scalars = getScalarChannel(params);\n const animParams = getAnimParams(3, -1.0);\n if (scalars)\n computeAnimParams(animParams, scalars.channel, params.target.analysisFraction);\n\n uniform.setUniform3fv(animParams);\n });\n });\n\n vert.addUniform(\"u_animScalarQParams\", VariableType.Vec2, (prog) => {\n prog.addGraphicUniform(\"u_animScalarQParams\", (uniform, params) => {\n const scalars = getScalarChannel(params);\n const animParams = getAnimParams(2, 1.0);\n if (scalars) {\n const range = scalars.scalar.range;\n let rangeScale = range.high - range.low;\n if (rangeScale === 0)\n rangeScale = 1;\n\n animParams[0] = ThematicGradientSettings.margin + (scalars.channel.qOrigin - range.low) / rangeScale;\n animParams[1] = ThematicGradientSettings.contentRange * scalars.channel.qScale / rangeScale;\n }\n\n uniform.setUniform2fv(animParams);\n });\n });\n }\n}\n"]}
@@ -16,45 +16,45 @@ const Fragment_1 = require("./Fragment");
16
16
  const Viewport_1 = require("./Viewport");
17
17
  const ViewportQuad_1 = require("./ViewportQuad");
18
18
  // This shader applies a Gaussian blur in one dimension.
19
- const computeBlur = `
20
- float delta = u_blurSettings.x;
21
- float sigma = u_blurSettings.y;
22
- float texelStepSize = u_blurSettings.z;
23
-
24
- vec2 tc = windowCoordsToTexCoords(gl_FragCoord.xy);
25
- vec2 step = texelStepSize / u_viewport;
26
-
27
- vec3 gaussian;
28
- const float twoPi = 6.283185307179586;
29
- gaussian.x = 1.0 / (sqrt(twoPi) * sigma);
30
- gaussian.y = exp((-0.5 * delta * delta) / (sigma * sigma));
31
- gaussian.z = gaussian.y * gaussian.y;
32
-
33
- vec4 origColor = TEXTURE(u_textureToBlur, tc);
34
- vec4 result = origColor * gaussian.x;
35
- for (int i = 1; i < 8; i++) {
36
- gaussian.xy *= gaussian.yz;
37
-
38
- vec2 offset = float(i) * u_blurDir * step;
39
- vec2 tcMinusOffset = tc - offset;
40
- vec2 tcPlusOffset = tc + offset;
41
-
42
- result += TEXTURE(u_textureToBlur, tcMinusOffset) * gaussian.x;
43
- result += TEXTURE(u_textureToBlur, tcPlusOffset) * gaussian.x;
44
- }
45
-
46
- return result;
19
+ const computeBlur = `
20
+ float delta = u_blurSettings.x;
21
+ float sigma = u_blurSettings.y;
22
+ float texelStepSize = u_blurSettings.z;
23
+
24
+ vec2 tc = windowCoordsToTexCoords(gl_FragCoord.xy);
25
+ vec2 step = texelStepSize / u_viewport;
26
+
27
+ vec3 gaussian;
28
+ const float twoPi = 6.283185307179586;
29
+ gaussian.x = 1.0 / (sqrt(twoPi) * sigma);
30
+ gaussian.y = exp((-0.5 * delta * delta) / (sigma * sigma));
31
+ gaussian.z = gaussian.y * gaussian.y;
32
+
33
+ vec4 origColor = TEXTURE(u_textureToBlur, tc);
34
+ vec4 result = origColor * gaussian.x;
35
+ for (int i = 1; i < 8; i++) {
36
+ gaussian.xy *= gaussian.yz;
37
+
38
+ vec2 offset = float(i) * u_blurDir * step;
39
+ vec2 tcMinusOffset = tc - offset;
40
+ vec2 tcPlusOffset = tc + offset;
41
+
42
+ result += TEXTURE(u_textureToBlur, tcMinusOffset) * gaussian.x;
43
+ result += TEXTURE(u_textureToBlur, tcPlusOffset) * gaussian.x;
44
+ }
45
+
46
+ return result;
47
47
  `;
48
48
  // This optionally skips adding in the blur texture result if the current pixel is a linear/edge/silhouette.
49
- const testRenderOrder = `
50
- vec2 rotc = windowCoordsToTexCoords(gl_FragCoord.xy);
51
- vec4 pdo = TEXTURE(u_pickDepthAndOrder, rotc);
52
- float order = floor(pdo.x * 16.0 + 0.5);
53
- if (order >= kRenderOrder_PlanarBit)
54
- order = order - kRenderOrder_PlanarBit;
55
- if (order >= kRenderOrder_Linear && order <= kRenderOrder_Silhouette)
56
- return vec4(1.0);
57
-
49
+ const testRenderOrder = `
50
+ vec2 rotc = windowCoordsToTexCoords(gl_FragCoord.xy);
51
+ vec4 pdo = TEXTURE(u_pickDepthAndOrder, rotc);
52
+ float order = floor(pdo.x * 16.0 + 0.5);
53
+ if (order >= kRenderOrder_PlanarBit)
54
+ order = order - kRenderOrder_PlanarBit;
55
+ if (order >= kRenderOrder_Linear && order <= kRenderOrder_Silhouette)
56
+ return vec4(1.0);
57
+
58
58
  `;
59
59
  /** @internal */
60
60
  function createBlurProgram(context, type) {
@@ -1 +1 @@
1
- {"version":3,"file":"Blur.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Blur.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,sDAA2D;AAC3D,gDAA6C;AAG7C,wCAA6C;AAC7C,yDAA6D;AAC7D,yCAAmE;AACnE,yCAAyC;AACzC,iDAA2D;AAE3D,wDAAwD;AACxD,MAAM,WAAW,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BnB,CAAC;AAEF,4GAA4G;AAC5G,MAAM,eAAe,GAAG;;;;;;;;;CASvB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,iBAAiB,CAAC,OAA+B,EAAE,IAAc;IAC/E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAA,+BAAoB,EAAC,IAAI,CAAC,CAAC;IAE3B,IAAI,yBAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;QAC/B,IAAA,0CAAuB,EAAC,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,GAAG,mDAA2C,eAAe,GAAG,WAAW,CAAC,CAAC;KACnF;SAAM;QACL,IAAI,CAAC,GAAG,mDAA2C,WAAW,CAAC,CAAC;KACjE;IAED,IAAI,CAAC,GAAG,kDAAyC,0BAAe,CAAC,CAAC;IAElE,IAAA,sBAAW,EAAC,IAAI,CAAC,CAAC;IAElB,IAAI,CAAC,UAAU,CAAC,iBAAiB,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAClE,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,QAAwB,CAAC;YAC7C,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC;QAC7E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,WAAW,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,IAAI,GAAG,MAAM,CAAC,QAAwB,CAAC;YAC7C,OAAO,CAAC,aAAa,CAAC,IAAI,YAAY,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,UAAU,CAAC,gBAAgB,6BAAqB,CAAC,IAAI,EAAE,EAAE;QAC5D,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC3D,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;gBACpC,mJAAmJ;gBACnJ,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,SAAS;gBAChD,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,SAAS;gBAChD,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC,iBAAiB;aAAC,CAAC,CAAC;YAC7D,OAAO,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,yBAAQ,CAAC,SAAS,KAAK,IAAI,EAAE;QAC/B,IAAI,CAAC,UAAU,CAAC,qBAAqB,kCAA0B,CAAC,IAAI,EAAE,EAAE;YACtE,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAChE,MAAM,IAAI,GAAG,MAAM,CAAC,QAAwB,CAAC;gBAC7C,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,eAAe;oBAC1C,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,mBAAmB,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;;oBAEhF,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;YAC9E,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,qBAAqB,CAAC;KACpD;SAAM;QACL,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;KAC3C;IAED,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AA5DD,8CA4DC","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 { BlurGeometry, BlurType } from \"../CachedGeometry\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderComponent, VariablePrecision, VariableType } from \"../ShaderBuilder\";\r\nimport { ShaderProgram } from \"../ShaderProgram\";\r\nimport { Texture2DHandle } from \"../Texture\";\r\nimport { addRenderOrderConstants } from \"./FeatureSymbology\";\r\nimport { addWindowToTexCoords, assignFragColor } from \"./Fragment\";\r\nimport { addViewport } from \"./Viewport\";\r\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\r\n\r\n// This shader applies a Gaussian blur in one dimension.\r\nconst computeBlur = `\r\n float delta = u_blurSettings.x;\r\n float sigma = u_blurSettings.y;\r\n float texelStepSize = u_blurSettings.z;\r\n\r\n vec2 tc = windowCoordsToTexCoords(gl_FragCoord.xy);\r\n vec2 step = texelStepSize / u_viewport;\r\n\r\n vec3 gaussian;\r\n const float twoPi = 6.283185307179586;\r\n gaussian.x = 1.0 / (sqrt(twoPi) * sigma);\r\n gaussian.y = exp((-0.5 * delta * delta) / (sigma * sigma));\r\n gaussian.z = gaussian.y * gaussian.y;\r\n\r\n vec4 origColor = TEXTURE(u_textureToBlur, tc);\r\n vec4 result = origColor * gaussian.x;\r\n for (int i = 1; i < 8; i++) {\r\n gaussian.xy *= gaussian.yz;\r\n\r\n vec2 offset = float(i) * u_blurDir * step;\r\n vec2 tcMinusOffset = tc - offset;\r\n vec2 tcPlusOffset = tc + offset;\r\n\r\n result += TEXTURE(u_textureToBlur, tcMinusOffset) * gaussian.x;\r\n result += TEXTURE(u_textureToBlur, tcPlusOffset) * gaussian.x;\r\n }\r\n\r\n return result;\r\n`;\r\n\r\n// This optionally skips adding in the blur texture result if the current pixel is a linear/edge/silhouette.\r\nconst testRenderOrder = `\r\n vec2 rotc = windowCoordsToTexCoords(gl_FragCoord.xy);\r\n vec4 pdo = TEXTURE(u_pickDepthAndOrder, rotc);\r\n float order = floor(pdo.x * 16.0 + 0.5);\r\n if (order >= kRenderOrder_PlanarBit)\r\n order = order - kRenderOrder_PlanarBit;\r\n if (order >= kRenderOrder_Linear && order <= kRenderOrder_Silhouette)\r\n return vec4(1.0);\r\n\r\n`;\r\n\r\n/** @internal */\r\nexport function createBlurProgram(context: WebGL2RenderingContext, type: BlurType): ShaderProgram {\r\n const builder = createViewportQuadBuilder(true);\r\n const frag = builder.frag;\r\n\r\n addWindowToTexCoords(frag);\r\n\r\n if (BlurType.TestOrder === type) {\r\n addRenderOrderConstants(frag);\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, testRenderOrder + computeBlur);\r\n } else {\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBlur);\r\n }\r\n\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\r\n\r\n addViewport(frag);\r\n\r\n frag.addUniform(\"u_textureToBlur\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_textureToBlur\", (uniform, params) => {\r\n const geom = params.geometry as BlurGeometry;\r\n Texture2DHandle.bindSampler(uniform, geom.textureToBlur, TextureUnit.Zero);\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_blurDir\", VariableType.Vec2, (prog) => {\r\n prog.addGraphicUniform(\"u_blurDir\", (uniform, params) => {\r\n const geom = params.geometry as BlurGeometry;\r\n uniform.setUniform2fv(new Float32Array([geom.blurDir.x, geom.blurDir.y]));\r\n });\r\n });\r\n\r\n frag.addUniform(\"u_blurSettings\", VariableType.Vec3, (prog) => {\r\n prog.addProgramUniform(\"u_blurSettings\", (uniform, params) => {\r\n const hbaoSettings = new Float32Array([\r\n // ###TODO: If we want to apply this blur shader to situations other than AO, we should move these settings away from the ambient occlusion params.\r\n params.target.ambientOcclusionSettings.blurDelta,\r\n params.target.ambientOcclusionSettings.blurSigma,\r\n params.target.ambientOcclusionSettings.blurTexelStepSize]);\r\n uniform.setUniform3fv(hbaoSettings);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n if (BlurType.TestOrder === type) {\r\n frag.addUniform(\"u_pickDepthAndOrder\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_pickDepthAndOrder\", (uniform, params) => {\r\n const geom = params.geometry as BlurGeometry;\r\n if (params.target.compositor.needHiddenEdges)\r\n Texture2DHandle.bindSampler(uniform, geom.depthAndOrderHidden, TextureUnit.One);\r\n else\r\n Texture2DHandle.bindSampler(uniform, geom.depthAndOrder, TextureUnit.One);\r\n });\r\n });\r\n builder.vert.headerComment = \"//!V! BlurTestOrder\";\r\n builder.frag.headerComment = \"//!F! BlurTestOrder\";\r\n } else {\r\n builder.vert.headerComment = \"//!V! Blur\";\r\n builder.frag.headerComment = \"//!F! Blur\";\r\n }\r\n\r\n return builder.buildProgram(context);\r\n}\r\n"]}
1
+ {"version":3,"file":"Blur.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Blur.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { BlurGeometry, BlurType } from \"../CachedGeometry\";\nimport { TextureUnit } from \"../RenderFlags\";\nimport { FragmentShaderComponent, VariablePrecision, VariableType } from \"../ShaderBuilder\";\nimport { ShaderProgram } from \"../ShaderProgram\";\nimport { Texture2DHandle } from \"../Texture\";\nimport { addRenderOrderConstants } from \"./FeatureSymbology\";\nimport { addWindowToTexCoords, assignFragColor } from \"./Fragment\";\nimport { addViewport } from \"./Viewport\";\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\n\n// This shader applies a Gaussian blur in one dimension.\nconst computeBlur = `\n float delta = u_blurSettings.x;\n float sigma = u_blurSettings.y;\n float texelStepSize = u_blurSettings.z;\n\n vec2 tc = windowCoordsToTexCoords(gl_FragCoord.xy);\n vec2 step = texelStepSize / u_viewport;\n\n vec3 gaussian;\n const float twoPi = 6.283185307179586;\n gaussian.x = 1.0 / (sqrt(twoPi) * sigma);\n gaussian.y = exp((-0.5 * delta * delta) / (sigma * sigma));\n gaussian.z = gaussian.y * gaussian.y;\n\n vec4 origColor = TEXTURE(u_textureToBlur, tc);\n vec4 result = origColor * gaussian.x;\n for (int i = 1; i < 8; i++) {\n gaussian.xy *= gaussian.yz;\n\n vec2 offset = float(i) * u_blurDir * step;\n vec2 tcMinusOffset = tc - offset;\n vec2 tcPlusOffset = tc + offset;\n\n result += TEXTURE(u_textureToBlur, tcMinusOffset) * gaussian.x;\n result += TEXTURE(u_textureToBlur, tcPlusOffset) * gaussian.x;\n }\n\n return result;\n`;\n\n// This optionally skips adding in the blur texture result if the current pixel is a linear/edge/silhouette.\nconst testRenderOrder = `\n vec2 rotc = windowCoordsToTexCoords(gl_FragCoord.xy);\n vec4 pdo = TEXTURE(u_pickDepthAndOrder, rotc);\n float order = floor(pdo.x * 16.0 + 0.5);\n if (order >= kRenderOrder_PlanarBit)\n order = order - kRenderOrder_PlanarBit;\n if (order >= kRenderOrder_Linear && order <= kRenderOrder_Silhouette)\n return vec4(1.0);\n\n`;\n\n/** @internal */\nexport function createBlurProgram(context: WebGL2RenderingContext, type: BlurType): ShaderProgram {\n const builder = createViewportQuadBuilder(true);\n const frag = builder.frag;\n\n addWindowToTexCoords(frag);\n\n if (BlurType.TestOrder === type) {\n addRenderOrderConstants(frag);\n frag.set(FragmentShaderComponent.ComputeBaseColor, testRenderOrder + computeBlur);\n } else {\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBlur);\n }\n\n frag.set(FragmentShaderComponent.AssignFragData, assignFragColor);\n\n addViewport(frag);\n\n frag.addUniform(\"u_textureToBlur\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_textureToBlur\", (uniform, params) => {\n const geom = params.geometry as BlurGeometry;\n Texture2DHandle.bindSampler(uniform, geom.textureToBlur, TextureUnit.Zero);\n });\n });\n\n frag.addUniform(\"u_blurDir\", VariableType.Vec2, (prog) => {\n prog.addGraphicUniform(\"u_blurDir\", (uniform, params) => {\n const geom = params.geometry as BlurGeometry;\n uniform.setUniform2fv(new Float32Array([geom.blurDir.x, geom.blurDir.y]));\n });\n });\n\n frag.addUniform(\"u_blurSettings\", VariableType.Vec3, (prog) => {\n prog.addProgramUniform(\"u_blurSettings\", (uniform, params) => {\n const hbaoSettings = new Float32Array([\n // ###TODO: If we want to apply this blur shader to situations other than AO, we should move these settings away from the ambient occlusion params.\n params.target.ambientOcclusionSettings.blurDelta,\n params.target.ambientOcclusionSettings.blurSigma,\n params.target.ambientOcclusionSettings.blurTexelStepSize]);\n uniform.setUniform3fv(hbaoSettings);\n });\n }, VariablePrecision.High);\n\n if (BlurType.TestOrder === type) {\n frag.addUniform(\"u_pickDepthAndOrder\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_pickDepthAndOrder\", (uniform, params) => {\n const geom = params.geometry as BlurGeometry;\n if (params.target.compositor.needHiddenEdges)\n Texture2DHandle.bindSampler(uniform, geom.depthAndOrderHidden, TextureUnit.One);\n else\n Texture2DHandle.bindSampler(uniform, geom.depthAndOrder, TextureUnit.One);\n });\n });\n builder.vert.headerComment = \"//!V! BlurTestOrder\";\n builder.frag.headerComment = \"//!F! BlurTestOrder\";\n } else {\n builder.vert.headerComment = \"//!V! Blur\";\n builder.frag.headerComment = \"//!F! Blur\";\n }\n\n return builder.buildProgram(context);\n}\n"]}
@@ -10,10 +10,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.createClearPickAndColorProgram = void 0;
11
11
  const ViewportQuad_1 = require("./ViewportQuad");
12
12
  const computeBaseColor = "return u_bgColor;";
13
- const assignFragData = `
14
- FragColor0 = baseColor;
15
- FragColor1 = vec4(0.0);
16
- FragColor2 = vec4(0.0);
13
+ const assignFragData = `
14
+ FragColor0 = baseColor;
15
+ FragColor1 = vec4(0.0);
16
+ FragColor2 = vec4(0.0);
17
17
  `;
18
18
  /** @internal */
19
19
  function createClearPickAndColorProgram(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"ClearPickAndColor.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/ClearPickAndColor.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,cAAc,GAAG;;;;CAItB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,8BAA8B,CAAC,OAA+B;IAC5E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,KAAK,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IAErE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,yBAAyB,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,yBAAyB,CAAC;IAEvD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAlBD,wEAkBC","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 { FragmentShaderComponent, VariableType } from \"../ShaderBuilder\";\r\nimport { ShaderProgram } from \"../ShaderProgram\";\r\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\r\n\r\nconst computeBaseColor = \"return u_bgColor;\";\r\n\r\nconst assignFragData = `\r\n FragColor0 = baseColor;\r\n FragColor1 = vec4(0.0);\r\n FragColor2 = vec4(0.0);\r\n`;\r\n\r\n/** @internal */\r\nexport function createClearPickAndColorProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(false);\r\n const frag = builder.frag;\r\n frag.addUniform(\"u_bgColor\", VariableType.Vec4, (prog) => {\r\n prog.addProgramUniform(\"u_bgColor\", (uniform, params) => {\r\n params.target.uniforms.style.bindBackgroundRgba(uniform);\r\n });\r\n });\r\n\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\r\n\r\n frag.addDrawBuffersExtension(3);\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\r\n\r\n builder.vert.headerComment = \"//!V! ClearPickAndColor\";\r\n builder.frag.headerComment = \"//!F! ClearPickAndColor\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n"]}
1
+ {"version":3,"file":"ClearPickAndColor.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/ClearPickAndColor.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,cAAc,GAAG;;;;CAItB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,8BAA8B,CAAC,OAA+B;IAC5E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,KAAK,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,UAAU,CAAC,WAAW,6BAAqB,CAAC,IAAI,EAAE,EAAE;QACvD,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACtD,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IAErE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,yBAAyB,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,yBAAyB,CAAC;IAEvD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAlBD,wEAkBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { FragmentShaderComponent, VariableType } from \"../ShaderBuilder\";\nimport { ShaderProgram } from \"../ShaderProgram\";\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\n\nconst computeBaseColor = \"return u_bgColor;\";\n\nconst assignFragData = `\n FragColor0 = baseColor;\n FragColor1 = vec4(0.0);\n FragColor2 = vec4(0.0);\n`;\n\n/** @internal */\nexport function createClearPickAndColorProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(false);\n const frag = builder.frag;\n frag.addUniform(\"u_bgColor\", VariableType.Vec4, (prog) => {\n prog.addProgramUniform(\"u_bgColor\", (uniform, params) => {\n params.target.uniforms.style.bindBackgroundRgba(uniform);\n });\n });\n\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n\n frag.addDrawBuffersExtension(3);\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\n\n builder.vert.headerComment = \"//!V! ClearPickAndColor\";\n builder.frag.headerComment = \"//!F! ClearPickAndColor\";\n\n return builder.buildProgram(context);\n}\n"]}
@@ -10,9 +10,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
10
10
  exports.createClearTranslucentProgram = void 0;
11
11
  const ViewportQuad_1 = require("./ViewportQuad");
12
12
  const computeBaseColor = "return vec4(0.0);";
13
- const assignFragData = `
14
- FragColor0 = vec4(0.0, 0.0, 0.0, 1.0);
15
- FragColor1 = vec4(1.0, 0.0, 0.0, 1.0);
13
+ const assignFragData = `
14
+ FragColor0 = vec4(0.0, 0.0, 0.0, 1.0);
15
+ FragColor1 = vec4(1.0, 0.0, 0.0, 1.0);
16
16
  `;
17
17
  /** @internal */
18
18
  function createClearTranslucentProgram(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"ClearTranslucent.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/ClearTranslucent.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,cAAc,GAAG;;;CAGtB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,6BAA6B,CAAC,OAA+B;IAC3E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,KAAK,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IACrE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IAEtD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAXD,sEAWC","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 { FragmentShaderComponent } from \"../ShaderBuilder\";\r\nimport { ShaderProgram } from \"../ShaderProgram\";\r\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\r\n\r\nconst computeBaseColor = \"return vec4(0.0);\";\r\nconst assignFragData = `\r\n FragColor0 = vec4(0.0, 0.0, 0.0, 1.0);\r\n FragColor1 = vec4(1.0, 0.0, 0.0, 1.0);\r\n`;\r\n\r\n/** @internal */\r\nexport function createClearTranslucentProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(false);\r\n const frag = builder.frag;\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\r\n frag.addDrawBuffersExtension(2);\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\r\n\r\n builder.vert.headerComment = \"//!V! ClearTranslucent\";\r\n builder.frag.headerComment = \"//!F! ClearTranslucent\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n"]}
1
+ {"version":3,"file":"ClearTranslucent.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/ClearTranslucent.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAIH,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAC7C,MAAM,cAAc,GAAG;;;CAGtB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,6BAA6B,CAAC,OAA+B;IAC3E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,KAAK,CAAC,CAAC;IACjD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAC1B,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IACrE,IAAI,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;IAChC,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IAEtD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAXD,sEAWC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { FragmentShaderComponent } from \"../ShaderBuilder\";\nimport { ShaderProgram } from \"../ShaderProgram\";\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\n\nconst computeBaseColor = \"return vec4(0.0);\";\nconst assignFragData = `\n FragColor0 = vec4(0.0, 0.0, 0.0, 1.0);\n FragColor1 = vec4(1.0, 0.0, 0.0, 1.0);\n`;\n\n/** @internal */\nexport function createClearTranslucentProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(false);\n const frag = builder.frag;\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n frag.addDrawBuffersExtension(2);\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\n\n builder.vert.headerComment = \"//!V! ClearTranslucent\";\n builder.frag.headerComment = \"//!F! ClearTranslucent\";\n\n return builder.buildProgram(context);\n}\n"]}
@@ -12,71 +12,71 @@ const core_bentley_1 = require("@itwin/core-bentley");
12
12
  const RenderFlags_1 = require("../RenderFlags");
13
13
  const Common_1 = require("./Common");
14
14
  const Vertex_1 = require("./Vertex");
15
- const getClipPlaneFloat = `
16
- vec4 getClipPlane(int index) {
17
- float x = 0.5;
18
- float y = (float(index) + 0.5) / float(u_clipParams[2]);
19
- return TEXTURE(s_clipSampler, vec2(x, y));
20
- }
15
+ const getClipPlaneFloat = `
16
+ vec4 getClipPlane(int index) {
17
+ float x = 0.5;
18
+ float y = (float(index) + 0.5) / float(u_clipParams[2]);
19
+ return TEXTURE(s_clipSampler, vec2(x, y));
20
+ }
21
21
  `;
22
- exports.unpackFloat = `
23
- float unpackFloat(vec4 v) {
24
- const float bias = 38.0;
25
- v = floor(v * 255.0 + 0.5);
26
- float temp = v.w / 2.0;
27
- float exponent = floor(temp);
28
- float sign = (temp - exponent) * 2.0;
29
- exponent = exponent - bias;
30
- sign = -(sign * 2.0 - 1.0);
31
- float unpacked = dot(sign * v.xyz, vec3(1.0 / 256.0, 1.0 / 65536.0, 1.0 / 16777216.0)); // shift x right 8, y right 16 and z right 24
32
- return unpacked * pow(10.0, exponent);
33
- }
22
+ exports.unpackFloat = `
23
+ float unpackFloat(vec4 v) {
24
+ const float bias = 38.0;
25
+ v = floor(v * 255.0 + 0.5);
26
+ float temp = v.w / 2.0;
27
+ float exponent = floor(temp);
28
+ float sign = (temp - exponent) * 2.0;
29
+ exponent = exponent - bias;
30
+ sign = -(sign * 2.0 - 1.0);
31
+ float unpacked = dot(sign * v.xyz, vec3(1.0 / 256.0, 1.0 / 65536.0, 1.0 / 16777216.0)); // shift x right 8, y right 16 and z right 24
32
+ return unpacked * pow(10.0, exponent);
33
+ }
34
34
  `;
35
- const calcClipPlaneDist = `
36
- float calcClipPlaneDist(vec3 camPos, vec4 plane) {
37
- return dot(vec4(camPos, 1.0), plane);
38
- }
35
+ const calcClipPlaneDist = `
36
+ float calcClipPlaneDist(vec3 camPos, vec4 plane) {
37
+ return dot(vec4(camPos, 1.0), plane);
38
+ }
39
39
  `;
40
- const applyClipPlanesPrelude = `
41
- int numPlaneSets = 1;
42
- int numSetsClippedBy = 0;
43
- bool clippedByCurrentPlaneSet = false;
40
+ const applyClipPlanesPrelude = `
41
+ int numPlaneSets = 1;
42
+ int numSetsClippedBy = 0;
43
+ bool clippedByCurrentPlaneSet = false;
44
44
  `;
45
- const applyClipPlanesLoop = `
46
- for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {
45
+ const applyClipPlanesLoop = `
46
+ for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {
47
47
  `;
48
- const applyClipPlanesPostlude = `
49
- vec4 plane = getClipPlane(i);
50
- if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets
51
- if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)
52
- break;
53
-
54
- numPlaneSets = 1;
55
- numSetsClippedBy = 0;
56
- clippedByCurrentPlaneSet = false;
57
- } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set
58
- numPlaneSets = numPlaneSets + 1;
59
- numSetsClippedBy += int(clippedByCurrentPlaneSet);
60
- clippedByCurrentPlaneSet = false;
61
- } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {
62
- clippedByCurrentPlaneSet = true;
63
- }
64
- }
65
-
66
- numSetsClippedBy += int(clippedByCurrentPlaneSet);
67
- if (numSetsClippedBy == numPlaneSets) {
68
- if (u_outsideRgba.a > 0.0) {
69
- g_clipColor = u_outsideRgba.rgb;
70
- return true;
71
- } else {
72
- discard;
73
- }
74
- } else if (u_insideRgba.a > 0.0) {
75
- g_clipColor = u_insideRgba.rgb;
76
- return true;
77
- }
78
-
79
- return false;
48
+ const applyClipPlanesPostlude = `
49
+ vec4 plane = getClipPlane(i);
50
+ if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets
51
+ if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)
52
+ break;
53
+
54
+ numPlaneSets = 1;
55
+ numSetsClippedBy = 0;
56
+ clippedByCurrentPlaneSet = false;
57
+ } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set
58
+ numPlaneSets = numPlaneSets + 1;
59
+ numSetsClippedBy += int(clippedByCurrentPlaneSet);
60
+ clippedByCurrentPlaneSet = false;
61
+ } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {
62
+ clippedByCurrentPlaneSet = true;
63
+ }
64
+ }
65
+
66
+ numSetsClippedBy += int(clippedByCurrentPlaneSet);
67
+ if (numSetsClippedBy == numPlaneSets) {
68
+ if (u_outsideRgba.a > 0.0) {
69
+ g_clipColor = u_outsideRgba.rgb;
70
+ return true;
71
+ } else {
72
+ discard;
73
+ }
74
+ } else if (u_insideRgba.a > 0.0) {
75
+ g_clipColor = u_insideRgba.rgb;
76
+ return true;
77
+ }
78
+
79
+ return false;
80
80
  `;
81
81
  const applyClipPlanes = applyClipPlanesPrelude + applyClipPlanesLoop + applyClipPlanesPostlude;
82
82
  const clipParams = new Int32Array(3);
@@ -1 +1 @@
1
- {"version":3,"file":"Clipping.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Clipping.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert } from \"@itwin/core-bentley\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderComponent, ProgramBuilder, VariablePrecision, VariableType } from \"../ShaderBuilder\";\r\nimport { addEyeSpace } from \"./Common\";\r\nimport { addModelViewMatrix } from \"./Vertex\";\r\n\r\nconst getClipPlaneFloat = `\r\nvec4 getClipPlane(int index) {\r\n float x = 0.5;\r\n float y = (float(index) + 0.5) / float(u_clipParams[2]);\r\n return TEXTURE(s_clipSampler, vec2(x, y));\r\n}\r\n`;\r\n\r\nexport const unpackFloat = `\r\nfloat unpackFloat(vec4 v) {\r\n const float bias = 38.0;\r\n v = floor(v * 255.0 + 0.5);\r\n float temp = v.w / 2.0;\r\n float exponent = floor(temp);\r\n float sign = (temp - exponent) * 2.0;\r\n exponent = exponent - bias;\r\n sign = -(sign * 2.0 - 1.0);\r\n float unpacked = dot(sign * v.xyz, vec3(1.0 / 256.0, 1.0 / 65536.0, 1.0 / 16777216.0)); // shift x right 8, y right 16 and z right 24\r\n return unpacked * pow(10.0, exponent);\r\n}\r\n`;\r\n\r\nconst calcClipPlaneDist = `\r\nfloat calcClipPlaneDist(vec3 camPos, vec4 plane) {\r\n return dot(vec4(camPos, 1.0), plane);\r\n}\r\n`;\r\n\r\nconst applyClipPlanesPrelude = `\r\n int numPlaneSets = 1;\r\n int numSetsClippedBy = 0;\r\n bool clippedByCurrentPlaneSet = false;\r\n`;\r\n\r\nconst applyClipPlanesLoop = `\r\n for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {\r\n`;\r\n\r\nconst applyClipPlanesPostlude = `\r\n vec4 plane = getClipPlane(i);\r\n if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets\r\n if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)\r\n break;\r\n\r\n numPlaneSets = 1;\r\n numSetsClippedBy = 0;\r\n clippedByCurrentPlaneSet = false;\r\n } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set\r\n numPlaneSets = numPlaneSets + 1;\r\n numSetsClippedBy += int(clippedByCurrentPlaneSet);\r\n clippedByCurrentPlaneSet = false;\r\n } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {\r\n clippedByCurrentPlaneSet = true;\r\n }\r\n }\r\n\r\n numSetsClippedBy += int(clippedByCurrentPlaneSet);\r\n if (numSetsClippedBy == numPlaneSets) {\r\n if (u_outsideRgba.a > 0.0) {\r\n g_clipColor = u_outsideRgba.rgb;\r\n return true;\r\n } else {\r\n discard;\r\n }\r\n } else if (u_insideRgba.a > 0.0) {\r\n g_clipColor = u_insideRgba.rgb;\r\n return true;\r\n }\r\n\r\n return false;\r\n`;\r\n\r\nconst applyClipPlanes = applyClipPlanesPrelude + applyClipPlanesLoop + applyClipPlanesPostlude;\r\n\r\nconst clipParams = new Int32Array(3);\r\n\r\n/** @internal */\r\nexport function addClipping(prog: ProgramBuilder) {\r\n const frag = prog.frag;\r\n const vert = prog.vert;\r\n\r\n addEyeSpace(prog);\r\n\r\n // [0] = index of first plane\r\n // [1] = index of last plane (one past the end)\r\n // [2] = texture height\r\n prog.addUniformArray(\"u_clipParams\", VariableType.Int, 3, (program) => {\r\n program.addGraphicUniform(\"u_clipParams\", (uniform, params) => {\r\n // Set this to false to visualize pre-shader culling of geometry.\r\n const doClipping = true;\r\n\r\n const stack = params.target.uniforms.branch.clipStack;\r\n clipParams[0] = stack.startIndex;\r\n clipParams[1] = stack.endIndex;\r\n clipParams[2] = doClipping ? stack.textureHeight : 0;\r\n assert(clipParams[2] > 0 || !doClipping);\r\n uniform.setUniform1iv(clipParams);\r\n });\r\n });\r\n\r\n prog.addUniform(\"u_outsideRgba\", VariableType.Vec4, (program) => {\r\n program.addGraphicUniform(\"u_outsideRgba\", (uniform, params) => {\r\n params.target.uniforms.branch.clipStack.outsideColor.bind(uniform);\r\n });\r\n });\r\n\r\n prog.addUniform(\"u_insideRgba\", VariableType.Vec4, (program) => {\r\n program.addGraphicUniform(\"u_insideRgba\", (uniform, params) => {\r\n params.target.uniforms.branch.clipStack.insideColor.bind(uniform);\r\n });\r\n });\r\n\r\n addModelViewMatrix(vert);\r\n\r\n frag.addFunction(getClipPlaneFloat);\r\n\r\n frag.addFunction(calcClipPlaneDist);\r\n frag.addUniform(\"s_clipSampler\", VariableType.Sampler2D, (program) => {\r\n program.addGraphicUniform(\"s_clipSampler\", (uniform, params) => {\r\n const texture = params.target.uniforms.branch.clipStack.texture;\r\n assert(texture !== undefined);\r\n if (texture !== undefined)\r\n texture.bindSampler(uniform, TextureUnit.ClipVolume);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n frag.set(FragmentShaderComponent.ApplyClipping, applyClipPlanes);\r\n}\r\n"]}
1
+ {"version":3,"file":"Clipping.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Clipping.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { assert } from \"@itwin/core-bentley\";\nimport { TextureUnit } from \"../RenderFlags\";\nimport { FragmentShaderComponent, ProgramBuilder, VariablePrecision, VariableType } from \"../ShaderBuilder\";\nimport { addEyeSpace } from \"./Common\";\nimport { addModelViewMatrix } from \"./Vertex\";\n\nconst getClipPlaneFloat = `\nvec4 getClipPlane(int index) {\n float x = 0.5;\n float y = (float(index) + 0.5) / float(u_clipParams[2]);\n return TEXTURE(s_clipSampler, vec2(x, y));\n}\n`;\n\nexport const unpackFloat = `\nfloat unpackFloat(vec4 v) {\n const float bias = 38.0;\n v = floor(v * 255.0 + 0.5);\n float temp = v.w / 2.0;\n float exponent = floor(temp);\n float sign = (temp - exponent) * 2.0;\n exponent = exponent - bias;\n sign = -(sign * 2.0 - 1.0);\n float unpacked = dot(sign * v.xyz, vec3(1.0 / 256.0, 1.0 / 65536.0, 1.0 / 16777216.0)); // shift x right 8, y right 16 and z right 24\n return unpacked * pow(10.0, exponent);\n}\n`;\n\nconst calcClipPlaneDist = `\nfloat calcClipPlaneDist(vec3 camPos, vec4 plane) {\n return dot(vec4(camPos, 1.0), plane);\n}\n`;\n\nconst applyClipPlanesPrelude = `\n int numPlaneSets = 1;\n int numSetsClippedBy = 0;\n bool clippedByCurrentPlaneSet = false;\n`;\n\nconst applyClipPlanesLoop = `\n for (int i = u_clipParams[0]; i < u_clipParams[1]; i++) {\n`;\n\nconst applyClipPlanesPostlude = `\n vec4 plane = getClipPlane(i);\n if (plane.x == 2.0) { // indicates start of new UnionOfConvexClipPlaneSets\n if (numSetsClippedBy + int(clippedByCurrentPlaneSet) == numPlaneSets)\n break;\n\n numPlaneSets = 1;\n numSetsClippedBy = 0;\n clippedByCurrentPlaneSet = false;\n } else if (plane.xyz == vec3(0.0)) { // indicates start of new clip plane set\n numPlaneSets = numPlaneSets + 1;\n numSetsClippedBy += int(clippedByCurrentPlaneSet);\n clippedByCurrentPlaneSet = false;\n } else if (!clippedByCurrentPlaneSet && calcClipPlaneDist(v_eyeSpace, plane) < 0.0) {\n clippedByCurrentPlaneSet = true;\n }\n }\n\n numSetsClippedBy += int(clippedByCurrentPlaneSet);\n if (numSetsClippedBy == numPlaneSets) {\n if (u_outsideRgba.a > 0.0) {\n g_clipColor = u_outsideRgba.rgb;\n return true;\n } else {\n discard;\n }\n } else if (u_insideRgba.a > 0.0) {\n g_clipColor = u_insideRgba.rgb;\n return true;\n }\n\n return false;\n`;\n\nconst applyClipPlanes = applyClipPlanesPrelude + applyClipPlanesLoop + applyClipPlanesPostlude;\n\nconst clipParams = new Int32Array(3);\n\n/** @internal */\nexport function addClipping(prog: ProgramBuilder) {\n const frag = prog.frag;\n const vert = prog.vert;\n\n addEyeSpace(prog);\n\n // [0] = index of first plane\n // [1] = index of last plane (one past the end)\n // [2] = texture height\n prog.addUniformArray(\"u_clipParams\", VariableType.Int, 3, (program) => {\n program.addGraphicUniform(\"u_clipParams\", (uniform, params) => {\n // Set this to false to visualize pre-shader culling of geometry.\n const doClipping = true;\n\n const stack = params.target.uniforms.branch.clipStack;\n clipParams[0] = stack.startIndex;\n clipParams[1] = stack.endIndex;\n clipParams[2] = doClipping ? stack.textureHeight : 0;\n assert(clipParams[2] > 0 || !doClipping);\n uniform.setUniform1iv(clipParams);\n });\n });\n\n prog.addUniform(\"u_outsideRgba\", VariableType.Vec4, (program) => {\n program.addGraphicUniform(\"u_outsideRgba\", (uniform, params) => {\n params.target.uniforms.branch.clipStack.outsideColor.bind(uniform);\n });\n });\n\n prog.addUniform(\"u_insideRgba\", VariableType.Vec4, (program) => {\n program.addGraphicUniform(\"u_insideRgba\", (uniform, params) => {\n params.target.uniforms.branch.clipStack.insideColor.bind(uniform);\n });\n });\n\n addModelViewMatrix(vert);\n\n frag.addFunction(getClipPlaneFloat);\n\n frag.addFunction(calcClipPlaneDist);\n frag.addUniform(\"s_clipSampler\", VariableType.Sampler2D, (program) => {\n program.addGraphicUniform(\"s_clipSampler\", (uniform, params) => {\n const texture = params.target.uniforms.branch.clipStack.texture;\n assert(texture !== undefined);\n if (texture !== undefined)\n texture.bindSampler(uniform, TextureUnit.ClipVolume);\n });\n }, VariablePrecision.High);\n\n frag.set(FragmentShaderComponent.ApplyClipping, applyClipPlanes);\n}\n"]}
@@ -14,21 +14,21 @@ const Instancing_1 = require("./Instancing");
14
14
  // NB: Color in color table has pre-multiplied alpha - revert it.
15
15
  function getComputeElementColor(quantized) {
16
16
  const vertData = quantized ? "g_vertLutData1.zw" : "g_vertLutData4.xy";
17
- return `
18
- float colorTableStart = u_vertParams.z * u_vertParams.w; // num rgba per-vertex times num vertices
19
- float colorIndex = decodeUInt16(${vertData});
20
- vec2 tc = computeLUTCoords(colorTableStart+colorIndex, u_vertParams.xy, g_vert_center, 1.0);
21
- vec4 lutColor = TEXTURE(u_vertLUT, tc);
22
- lutColor.rgb /= max(0.0001, lutColor.a);
23
- vec4 color = (u_shaderFlags[kShaderBit_NonUniformColor] ? lutColor : u_color);
17
+ return `
18
+ float colorTableStart = u_vertParams.z * u_vertParams.w; // num rgba per-vertex times num vertices
19
+ float colorIndex = decodeUInt16(${vertData});
20
+ vec2 tc = computeLUTCoords(colorTableStart+colorIndex, u_vertParams.xy, g_vert_center, 1.0);
21
+ vec4 lutColor = TEXTURE(u_vertLUT, tc);
22
+ lutColor.rgb /= max(0.0001, lutColor.a);
23
+ vec4 color = (u_shaderFlags[kShaderBit_NonUniformColor] ? lutColor : u_color);
24
24
  `;
25
25
  }
26
- const returnColor = `
27
- return color;
26
+ const returnColor = `
27
+ return color;
28
28
  `;
29
- const applyInstanceColor = `
30
- color.rgb = mix(color.rgb, a_instanceRgba.rgb / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Rgb));
31
- color.a = mix(color.a, a_instanceRgba.a / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Alpha));
29
+ const applyInstanceColor = `
30
+ color.rgb = mix(color.rgb, a_instanceRgba.rgb / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Rgb));
31
+ color.a = mix(color.a, a_instanceRgba.a / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Alpha));
32
32
  `;
33
33
  function getComputeColor(vert) {
34
34
  const quantized = "quantized" === vert.positionType;
@@ -1 +1 @@
1
- {"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Color.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,6CAAgD;AAEhD,SAAS;AACT,8GAA8G;AAC9G,iEAAiE;AACjE,SAAS,sBAAsB,CAAC,SAAkB;IAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACvE,OAAO;;oCAE2B,QAAQ;;;;;CAK3C,CAAC;AACF,CAAC;AAED,MAAM,WAAW,GAAG;;CAEnB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;CAG1B,CAAC;AAEF,SAAS,eAAe,CAAC,IAAyB;IAChD,MAAM,SAAS,GAAG,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC;IACpD,IAAI,IAAI,CAAC,qBAAqB,EAAE;QAC9B,IAAA,6BAAgB,EAAC,IAAI,CAAC,CAAC;QACvB,OAAO,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,kBAAkB,GAAG,WAAW,EAAE,CAAC;KAClF;SAAM;QACL,OAAO,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,WAAW,EAAE,CAAC;KAC7D;AACH,CAAC;AAED,WAAW;AACX,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,gBAAgB;AAChB,SAAgB,QAAQ,CAAC,OAAuB;IAC9C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,6BAAqB,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAM,CAAC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAXD,4BAWC;AAED,gBAAgB;AAChB,SAAgB,eAAe,CAAC,OAAuB,EAAE,iBAAyB;IAChF,OAAO,CAAC,UAAU,CAAC,SAAS,4BAAoB,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,GAAG,iDAAyC,iBAAiB,CAAC,CAAC;IAC5E,OAAO,CAAC,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;AAC/E,CAAC;AAJD,0CAIC","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 Rendering\r\n */\r\n\r\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderBuilder, VertexShaderComponent } from \"../ShaderBuilder\";\r\nimport { addInstanceColor } from \"./Instancing\";\r\n\r\n// Vertex\r\n// Color table is appended to vertex data. Compute the index of the vertex one-past-the-end of the vertex data\r\n// NB: Color in color table has pre-multiplied alpha - revert it.\r\nfunction getComputeElementColor(quantized: boolean): string {\r\n const vertData = quantized ? \"g_vertLutData1.zw\" : \"g_vertLutData4.xy\";\r\n return `\r\n float colorTableStart = u_vertParams.z * u_vertParams.w; // num rgba per-vertex times num vertices\r\n float colorIndex = decodeUInt16(${vertData});\r\n vec2 tc = computeLUTCoords(colorTableStart+colorIndex, u_vertParams.xy, g_vert_center, 1.0);\r\n vec4 lutColor = TEXTURE(u_vertLUT, tc);\r\n lutColor.rgb /= max(0.0001, lutColor.a);\r\n vec4 color = (u_shaderFlags[kShaderBit_NonUniformColor] ? lutColor : u_color);\r\n`;\r\n}\r\n\r\nconst returnColor = `\r\n return color;\r\n`;\r\n\r\nconst applyInstanceColor = `\r\n color.rgb = mix(color.rgb, a_instanceRgba.rgb / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Rgb));\r\n color.a = mix(color.a, a_instanceRgba.a / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Alpha));\r\n`;\r\n\r\nfunction getComputeColor(vert: VertexShaderBuilder): string {\r\n const quantized = \"quantized\" === vert.positionType;\r\n if (vert.usesInstancedGeometry) {\r\n addInstanceColor(vert);\r\n return `${getComputeElementColor(quantized)}${applyInstanceColor}${returnColor}`;\r\n } else {\r\n return `${getComputeElementColor(quantized)}${returnColor}`;\r\n }\r\n}\r\n\r\n// Fragment\r\nconst computeBaseColor = \"return v_color;\";\r\n\r\n/** @internal */\r\nexport function addColor(builder: ProgramBuilder) {\r\n builder.vert.addUniform(\"u_color\", VariableType.Vec4, (prog) => {\r\n prog.addGraphicUniform(\"u_color\", (uniform, params) => {\r\n const lutGeom = params.geometry.asLUT!;\r\n const color = lutGeom.getColor(params.target);\r\n if (color.isUniform) {\r\n color.uniform.bind(uniform);\r\n }\r\n });\r\n });\r\n addVaryingColor(builder, getComputeColor(builder.vert));\r\n}\r\n\r\n/** @internal */\r\nexport function addVaryingColor(builder: ProgramBuilder, computeVertexBase: string) {\r\n builder.addVarying(\"v_color\", VariableType.Vec4);\r\n builder.vert.set(VertexShaderComponent.ComputeBaseColor, computeVertexBase);\r\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\r\n}\r\n"]}
1
+ {"version":3,"file":"Color.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Color.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,6CAAgD;AAEhD,SAAS;AACT,8GAA8G;AAC9G,iEAAiE;AACjE,SAAS,sBAAsB,CAAC,SAAkB;IAChD,MAAM,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IACvE,OAAO;;oCAE2B,QAAQ;;;;;CAK3C,CAAC;AACF,CAAC;AAED,MAAM,WAAW,GAAG;;CAEnB,CAAC;AAEF,MAAM,kBAAkB,GAAG;;;CAG1B,CAAC;AAEF,SAAS,eAAe,CAAC,IAAyB;IAChD,MAAM,SAAS,GAAG,WAAW,KAAK,IAAI,CAAC,YAAY,CAAC;IACpD,IAAI,IAAI,CAAC,qBAAqB,EAAE;QAC9B,IAAA,6BAAgB,EAAC,IAAI,CAAC,CAAC;QACvB,OAAO,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,kBAAkB,GAAG,WAAW,EAAE,CAAC;KAClF;SAAM;QACL,OAAO,GAAG,sBAAsB,CAAC,SAAS,CAAC,GAAG,WAAW,EAAE,CAAC;KAC7D;AACH,CAAC;AAED,WAAW;AACX,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAE3C,gBAAgB;AAChB,SAAgB,QAAQ,CAAC,OAAuB;IAC9C,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,6BAAqB,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAM,CAAC;YACvC,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAC9C,IAAI,KAAK,CAAC,SAAS,EAAE;gBACnB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;aAC7B;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,eAAe,CAAC,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AAC1D,CAAC;AAXD,4BAWC;AAED,gBAAgB;AAChB,SAAgB,eAAe,CAAC,OAAuB,EAAE,iBAAyB;IAChF,OAAO,CAAC,UAAU,CAAC,SAAS,4BAAoB,CAAC;IACjD,OAAO,CAAC,IAAI,CAAC,GAAG,iDAAyC,iBAAiB,CAAC,CAAC;IAC5E,OAAO,CAAC,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;AAC/E,CAAC;AAJD,0CAIC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Rendering\n */\n\nimport { FragmentShaderComponent, ProgramBuilder, VariableType, VertexShaderBuilder, VertexShaderComponent } from \"../ShaderBuilder\";\nimport { addInstanceColor } from \"./Instancing\";\n\n// Vertex\n// Color table is appended to vertex data. Compute the index of the vertex one-past-the-end of the vertex data\n// NB: Color in color table has pre-multiplied alpha - revert it.\nfunction getComputeElementColor(quantized: boolean): string {\n const vertData = quantized ? \"g_vertLutData1.zw\" : \"g_vertLutData4.xy\";\n return `\n float colorTableStart = u_vertParams.z * u_vertParams.w; // num rgba per-vertex times num vertices\n float colorIndex = decodeUInt16(${vertData});\n vec2 tc = computeLUTCoords(colorTableStart+colorIndex, u_vertParams.xy, g_vert_center, 1.0);\n vec4 lutColor = TEXTURE(u_vertLUT, tc);\n lutColor.rgb /= max(0.0001, lutColor.a);\n vec4 color = (u_shaderFlags[kShaderBit_NonUniformColor] ? lutColor : u_color);\n`;\n}\n\nconst returnColor = `\n return color;\n`;\n\nconst applyInstanceColor = `\n color.rgb = mix(color.rgb, a_instanceRgba.rgb / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Rgb));\n color.a = mix(color.a, a_instanceRgba.a / 255.0, u_applyInstanceColor * extractInstanceBit(kOvrBit_Alpha));\n`;\n\nfunction getComputeColor(vert: VertexShaderBuilder): string {\n const quantized = \"quantized\" === vert.positionType;\n if (vert.usesInstancedGeometry) {\n addInstanceColor(vert);\n return `${getComputeElementColor(quantized)}${applyInstanceColor}${returnColor}`;\n } else {\n return `${getComputeElementColor(quantized)}${returnColor}`;\n }\n}\n\n// Fragment\nconst computeBaseColor = \"return v_color;\";\n\n/** @internal */\nexport function addColor(builder: ProgramBuilder) {\n builder.vert.addUniform(\"u_color\", VariableType.Vec4, (prog) => {\n prog.addGraphicUniform(\"u_color\", (uniform, params) => {\n const lutGeom = params.geometry.asLUT!;\n const color = lutGeom.getColor(params.target);\n if (color.isUniform) {\n color.uniform.bind(uniform);\n }\n });\n });\n addVaryingColor(builder, getComputeColor(builder.vert));\n}\n\n/** @internal */\nexport function addVaryingColor(builder: ProgramBuilder, computeVertexBase: string) {\n builder.addVarying(\"v_color\", VariableType.Vec4);\n builder.vert.set(VertexShaderComponent.ComputeBaseColor, computeVertexBase);\n builder.frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n}\n"]}
@@ -12,13 +12,13 @@ const RenderFlags_1 = require("../RenderFlags");
12
12
  const Texture_1 = require("../Texture");
13
13
  const ViewportQuad_1 = require("./ViewportQuad");
14
14
  const computeBaseColor = "return vec4(1.0);";
15
- const assignFragData = `
16
- if (v_texCoord.y < (1.0 / 3.0))
17
- FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 3.0));
18
- else if (v_texCoord.y < (2.0 / 3.0))
19
- FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 1.0));
20
- else
21
- FragColor = TEXTURE(u_texture2, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 2.0));
15
+ const assignFragData = `
16
+ if (v_texCoord.y < (1.0 / 3.0))
17
+ FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 3.0));
18
+ else if (v_texCoord.y < (2.0 / 3.0))
19
+ FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 1.0));
20
+ else
21
+ FragColor = TEXTURE(u_texture2, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 2.0));
22
22
  `;
23
23
  /** @internal */
24
24
  function createCombine3TexturesProgram(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"Combine3Textures.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Combine3Textures.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,gDAA6C;AAG7C,wCAA6C;AAC7C,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,cAAc,GAAG;;;;;;;CAOtB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,6BAA6B,CAAC,OAA+B;IAC3E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAqC,CAAC,QAAQ,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC;QACjH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAqC,CAAC,QAAQ,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAqC,CAAC,QAAQ,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IAEtD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AA9BD,sEA8BC","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 { Combine3TexturesGeometry } from \"../CachedGeometry\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderComponent, VariablePrecision, VariableType } from \"../ShaderBuilder\";\r\nimport { ShaderProgram } from \"../ShaderProgram\";\r\nimport { Texture2DHandle } from \"../Texture\";\r\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\r\n\r\nconst computeBaseColor = \"return vec4(1.0);\";\r\n\r\nconst assignFragData = `\r\n if (v_texCoord.y < (1.0 / 3.0))\r\n FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 3.0));\r\n else if (v_texCoord.y < (2.0 / 3.0))\r\n FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 1.0));\r\n else\r\n FragColor = TEXTURE(u_texture2, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 2.0));\r\n`;\r\n\r\n/** @internal */\r\nexport function createCombine3TexturesProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(true);\r\n const frag = builder.frag;\r\n\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\r\n\r\n frag.addUniform(\"u_texture0\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_texture0\", (uniform, params) => {\r\n Texture2DHandle.bindSampler(uniform, (params.geometry as Combine3TexturesGeometry).texture0, TextureUnit.Zero);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n frag.addUniform(\"u_texture1\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_texture1\", (uniform, params) => {\r\n Texture2DHandle.bindSampler(uniform, (params.geometry as Combine3TexturesGeometry).texture1, TextureUnit.One);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n frag.addUniform(\"u_texture2\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_texture2\", (uniform, params) => {\r\n Texture2DHandle.bindSampler(uniform, (params.geometry as Combine3TexturesGeometry).texture2, TextureUnit.Two);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\r\n\r\n builder.vert.headerComment = \"//!V! Combine3Textures\";\r\n builder.frag.headerComment = \"//!F! Combine3Textures\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n"]}
1
+ {"version":3,"file":"Combine3Textures.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/Combine3Textures.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,gDAA6C;AAG7C,wCAA6C;AAC7C,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,cAAc,GAAG;;;;;;;CAOtB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,6BAA6B,CAAC,OAA+B;IAC3E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAqC,CAAC,QAAQ,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC;QACjH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAqC,CAAC,QAAQ,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAqC,CAAC,QAAQ,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IACtD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,wBAAwB,CAAC;IAEtD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AA9BD,sEA8BC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { Combine3TexturesGeometry } from \"../CachedGeometry\";\nimport { TextureUnit } from \"../RenderFlags\";\nimport { FragmentShaderComponent, VariablePrecision, VariableType } from \"../ShaderBuilder\";\nimport { ShaderProgram } from \"../ShaderProgram\";\nimport { Texture2DHandle } from \"../Texture\";\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\n\nconst computeBaseColor = \"return vec4(1.0);\";\n\nconst assignFragData = `\n if (v_texCoord.y < (1.0 / 3.0))\n FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 3.0));\n else if (v_texCoord.y < (2.0 / 3.0))\n FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 1.0));\n else\n FragColor = TEXTURE(u_texture2, vec2(v_texCoord.x, v_texCoord.y * 3.0 - 2.0));\n`;\n\n/** @internal */\nexport function createCombine3TexturesProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(true);\n const frag = builder.frag;\n\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n\n frag.addUniform(\"u_texture0\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_texture0\", (uniform, params) => {\n Texture2DHandle.bindSampler(uniform, (params.geometry as Combine3TexturesGeometry).texture0, TextureUnit.Zero);\n });\n }, VariablePrecision.High);\n\n frag.addUniform(\"u_texture1\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_texture1\", (uniform, params) => {\n Texture2DHandle.bindSampler(uniform, (params.geometry as Combine3TexturesGeometry).texture1, TextureUnit.One);\n });\n }, VariablePrecision.High);\n\n frag.addUniform(\"u_texture2\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_texture2\", (uniform, params) => {\n Texture2DHandle.bindSampler(uniform, (params.geometry as Combine3TexturesGeometry).texture2, TextureUnit.Two);\n });\n }, VariablePrecision.High);\n\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\n\n builder.vert.headerComment = \"//!V! Combine3Textures\";\n builder.frag.headerComment = \"//!F! Combine3Textures\";\n\n return builder.buildProgram(context);\n}\n"]}
@@ -12,11 +12,11 @@ const RenderFlags_1 = require("../RenderFlags");
12
12
  const Texture_1 = require("../Texture");
13
13
  const ViewportQuad_1 = require("./ViewportQuad");
14
14
  const computeBaseColor = "return vec4(1.0);";
15
- const assignFragData = `
16
- if (v_texCoord.y < .5)
17
- FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 2.0));
18
- else
19
- FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 2.0 - 1.0));
15
+ const assignFragData = `
16
+ if (v_texCoord.y < .5)
17
+ FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 2.0));
18
+ else
19
+ FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 2.0 - 1.0));
20
20
  `;
21
21
  /** @internal */
22
22
  function createCombineTexturesProgram(context) {
@@ -1 +1 @@
1
- {"version":3,"file":"CombineTextures.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/CombineTextures.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,gDAA6C;AAG7C,wCAA6C;AAC7C,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,cAAc,GAAG;;;;;CAKtB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,4BAA4B,CAAC,OAA+B;IAC1E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAoC,CAAC,QAAQ,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAoC,CAAC,QAAQ,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,uBAAuB,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,uBAAuB,CAAC;IAErD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAxBD,oEAwBC","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 { CombineTexturesGeometry } from \"../CachedGeometry\";\r\nimport { TextureUnit } from \"../RenderFlags\";\r\nimport { FragmentShaderComponent, VariablePrecision, VariableType } from \"../ShaderBuilder\";\r\nimport { ShaderProgram } from \"../ShaderProgram\";\r\nimport { Texture2DHandle } from \"../Texture\";\r\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\r\n\r\nconst computeBaseColor = \"return vec4(1.0);\";\r\n\r\nconst assignFragData = `\r\n if (v_texCoord.y < .5)\r\n FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 2.0));\r\n else\r\n FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 2.0 - 1.0));\r\n`;\r\n\r\n/** @internal */\r\nexport function createCombineTexturesProgram(context: WebGL2RenderingContext): ShaderProgram {\r\n const builder = createViewportQuadBuilder(true);\r\n const frag = builder.frag;\r\n\r\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\r\n\r\n frag.addUniform(\"u_texture0\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_texture0\", (uniform, params) => {\r\n Texture2DHandle.bindSampler(uniform, (params.geometry as CombineTexturesGeometry).texture0, TextureUnit.Zero);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n frag.addUniform(\"u_texture1\", VariableType.Sampler2D, (prog) => {\r\n prog.addGraphicUniform(\"u_texture1\", (uniform, params) => {\r\n Texture2DHandle.bindSampler(uniform, (params.geometry as CombineTexturesGeometry).texture1, TextureUnit.One);\r\n });\r\n }, VariablePrecision.High);\r\n\r\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\r\n\r\n builder.vert.headerComment = \"//!V! CombineTextures\";\r\n builder.frag.headerComment = \"//!F! CombineTextures\";\r\n\r\n return builder.buildProgram(context);\r\n}\r\n"]}
1
+ {"version":3,"file":"CombineTextures.js","sourceRoot":"","sources":["../../../../../src/render/webgl/glsl/CombineTextures.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAGH,gDAA6C;AAG7C,wCAA6C;AAC7C,iDAA2D;AAE3D,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAE7C,MAAM,cAAc,GAAG;;;;;CAKtB,CAAC;AAEF,gBAAgB;AAChB,SAAgB,4BAA4B,CAAC,OAA+B;IAC1E,MAAM,OAAO,GAAG,IAAA,wCAAyB,EAAC,IAAI,CAAC,CAAC;IAChD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1B,IAAI,CAAC,GAAG,mDAA2C,gBAAgB,CAAC,CAAC;IAErE,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAoC,CAAC,QAAQ,EAAE,yBAAW,CAAC,IAAI,CAAC,CAAC;QAChH,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,UAAU,CAAC,YAAY,kCAA0B,CAAC,IAAI,EAAE,EAAE;QAC7D,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,yBAAe,CAAC,WAAW,CAAC,OAAO,EAAG,MAAM,CAAC,QAAoC,CAAC,QAAQ,EAAE,yBAAW,CAAC,GAAG,CAAC,CAAC;QAC/G,CAAC,CAAC,CAAC;IACL,CAAC,iCAAyB,CAAC;IAE3B,IAAI,CAAC,GAAG,kDAAyC,cAAc,CAAC,CAAC;IAEjE,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,uBAAuB,CAAC;IACrD,OAAO,CAAC,IAAI,CAAC,aAAa,GAAG,uBAAuB,CAAC;IAErD,OAAO,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAxBD,oEAwBC","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module WebGL\n */\n\nimport { CombineTexturesGeometry } from \"../CachedGeometry\";\nimport { TextureUnit } from \"../RenderFlags\";\nimport { FragmentShaderComponent, VariablePrecision, VariableType } from \"../ShaderBuilder\";\nimport { ShaderProgram } from \"../ShaderProgram\";\nimport { Texture2DHandle } from \"../Texture\";\nimport { createViewportQuadBuilder } from \"./ViewportQuad\";\n\nconst computeBaseColor = \"return vec4(1.0);\";\n\nconst assignFragData = `\n if (v_texCoord.y < .5)\n FragColor = TEXTURE(u_texture0, vec2(v_texCoord.x, v_texCoord.y * 2.0));\n else\n FragColor = TEXTURE(u_texture1, vec2(v_texCoord.x, v_texCoord.y * 2.0 - 1.0));\n`;\n\n/** @internal */\nexport function createCombineTexturesProgram(context: WebGL2RenderingContext): ShaderProgram {\n const builder = createViewportQuadBuilder(true);\n const frag = builder.frag;\n\n frag.set(FragmentShaderComponent.ComputeBaseColor, computeBaseColor);\n\n frag.addUniform(\"u_texture0\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_texture0\", (uniform, params) => {\n Texture2DHandle.bindSampler(uniform, (params.geometry as CombineTexturesGeometry).texture0, TextureUnit.Zero);\n });\n }, VariablePrecision.High);\n\n frag.addUniform(\"u_texture1\", VariableType.Sampler2D, (prog) => {\n prog.addGraphicUniform(\"u_texture1\", (uniform, params) => {\n Texture2DHandle.bindSampler(uniform, (params.geometry as CombineTexturesGeometry).texture1, TextureUnit.One);\n });\n }, VariablePrecision.High);\n\n frag.set(FragmentShaderComponent.AssignFragData, assignFragData);\n\n builder.vert.headerComment = \"//!V! CombineTextures\";\n builder.frag.headerComment = \"//!F! CombineTextures\";\n\n return builder.buildProgram(context);\n}\n"]}