@itwin/core-frontend 5.1.2 → 5.1.3-experimental.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (982) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/lib/cjs/AccuDraw.js.map +1 -1
  3. package/lib/cjs/AccuSnap.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  5. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  6. package/lib/cjs/AuxCoordSys.js.map +1 -1
  7. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  8. package/lib/cjs/BingLocation.js.map +1 -1
  9. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  10. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  11. package/lib/cjs/CatalogConnection.js.map +1 -1
  12. package/lib/cjs/CategorySelectorState.js.map +1 -1
  13. package/lib/cjs/ChangeFlags.js.map +1 -1
  14. package/lib/cjs/CheckpointConnection.js.map +1 -1
  15. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  16. package/lib/cjs/CoordSystem.js.map +1 -1
  17. package/lib/cjs/DecorationsCache.js.map +1 -1
  18. package/lib/cjs/DevTools.js.map +1 -1
  19. package/lib/cjs/DisplayStyleState.js.map +1 -1
  20. package/lib/cjs/DrawingViewState.js +5 -5
  21. package/lib/cjs/DrawingViewState.js.map +1 -1
  22. package/lib/cjs/ElementLocateManager.js.map +1 -1
  23. package/lib/cjs/EmphasizeElements.js.map +1 -1
  24. package/lib/cjs/EntityState.js.map +1 -1
  25. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  26. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  27. package/lib/cjs/FlashSettings.js.map +1 -1
  28. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  29. package/lib/cjs/Frustum2d.js.map +1 -1
  30. package/lib/cjs/FrustumAnimator.js.map +1 -1
  31. package/lib/cjs/FuzzySearch.js.map +1 -1
  32. package/lib/cjs/GeoServices.js.map +1 -1
  33. package/lib/cjs/GlobeAnimator.js.map +1 -1
  34. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  35. package/lib/cjs/HitDetail.js.map +1 -1
  36. package/lib/cjs/IModelApp.js.map +1 -1
  37. package/lib/cjs/IModelConnection.js +26 -26
  38. package/lib/cjs/IModelConnection.js.map +1 -1
  39. package/lib/cjs/IModelRoutingContext.js.map +1 -1
  40. package/lib/cjs/IModeljs-css.js +133 -133
  41. package/lib/cjs/IModeljs-css.js.map +1 -1
  42. package/lib/cjs/IpcApp.js.map +1 -1
  43. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  44. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  45. package/lib/cjs/MarginPercent.js.map +1 -1
  46. package/lib/cjs/Marker.js.map +1 -1
  47. package/lib/cjs/ModelSelectorState.js.map +1 -1
  48. package/lib/cjs/ModelState.js.map +1 -1
  49. package/lib/cjs/NativeApp.js.map +1 -1
  50. package/lib/cjs/NativeAppLogger.js.map +1 -1
  51. package/lib/cjs/NoRenderApp.js.map +1 -1
  52. package/lib/cjs/NotificationManager.js.map +1 -1
  53. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  54. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  55. package/lib/cjs/RealityDataSource.js.map +1 -1
  56. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  57. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  58. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  59. package/lib/cjs/SelectionSet.js.map +1 -1
  60. package/lib/cjs/SheetViewState.js.map +1 -1
  61. package/lib/cjs/SpatialClassifiersState.js.map +1 -1
  62. package/lib/cjs/SpatialViewState.js.map +1 -1
  63. package/lib/cjs/Sprites.js.map +1 -1
  64. package/lib/cjs/StandardView.js.map +1 -1
  65. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  66. package/lib/cjs/TentativePoint.js.map +1 -1
  67. package/lib/cjs/Tiles.js.map +1 -1
  68. package/lib/cjs/TxnEntityChanges.js.map +1 -1
  69. package/lib/cjs/UserPreferences.js.map +1 -1
  70. package/lib/cjs/ViewAnimation.js.map +1 -1
  71. package/lib/cjs/ViewContext.js.map +1 -1
  72. package/lib/cjs/ViewCreator2d.js.map +1 -1
  73. package/lib/cjs/ViewCreator3d.js.map +1 -1
  74. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  75. package/lib/cjs/ViewManager.js.map +1 -1
  76. package/lib/cjs/ViewPose.js.map +1 -1
  77. package/lib/cjs/ViewState.js.map +1 -1
  78. package/lib/cjs/ViewStatus.js.map +1 -1
  79. package/lib/cjs/ViewingSpace.js.map +1 -1
  80. package/lib/cjs/Viewport.js.map +1 -1
  81. package/lib/cjs/ViewportSync.js.map +1 -1
  82. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
  83. package/lib/cjs/common/ImageUtil.js.map +1 -1
  84. package/lib/cjs/common/ViewRect.js.map +1 -1
  85. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  86. package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
  87. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  88. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  89. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  90. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  91. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  92. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  93. package/lib/cjs/common/internal/Symbols.js.map +1 -1
  94. package/lib/cjs/common/internal/render/AnimationNodeId.js.map +1 -1
  95. package/lib/cjs/common/internal/render/AuxChannelTable.js.map +1 -1
  96. package/lib/cjs/common/internal/render/ColorMap.js.map +1 -1
  97. package/lib/cjs/common/internal/render/DisplayParams.js.map +1 -1
  98. package/lib/cjs/common/internal/render/EdgeParams.js.map +1 -1
  99. package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
  100. package/lib/cjs/common/internal/render/GeometryList.js.map +1 -1
  101. package/lib/cjs/common/internal/render/GeometryPrimitives.js.map +1 -1
  102. package/lib/cjs/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  103. package/lib/cjs/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
  104. package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  105. package/lib/cjs/common/internal/render/LineCode.js.map +1 -1
  106. package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
  107. package/lib/cjs/common/internal/render/MeshBuilderMap.js.map +1 -1
  108. package/lib/cjs/common/internal/render/MeshParams.js.map +1 -1
  109. package/lib/cjs/common/internal/render/MeshPrimitive.js.map +1 -1
  110. package/lib/cjs/common/internal/render/MeshPrimitives.js.map +1 -1
  111. package/lib/cjs/common/internal/render/OvrFlags.js.map +1 -1
  112. package/lib/cjs/common/internal/render/PointCloudPrimitive.js.map +1 -1
  113. package/lib/cjs/common/internal/render/PointStringParams.js.map +1 -1
  114. package/lib/cjs/common/internal/render/Polyface.js.map +1 -1
  115. package/lib/cjs/common/internal/render/PolylineParams.js.map +1 -1
  116. package/lib/cjs/common/internal/render/Primitives.js.map +1 -1
  117. package/lib/cjs/common/internal/render/Strokes.js.map +1 -1
  118. package/lib/cjs/common/internal/render/SurfaceParams.js.map +1 -1
  119. package/lib/cjs/common/internal/render/VertexIndices.js.map +1 -1
  120. package/lib/cjs/common/internal/render/VertexKey.js.map +1 -1
  121. package/lib/cjs/common/internal/render/VertexTable.js.map +1 -1
  122. package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
  123. package/lib/cjs/common/internal/render/VertexTableSplitter.js.map +1 -1
  124. package/lib/cjs/common/render/BatchOptions.js.map +1 -1
  125. package/lib/cjs/common/render/GraphicAssembler.js.map +1 -1
  126. package/lib/cjs/common/render/GraphicDescriptionBuilder.js.map +1 -1
  127. package/lib/cjs/common/render/GraphicDescriptionContext.js.map +1 -1
  128. package/lib/cjs/common/render/GraphicPrimitive.js.map +1 -1
  129. package/lib/cjs/common/render/GraphicType.js.map +1 -1
  130. package/lib/cjs/common/render/InstancedGraphicParams.js.map +1 -1
  131. package/lib/cjs/common/render/MaterialParams.js.map +1 -1
  132. package/lib/cjs/common/render/RenderInstancesParams.js.map +1 -1
  133. package/lib/cjs/common/render/TextureParams.js.map +1 -1
  134. package/lib/cjs/common.js.map +1 -1
  135. package/lib/cjs/core-frontend.js.map +1 -1
  136. package/lib/cjs/extension/Extension.js.map +1 -1
  137. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  138. package/lib/cjs/extension/ExtensionHost.js.map +1 -1
  139. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  140. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  141. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
  142. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  143. package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
  144. package/lib/cjs/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
  145. package/lib/cjs/internal/ScriptUtils.js.map +1 -1
  146. package/lib/cjs/internal/cross-package.js.map +1 -1
  147. package/lib/cjs/internal/render/AnimationBranchState.js.map +1 -1
  148. package/lib/cjs/internal/render/FrameStatsCollector.js.map +1 -1
  149. package/lib/cjs/internal/render/GraphicBranchFrustum.js.map +1 -1
  150. package/lib/cjs/internal/render/GraphicTemplateImpl.js.map +1 -1
  151. package/lib/cjs/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
  152. package/lib/cjs/internal/render/MockRender.js.map +1 -1
  153. package/lib/cjs/internal/render/PrimitiveBuilder.js.map +1 -1
  154. package/lib/cjs/internal/render/QueryVisibileFeatures.js.map +1 -1
  155. package/lib/cjs/internal/render/RenderAreaPattern.js.map +1 -1
  156. package/lib/cjs/internal/render/RenderGeometry.js.map +1 -1
  157. package/lib/cjs/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  158. package/lib/cjs/internal/render/RenderMaterialSource.js.map +1 -1
  159. package/lib/cjs/internal/render/RenderPlan.js.map +1 -1
  160. package/lib/cjs/internal/render/RenderPlanarClassifier.js.map +1 -1
  161. package/lib/cjs/internal/render/RenderSkyBoxParams.js.map +1 -1
  162. package/lib/cjs/internal/render/RenderSystemDebugControl.js.map +1 -1
  163. package/lib/cjs/internal/render/RenderTargetDebugControl.js.map +1 -1
  164. package/lib/cjs/internal/render/RenderTerrain.js.map +1 -1
  165. package/lib/cjs/internal/render/RenderTextureDrape.js.map +1 -1
  166. package/lib/cjs/internal/render/SceneVolumeClassifier.js.map +1 -1
  167. package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  168. package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  169. package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
  170. package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
  171. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +1 -1
  172. package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  173. package/lib/cjs/internal/render/webgl/BatchState.js.map +1 -1
  174. package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
  175. package/lib/cjs/internal/render/webgl/BranchStack.js.map +1 -1
  176. package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
  177. package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
  178. package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
  179. package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
  180. package/lib/cjs/internal/render/webgl/ClipVolume.js.map +1 -1
  181. package/lib/cjs/internal/render/webgl/ClippingProgram.js.map +1 -1
  182. package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
  183. package/lib/cjs/internal/render/webgl/ContourUniforms.js.map +1 -1
  184. package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
  185. package/lib/cjs/internal/render/webgl/Diagnostics.js.map +1 -1
  186. package/lib/cjs/internal/render/webgl/Disposable.js.map +1 -1
  187. package/lib/cjs/internal/render/webgl/DrawCommand.js.map +1 -1
  188. package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
  189. package/lib/cjs/internal/render/webgl/EdgeGeometry.js.map +1 -1
  190. package/lib/cjs/internal/render/webgl/EdgeSettings.js.map +1 -1
  191. package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
  192. package/lib/cjs/internal/render/webgl/FloatRGBA.js.map +1 -1
  193. package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
  194. package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
  195. package/lib/cjs/internal/render/webgl/GL.js.map +1 -1
  196. package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
  197. package/lib/cjs/internal/render/webgl/Graphic.js.map +1 -1
  198. package/lib/cjs/internal/render/webgl/HiliteUniforms.js.map +1 -1
  199. package/lib/cjs/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
  200. package/lib/cjs/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  201. package/lib/cjs/internal/render/webgl/InstancedGeometry.js.map +1 -1
  202. package/lib/cjs/internal/render/webgl/Layer.js.map +1 -1
  203. package/lib/cjs/internal/render/webgl/LayerCommands.js.map +1 -1
  204. package/lib/cjs/internal/render/webgl/LightingUniforms.js.map +1 -1
  205. package/lib/cjs/internal/render/webgl/LineCode.js.map +1 -1
  206. package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
  207. package/lib/cjs/internal/render/webgl/Material.js.map +1 -1
  208. package/lib/cjs/internal/render/webgl/Matrix.js.map +1 -1
  209. package/lib/cjs/internal/render/webgl/Mesh.js.map +1 -1
  210. package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
  211. package/lib/cjs/internal/render/webgl/MeshGeometry.js.map +1 -1
  212. package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  213. package/lib/cjs/internal/render/webgl/PlanarClassifier.js +1 -1
  214. package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
  215. package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
  216. package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  217. package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
  218. package/lib/cjs/internal/render/webgl/PointString.js.map +1 -1
  219. package/lib/cjs/internal/render/webgl/Polyline.js.map +1 -1
  220. package/lib/cjs/internal/render/webgl/Primitive.js.map +1 -1
  221. package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
  222. package/lib/cjs/internal/render/webgl/RealityModelUniforms.js.map +1 -1
  223. package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
  224. package/lib/cjs/internal/render/webgl/RenderCommands.js.map +1 -1
  225. package/lib/cjs/internal/render/webgl/RenderFlags.js.map +1 -1
  226. package/lib/cjs/internal/render/webgl/RenderState.js.map +1 -1
  227. package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
  228. package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  229. package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  230. package/lib/cjs/internal/render/webgl/ShaderBuilder.js.map +1 -1
  231. package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
  232. package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
  233. package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
  234. package/lib/cjs/internal/render/webgl/StyleUniforms.js.map +1 -1
  235. package/lib/cjs/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  236. package/lib/cjs/internal/render/webgl/Sync.js.map +1 -1
  237. package/lib/cjs/internal/render/webgl/System.js.map +1 -1
  238. package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
  239. package/lib/cjs/internal/render/webgl/TargetGraphics.js.map +1 -1
  240. package/lib/cjs/internal/render/webgl/TargetUniforms.js.map +1 -1
  241. package/lib/cjs/internal/render/webgl/Technique.js.map +1 -1
  242. package/lib/cjs/internal/render/webgl/TechniqueFlags.js.map +1 -1
  243. package/lib/cjs/internal/render/webgl/TechniqueId.js.map +1 -1
  244. package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
  245. package/lib/cjs/internal/render/webgl/TextureDrape.js.map +1 -1
  246. package/lib/cjs/internal/render/webgl/ThematicSensors.js.map +1 -1
  247. package/lib/cjs/internal/render/webgl/ThematicUniforms.js.map +1 -1
  248. package/lib/cjs/internal/render/webgl/UniformHandle.js.map +1 -1
  249. package/lib/cjs/internal/render/webgl/VertexLUT.js.map +1 -1
  250. package/lib/cjs/internal/render/webgl/ViewRectUniforms.js.map +1 -1
  251. package/lib/cjs/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
  252. package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js +154 -154
  253. package/lib/cjs/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  254. package/lib/cjs/internal/render/webgl/glsl/Animation.js +83 -83
  255. package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
  256. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js +266 -266
  257. package/lib/cjs/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
  258. package/lib/cjs/internal/render/webgl/glsl/Blur.js +37 -37
  259. package/lib/cjs/internal/render/webgl/glsl/Blur.js.map +1 -1
  260. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js +5 -5
  261. package/lib/cjs/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  262. package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js +3 -3
  263. package/lib/cjs/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  264. package/lib/cjs/internal/render/webgl/glsl/Clipping.js +96 -96
  265. package/lib/cjs/internal/render/webgl/glsl/Clipping.js.map +1 -1
  266. package/lib/cjs/internal/render/webgl/glsl/Color.js +12 -12
  267. package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
  268. package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js +7 -7
  269. package/lib/cjs/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
  270. package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js +5 -5
  271. package/lib/cjs/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
  272. package/lib/cjs/internal/render/webgl/glsl/Common.js +16 -16
  273. package/lib/cjs/internal/render/webgl/glsl/Common.js.map +1 -1
  274. package/lib/cjs/internal/render/webgl/glsl/Composite.js +71 -71
  275. package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
  276. package/lib/cjs/internal/render/webgl/glsl/Contours.js +101 -101
  277. package/lib/cjs/internal/render/webgl/glsl/Contours.js.map +1 -1
  278. package/lib/cjs/internal/render/webgl/glsl/CopyColor.js +6 -6
  279. package/lib/cjs/internal/render/webgl/glsl/CopyColor.js.map +1 -1
  280. package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js +3 -3
  281. package/lib/cjs/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  282. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js +4 -4
  283. package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  284. package/lib/cjs/internal/render/webgl/glsl/Decode.js +65 -65
  285. package/lib/cjs/internal/render/webgl/glsl/Decode.js.map +1 -1
  286. package/lib/cjs/internal/render/webgl/glsl/EDL.js +103 -103
  287. package/lib/cjs/internal/render/webgl/glsl/EDL.js.map +1 -1
  288. package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js +25 -25
  289. package/lib/cjs/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  290. package/lib/cjs/internal/render/webgl/glsl/Edge.js +146 -146
  291. package/lib/cjs/internal/render/webgl/glsl/Edge.js.map +1 -1
  292. package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js +238 -238
  293. package/lib/cjs/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  294. package/lib/cjs/internal/render/webgl/glsl/Fragment.js +43 -43
  295. package/lib/cjs/internal/render/webgl/glsl/Fragment.js.map +1 -1
  296. package/lib/cjs/internal/render/webgl/glsl/Instancing.js +21 -21
  297. package/lib/cjs/internal/render/webgl/glsl/Instancing.js.map +1 -1
  298. package/lib/cjs/internal/render/webgl/glsl/Lighting.js +92 -92
  299. package/lib/cjs/internal/render/webgl/glsl/Lighting.js.map +1 -1
  300. package/lib/cjs/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  301. package/lib/cjs/internal/render/webgl/glsl/LookupTable.js +19 -19
  302. package/lib/cjs/internal/render/webgl/glsl/LookupTable.js.map +1 -1
  303. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js +87 -87
  304. package/lib/cjs/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
  305. package/lib/cjs/internal/render/webgl/glsl/Monochrome.js +13 -13
  306. package/lib/cjs/internal/render/webgl/glsl/Monochrome.js.map +1 -1
  307. package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js +188 -188
  308. package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  309. package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js +22 -22
  310. package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  311. package/lib/cjs/internal/render/webgl/glsl/PointCloud.js +28 -28
  312. package/lib/cjs/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  313. package/lib/cjs/internal/render/webgl/glsl/PointString.js +9 -9
  314. package/lib/cjs/internal/render/webgl/glsl/PointString.js.map +1 -1
  315. package/lib/cjs/internal/render/webgl/glsl/Polyline.js +213 -213
  316. package/lib/cjs/internal/render/webgl/glsl/Polyline.js.map +1 -1
  317. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +25 -25
  318. package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  319. package/lib/cjs/internal/render/webgl/glsl/RenderPass.js.map +1 -1
  320. package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  321. package/lib/cjs/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  322. package/lib/cjs/internal/render/webgl/glsl/SkyBox.js.map +1 -1
  323. package/lib/cjs/internal/render/webgl/glsl/SkySphere.js +49 -49
  324. package/lib/cjs/internal/render/webgl/glsl/SkySphere.js.map +1 -1
  325. package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js +51 -51
  326. package/lib/cjs/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  327. package/lib/cjs/internal/render/webgl/glsl/Surface.js +235 -235
  328. package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
  329. package/lib/cjs/internal/render/webgl/glsl/Thematic.js +136 -136
  330. package/lib/cjs/internal/render/webgl/glsl/Thematic.js.map +1 -1
  331. package/lib/cjs/internal/render/webgl/glsl/Translucency.js +19 -19
  332. package/lib/cjs/internal/render/webgl/glsl/Translucency.js.map +1 -1
  333. package/lib/cjs/internal/render/webgl/glsl/Vertex.js +73 -73
  334. package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
  335. package/lib/cjs/internal/render/webgl/glsl/Viewport.js +38 -38
  336. package/lib/cjs/internal/render/webgl/glsl/Viewport.js.map +1 -1
  337. package/lib/cjs/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
  338. package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js +10 -10
  339. package/lib/cjs/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
  340. package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
  341. package/lib/cjs/internal/tile/BatchedTileIdMap.js.map +1 -1
  342. package/lib/cjs/internal/tile/CesiumAssetProvider.js.map +1 -1
  343. package/lib/cjs/internal/tile/ClassifierTileTree.js.map +1 -1
  344. package/lib/cjs/internal/tile/ContextShareProvider.js.map +1 -1
  345. package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
  346. package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
  347. package/lib/cjs/internal/tile/GraphicsCollector.js.map +1 -1
  348. package/lib/cjs/internal/tile/I3dmReader.js.map +1 -1
  349. package/lib/cjs/internal/tile/IModelTile.js.map +1 -1
  350. package/lib/cjs/internal/tile/IModelTileRequestChannels.js.map +1 -1
  351. package/lib/cjs/internal/tile/IModelTileTree.js.map +1 -1
  352. package/lib/cjs/internal/tile/ImdlDecoder.js.map +1 -1
  353. package/lib/cjs/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  354. package/lib/cjs/internal/tile/ImdlParser.js.map +1 -1
  355. package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
  356. package/lib/cjs/internal/tile/LayerTileTreeHandler.js.map +1 -1
  357. package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  358. package/lib/cjs/internal/tile/MeshoptCompression.js.map +1 -1
  359. package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
  360. package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
  361. package/lib/cjs/internal/tile/PntsReader.js.map +1 -1
  362. package/lib/cjs/internal/tile/PrimaryTileTree.js.map +1 -1
  363. package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
  364. package/lib/cjs/internal/tile/RealityTileDrawArgs.js.map +1 -1
  365. package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
  366. package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  367. package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
  368. package/lib/cjs/internal/tile/ViewFlagOverrides.js.map +1 -1
  369. package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
  370. package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
  371. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  372. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  373. package/lib/cjs/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
  374. package/lib/cjs/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  375. package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  376. package/lib/cjs/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  377. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
  378. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
  379. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  380. package/lib/cjs/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
  381. package/lib/cjs/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  382. package/lib/cjs/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  383. package/lib/cjs/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
  384. package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  385. package/lib/cjs/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  386. package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
  387. package/lib/cjs/internal/tile/map/MapTileLoader.js.map +1 -1
  388. package/lib/cjs/internal/tile/map/UrlUtils.js.map +1 -1
  389. package/lib/cjs/internal/tile/map/WmsCapabilities.js.map +1 -1
  390. package/lib/cjs/internal/tile/map/WmsUtilities.js.map +1 -1
  391. package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
  392. package/lib/cjs/internal/webgl.js.map +1 -1
  393. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  394. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  395. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  396. package/lib/cjs/public/scripts/checkbrowser.js +24 -24
  397. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  398. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  399. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  400. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  401. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  402. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
  403. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  404. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
  405. package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
  406. package/lib/cjs/render/Decorations.js.map +1 -1
  407. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  408. package/lib/cjs/render/FrameStats.js.map +1 -1
  409. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  410. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  411. package/lib/cjs/render/GraphicTemplate.js.map +1 -1
  412. package/lib/cjs/render/MeshArgs.js.map +1 -1
  413. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  414. package/lib/cjs/render/Pixel.js.map +1 -1
  415. package/lib/cjs/render/PolylineArgs.js.map +1 -1
  416. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  417. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  418. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  419. package/lib/cjs/render/RenderMemory.js.map +1 -1
  420. package/lib/cjs/render/RenderSystem.js.map +1 -1
  421. package/lib/cjs/render/RenderTarget.js.map +1 -1
  422. package/lib/cjs/render/Scene.js.map +1 -1
  423. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  424. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  425. package/lib/cjs/request/Request.js.map +1 -1
  426. package/lib/cjs/request/utils.js.map +1 -1
  427. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  428. package/lib/cjs/tile/GltfReader.js.map +1 -1
  429. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  430. package/lib/cjs/tile/RealityTile.js.map +1 -1
  431. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  432. package/lib/cjs/tile/RenderGraphicTileTree.js.map +1 -1
  433. package/lib/cjs/tile/Tile.js.map +1 -1
  434. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  435. package/lib/cjs/tile/TileContent.js.map +1 -1
  436. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  437. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  438. package/lib/cjs/tile/TileParams.js.map +1 -1
  439. package/lib/cjs/tile/TileRequest.js.map +1 -1
  440. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  441. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  442. package/lib/cjs/tile/TileStorage.js.map +1 -1
  443. package/lib/cjs/tile/TileTree.js.map +1 -1
  444. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  445. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  446. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  447. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  448. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  449. package/lib/cjs/tile/TileUser.js.map +1 -1
  450. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  451. package/lib/cjs/tile/internal.js.map +1 -1
  452. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  453. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  454. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  455. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  456. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  457. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  458. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  459. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  460. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  461. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  462. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  463. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  464. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  465. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  466. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  467. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  468. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  469. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  470. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  471. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  472. package/lib/cjs/tools/AccuDrawViewportUI.js.map +1 -1
  473. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  474. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  475. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  476. package/lib/cjs/tools/EventController.js.map +1 -1
  477. package/lib/cjs/tools/IdleTool.js.map +1 -1
  478. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  479. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  480. package/lib/cjs/tools/SelectTool.js.map +1 -1
  481. package/lib/cjs/tools/Tool.js.map +1 -1
  482. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  483. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  484. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  485. package/lib/cjs/tools/ViewTool.js.map +1 -1
  486. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
  487. package/lib/cjs/workers/ImdlParser/webpack.config.js +42 -42
  488. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  489. package/lib/esm/AccuDraw.js.map +1 -1
  490. package/lib/esm/AccuSnap.js.map +1 -1
  491. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  492. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  493. package/lib/esm/AuxCoordSys.js.map +1 -1
  494. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  495. package/lib/esm/BingLocation.js.map +1 -1
  496. package/lib/esm/BriefcaseConnection.js.map +1 -1
  497. package/lib/esm/BriefcaseTxns.js.map +1 -1
  498. package/lib/esm/CatalogConnection.js.map +1 -1
  499. package/lib/esm/CategorySelectorState.js.map +1 -1
  500. package/lib/esm/ChangeFlags.js.map +1 -1
  501. package/lib/esm/CheckpointConnection.js.map +1 -1
  502. package/lib/esm/ContextRealityModelState.js.map +1 -1
  503. package/lib/esm/CoordSystem.js.map +1 -1
  504. package/lib/esm/DecorationsCache.js.map +1 -1
  505. package/lib/esm/DevTools.js.map +1 -1
  506. package/lib/esm/DisplayStyleState.js.map +1 -1
  507. package/lib/esm/DrawingViewState.js +5 -5
  508. package/lib/esm/DrawingViewState.js.map +1 -1
  509. package/lib/esm/ElementLocateManager.js.map +1 -1
  510. package/lib/esm/EmphasizeElements.js.map +1 -1
  511. package/lib/esm/EntityState.js.map +1 -1
  512. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  513. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  514. package/lib/esm/FlashSettings.js.map +1 -1
  515. package/lib/esm/FrontendHubAccess.js.map +1 -1
  516. package/lib/esm/Frustum2d.js.map +1 -1
  517. package/lib/esm/FrustumAnimator.js.map +1 -1
  518. package/lib/esm/FuzzySearch.js.map +1 -1
  519. package/lib/esm/GeoServices.js.map +1 -1
  520. package/lib/esm/GlobeAnimator.js.map +1 -1
  521. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  522. package/lib/esm/HitDetail.js.map +1 -1
  523. package/lib/esm/IModelApp.js.map +1 -1
  524. package/lib/esm/IModelConnection.js +26 -26
  525. package/lib/esm/IModelConnection.js.map +1 -1
  526. package/lib/esm/IModelRoutingContext.js.map +1 -1
  527. package/lib/esm/IModeljs-css.js +133 -133
  528. package/lib/esm/IModeljs-css.js.map +1 -1
  529. package/lib/esm/IpcApp.js.map +1 -1
  530. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  531. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  532. package/lib/esm/MarginPercent.js.map +1 -1
  533. package/lib/esm/Marker.js.map +1 -1
  534. package/lib/esm/ModelSelectorState.js.map +1 -1
  535. package/lib/esm/ModelState.js.map +1 -1
  536. package/lib/esm/NativeApp.js.map +1 -1
  537. package/lib/esm/NativeAppLogger.js.map +1 -1
  538. package/lib/esm/NoRenderApp.js.map +1 -1
  539. package/lib/esm/NotificationManager.js.map +1 -1
  540. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  541. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  542. package/lib/esm/RealityDataSource.js.map +1 -1
  543. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  544. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  545. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  546. package/lib/esm/SelectionSet.js.map +1 -1
  547. package/lib/esm/SheetViewState.js.map +1 -1
  548. package/lib/esm/SpatialClassifiersState.js.map +1 -1
  549. package/lib/esm/SpatialViewState.js.map +1 -1
  550. package/lib/esm/Sprites.js.map +1 -1
  551. package/lib/esm/StandardView.js.map +1 -1
  552. package/lib/esm/SubCategoriesCache.js.map +1 -1
  553. package/lib/esm/TentativePoint.js.map +1 -1
  554. package/lib/esm/Tiles.js.map +1 -1
  555. package/lib/esm/TxnEntityChanges.js.map +1 -1
  556. package/lib/esm/UserPreferences.js.map +1 -1
  557. package/lib/esm/ViewAnimation.js.map +1 -1
  558. package/lib/esm/ViewContext.js.map +1 -1
  559. package/lib/esm/ViewCreator2d.js.map +1 -1
  560. package/lib/esm/ViewCreator3d.js.map +1 -1
  561. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  562. package/lib/esm/ViewManager.js.map +1 -1
  563. package/lib/esm/ViewPose.js.map +1 -1
  564. package/lib/esm/ViewState.js.map +1 -1
  565. package/lib/esm/ViewStatus.js.map +1 -1
  566. package/lib/esm/ViewingSpace.js.map +1 -1
  567. package/lib/esm/Viewport.js.map +1 -1
  568. package/lib/esm/ViewportSync.js.map +1 -1
  569. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
  570. package/lib/esm/common/ImageUtil.js.map +1 -1
  571. package/lib/esm/common/ViewRect.js.map +1 -1
  572. package/lib/esm/common/WorkerProxy.js.map +1 -1
  573. package/lib/esm/common/gltf/GltfModel.js.map +1 -1
  574. package/lib/esm/common/gltf/GltfParser.js.map +1 -1
  575. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  576. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  577. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  578. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  579. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  580. package/lib/esm/common/internal/Symbols.js.map +1 -1
  581. package/lib/esm/common/internal/render/AnimationNodeId.js.map +1 -1
  582. package/lib/esm/common/internal/render/AuxChannelTable.js.map +1 -1
  583. package/lib/esm/common/internal/render/ColorMap.js.map +1 -1
  584. package/lib/esm/common/internal/render/DisplayParams.js.map +1 -1
  585. package/lib/esm/common/internal/render/EdgeParams.js.map +1 -1
  586. package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
  587. package/lib/esm/common/internal/render/GeometryList.js.map +1 -1
  588. package/lib/esm/common/internal/render/GeometryPrimitives.js.map +1 -1
  589. package/lib/esm/common/internal/render/GraphicDescriptionBuilderImpl.js.map +1 -1
  590. package/lib/esm/common/internal/render/GraphicDescriptionContextImpl.js.map +1 -1
  591. package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
  592. package/lib/esm/common/internal/render/LineCode.js.map +1 -1
  593. package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
  594. package/lib/esm/common/internal/render/MeshBuilderMap.js.map +1 -1
  595. package/lib/esm/common/internal/render/MeshParams.js.map +1 -1
  596. package/lib/esm/common/internal/render/MeshPrimitive.js.map +1 -1
  597. package/lib/esm/common/internal/render/MeshPrimitives.js.map +1 -1
  598. package/lib/esm/common/internal/render/OvrFlags.js.map +1 -1
  599. package/lib/esm/common/internal/render/PointCloudPrimitive.js.map +1 -1
  600. package/lib/esm/common/internal/render/PointStringParams.js.map +1 -1
  601. package/lib/esm/common/internal/render/Polyface.js.map +1 -1
  602. package/lib/esm/common/internal/render/PolylineParams.js.map +1 -1
  603. package/lib/esm/common/internal/render/Primitives.js.map +1 -1
  604. package/lib/esm/common/internal/render/Strokes.js.map +1 -1
  605. package/lib/esm/common/internal/render/SurfaceParams.js.map +1 -1
  606. package/lib/esm/common/internal/render/VertexIndices.js.map +1 -1
  607. package/lib/esm/common/internal/render/VertexKey.js.map +1 -1
  608. package/lib/esm/common/internal/render/VertexTable.js.map +1 -1
  609. package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
  610. package/lib/esm/common/internal/render/VertexTableSplitter.js.map +1 -1
  611. package/lib/esm/common/render/BatchOptions.js.map +1 -1
  612. package/lib/esm/common/render/GraphicAssembler.js.map +1 -1
  613. package/lib/esm/common/render/GraphicDescriptionBuilder.js.map +1 -1
  614. package/lib/esm/common/render/GraphicDescriptionContext.js.map +1 -1
  615. package/lib/esm/common/render/GraphicPrimitive.js.map +1 -1
  616. package/lib/esm/common/render/GraphicType.js.map +1 -1
  617. package/lib/esm/common/render/InstancedGraphicParams.js.map +1 -1
  618. package/lib/esm/common/render/MaterialParams.js.map +1 -1
  619. package/lib/esm/common/render/RenderInstancesParams.js.map +1 -1
  620. package/lib/esm/common/render/TextureParams.js.map +1 -1
  621. package/lib/esm/common.js.map +1 -1
  622. package/lib/esm/core-frontend.js.map +1 -1
  623. package/lib/esm/extension/Extension.js.map +1 -1
  624. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  625. package/lib/esm/extension/ExtensionHost.js.map +1 -1
  626. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  627. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  628. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
  629. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  630. package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
  631. package/lib/esm/internal/RealityDataSourceGoogle3dTilesImpl.js.map +1 -1
  632. package/lib/esm/internal/ScriptUtils.js.map +1 -1
  633. package/lib/esm/internal/cross-package.js.map +1 -1
  634. package/lib/esm/internal/render/AnimationBranchState.js.map +1 -1
  635. package/lib/esm/internal/render/FrameStatsCollector.js.map +1 -1
  636. package/lib/esm/internal/render/GraphicBranchFrustum.js.map +1 -1
  637. package/lib/esm/internal/render/GraphicTemplateImpl.js.map +1 -1
  638. package/lib/esm/internal/render/MeshMapLayerGraphicParams.js.map +1 -1
  639. package/lib/esm/internal/render/MockRender.js.map +1 -1
  640. package/lib/esm/internal/render/PrimitiveBuilder.js.map +1 -1
  641. package/lib/esm/internal/render/QueryVisibileFeatures.js.map +1 -1
  642. package/lib/esm/internal/render/RenderAreaPattern.js.map +1 -1
  643. package/lib/esm/internal/render/RenderGeometry.js.map +1 -1
  644. package/lib/esm/internal/render/RenderInstancesParamsImpl.js.map +1 -1
  645. package/lib/esm/internal/render/RenderMaterialSource.js.map +1 -1
  646. package/lib/esm/internal/render/RenderPlan.js.map +1 -1
  647. package/lib/esm/internal/render/RenderPlanarClassifier.js.map +1 -1
  648. package/lib/esm/internal/render/RenderSkyBoxParams.js.map +1 -1
  649. package/lib/esm/internal/render/RenderSystemDebugControl.js.map +1 -1
  650. package/lib/esm/internal/render/RenderTargetDebugControl.js.map +1 -1
  651. package/lib/esm/internal/render/RenderTerrain.js.map +1 -1
  652. package/lib/esm/internal/render/RenderTextureDrape.js.map +1 -1
  653. package/lib/esm/internal/render/SceneVolumeClassifier.js.map +1 -1
  654. package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
  655. package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
  656. package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
  657. package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
  658. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +1 -1
  659. package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
  660. package/lib/esm/internal/render/webgl/BatchState.js.map +1 -1
  661. package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
  662. package/lib/esm/internal/render/webgl/BranchStack.js.map +1 -1
  663. package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
  664. package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
  665. package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
  666. package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
  667. package/lib/esm/internal/render/webgl/ClipVolume.js.map +1 -1
  668. package/lib/esm/internal/render/webgl/ClippingProgram.js.map +1 -1
  669. package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
  670. package/lib/esm/internal/render/webgl/ContourUniforms.js.map +1 -1
  671. package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
  672. package/lib/esm/internal/render/webgl/Diagnostics.js.map +1 -1
  673. package/lib/esm/internal/render/webgl/Disposable.js.map +1 -1
  674. package/lib/esm/internal/render/webgl/DrawCommand.js.map +1 -1
  675. package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
  676. package/lib/esm/internal/render/webgl/EdgeGeometry.js.map +1 -1
  677. package/lib/esm/internal/render/webgl/EdgeSettings.js.map +1 -1
  678. package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
  679. package/lib/esm/internal/render/webgl/FloatRGBA.js.map +1 -1
  680. package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
  681. package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
  682. package/lib/esm/internal/render/webgl/GL.js.map +1 -1
  683. package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
  684. package/lib/esm/internal/render/webgl/Graphic.js.map +1 -1
  685. package/lib/esm/internal/render/webgl/HiliteUniforms.js.map +1 -1
  686. package/lib/esm/internal/render/webgl/IModelFrameLifecycle.js.map +1 -1
  687. package/lib/esm/internal/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  688. package/lib/esm/internal/render/webgl/InstancedGeometry.js.map +1 -1
  689. package/lib/esm/internal/render/webgl/Layer.js.map +1 -1
  690. package/lib/esm/internal/render/webgl/LayerCommands.js.map +1 -1
  691. package/lib/esm/internal/render/webgl/LightingUniforms.js.map +1 -1
  692. package/lib/esm/internal/render/webgl/LineCode.js.map +1 -1
  693. package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
  694. package/lib/esm/internal/render/webgl/Material.js.map +1 -1
  695. package/lib/esm/internal/render/webgl/Matrix.js.map +1 -1
  696. package/lib/esm/internal/render/webgl/Mesh.js.map +1 -1
  697. package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
  698. package/lib/esm/internal/render/webgl/MeshGeometry.js.map +1 -1
  699. package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
  700. package/lib/esm/internal/render/webgl/PlanarClassifier.js +1 -1
  701. package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
  702. package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
  703. package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
  704. package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
  705. package/lib/esm/internal/render/webgl/PointString.js.map +1 -1
  706. package/lib/esm/internal/render/webgl/Polyline.js.map +1 -1
  707. package/lib/esm/internal/render/webgl/Primitive.js.map +1 -1
  708. package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
  709. package/lib/esm/internal/render/webgl/RealityModelUniforms.js.map +1 -1
  710. package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
  711. package/lib/esm/internal/render/webgl/RenderCommands.js.map +1 -1
  712. package/lib/esm/internal/render/webgl/RenderFlags.js.map +1 -1
  713. package/lib/esm/internal/render/webgl/RenderState.js.map +1 -1
  714. package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
  715. package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
  716. package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
  717. package/lib/esm/internal/render/webgl/ShaderBuilder.js.map +1 -1
  718. package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
  719. package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
  720. package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
  721. package/lib/esm/internal/render/webgl/StyleUniforms.js.map +1 -1
  722. package/lib/esm/internal/render/webgl/SurfaceGeometry.js.map +1 -1
  723. package/lib/esm/internal/render/webgl/Sync.js.map +1 -1
  724. package/lib/esm/internal/render/webgl/System.js.map +1 -1
  725. package/lib/esm/internal/render/webgl/Target.js.map +1 -1
  726. package/lib/esm/internal/render/webgl/TargetGraphics.js.map +1 -1
  727. package/lib/esm/internal/render/webgl/TargetUniforms.js.map +1 -1
  728. package/lib/esm/internal/render/webgl/Technique.js.map +1 -1
  729. package/lib/esm/internal/render/webgl/TechniqueFlags.js.map +1 -1
  730. package/lib/esm/internal/render/webgl/TechniqueId.js.map +1 -1
  731. package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
  732. package/lib/esm/internal/render/webgl/TextureDrape.js.map +1 -1
  733. package/lib/esm/internal/render/webgl/ThematicSensors.js.map +1 -1
  734. package/lib/esm/internal/render/webgl/ThematicUniforms.js.map +1 -1
  735. package/lib/esm/internal/render/webgl/UniformHandle.js.map +1 -1
  736. package/lib/esm/internal/render/webgl/VertexLUT.js.map +1 -1
  737. package/lib/esm/internal/render/webgl/ViewRectUniforms.js.map +1 -1
  738. package/lib/esm/internal/render/webgl/VisibleTileFeatures.js.map +1 -1
  739. package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js +154 -154
  740. package/lib/esm/internal/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  741. package/lib/esm/internal/render/webgl/glsl/Animation.js +83 -83
  742. package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
  743. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js +266 -266
  744. package/lib/esm/internal/render/webgl/glsl/Atmosphere.js.map +1 -1
  745. package/lib/esm/internal/render/webgl/glsl/Blur.js +37 -37
  746. package/lib/esm/internal/render/webgl/glsl/Blur.js.map +1 -1
  747. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js +5 -5
  748. package/lib/esm/internal/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  749. package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js +3 -3
  750. package/lib/esm/internal/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  751. package/lib/esm/internal/render/webgl/glsl/Clipping.js +96 -96
  752. package/lib/esm/internal/render/webgl/glsl/Clipping.js.map +1 -1
  753. package/lib/esm/internal/render/webgl/glsl/Color.js +12 -12
  754. package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
  755. package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js +7 -7
  756. package/lib/esm/internal/render/webgl/glsl/Combine3Textures.js.map +1 -1
  757. package/lib/esm/internal/render/webgl/glsl/CombineTextures.js +5 -5
  758. package/lib/esm/internal/render/webgl/glsl/CombineTextures.js.map +1 -1
  759. package/lib/esm/internal/render/webgl/glsl/Common.js +16 -16
  760. package/lib/esm/internal/render/webgl/glsl/Common.js.map +1 -1
  761. package/lib/esm/internal/render/webgl/glsl/Composite.js +71 -71
  762. package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
  763. package/lib/esm/internal/render/webgl/glsl/Contours.js +101 -101
  764. package/lib/esm/internal/render/webgl/glsl/Contours.js.map +1 -1
  765. package/lib/esm/internal/render/webgl/glsl/CopyColor.js +6 -6
  766. package/lib/esm/internal/render/webgl/glsl/CopyColor.js.map +1 -1
  767. package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js +3 -3
  768. package/lib/esm/internal/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  769. package/lib/esm/internal/render/webgl/glsl/CopyStencil.js +4 -4
  770. package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
  771. package/lib/esm/internal/render/webgl/glsl/Decode.js +65 -65
  772. package/lib/esm/internal/render/webgl/glsl/Decode.js.map +1 -1
  773. package/lib/esm/internal/render/webgl/glsl/EDL.js +103 -103
  774. package/lib/esm/internal/render/webgl/glsl/EDL.js.map +1 -1
  775. package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js +25 -25
  776. package/lib/esm/internal/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  777. package/lib/esm/internal/render/webgl/glsl/Edge.js +146 -146
  778. package/lib/esm/internal/render/webgl/glsl/Edge.js.map +1 -1
  779. package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js +238 -238
  780. package/lib/esm/internal/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  781. package/lib/esm/internal/render/webgl/glsl/Fragment.js +43 -43
  782. package/lib/esm/internal/render/webgl/glsl/Fragment.js.map +1 -1
  783. package/lib/esm/internal/render/webgl/glsl/Instancing.js +21 -21
  784. package/lib/esm/internal/render/webgl/glsl/Instancing.js.map +1 -1
  785. package/lib/esm/internal/render/webgl/glsl/Lighting.js +92 -92
  786. package/lib/esm/internal/render/webgl/glsl/Lighting.js.map +1 -1
  787. package/lib/esm/internal/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  788. package/lib/esm/internal/render/webgl/glsl/LookupTable.js +19 -19
  789. package/lib/esm/internal/render/webgl/glsl/LookupTable.js.map +1 -1
  790. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js +87 -87
  791. package/lib/esm/internal/render/webgl/glsl/MaplayerDraping.js.map +1 -1
  792. package/lib/esm/internal/render/webgl/glsl/Monochrome.js +13 -13
  793. package/lib/esm/internal/render/webgl/glsl/Monochrome.js.map +1 -1
  794. package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js +188 -188
  795. package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
  796. package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js +22 -22
  797. package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
  798. package/lib/esm/internal/render/webgl/glsl/PointCloud.js +28 -28
  799. package/lib/esm/internal/render/webgl/glsl/PointCloud.js.map +1 -1
  800. package/lib/esm/internal/render/webgl/glsl/PointString.js +9 -9
  801. package/lib/esm/internal/render/webgl/glsl/PointString.js.map +1 -1
  802. package/lib/esm/internal/render/webgl/glsl/Polyline.js +213 -213
  803. package/lib/esm/internal/render/webgl/glsl/Polyline.js.map +1 -1
  804. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +25 -25
  805. package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
  806. package/lib/esm/internal/render/webgl/glsl/RenderPass.js.map +1 -1
  807. package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  808. package/lib/esm/internal/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  809. package/lib/esm/internal/render/webgl/glsl/SkyBox.js.map +1 -1
  810. package/lib/esm/internal/render/webgl/glsl/SkySphere.js +49 -49
  811. package/lib/esm/internal/render/webgl/glsl/SkySphere.js.map +1 -1
  812. package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js +51 -51
  813. package/lib/esm/internal/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  814. package/lib/esm/internal/render/webgl/glsl/Surface.js +235 -235
  815. package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
  816. package/lib/esm/internal/render/webgl/glsl/Thematic.js +136 -136
  817. package/lib/esm/internal/render/webgl/glsl/Thematic.js.map +1 -1
  818. package/lib/esm/internal/render/webgl/glsl/Translucency.js +19 -19
  819. package/lib/esm/internal/render/webgl/glsl/Translucency.js.map +1 -1
  820. package/lib/esm/internal/render/webgl/glsl/Vertex.js +73 -73
  821. package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
  822. package/lib/esm/internal/render/webgl/glsl/Viewport.js +38 -38
  823. package/lib/esm/internal/render/webgl/glsl/Viewport.js.map +1 -1
  824. package/lib/esm/internal/render/webgl/glsl/ViewportQuad.js.map +1 -1
  825. package/lib/esm/internal/render/webgl/glsl/Wiremesh.js +10 -10
  826. package/lib/esm/internal/render/webgl/glsl/Wiremesh.js.map +1 -1
  827. package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
  828. package/lib/esm/internal/tile/BatchedTileIdMap.js.map +1 -1
  829. package/lib/esm/internal/tile/CesiumAssetProvider.js.map +1 -1
  830. package/lib/esm/internal/tile/ClassifierTileTree.js.map +1 -1
  831. package/lib/esm/internal/tile/ContextShareProvider.js.map +1 -1
  832. package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
  833. package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
  834. package/lib/esm/internal/tile/GraphicsCollector.js.map +1 -1
  835. package/lib/esm/internal/tile/I3dmReader.js.map +1 -1
  836. package/lib/esm/internal/tile/IModelTile.js.map +1 -1
  837. package/lib/esm/internal/tile/IModelTileRequestChannels.js.map +1 -1
  838. package/lib/esm/internal/tile/IModelTileTree.js.map +1 -1
  839. package/lib/esm/internal/tile/ImdlDecoder.js.map +1 -1
  840. package/lib/esm/internal/tile/ImdlGraphicsCreator.js.map +1 -1
  841. package/lib/esm/internal/tile/ImdlParser.js.map +1 -1
  842. package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
  843. package/lib/esm/internal/tile/LayerTileTreeHandler.js.map +1 -1
  844. package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
  845. package/lib/esm/internal/tile/MeshoptCompression.js.map +1 -1
  846. package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
  847. package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
  848. package/lib/esm/internal/tile/PntsReader.js.map +1 -1
  849. package/lib/esm/internal/tile/PrimaryTileTree.js.map +1 -1
  850. package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
  851. package/lib/esm/internal/tile/RealityTileDrawArgs.js.map +1 -1
  852. package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
  853. package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  854. package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
  855. package/lib/esm/internal/tile/ViewFlagOverrides.js.map +1 -1
  856. package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
  857. package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
  858. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  859. package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  860. package/lib/esm/internal/tile/map/ImageryProviders/ArcGisGeometryReaderJSON.js.map +1 -1
  861. package/lib/esm/internal/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  862. package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  863. package/lib/esm/internal/tile/map/ImageryProviders/CoordinatesUtils.js.map +1 -1
  864. package/lib/esm/internal/tile/map/ImageryProviders/FeatureAttributeDrivenSymbology.js.map +1 -1
  865. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGeometryRenderer.js.map +1 -1
  866. package/lib/esm/internal/tile/map/ImageryProviders/FeatureGraphicsRenderer.js.map +1 -1
  867. package/lib/esm/internal/tile/map/ImageryProviders/FeatureSymbologyRenderer.js.map +1 -1
  868. package/lib/esm/internal/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  869. package/lib/esm/internal/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  870. package/lib/esm/internal/tile/map/ImageryProviders/WebMercator.js.map +1 -1
  871. package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  872. package/lib/esm/internal/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  873. package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
  874. package/lib/esm/internal/tile/map/MapTileLoader.js.map +1 -1
  875. package/lib/esm/internal/tile/map/UrlUtils.js.map +1 -1
  876. package/lib/esm/internal/tile/map/WmsCapabilities.js.map +1 -1
  877. package/lib/esm/internal/tile/map/WmsUtilities.js.map +1 -1
  878. package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
  879. package/lib/esm/internal/webgl.js.map +1 -1
  880. package/lib/esm/properties/AngleDescription.js.map +1 -1
  881. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  882. package/lib/esm/properties/LengthDescription.js.map +1 -1
  883. package/lib/esm/public/scripts/checkbrowser.js +24 -24
  884. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  885. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  886. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  887. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  888. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  889. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
  890. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  891. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
  892. package/lib/esm/render/CreateTextureArgs.js.map +1 -1
  893. package/lib/esm/render/Decorations.js.map +1 -1
  894. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  895. package/lib/esm/render/FrameStats.js.map +1 -1
  896. package/lib/esm/render/GraphicBranch.js.map +1 -1
  897. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  898. package/lib/esm/render/GraphicTemplate.js.map +1 -1
  899. package/lib/esm/render/MeshArgs.js.map +1 -1
  900. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  901. package/lib/esm/render/Pixel.js.map +1 -1
  902. package/lib/esm/render/PolylineArgs.js.map +1 -1
  903. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  904. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  905. package/lib/esm/render/RenderGraphic.js.map +1 -1
  906. package/lib/esm/render/RenderMemory.js.map +1 -1
  907. package/lib/esm/render/RenderSystem.js.map +1 -1
  908. package/lib/esm/render/RenderTarget.js.map +1 -1
  909. package/lib/esm/render/Scene.js.map +1 -1
  910. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  911. package/lib/esm/render/VisibleFeature.js.map +1 -1
  912. package/lib/esm/request/Request.js.map +1 -1
  913. package/lib/esm/request/utils.js.map +1 -1
  914. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  915. package/lib/esm/tile/GltfReader.js.map +1 -1
  916. package/lib/esm/tile/ImdlReader.js.map +1 -1
  917. package/lib/esm/tile/RealityTile.js.map +1 -1
  918. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  919. package/lib/esm/tile/RenderGraphicTileTree.js.map +1 -1
  920. package/lib/esm/tile/Tile.js.map +1 -1
  921. package/lib/esm/tile/TileAdmin.js.map +1 -1
  922. package/lib/esm/tile/TileContent.js.map +1 -1
  923. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  924. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  925. package/lib/esm/tile/TileParams.js.map +1 -1
  926. package/lib/esm/tile/TileRequest.js.map +1 -1
  927. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  928. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  929. package/lib/esm/tile/TileStorage.js.map +1 -1
  930. package/lib/esm/tile/TileTree.js.map +1 -1
  931. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  932. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  933. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  934. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  935. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  936. package/lib/esm/tile/TileUser.js.map +1 -1
  937. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  938. package/lib/esm/tile/internal.js.map +1 -1
  939. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  940. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  941. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  942. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  943. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  944. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  945. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  946. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  947. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  948. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  949. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  950. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  951. package/lib/esm/tile/map/MapTile.js.map +1 -1
  952. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  953. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  954. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  955. package/lib/esm/tile/map/QuadId.js.map +1 -1
  956. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  957. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  958. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  959. package/lib/esm/tools/AccuDrawViewportUI.js.map +1 -1
  960. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  961. package/lib/esm/tools/EditManipulator.js.map +1 -1
  962. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  963. package/lib/esm/tools/EventController.js.map +1 -1
  964. package/lib/esm/tools/IdleTool.js.map +1 -1
  965. package/lib/esm/tools/MeasureTool.js.map +1 -1
  966. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  967. package/lib/esm/tools/SelectTool.js.map +1 -1
  968. package/lib/esm/tools/Tool.js.map +1 -1
  969. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  970. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  971. package/lib/esm/tools/ToolSettings.js.map +1 -1
  972. package/lib/esm/tools/ViewTool.js.map +1 -1
  973. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
  974. package/lib/esm/workers/ImdlParser/webpack.config.js +42 -42
  975. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  976. package/lib/public/assets/MapLayerSources.json +25 -25
  977. package/lib/public/images/cesium-ion.svg +92 -92
  978. package/lib/public/images/imodeljs-icon.svg +2 -2
  979. package/lib/public/locales/en/CoreTools.json +508 -508
  980. package/lib/public/locales/en/iModelJs.json +176 -176
  981. package/lib/public/scripts/checkbrowser.js +24 -24
  982. package/package.json +20 -20
@@ -1 +1 @@
1
- {"version":3,"file":"ScratchDrawParams.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScratchDrawParams.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGhE,IAAI,UAA2C,CAAC;AAChD,IAAI,UAAkC,CAAC;AAEvC,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAwB;IACpE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,UAAU,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACvC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,UAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,UAAW,CAAC;AACrB,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,cAAc;IAC5B,UAAU,GAAG,SAAS,CAAC;IACvB,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC","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*--------------------------------------------------------------------------------------------*/\nimport { CachedGeometry } from \"./CachedGeometry\";\nimport { DrawParams, ShaderProgramParams } from \"./DrawCommand\";\nimport { Target } from \"./Target\";\n\nlet progParams: ShaderProgramParams | undefined;\nlet drawParams: DrawParams | undefined;\n\n/** @internal */\nexport function getDrawParams(target: Target, geometry: CachedGeometry): DrawParams {\n if (undefined === progParams) {\n progParams = new ShaderProgramParams();\n drawParams = new DrawParams();\n }\n\n progParams.init(target);\n drawParams!.init(progParams, geometry);\n return drawParams!;\n}\n\n/** @internal */\nexport function freeDrawParams(): void {\n progParams = undefined;\n drawParams = undefined;\n}\n"]}
1
+ {"version":3,"file":"ScratchDrawParams.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScratchDrawParams.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGhE,IAAI,UAA2C,CAAC;AAChD,IAAI,UAAkC,CAAC;AAEvC,gBAAgB;AAChB,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,QAAwB;IACpE,IAAI,SAAS,KAAK,UAAU,EAAE,CAAC;QAC7B,UAAU,GAAG,IAAI,mBAAmB,EAAE,CAAC;QACvC,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;IAChC,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACxB,UAAW,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACvC,OAAO,UAAW,CAAC;AACrB,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,cAAc;IAC5B,UAAU,GAAG,SAAS,CAAC;IACvB,UAAU,GAAG,SAAS,CAAC;AACzB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenSpaceEffect.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScreenSpaceEffect.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EACkH,WAAW,EAAE,WAAW,GAChJ,MAAM,0CAA0C,CAAC;AAIlD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,kCAAkC,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAC5F,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,qCAAqC,EAAE,MAAM,0BAA0B,CAAC;AAIjF,SAAS,sBAAsB,CAAC,IAAiB;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,oCAA4B;QACnD,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,gCAAwB;QAC9C,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,kCAA0B;QAClD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,iCAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,iCAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,iCAAyB;IAClD,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAiB;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,kCAA0B;QAClD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,iCAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,iCAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,iCAAyB;IAClD,CAAC;AACH,CAAC;AAED,MAAM,OAAO;IACM,KAAK,CAAS;IACd,QAAQ,CAAiB;IACzB,aAAa,CAAU;IACjC,WAAW,CAAe;IAEjC,YAAmB,MAAsC;QACvD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,qCAAqC,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,iBAAiB,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;QACjE,IAAI,CAAC,aAAa,GAAG,SAAS,KAAK,MAAM,CAAC,MAAM,CAAC,iBAAiB,CAAC;IACrE,CAAC;IAED,IAAW,QAAQ;QACjB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,UAAU,CAAC,MAAqB;QACrC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEzB,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,IAAmB,EAAE,EAAE;YAC3D,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBACnD,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,eAAe,CAAC,MAA0B;QAC/C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,sBAAsB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,IAAI,EAAE,EAAE;YACzD,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,EAAE;gBACnD,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;YAC5D,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,UAAU,CAAC,IAAY,EAAE,IAAiB;QAC/C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEM,MAAM;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QAEpE,uEAAuE;QACvE,IAAI,kCAA0B,OAAO,CAAC,OAAO,EAAE;YAC7C,MAAM,IAAI,KAAK,CAAC,6DAA6D,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;QAE9F,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,mBAAmB,CAAC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QAE1F,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,WAAW,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;QACpG,MAAM,CAAC,QAAQ,CAAC,kBAAkB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACjD,CAAC;CACF;AAED,MAAM,iBAAiB;IACL,WAAW,CAAc;IACzB,IAAI,CAAS;IACZ,YAAY,CAAe;IAC3B,aAAa,CAAU;IAExC,YAAmB,WAAwB,EAAE,IAAY,EAAE,YAAqB,EAAE,WAAyB;QACzG,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC;QAChC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAEM,WAAW,CAAC,MAAc;QAC/B,kIAAkI;QAClI,IAAI,MAAM,CAAC,sBAAsB,IAAI,CAAC,IAAI,CAAC,aAAa;YACtD,OAAO,KAAK,CAAC;QAEf,OAAO,SAAS,KAAK,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC/F,CAAC;CACF;AAED,MAAM,mBAAoB,SAAQ,oBAAoB;IAC7C,cAAc,CAAC,EAAe;QACnC,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;IACzB,CAAC;CACF;AAED,gBAAgB;AAChB,MAAM,OAAO,kBAAkB;IACZ,QAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;IAChD,eAAe,CAAsB;IACrC,aAAa,CAAqC;IAClD,aAAa,GAAwB,EAAE,CAAC;IAEzD;QACE,4EAA4E;QAC5E,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,8BAAqB,CAAC;QACvE,MAAM,CAAC,cAAc,YAAY,mBAAmB,CAAC,CAAC;QACtD,IAAI,CAAC,eAAe,GAAG,cAAc,CAAC;QAEtC,mDAAmD;QACnD,MAAM,YAAY,GAAG,kCAAkC,CAAC,cAAc,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAgB,CAAC,SAAS,EAAG,iCAAwB,CAAC;QAC7I,MAAM,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAEM,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QAC9B,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC9B,CAAC;IAEM,GAAG,CAAC,MAAyB;QAClC,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;YAC9C,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,CAAC,IAAI,0BAA0B,CAAC,CAAC;QAEjF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,CAAC;IAED,mEAAmE;IAC5D,WAAW,CAAC,MAAc;QAC/B,OAAO,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IACtD,CAAC;IAEO,oBAAoB,CAAC,MAAc;QACzC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC;QACnC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QAEnB,MAAM,KAAK,GAAG,MAAM,CAAC,kBAAkB,CAAC;QACxC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACvC,IAAI,MAAM,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC;gBACtC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,iEAAiE;IAC1D,KAAK,CAAC,MAAc;QACzB,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI;YAC1B,OAAO;QAET,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,OAAO,CAAC,MAAM;YACtB,OAAO;QAET,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;YAClC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,oEAAoE;YACpE,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,gBAAgB,CAAC,kBAAmB,CAAC,SAAS,EAAG,CAAC;YACtF,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;gBACzD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC7D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;YAEH,mEAAmE;YACnE,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,MAAM,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;YAC3D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,OAA4B,EAAE,MAAc;QACrE,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC;QAC/B,MAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;QAE9C,sEAAsE;QACtE,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,CAAC,oBAAoB,CAAC;QACvD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,eAAe,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACxD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC5B,sDAAsD;gBACtD,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;gBACxF,IAAI,CAAC,aAAa,CAAC,OAAO,GAAG,MAAM,CAAC,SAAS,EAAG,CAAC;gBACjD,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;oBACzD,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;oBAC7D,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBACrC,CAAC,CAAC,CAAC;gBAEH,yFAAyF;gBACzF,kDAAkD;gBAClD,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC/C,MAAM,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC;gBAChC,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE;oBAC3D,MAAM,YAAY,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;oBACjE,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBACvC,CAAC,CAAC,CAAC;gBAEH,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAsC;IACnF,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC","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, dispose } from \"@itwin/core-bentley\";\nimport {\n ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams, ScreenSpaceEffectContext, UniformArrayParams, UniformParams, UniformType, VaryingType,\n} from \"../../../render/ScreenSpaceEffectBuilder\";\nimport { TechniqueId } from \"./TechniqueId\";\nimport { ProgramBuilder, VariableType } from \"./ShaderBuilder\";\nimport { CompileStatus, ShaderProgram } from \"./ShaderProgram\";\nimport { RenderState } from \"./RenderState\";\nimport { SingleTexturedViewportQuadGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\nimport { FrameBuffer } from \"./FrameBuffer\";\nimport { getDrawParams } from \"./ScratchDrawParams\";\nimport { SingularTechnique } from \"./Technique\";\nimport { Target } from \"./Target\";\nimport { System } from \"./System\";\nimport { createScreenSpaceEffectProgramBuilder } from \"./glsl/ScreenSpaceEffect\";\n\ntype ShouldApply = (context: ScreenSpaceEffectContext) => boolean;\n\nfunction getUniformVariableType(type: UniformType): VariableType {\n switch (type) {\n case UniformType.Bool: return VariableType.Boolean;\n case UniformType.Int: return VariableType.Int;\n case UniformType.Float: return VariableType.Float;\n case UniformType.Vec2: return VariableType.Vec2;\n case UniformType.Vec3: return VariableType.Vec3;\n case UniformType.Vec4: return VariableType.Vec4;\n }\n}\n\nfunction getVaryingVariableType(type: VaryingType): VariableType {\n switch (type) {\n case VaryingType.Float: return VariableType.Float;\n case VaryingType.Vec2: return VariableType.Vec2;\n case VaryingType.Vec3: return VariableType.Vec3;\n case VaryingType.Vec4: return VariableType.Vec4;\n }\n}\n\nclass Builder {\n private readonly _name: string;\n private readonly _builder: ProgramBuilder;\n private readonly _shiftsPixels: boolean;\n public shouldApply?: ShouldApply;\n\n public constructor(params: ScreenSpaceEffectBuilderParams) {\n this._name = params.name;\n this._builder = createScreenSpaceEffectProgramBuilder(params);\n this._builder.setDebugDescription(`Screen-space: ${this._name}`);\n this._shiftsPixels = undefined !== params.source.sampleSourcePixel;\n }\n\n public get isWebGL2(): boolean {\n return true;\n }\n\n public addUniform(params: UniformParams): void {\n const name = params.name;\n const type = getUniformVariableType(params.type);\n const bind = params.bind;\n\n this._builder.addUniform(name, type, (prog: ShaderProgram) => {\n prog.addProgramUniform(name, (uniform, progParams) => {\n bind(uniform, progParams.target.screenSpaceEffectContext);\n });\n });\n }\n\n public addUniformArray(params: UniformArrayParams): void {\n const { name, bind, length } = { ...params };\n const type = getUniformVariableType(params.type);\n this._builder.addUniformArray(name, type, length, (prog) => {\n prog.addProgramUniform(name, (uniform, progParams) => {\n bind(uniform, progParams.target.screenSpaceEffectContext);\n });\n });\n }\n\n public addVarying(name: string, type: VaryingType): void {\n this._builder.addVarying(name, getVaryingVariableType(type));\n }\n\n public finish(): void {\n const program = this._builder.buildProgram(System.instance.context);\n\n // NB: compile() will throw with WebGL error log if compile/link fails.\n if (CompileStatus.Success !== program.compile())\n throw new Error(`Failed to produce shader program for screen-space effect \"${this._name}\"`);\n\n const technique = new SingularTechnique(program);\n const techniqueId = System.instance.techniques.addDynamicTechnique(technique, this._name);\n\n const effect = new ScreenSpaceEffect(techniqueId, this._name, this._shiftsPixels, this.shouldApply);\n System.instance.screenSpaceEffects.add(effect);\n }\n}\n\nclass ScreenSpaceEffect {\n public readonly techniqueId: TechniqueId;\n public readonly name: string;\n private readonly _shouldApply?: ShouldApply;\n private readonly _shiftsPixels: boolean;\n\n public constructor(techniqueId: TechniqueId, name: string, shiftsPixels: boolean, shouldApply?: ShouldApply) {\n this.techniqueId = techniqueId;\n this.name = name;\n this._shouldApply = shouldApply;\n this._shiftsPixels = shiftsPixels;\n }\n\n public shouldApply(target: Target): boolean {\n // Effects only apply during readPixels() if they move pixels around (we need to move pixels in the pick buffers correspondingly).\n if (target.isReadPixelsInProgress && !this._shiftsPixels)\n return false;\n\n return undefined === this._shouldApply || this._shouldApply(target.screenSpaceEffectContext);\n }\n}\n\nclass ScreenSpaceGeometry extends ViewportQuadGeometry {\n public setTechniqueId(id: TechniqueId) {\n this._techniqueId = id;\n }\n}\n\n/** @internal */\nexport class ScreenSpaceEffects {\n private readonly _effects = new Map<string, ScreenSpaceEffect>();\n private readonly _effectGeometry: ScreenSpaceGeometry;\n private readonly _copyGeometry: SingleTexturedViewportQuadGeometry;\n private readonly _workingArray: ScreenSpaceEffect[] = [];\n\n public constructor() {\n // We will change the geometry's TechniqueId before applying each technique.\n const effectGeometry = ScreenSpaceGeometry.create(TechniqueId.Invalid);\n assert(effectGeometry instanceof ScreenSpaceGeometry);\n this._effectGeometry = effectGeometry;\n\n // NB: We'll replace the texture each time we draw.\n const copyGeometry = SingleTexturedViewportQuadGeometry.createGeometry(System.instance.lineCodeTexture!.getHandle()!, TechniqueId.CopyColor);\n assert(undefined !== copyGeometry);\n this._copyGeometry = copyGeometry;\n }\n\n public [Symbol.dispose](): void {\n dispose(this._effectGeometry);\n dispose(this._copyGeometry);\n }\n\n public add(effect: ScreenSpaceEffect): void {\n if (undefined !== this._effects.get(effect.name))\n throw new Error(`Screen-space effect \"${effect.name}\" is already registered.`);\n\n this._effects.set(effect.name, effect);\n }\n\n /** Return true if any effects should be applied to this Target. */\n public shouldApply(target: Target): boolean {\n return this.getApplicableEffects(target).length > 0;\n }\n\n private getApplicableEffects(target: Target): ScreenSpaceEffect[] {\n const effects = this._workingArray;\n effects.length = 0;\n\n const names = target.screenSpaceEffects;\n for (const name of names) {\n const effect = this._effects.get(name);\n if (effect && effect.shouldApply(target))\n effects.push(effect);\n }\n\n return effects;\n }\n\n /** Apply screen-space effects to the Target's rendered image. */\n public apply(target: Target): void {\n if (0 === this._effects.size)\n return;\n\n const effects = this.getApplicableEffects(target);\n if (0 === effects.length)\n return;\n\n if (target.isReadPixelsInProgress) {\n this.applyForReadPixels(effects, target);\n return;\n }\n\n const system = System.instance;\n system.applyRenderState(RenderState.defaults);\n\n const copyFbo = target.compositor.screenSpaceEffectFbo;\n for (const effect of effects) {\n // Copy the rendered image to texture as input to the effect shader.\n this._copyGeometry.texture = system.frameBufferStack.currentColorBuffer!.getHandle()!;\n system.frameBufferStack.execute(copyFbo, true, false, () => {\n const copyParams = getDrawParams(target, this._copyGeometry);\n system.techniques.draw(copyParams);\n });\n\n // Run the effect shader with a copy of the current image as input.\n this._effectGeometry.setTechniqueId(effect.techniqueId);\n const params = getDrawParams(target, this._effectGeometry);\n system.techniques.draw(params);\n }\n }\n\n private applyForReadPixels(effects: ScreenSpaceEffect[], target: Target): void {\n const system = System.instance;\n system.applyRenderState(RenderState.defaults);\n\n // ###TODO: We could use MRT if available here rather than two passes.\n const copyFbo = target.compositor.screenSpaceEffectFbo;\n for (const effect of effects) {\n this._effectGeometry.setTechniqueId(effect.techniqueId);\n for (let i = 0; i <= 1; i++) {\n // Copy the pick buffer as input to the effect shader.\n const buffer = 0 === i ? target.compositor.featureIds : target.compositor.depthAndOrder;\n this._copyGeometry.texture = buffer.getHandle()!;\n system.frameBufferStack.execute(copyFbo, true, false, () => {\n const copyParams = getDrawParams(target, this._copyGeometry);\n system.techniques.draw(copyParams);\n });\n\n // Run the effect shader with a copy of the current pick buffer to output to pick buffer.\n // ###TODO: Avoid frequent framebuffer allocation.\n const effectFbo = FrameBuffer.create([buffer]);\n assert(undefined !== effectFbo);\n system.frameBufferStack.execute(effectFbo, true, false, () => {\n const effectParams = getDrawParams(target, this._effectGeometry);\n system.techniques.draw(effectParams);\n });\n\n effectFbo[Symbol.dispose]();\n }\n }\n }\n}\n\nexport function createScreenSpaceEffectBuilder(params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder {\n return new Builder(params);\n}\n"]}
1
+ {"version":3,"file":"ScreenSpaceEffect.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ScreenSpaceEffect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShaderBuilder.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\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 { AttributeDetails } from \"./AttributeMap\";\nimport { addInstancedModelMatrixRTC } from \"./glsl/Instancing\";\nimport { volClassOpaqueColor } from \"./glsl/PlanarClassification\";\nimport { addPosition, earlyVertexDiscard, lateVertexDiscard, vertexDiscard } from \"./glsl/Vertex\";\nimport { ShaderProgram } from \"./ShaderProgram\";\nimport { PositionType } from \"./TechniqueFlags\";\n\n/* eslint-disable no-restricted-syntax */\n\n/** Describes the data type of a shader program variable.\n * @internal\n */\nexport const enum VariableType {\n Boolean, // bool\n Int, // int\n Float, // float\n Vec2, // vec2\n Vec3, // vec3\n Vec4, // vec4\n Mat3, // mat3\n Mat4, // mat4\n Sampler2D, // sampler2D\n SamplerCube, // samplerCube\n Uint, // uint\n BVec2, // bvec2\n\n COUNT,\n}\n\n/** Describes the qualifier associated with a shader program variable.\n * @internal\n */\nexport const enum VariableScope {\n Global, // no qualifier\n Varying, // varying\n Uniform, // uniform\n\n COUNT,\n}\n\n/** Describes the declared or undeclared precision of a shader program variable.\n * @internal\n */\nexport const enum VariablePrecision {\n Default, // undeclared precision - variable uses the explicit or implicit precision default for its type\n Low, // lowp\n Medium, // mediump\n High, // highp\n\n COUNT,\n}\n\n/** @internal */\nnamespace Convert {\n export function typeToString(type: VariableType): string {\n switch (type) {\n case VariableType.Boolean: return \"bool\";\n case VariableType.Int: return \"int\";\n case VariableType.Float: return \"float\";\n case VariableType.Vec2: return \"vec2\";\n case VariableType.Vec3: return \"vec3\";\n case VariableType.Vec4: return \"vec4\";\n case VariableType.Mat3: return \"mat3\";\n case VariableType.Mat4: return \"mat4\";\n case VariableType.Sampler2D: return \"sampler2D\";\n case VariableType.SamplerCube: return \"samplerCube\";\n case VariableType.Uint: return \"uint\";\n case VariableType.BVec2: return \"bvec2\";\n default:\n assert(false);\n return \"undefined\";\n }\n }\n\n export function scopeToString(scope: VariableScope, isVertexShader: boolean): string {\n switch (scope) {\n case VariableScope.Global: return \"\";\n case VariableScope.Varying: return (isVertexShader ? \"out\" : \"in\");\n case VariableScope.Uniform: return \"uniform\";\n default:\n assert(false);\n return \"undefined\";\n }\n }\n\n export function precisionToString(precision: VariablePrecision): string {\n switch (precision) {\n case VariablePrecision.Default: return \"\";\n case VariablePrecision.Low: return \"lowp\";\n case VariablePrecision.Medium: return \"mediump\";\n case VariablePrecision.High: return \"highp\";\n default:\n assert(false);\n return \"undefined\";\n }\n }\n}\n\n/**\n * Function invoked by ShaderVariable::AddBinding() to bind the variable to the compiled program.\n * The implementation should call ShaderProgram::AddShaderUniform or ShaderProgram::AddGraphicUniform/Attribute to register a function\n * which can be used to bind the value of the variable when program is used.\n * @internal\n */\nexport type AddVariableBinding = (prog: ShaderProgram) => void;\n\n/** Represents a variable within a fragment or vertex shader.\n * @internal\n */\nexport class ShaderVariable {\n private readonly _addBinding?: AddVariableBinding;\n public readonly name: string;\n public readonly value?: string; // for global variables only\n public readonly type: VariableType;\n public readonly scope: VariableScope;\n public readonly precision: VariablePrecision;\n public readonly isConst: boolean = false; // for global variables only\n public readonly length: number; // for uniform arrays only\n\n private constructor(name: string, type: VariableType, scope: VariableScope, precision: VariablePrecision, isConst: boolean, addBinding?: AddVariableBinding, value?: string, length: number = 0) {\n this._addBinding = addBinding;\n this.name = name;\n this.value = value;\n this.type = type;\n this.scope = scope;\n this.precision = precision;\n this.isConst = isConst;\n this.length = length;\n }\n\n public static create(name: string, type: VariableType, scope: VariableScope, addBinding?: AddVariableBinding, precision: VariablePrecision = VariablePrecision.Default): ShaderVariable {\n return new ShaderVariable(name, type, scope, precision, false, addBinding, undefined);\n }\n\n public static createArray(name: string, type: VariableType, length: number, scope: VariableScope, addBinding?: AddVariableBinding, precision: VariablePrecision = VariablePrecision.Default): ShaderVariable {\n return new ShaderVariable(name, type, scope, precision, false, addBinding, undefined, length);\n }\n\n public static createGlobal(name: string, type: VariableType, value?: string, isConst: boolean = false) {\n return new ShaderVariable(name, type, VariableScope.Global, VariablePrecision.Default, isConst, undefined, value);\n }\n\n public get hasBinding(): boolean { return undefined !== this._addBinding; }\n public addBinding(prog: ShaderProgram) {\n if (undefined !== this._addBinding)\n this._addBinding(prog);\n }\n\n public get typeName(): string { return Convert.typeToString(this.type); }\n public getScopeName(isVertexShader: boolean): string { return Convert.scopeToString(this.scope, isVertexShader); }\n public get precisionName(): string { return Convert.precisionToString(this.precision); }\n\n /** Constructs the single-line declaration of this variable */\n public buildDeclaration(isVertexShader: boolean): string {\n const parts = new Array<string>();\n if (this.isConst)\n parts.push(\"const\");\n\n const scopeName = this.getScopeName(isVertexShader);\n if (0 < scopeName.length)\n parts.push(scopeName);\n\n const precisionName = this.precisionName;\n if (0 < precisionName.length)\n parts.push(precisionName);\n\n parts.push(this.typeName);\n\n if (this.length > 0)\n parts.push(`${this.name}[${this.length.toFixed(0)}]`);\n else\n parts.push(this.name);\n\n if (undefined !== this.value && 0 < this.value.length) {\n parts.push(\"=\");\n parts.push(this.value);\n }\n\n return `${parts.join(\" \")};`;\n }\n}\n\n/**\n * Represents the set of variables defined and used within a fragment or vertex shader.\n * If the same variable is used in both the fragment and vertex shader (e.g., a varying variable), it should be defined in both ShaderBuilders' ShaderVariables object.\n * @internal\n */\nexport class ShaderVariables {\n protected _list: ShaderVariable[] = new Array<ShaderVariable>();\n\n /** Find an existing variable with the specified name */\n public find(name: string): ShaderVariable | undefined { return this._list.find((v: ShaderVariable) => v.name === name); }\n\n /** Add a new variable, if a variable with the same name does not already exist. return true if added */\n public addVariable(v: ShaderVariable): boolean {\n const found = this.find(v.name);\n if (undefined !== found) {\n assert(found.type === v.type);\n // assume same binding etc...\n return false;\n } else {\n this._list.push(v);\n return true;\n }\n }\n\n public addUniform(name: string, type: VariableType, binding: AddVariableBinding, precision: VariablePrecision = VariablePrecision.Default) {\n this.addVariable(ShaderVariable.create(name, type, VariableScope.Uniform, binding, precision));\n }\n\n public addUniformArray(name: string, type: VariableType, length: number, binding: AddVariableBinding) {\n this.addVariable(ShaderVariable.createArray(name, type, length, VariableScope.Uniform, binding));\n }\n\n public addVarying(name: string, type: VariableType): boolean {\n return this.addVariable(ShaderVariable.create(name, type, VariableScope.Varying));\n }\n\n public addGlobal(name: string, type: VariableType, value?: string, isConst: boolean = false) {\n this.addVariable(ShaderVariable.createGlobal(name, type, value, isConst));\n }\n\n public addConstant(name: string, type: VariableType, value: string) {\n this.addGlobal(name, type, value, true);\n }\n\n public addBitFlagConstant(name: string, value: number) {\n this.addGlobal(name, VariableType.Uint, `${(2 ** value).toFixed(0)}u`, true);\n }\n\n /** Constructs the lines of glsl code declaring the variables of a certain scope. */\n public buildScopeDeclarations(isVertexShader: boolean, scope: VariableScope, constants?: boolean): string {\n let decls = \"\";\n for (const v of this._list) {\n if (scope === v.scope && (undefined === constants ? true : v.isConst === constants))\n decls += `${v.buildDeclaration(isVertexShader)}\\n`;\n }\n\n return decls;\n }\n\n /** Constructs the lines of glsl code declaring all of the variables. */\n public buildDeclarations(isVertexShader: boolean): string {\n let decls = \"\";\n if (isVertexShader) {\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Uniform);\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, true);\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, false);\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Varying);\n } else {\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Varying);\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Uniform);\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, true);\n decls += this.buildScopeDeclarations(isVertexShader, VariableScope.Global, false);\n }\n return decls;\n }\n\n /**\n * For every uniform and attribute variable not contained in the optional 'predefined' list, invokes the associated binding function\n * to add the corresponding Uniform or Attribute object to the ShaderProgram.\n */\n public addBindings(prog: ShaderProgram, predefined?: ShaderVariables): void {\n for (const v of this._list) {\n // Some variables exist in both frag and vert shaders - only add them to the program once.\n if (v.hasBinding && (undefined === predefined || undefined === predefined.find(v.name))) {\n v.addBinding(prog);\n }\n }\n }\n\n public get length(): number { return this._list.length; }\n\n private findSlot(variableSize: number, loopSize: number, registers: number[]): number {\n // Find the first available slot into which to insert this variable\n for (let i = 0; i < loopSize; i++) {\n const newSize = registers[i] + variableSize;\n if (newSize <= 4) {\n registers[i] = newSize;\n return i;\n }\n }\n return -1;\n }\n\n // Return string of varying types with their theoretical slot numbers\n public checkMaxVaryingVectors(fragSource: string): string {\n // Varyings go into a matrix of 4 columns and GL_MAX_VARYING_VECTORS rows of floats.\n // The packing rules are defined by the standard. Specifically each row can contain one of:\n // vec4\n // vec3 (+ float)\n // vec2 (+ vec2)\n // vec2 (+ float (+ float))\n // float (+ float (+ float (+ float)))\n // Varyings are packed in order of size from largest to smallest\n const loopSize = 64;\n const registers = Array(loopSize + 1).fill(0);\n let outStr = \"\";\n let slot = 0;\n\n const varyings = this._list.filter((variable) => VariableScope.Varying === variable.scope);\n // Add in any built in vars that count as varyings if they are used\n if (fragSource.includes(\"gl_FragCoord\")) {\n varyings.push(ShaderVariable.create(\"gl_FragCoord\", VariableType.Vec4, VariableScope.Varying));\n }\n if (fragSource.includes(\"gl_PointCoord\")) {\n varyings.push(ShaderVariable.create(\"gl_PointCoord\", VariableType.Vec2, VariableScope.Varying));\n }\n if (fragSource.includes(\"gl_FrontFacing\")) {\n varyings.push(ShaderVariable.create(\"gl_FrontFacing\", VariableType.Boolean, VariableScope.Varying));\n }\n // Need to process in size order (largest first)\n varyings.sort((a, b) => b.type - a.type); // this is good enough to sort by\n\n for (const variable of varyings) {\n let variableSize = 0;\n switch (variable.type) {\n case VariableType.Boolean:\n case VariableType.Int:\n case VariableType.Float:\n variableSize = 1;\n break;\n case VariableType.Vec2:\n case VariableType.BVec2:\n variableSize = 2;\n break;\n case VariableType.Vec3:\n variableSize = 3;\n break;\n case VariableType.Vec4:\n variableSize = 4;\n break;\n default:\n assert(false, \"Invalid varying variable type\");\n continue;\n }\n slot = this.findSlot(variableSize, loopSize, registers);\n outStr += `// varying slot ${slot} ${Convert.typeToString(variable.type)} ${variable.name}\\n`;\n }\n const slotsUsed = registers.indexOf(0);\n registers.length = slotsUsed;\n outStr += `// Slots used: ${slotsUsed} [${registers.toString()}]\\n`;\n\n // debug output modes\n const outputAll = true; // false just outputs varyings that use more than 8\n if (outputAll) {\n return outStr;\n } else {\n if (slotsUsed > 8)\n return outStr;\n else\n return \"\";\n }\n }\n\n // Return the number of varying vectors used by the shader.\n // Varyings go into a matrix of 4 columns and GL_MAX_VARYING_VECTORS rows of floats.\n // The packing rules are defined by the standard. Specifically each row can contain one of:\n // vec4\n // vec3 (+ float)\n // vec2 (+ vec2)\n // vec2 (+ float (+ float))\n // float (+ float (+ float (+ float)))\n // Varyings are packed in order of size from largest to smallest\n public computeNumVaryingVectors(fragSource: string): number {\n const loopSize = 64;\n const registers = Array(loopSize + 1).fill(0);\n\n const varyings = this._list.filter((variable) => VariableScope.Varying === variable.scope);\n // Add in any built in vars that count as varyings if they are used\n if (fragSource.includes(\"gl_FragCoord\")) {\n varyings.push(ShaderVariable.create(\"gl_FragCoord\", VariableType.Vec4, VariableScope.Varying));\n }\n if (fragSource.includes(\"gl_PointCoord\")) {\n varyings.push(ShaderVariable.create(\"gl_PointCoord\", VariableType.Vec2, VariableScope.Varying));\n }\n if (fragSource.includes(\"gl_FrontFacing\")) {\n varyings.push(ShaderVariable.create(\"gl_FrontFacing\", VariableType.Boolean, VariableScope.Varying));\n }\n // Need to process in size order (largest first)\n varyings.sort((a, b) => b.type - a.type); // this is good enough to sort by\n\n for (const variable of varyings) {\n if (VariableScope.Varying !== variable.scope)\n continue;\n\n let variableSize = 0;\n switch (variable.type) {\n case VariableType.Boolean:\n case VariableType.Int:\n case VariableType.Float:\n variableSize = 1;\n break;\n case VariableType.Vec2:\n case VariableType.BVec2:\n variableSize = 2;\n break;\n case VariableType.Vec3:\n variableSize = 3;\n break;\n case VariableType.Vec4:\n variableSize = 4;\n break;\n default:\n assert(false, \"Invalid varying variable type\");\n continue;\n }\n\n this.findSlot(variableSize, loopSize, registers);\n }\n\n const slotsUsed = registers.indexOf(0);\n return slotsUsed;\n }\n}\n\n/** Convenience API for assembling glsl source code.\n * @internal\n */\nexport class SourceBuilder {\n public source: string = \"\";\n\n /* Append the specified string to the glsl source */\n public add(what: string): void { this.source += what; }\n\n /* Append a new-line to the glsl source */\n public newline(): void { this.add(\"\\n\"); }\n\n /* Append the specified string to the glsl source, followed by a new-line */\n public addline(what: string): void {\n this.add(what);\n this.newline();\n }\n\n /**\n * Construct a function definition given the function signature and body. For example:\n * buildFunctionDefinition(\"float average(float a, float b)\", \"\\n return (a + b) / 2.0;\\n\");\n * will produce:\n * \"float average(float a, float b) {\n * return (a + b) / 2.0;\n * }\"\n * For an inline function:\n * buildFunctionDefinition(\"float average(float a, float b)\", \"return (a + b) / 2.0;\");\n * will produce:\n * \"float average(float a, float b) { return (a + b) / 2.0; }\"\n */\n public static buildFunctionDefinition(declaration: string, implementation: string): string {\n // If implementation does not start with a newline then assume it is an inline function & add spaces between braces.\n if (\"\\n\" === implementation.charAt(0))\n return `${declaration} {${implementation}}\\n\\n`;\n else\n return `${declaration} { ${implementation} }\\n\\n`;\n }\n\n /** Constructs a function definition as described by buildFunctionDefinition() and appends it to the glsl source. */\n public addFunction(declaration: string, implementation: string): void { this.add(SourceBuilder.buildFunctionDefinition(declaration, implementation)); }\n\n /** Constructs the definition of the main() function using the supplied function body and appends it to the glsl source. */\n public addMain(implementation: string): void { this.addFunction(\"void main()\", implementation); }\n}\n\n/** @internal */\nexport interface ShaderBuilderFlags {\n /** If defined and true, the geometry is instanced. */\n readonly instanced?: boolean;\n /** If defined, indicates the vertex data comes from a texture and specifies whether the positions are quantized 16-bit integers or unquantized 32-bit floats. */\n readonly positionType?: PositionType;\n}\n\n/**\n * Represents a fragment or vertex shader under construction. The shader consists of a set of defined variables,\n * plus a set of code snippets which can be concatenated together to form the shader source.\n * @internal\n */\nexport class ShaderBuilder extends ShaderVariables {\n protected _components = new Array<string | undefined>();\n protected _functions: string[] = [];\n protected _extensions: string[] = [];\n protected _macros: string[] = [];\n protected _fragOutputs: string[] = [];\n protected _version: string = \"\";\n public headerComment: string = \"\";\n protected readonly _flags: ShaderBuilderFlags;\n protected _initializers: string[] = new Array<string>();\n\n public get usesInstancedGeometry(): boolean {\n return !!this._flags.instanced;\n }\n\n public addInitializer(initializer: string): void {\n if (-1 === this._initializers.indexOf(initializer))\n this._initializers.push(initializer);\n }\n\n protected constructor(maxComponents: number, flags: ShaderBuilderFlags) {\n super();\n this._components.length = maxComponents;\n this._flags = flags;\n this._version = \"#version 300 es\";\n this.addDefine(\"TEXTURE\", \"texture\");\n this.addDefine(\"TEXTURE_CUBE\", \"texture\");\n this.addDefine(\"TEXTURE_PROJ\", \"textureProj\");\n }\n\n protected addComponent(index: number, component: string): void {\n assert(index < this._components.length);\n\n // assume if caller is replacing an existing component, they know what they're doing...\n this._components[index] = component;\n }\n protected removeComponent(index: number) {\n assert(index < this._components.length);\n this._components[index] = undefined;\n }\n\n protected getComponent(index: number): string | undefined {\n assert(index < this._components.length);\n return this._components[index];\n }\n\n public addFunction(declarationOrFull: string, implementation?: string): void {\n let def = declarationOrFull;\n if (undefined !== implementation)\n def = SourceBuilder.buildFunctionDefinition(`\\n${declarationOrFull}`, implementation);\n\n if (undefined === this.findFunction(def))\n this._functions.push(def);\n }\n\n public replaceFunction(existing: string, replacement: string): boolean {\n const index = this._functions.indexOf(existing);\n if (-1 !== index) {\n this._functions[index] = replacement;\n }\n\n assert(-1 !== index);\n return -1 !== index;\n }\n\n public findFunction(func: string): string | undefined {\n return this._functions.find((f: string | undefined) => f === func);\n }\n\n public addExtension(extName: string): void {\n if (-1 === this._extensions.indexOf(extName))\n this._extensions.push(extName);\n }\n\n public addMacro(macro: string): void {\n if (-1 === this._macros.indexOf(macro))\n this._macros.push(macro);\n }\n\n public addDefine(name: string, value: string): void {\n const defineName = `#define ${name} `;\n const macro = defineName + value;\n\n const index = this._macros.findIndex((x) => x.startsWith(defineName));\n if (-1 !== index)\n this._macros[index] = macro;\n else\n this._macros.push(defineName + value);\n }\n\n public clearFragOutput(): void {\n while (this._fragOutputs.length > 0)\n this._fragOutputs.pop();\n }\n\n public addFragOutput(name: string, value: number): void {\n if (-1 === value) {\n this._fragOutputs.push(\"out vec4 FragColor;\");\n return;\n }\n this._fragOutputs.push(`layout(location = ${value}) out vec4 ${name};`);\n }\n\n protected buildPreludeCommon(attrMap: Map<string, AttributeDetails> | undefined, isVertexShader: boolean): SourceBuilder {\n const src = new SourceBuilder();\n\n // Version number (must be first thing for GLSL 300)\n src.addline(this._version);\n\n // Header comment\n src.newline();\n if (\"\" !== this.headerComment) {\n src.addline(this.headerComment);\n src.newline();\n }\n\n // Macros\n for (const macro of this._macros)\n src.addline(macro);\n\n // Extensions\n for (const ext of this._extensions)\n src.addline(`#extension ${ext} : enable`);\n\n // Default precisions\n src.addline(\"precision highp float;\");\n src.addline(\"precision highp int;\");\n src.newline();\n\n // Attribute declarations\n if (attrMap !== undefined) {\n attrMap.forEach((attr: AttributeDetails, key: string) => {\n src.addline(`in ${Convert.typeToString(attr.type)} ${key};`);\n });\n }\n\n // Variable declarations\n src.add(this.buildDeclarations(isVertexShader));\n\n // Layouts\n for (const layout of this._fragOutputs)\n src.addline(layout);\n\n // Functions\n for (const func of this._functions) {\n src.add(func);\n }\n\n if (!src.source.endsWith(\"\\n\\n\"))\n src.newline();\n\n return src;\n }\n\n protected copyCommon(src: ShaderBuilder): void {\n this._version = src._version;\n this.headerComment = src.headerComment;\n this._initializers = [...src._initializers];\n this._components = [...src._components];\n this._functions = [...src._functions];\n this._extensions = [...src._extensions];\n this._list = [...src._list];\n this._macros = [...src._macros];\n this._fragOutputs = [...src._fragOutputs];\n }\n}\n\n/** Describes the optional and required components which can be assembled into complete\n * @internal\n */\nexport const enum VertexShaderComponent {\n // (Optional) Compute the quantized position. By default this simply returns the `a_pos` attribute.\n // This runs before any initializers.\n // vec3 computeQuantizedPosition()\n ComputeQuantizedPosition,\n // (Optional) Adjust the result of computeVertexPosition().\n // vec4 adjustRawPosition(vec4 rawPosition)\n AdjustRawPosition,\n // (Optional) Return true to discard this vertex before evaluating feature overrides etc, given the model-space position.\n // bool checkForEarlyDiscard(vec4 rawPos)\n CheckForEarlyDiscard,\n // (Optional) Compute feature overrides like visibility, rgb, transparency, line weight.\n // void computeFeatureOverrides()\n ComputeFeatureOverrides,\n // (Optional) Compute material parameters.\n // void computeMaterial()\n ComputeMaterial,\n // (Optional) Compute the vertex's base color. Requires the program to have a `varying vec4 v_color`.\n // vec4 computeBaseColor()\n ComputeBaseColor,\n // (Optional - does nothing if ComputeBaseColor not specified) Apply material overrides to vertex color\n // vec4 applyMaterialColor(vec4 baseColor)\n ApplyMaterialColor,\n // (Optional - does nothing if ComputeBaseColor not specified) Apply feature overrides to vertex color\n // vec4 applyFeatureColor(vec4 baseColor)\n ApplyFeatureColor,\n // (Optional - does nothing if ComputeBaseColor not specified)) Adjust base color for contrast\n // vec4 adjustContrast(vec4 baseColor)\n AdjustContrast,\n // (Optional - does nothing if ComputeBaseColor not specified) Return true if this vertex should be \"discarded\" (is not visible)\n // bool checkForDiscard()\n // If this returns true, gl_Position will be set to 0; presumably related vertices will also do so, resulting in a degenerate triangle.\n // If this returns true, no further processing will be performed.\n CheckForDiscard,\n // (Required) Return this vertex's position in clip space.\n // vec4 computePosition(vec4 rawPos)\n ComputePosition,\n // (Optional) Compute all atmospheric scattering values in one pass and assign them to varyings (For Skybox and RealityMesh only)\n // void computeAtmosphericScatteringVaryings\n ComputeAtmosphericScatteringVaryings,\n // (Optional) After all output (varying) values have been computed, return true if this vertex should be discarded.\n // bool checkForLateDiscard()\n CheckForLateDiscard,\n // (Optional) Adjust the final position\n // vec4 adjustPosition(vec4 pos)\n FinalizePosition,\n\n COUNT,\n}\n\n/** Assembles the source code for a vertex shader from a set of modular components.\n * @internal\n */\nexport class VertexShaderBuilder extends ShaderBuilder {\n private _computedVarying: string[] = new Array<string>();\n\n private buildPrelude(attrMap?: Map<string, AttributeDetails>): SourceBuilder { return this.buildPreludeCommon(attrMap, true); }\n\n public constructor(flags: ShaderBuilderFlags = {}) {\n super(VertexShaderComponent.COUNT, flags);\n\n this.addDefine(\"MAT_NORM\", \"g_nmx\");\n if (this.usesInstancedGeometry) {\n addInstancedModelMatrixRTC(this);\n this.addDefine(\"MAT_MV\", \"g_mv\");\n this.addDefine(\"MAT_MVP\", \"g_mvp\");\n } else {\n this.addDefine(\"MAT_MV\", \"u_mv\");\n this.addDefine(\"MAT_MVP\", \"u_mvp\");\n }\n\n addPosition(this, this.usesVertexTable);\n }\n\n public get usesVertexTable(): boolean {\n return undefined !== this._flags.positionType;\n }\n\n public get positionType(): PositionType {\n assert(undefined !== this._flags.positionType);\n return this._flags.positionType;\n }\n\n public get(id: VertexShaderComponent): string | undefined { return this.getComponent(id); }\n public set(id: VertexShaderComponent, component: string) { this.addComponent(id, component); }\n public unset(id: VertexShaderComponent) { this.removeComponent(id); }\n\n public addComputedVarying(name: string, type: VariableType, computation: string): void {\n this.addVarying(name, type);\n this._computedVarying.push(computation);\n }\n\n public buildSource(attrMap?: Map<string, AttributeDetails>): string {\n const prelude = this.buildPrelude(attrMap);\n const main = new SourceBuilder();\n main.newline();\n\n const computePosition = this.get(VertexShaderComponent.ComputePosition);\n assert(undefined !== computePosition);\n if (undefined !== computePosition) {\n prelude.addFunction(\"vec4 computePosition(vec4 rawPos)\", computePosition);\n }\n\n const computeQPos = this.get(VertexShaderComponent.ComputeQuantizedPosition) ?? \"return a_pos;\";\n prelude.addFunction(\"vec3 computeQuantizedPosition()\", computeQPos);\n main.addline(\" vec3 qpos = computeQuantizedPosition();\");\n\n // Initialization logic that should occur at start of main() - primarily global variables whose values\n // are too complex to compute inline or which depend on uniforms and/or other globals.\n for (const init of this._initializers) {\n if (\"\\n\" === init.charAt(0))\n main.addline(` {${init} }\\n`);\n else\n main.addline(` { ${init} }\\n`);\n }\n\n main.addline(\" vec4 rawPosition = computeVertexPosition(qpos);\");\n const adjustRawPosition = this.get(VertexShaderComponent.AdjustRawPosition);\n if (undefined !== adjustRawPosition) {\n prelude.addFunction(\"vec4 adjustRawPosition(vec4 rawPos)\", adjustRawPosition);\n main.addline(\" rawPosition = adjustRawPosition(rawPosition);\");\n }\n\n const checkForEarlyDiscard = this.get(VertexShaderComponent.CheckForEarlyDiscard);\n if (undefined !== checkForEarlyDiscard) {\n prelude.addFunction(\"bool checkForEarlyDiscard(vec4 rawPos)\", checkForEarlyDiscard);\n main.add(earlyVertexDiscard);\n }\n\n const computeFeatureOverrides = this.get(VertexShaderComponent.ComputeFeatureOverrides);\n if (undefined !== computeFeatureOverrides) {\n prelude.addFunction(\"void computeFeatureOverrides()\", computeFeatureOverrides);\n main.addline(\" computeFeatureOverrides();\");\n }\n\n const computeMaterial = this.get(VertexShaderComponent.ComputeMaterial);\n if (undefined !== computeMaterial) {\n prelude.addFunction(\"void computeMaterial()\", computeMaterial);\n main.addline(\" computeMaterial();\");\n }\n\n const computeBaseColor = this.get(VertexShaderComponent.ComputeBaseColor);\n if (undefined !== computeBaseColor) {\n assert(undefined !== this.find(\"v_color\"));\n prelude.addFunction(\"vec4 computeBaseColor()\", computeBaseColor);\n main.addline(\" vec4 baseColor = computeBaseColor();\");\n\n const applyMaterialColor = this.get(VertexShaderComponent.ApplyMaterialColor);\n if (undefined !== applyMaterialColor) {\n prelude.addFunction(\"vec4 applyMaterialColor(vec4 baseColor)\", applyMaterialColor);\n main.addline(\" baseColor = applyMaterialColor(baseColor);\");\n }\n\n const applyFeatureColor = this.get(VertexShaderComponent.ApplyFeatureColor);\n if (undefined !== applyFeatureColor) {\n prelude.addFunction(\"vec4 applyFeatureColor(vec4 baseColor)\", applyFeatureColor);\n main.addline(\" baseColor = applyFeatureColor(baseColor);\");\n }\n\n const adjustContrast = this.get(VertexShaderComponent.AdjustContrast);\n if (adjustContrast) {\n prelude.addFunction(\"vec4 adjustContrast(vec4 baseColor)\", adjustContrast);\n main.addline(\" baseColor = adjustContrast(baseColor);\");\n }\n\n main.addline(\" v_color = baseColor;\");\n }\n\n const checkForDiscard = this.get(VertexShaderComponent.CheckForDiscard);\n if (undefined !== checkForDiscard) {\n prelude.addFunction(\"bool checkForDiscard()\", checkForDiscard);\n main.add(vertexDiscard);\n }\n\n main.addline(\" gl_Position = computePosition(rawPosition);\");\n\n const finalizePos = this.get(VertexShaderComponent.FinalizePosition);\n if (undefined !== finalizePos) {\n prelude.addFunction(\"vec4 finalizePosition(vec4 pos)\", finalizePos);\n main.addline(\" gl_Position = finalizePosition(gl_Position);\");\n }\n\n for (const comp of this._computedVarying) {\n main.addline(` ${comp}`);\n }\n\n const computeAtmosphericScatteringVaryings = this.get(VertexShaderComponent.ComputeAtmosphericScatteringVaryings);\n if (undefined !== computeAtmosphericScatteringVaryings) {\n prelude.addFunction(\"void computeAtmosphericScatteringVaryings()\", computeAtmosphericScatteringVaryings);\n main.addline(\" computeAtmosphericScatteringVaryings();\");\n }\n\n const checkForLateDiscard = this.get(VertexShaderComponent.CheckForLateDiscard);\n if (undefined !== checkForLateDiscard) {\n prelude.addFunction(\"bool checkForLateDiscard()\", checkForLateDiscard);\n main.addline(lateVertexDiscard);\n }\n\n prelude.addMain(main.source);\n return prelude.source;\n }\n\n public copyFrom(src: VertexShaderBuilder): void {\n this.copyCommon(src);\n this._computedVarying = [...src._computedVarying];\n }\n}\n\n/** Describes the optional and required components which can be assembled into complete\n * @internal\n */\nexport const enum FragmentShaderComponent {\n // (Optional) Return true to immediately discard this fragment.\n // bool checkForEarlyDiscard()\n CheckForEarlyDiscard,\n // (Required) Compute this fragment's base color\n // vec4 computeBaseColor()\n ComputeBaseColor,\n // (Optional) Apply material overrides to base color\n // vec4 applyMaterialOverrides(vec4 baseColor)\n ApplyMaterialOverrides,\n // (Optional) Adjust base color after material and/or feature overrides have been applied.\n // vec4 finalizeBaseColor(vec4 baseColor)\n FinalizeBaseColor,\n // (Optional) Return true if this fragment should be discarded\n // Do not invoke discard directly in your shader components - instead, return true from this function to generate a discard statement.\n // bool checkForDiscard(vec4 baseColor)\n CheckForDiscard,\n // (Optional) Return true if the alpha value is not suitable for the current render pass\n // bool discardByAlpha(float alpha)\n DiscardByAlpha,\n // (Optional) Apply monochrome overrides to base color\n // vec4 applyMonochrome(vec4 baseColor)\n ApplyMonochrome,\n // (Optional) Apply thematic display to base color. This happens before lighting and can alter the fragment color that is lit.\n // vec4 applyThematicDisplay(vec4 baseColor)\n ApplyThematicDisplay,\n // (Optional) Apply lighting to base color\n // vec4 applyLighting(vec4 baseColor)\n ApplyLighting,\n // (Optional) Apply white-on-white reversal to base color\n ReverseWhiteOnWhite,\n // (Optional) Discard if outside any clipping planes\n // void applyClipping()\n ApplyClipping,\n // (Optional) Apply countour lines to lit base color\n // vec4 applyClipping(vec4 baseColor)\n ApplyContours,\n // (Optional) Apply flash hilite to lit base color\n // vec4 applyFlash(vec4 baseColor)\n ApplyFlash,\n // (Optional) Apply planar classifier.\n // vec4 applyPlanarClassification(vec4)\n ApplyPlanarClassifier,\n // (Optional) Apply Draping.\n // vec4 ApplyDraping(vec4)\n ApplyDraping,\n // (Optional) Apply solar shadow map.\n // vec4 applySolarShadowMap(vec4)\n ApplySolarShadowMap,\n // (Optional) Apply wiremesh to edges of triangles\n // vec4 applyWiremesh(vec4 baseColor)\n ApplyWiremesh,\n // (Optional) Apply a debug color\n // vec4 applyDebugColor(vec4 baseColor)\n ApplyDebugColor,\n // (Required) Assign the final color to gl_FragColor or gl_FragData\n // void assignFragData(vec4 baseColor)\n AssignFragData,\n // (Optional) Override current featureId\n // vec4 overrideFeatureId(vec4 currentId)\n OverrideFeatureId,\n // (Optional) Override fragment depth\n // float finalizeDepth()\n FinalizeDepth,\n // (Optional) Override fragment color. This is invoked just after alpha is multiplied, and just before FragColor is assigned.\n // vec4 overrideColor(vec4 currentColor)\n OverrideColor,\n // (Optional) Override render order to be output to pick buffers.\n // float overrideRenderOrder(float renderOrder)\n OverrideRenderOrder,\n // (Optional) Compute the contour line information to be output to pick buffers.\n // vec4 computeContourLineInfo()\n // Defaults to vec4(0.0) indicating no contour line.\n ComputeContourLineInfo,\n // (Optional) Apply atmospheric scattering effect. (For Skybox and RealityMesh only)\n // vec4 applyAtmosphericScattering()\n ApplyAtmosphericScattering,\n // (Optional) Override normal\n // float finalizeNormal()\n FinalizeNormal,\n COUNT,\n}\n\n/** Assembles the source code for a fragment shader from a set of modular components.\n * @internal\n */\nexport class FragmentShaderBuilder extends ShaderBuilder {\n public requiresEarlyZWorkaround = false;\n\n public constructor(flags: ShaderBuilderFlags = {}) {\n super(FragmentShaderComponent.COUNT, flags);\n this.addFragOutput(\"FragColor\", -1);\n }\n\n public get(id: FragmentShaderComponent): string | undefined { return this.getComponent(id); }\n public set(id: FragmentShaderComponent, component: string) { this.addComponent(id, component); }\n public unset(id: FragmentShaderComponent) { this.removeComponent(id); }\n\n public addDrawBuffersExtension(n: number): void {\n this.clearFragOutput();\n for (let i = 0; i < n; i++)\n this.addFragOutput(`FragColor${i}`, i);\n }\n\n public buildSource(): string {\n const applyLighting = this.get(FragmentShaderComponent.ApplyLighting);\n const prelude = this.buildPrelude(undefined);\n\n const computeBaseColor = this.get(FragmentShaderComponent.ComputeBaseColor);\n assert(undefined !== computeBaseColor);\n if (undefined !== computeBaseColor) {\n prelude.addFunction(\"vec4 computeBaseColor()\", computeBaseColor);\n }\n\n const main = new SourceBuilder();\n main.newline();\n\n // Initialization logic that should occur at start of main() - primarily global variables whose values\n // are too complex to compute inline or which depend on uniforms and/or other globals.\n for (const init of this._initializers) {\n if (\"\\n\" === init.charAt(0))\n main.addline(` {${init} }\\n`);\n else\n main.addline(` { ${init} }\\n`);\n }\n\n const checkForEarlyDiscard = this.get(FragmentShaderComponent.CheckForEarlyDiscard);\n if (undefined !== checkForEarlyDiscard) {\n prelude.addFunction(\"bool checkForEarlyDiscard()\", checkForEarlyDiscard);\n main.addline(\" if (checkForEarlyDiscard()) { discard; return; }\");\n }\n\n const finalizeNormal = this.get(FragmentShaderComponent.FinalizeNormal);\n if (undefined !== finalizeNormal) {\n prelude.addFunction(\"vec3 finalizeNormal()\", finalizeNormal);\n main.addline(\" g_normal = finalizeNormal();\");\n }\n\n main.addline(\" vec4 baseColor = computeBaseColor();\");\n\n const finalizeDepth = this.get(FragmentShaderComponent.FinalizeDepth);\n if (undefined !== finalizeDepth) {\n prelude.addFunction(\"float finalizeDepth()\", finalizeDepth);\n main.addline(\" float finalDepth = finalizeDepth();\");\n main.addline(\" gl_FragDepth = finalDepth;\");\n }\n\n let clipIndent = \"\";\n const applyClipping = this.get(FragmentShaderComponent.ApplyClipping);\n if (undefined !== applyClipping) {\n prelude.addline(\"vec3 g_clipColor;\\n\");\n prelude.addFunction(\"bvec2 applyClipping(vec4 baseColor)\", applyClipping);\n main.addline(\" g_hasClipColor = applyClipping(baseColor);\");\n main.addline(\" if (g_hasClipColor.x) { baseColor.rgb = g_clipColor; } else {\");\n clipIndent = \" \";\n }\n\n const applyMaterialOverrides = this.get(FragmentShaderComponent.ApplyMaterialOverrides);\n if (undefined !== applyMaterialOverrides) {\n prelude.addFunction(\"vec4 applyMaterialOverrides(vec4 baseColor)\", applyMaterialOverrides);\n main.addline(`${clipIndent} baseColor = applyMaterialOverrides(baseColor);`);\n }\n\n const applyThematicDisplay = this.get(FragmentShaderComponent.ApplyThematicDisplay);\n if (undefined !== applyThematicDisplay) {\n prelude.addFunction(\"vec4 applyThematicDisplay(vec4 baseColor)\", applyThematicDisplay);\n main.addline(`${clipIndent} if (u_renderPass != kRenderPass_PlanarClassification)`);\n main.addline(`${clipIndent} baseColor = applyThematicDisplay(baseColor);`);\n }\n\n const applyPlanarClassifier = this.get(FragmentShaderComponent.ApplyPlanarClassifier);\n if (undefined !== applyPlanarClassifier) {\n if (undefined === finalizeDepth) {\n if (this.findFunction(volClassOpaqueColor))\n main.addline(`${clipIndent} float finalDepth = gl_FragCoord.z;`);\n else\n main.addline(`${clipIndent} float finalDepth = 1.0;`);\n }\n prelude.addFunction(\"vec4 applyPlanarClassifications(vec4 baseColor, float depth)\", applyPlanarClassifier);\n main.addline(`${clipIndent} baseColor = applyPlanarClassifications(baseColor, finalDepth);`);\n }\n\n const applySolarShadowMap = this.get(FragmentShaderComponent.ApplySolarShadowMap);\n if (undefined !== applySolarShadowMap) {\n prelude.addFunction(\"vec4 applySolarShadowMap(vec4 baseColor)\", applySolarShadowMap);\n main.addline(`${clipIndent} baseColor = applySolarShadowMap(baseColor);`);\n }\n\n const finalize = this.get(FragmentShaderComponent.FinalizeBaseColor);\n if (undefined !== finalize) {\n prelude.addFunction(\"vec4 finalizeBaseColor(vec4 baseColor)\", finalize);\n main.addline(`${clipIndent} baseColor = finalizeBaseColor(baseColor);`);\n }\n\n const checkForDiscard = this.get(FragmentShaderComponent.CheckForDiscard);\n if (undefined !== checkForDiscard) {\n prelude.addFunction(\"bool checkForDiscard(vec4 baseColor)\", checkForDiscard);\n main.addline(`${clipIndent} if (checkForDiscard(baseColor)) { discard; return; }`);\n }\n\n const discardByAlpha = this.get(FragmentShaderComponent.DiscardByAlpha);\n if (undefined !== discardByAlpha) {\n prelude.addFunction(\"bool discardByAlpha(float alpha)\", discardByAlpha);\n main.addline(`${clipIndent} if (discardByAlpha(baseColor.a)) { discard; return; }`);\n }\n\n if (undefined !== applyClipping)\n main.addline(\" }\");\n\n const applyMonochrome = this.get(FragmentShaderComponent.ApplyMonochrome);\n if (undefined !== applyMonochrome) {\n prelude.addFunction(\"vec4 applyMonochrome(vec4 baseColor)\", applyMonochrome);\n main.addline(\" baseColor = applyMonochrome(baseColor);\");\n }\n\n if (undefined !== applyLighting) {\n prelude.addFunction(\"vec4 applyLighting(vec4 baseColor)\", applyLighting);\n main.addline(\" baseColor = applyLighting(baseColor);\");\n }\n\n if (undefined !== applyClipping) {\n main.addline(\" if (g_hasClipColor.y) { baseColor.rgba = vec4(g_clipColor, 1.0); } \");\n }\n\n const reverseWoW = this.get(FragmentShaderComponent.ReverseWhiteOnWhite);\n if (undefined !== reverseWoW) {\n prelude.addFunction(\"vec4 reverseWhiteOnWhite(vec4 baseColor)\", reverseWoW);\n main.addline(\" baseColor = reverseWhiteOnWhite(baseColor);\");\n }\n\n const applyContours = this.get(FragmentShaderComponent.ApplyContours);\n if (undefined !== applyContours) {\n prelude.addFunction(\"vec4 applyContours(vec4 baseColor)\", applyContours);\n main.addline(\" baseColor = applyContours(baseColor);\");\n }\n\n const applyFlash = this.get(FragmentShaderComponent.ApplyFlash);\n if (undefined !== applyFlash) {\n prelude.addFunction(\"vec4 applyFlash(vec4 baseColor)\", applyFlash);\n main.addline(\" baseColor = applyFlash(baseColor);\");\n }\n\n const applyWiremesh = this.get(FragmentShaderComponent.ApplyWiremesh);\n if (applyWiremesh) {\n prelude.addFunction(\"vec4 applyWiremesh(vec4 baseColor)\", applyWiremesh);\n main.addline(\" baseColor = applyWiremesh(baseColor);\");\n }\n\n const applyAtmosphericScattering = this.get(FragmentShaderComponent.ApplyAtmosphericScattering);\n if (applyAtmosphericScattering) {\n prelude.addFunction(\"vec4 applyAtmosphericScattering(vec4 baseColor)\", applyAtmosphericScattering);\n main.addline(\" baseColor = applyAtmosphericScattering(baseColor);\");\n }\n\n const applyDraping = this.get(FragmentShaderComponent.ApplyDraping);\n if (undefined !== applyDraping) {\n prelude.addFunction(\"vec4 applyDraping(vec4 baseColor)\", applyDraping);\n main.addline(`${clipIndent} baseColor = applyDraping(baseColor);`);\n }\n\n const applyDebug = this.get(FragmentShaderComponent.ApplyDebugColor);\n if (undefined !== applyDebug) {\n prelude.addFunction(\"vec4 applyDebugColor(vec4 baseColor)\", applyDebug);\n main.addline(\" baseColor = applyDebugColor(baseColor);\");\n }\n\n const assignFragData = this.get(FragmentShaderComponent.AssignFragData);\n assert(undefined !== assignFragData);\n if (undefined !== assignFragData) {\n prelude.addFunction(\"void assignFragData(vec4 baseColor)\", assignFragData);\n main.addline(\" assignFragData(baseColor);\");\n }\n\n if (this.requiresEarlyZWorkaround) {\n // Add a conditional discard that never executes to force buggy Intel driver to skip early Z despite our fragment shader writing depth.\n main.addline(\"if (v_eyeSpace.z == 9999999.0) discard;\");\n }\n\n prelude.addMain(main.source);\n return prelude.source;\n }\n\n private buildPrelude(attrMap: Map<string, AttributeDetails> | undefined): SourceBuilder {\n return this.buildPreludeCommon(attrMap, false);\n }\n\n public copyFrom(src: FragmentShaderBuilder): void {\n this.copyCommon(src);\n this.requiresEarlyZWorkaround = src.requiresEarlyZWorkaround;\n }\n}\n\n/** @internal */\nexport const enum ShaderType {\n Fragment = 1 << 0,\n Vertex = 1 << 1,\n Both = Fragment | Vertex,\n}\n\n/**\n * Assembles vertex and fragment shaders from a set of modular components to produce a compiled ShaderProgram.\n * Be very careful with components which use samplers to ensure that no conflicts exist with texture units used by other components (see TextureUnit enum).\n * @internal\n */\nexport class ProgramBuilder {\n public readonly vert: VertexShaderBuilder;\n public readonly frag: FragmentShaderBuilder;\n private readonly _flags: ShaderBuilderFlags;\n private readonly _attrMap?: Map<string, AttributeDetails>;\n\n public constructor(attrMap?: Map<string, AttributeDetails>, flags: ShaderBuilderFlags = {}) {\n this._attrMap = attrMap;\n this.vert = new VertexShaderBuilder(flags);\n this.frag = new FragmentShaderBuilder(flags);\n this._flags = flags; // only needed for clone - though could look up from vert or frag shader.\n }\n\n private addVariable(v: ShaderVariable, which: ShaderType) {\n if (which & ShaderType.Fragment) {\n this.frag.addVariable(v);\n }\n\n if (which & ShaderType.Vertex) {\n this.vert.addVariable(v);\n }\n }\n\n public addUniform(name: string, type: VariableType, binding: AddVariableBinding, which: ShaderType = ShaderType.Both) {\n this.addVariable(ShaderVariable.create(name, type, VariableScope.Uniform, binding), which);\n }\n public addUniformArray(name: string, type: VariableType, length: number, binding: AddVariableBinding, which: ShaderType = ShaderType.Both) {\n this.addVariable(ShaderVariable.createArray(name, type, length, VariableScope.Uniform, binding), which);\n }\n public addVarying(name: string, type: VariableType) {\n this.addVariable(ShaderVariable.create(name, type, VariableScope.Varying), ShaderType.Both);\n }\n public addGlobal(name: string, type: VariableType, which: ShaderType = ShaderType.Both, value?: string, isConst: boolean = false) {\n this.addVariable(ShaderVariable.createGlobal(name, type, value, isConst), which);\n }\n\n public addInlineComputedVarying(name: string, type: VariableType, inlineComputation: string) {\n if (this.frag.addVarying(name, type))\n this.vert.addComputedVarying(name, type, inlineComputation);\n }\n public addFunctionComputedVarying(name: string, type: VariableType, funcName: string, funcBody: string) {\n let funcDecl = `\\n${Convert.typeToString(type)} ${funcName}()`;\n funcDecl = SourceBuilder.buildFunctionDefinition(funcDecl, funcBody);\n\n const funcCall = `${funcName}()`;\n this.addFunctionComputedVaryingWithArgs(name, type, funcCall, funcDecl);\n }\n public addFunctionComputedVaryingWithArgs(name: string, type: VariableType, funcCall: string, funcDef: string) {\n this.vert.addFunction(funcDef);\n const computation = `${name} = ${funcCall};`;\n this.addInlineComputedVarying(name, type, computation);\n }\n\n /** Assembles the vertex and fragment shader code and returns a ready-to-compile shader program */\n public buildProgram(gl: WebGL2RenderingContext): ShaderProgram {\n const vertSource = this.vert.buildSource(this._attrMap);\n const fragSource = this.frag.buildSource(); // NB: frag has no need to specify attributes, only vertex does.\n\n // Debug output\n const debugVaryings = false;\n if (debugVaryings) {\n const dbgLog = (x: string) => console.log(x); // eslint-disable-line no-console\n const outSrc = false; // true for source out, false for just varying info\n if (this.frag.headerComment) {\n let tStr = \"\";\n if (!outSrc) {\n tStr = `${this.frag.headerComment}\\n`;\n }\n const tStr2 = this.vert.checkMaxVaryingVectors(fragSource);\n if (tStr2) {\n if (outSrc) {\n dbgLog(\"//===============================================================================================================\");\n dbgLog(vertSource);\n dbgLog(\"//========= Varying Info =========\");\n dbgLog(tStr2);\n dbgLog(fragSource);\n } else {\n dbgLog(tStr + tStr2);\n }\n }\n }\n }\n\n const prog = new ShaderProgram(gl, vertSource, fragSource, this._attrMap, this.vert.headerComment, this.frag.headerComment);\n this.vert.addBindings(prog);\n this.frag.addBindings(prog, this.vert);\n return prog;\n }\n\n public setDebugDescription(description: string): void {\n this.vert.headerComment = (`//!V! ${description}`);\n this.frag.headerComment = (`//!F! ${description}`);\n }\n\n /** Returns a deep copy of this program builder. */\n public clone(): ProgramBuilder {\n const clone = new ProgramBuilder(this._attrMap, this._flags);\n clone.vert.copyFrom(this.vert);\n clone.frag.copyFrom(this.frag);\n return clone;\n }\n}\n"]}
1
+ {"version":3,"file":"ShaderBuilder.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShaderProgram.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderProgram.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\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 { DebugShaderFile } from \"../RenderSystemDebugControl\";\nimport { AttributeDetails } from \"./AttributeMap\";\nimport { WebGLDisposable } from \"./Disposable\";\nimport { DrawParams, ShaderProgramParams } from \"./DrawCommand\";\nimport { GL } from \"./GL\";\nimport { Batch, Branch } from \"./Graphic\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { RenderPass } from \"./RenderFlags\";\nimport { System } from \"./System\";\nimport { Target } from \"./Target\";\nimport { TechniqueFlags } from \"./TechniqueFlags\";\n\n/* eslint-disable no-restricted-syntax */\n\n/** Flags which control some conditional branches in shader code\n * @internal\n */\nexport const enum ShaderFlags {\n None = 0,\n Monochrome = 1 << 0,\n NonUniformColor = 1 << 1,\n OITFlatAlphaWeight = 1 << 2,\n OITScaleOutput = 1 << 3,\n IgnoreNonLocatable = 1 << 4,\n}\n\n/** Describes the location of a uniform variable within a shader program.\n * @internal\n */\nexport class Uniform {\n private readonly _name: string;\n protected _handle?: UniformHandle;\n\n protected constructor(name: string) { this._name = name; }\n\n public compile(prog: ShaderProgram): boolean {\n assert(!this.isValid);\n if (undefined !== prog.glProgram) {\n this._handle = UniformHandle.create(prog, this._name);\n }\n\n return this.isValid;\n }\n\n public get isValid(): boolean { return undefined !== this._handle; }\n}\n\n/**\n * A function associated with a ProgramUniform which is invoked each time the shader program becomes active.\n * The function is responsible for setting the value of the uniform.\n * @internal\n */\nexport type BindProgramUniform = (uniform: UniformHandle, params: ShaderProgramParams) => void;\n\n/**\n * Describes the location of a uniform variable within a shader program, the value of which does not change while the program is active.\n * The supplied binding function will be invoked once each time the shader becomes active to set the value of the uniform.\n * @internal\n */\nexport class ProgramUniform extends Uniform {\n private readonly _bind: BindProgramUniform;\n\n public constructor(name: string, bind: BindProgramUniform) {\n super(name);\n this._bind = bind;\n }\n\n public bind(params: ShaderProgramParams): void {\n if (undefined !== this._handle) {\n this._bind(this._handle, params);\n }\n }\n}\n\n/**\n * A function associated with a GraphicUniform which is invoked each time a new graphic primitive is rendered using the associated shader.\n * The function is responsible for setting the value of the uniform.\n * @internal\n */\nexport type BindGraphicUniform = (uniform: UniformHandle, params: DrawParams) => void;\n\n/**\n * Describes the location of a uniform variable within a shader program, the value of which is dependent upon the graphic primitive\n * currently being rendered by the program. The supplied binding function will be invoked once for each graphic primitive submitted\n * to the program to set the value of the uniform.\n * @internal\n */\nexport class GraphicUniform extends Uniform {\n private readonly _bind: BindGraphicUniform;\n\n public constructor(name: string, bind: BindGraphicUniform) {\n super(name);\n this._bind = bind;\n }\n\n public bind(params: DrawParams): void {\n if (undefined !== this._handle) {\n this._bind(this._handle, params);\n }\n }\n}\n\n/** Describes the compilation status of a shader program. Programs may be compiled during idle time, or upon first use.\n * @internal\n */\nexport const enum CompileStatus {\n Success, // The program was successfully compiled.\n Failure, // The program failed to compile.\n Uncompiled, // No attempt has yet been made to compile the program.\n}\n\n/** @internal */\nexport class ShaderProgram implements WebGLDisposable {\n public vertSource: string;\n public fragSource: string;\n private _glProgram?: WebGLProgram;\n private _inUse: boolean = false;\n private _status: CompileStatus = CompileStatus.Uncompiled;\n private readonly _programUniforms = new Array<ProgramUniform>();\n private readonly _graphicUniforms = new Array<GraphicUniform>();\n private readonly _attrMap?: Map<string, AttributeDetails>;\n // for debugging purposes...\n public readonly description: string;\n private _fragDescription: string;\n private _vertGNdx: number = -1;\n private _fragGNdx: number = -1;\n private _vertHNdx: number = -1;\n private _fragHNdx: number = -1;\n public readonly outputsToPick;\n\n public constructor(gl: WebGL2RenderingContext, vertSource: string, fragSource: string, attrMap: Map<string, AttributeDetails> | undefined, description: string, fragDescription: string) {\n this.description = description;\n this.outputsToPick = description.includes(\"Overrides\") || description.includes(\"Pick\");\n this._fragDescription = fragDescription;\n this.vertSource = vertSource;\n this.fragSource = fragSource;\n this._attrMap = attrMap;\n\n const glProgram = gl.createProgram();\n this._glProgram = (null === glProgram) ? undefined : glProgram;\n }\n\n public get isDisposed(): boolean { return this._glProgram === undefined; }\n\n public [Symbol.dispose](): void {\n if (!this.isDisposed) {\n assert(!this._inUse);\n System.instance.context.deleteProgram(this._glProgram!);\n this._glProgram = undefined;\n this._status = CompileStatus.Uncompiled;\n }\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\n public dispose(): void {\n this[Symbol.dispose]();\n }\n\n public get glProgram(): WebGLProgram | undefined { return this._glProgram; }\n public get isUncompiled() { return CompileStatus.Uncompiled === this._status; }\n public get isCompiled() { return CompileStatus.Success === this._status; }\n\n private compileShader(type: GL.ShaderType): WebGLShader | undefined {\n const gl = System.instance.context;\n\n const shader = gl.createShader(type);\n if (null === shader)\n return undefined;\n\n const src = GL.ShaderType.Vertex === type ? this.vertSource : this.fragSource;\n gl.shaderSource(shader, src);\n gl.compileShader(shader);\n const succeeded = gl.getShaderParameter(shader, GL.ShaderParameter.CompileStatus) as boolean;\n if (!succeeded) {\n const compileLog = `${GL.ShaderType.Vertex === type ? \"Vertex\" : \"Fragment\"} shader failed to compile. Errors: ${gl.getShaderInfoLog(shader)} Program description: ${this.description}`;\n throw new Error(compileLog);\n }\n\n if (System.instance.options.debugShaders) {\n const isVS = GL.ShaderType.Vertex === type;\n const desc = isVS ? this.description : this._fragDescription;\n this.saveShaderCode(isVS, desc, src, shader);\n }\n\n return shader;\n }\n\n private linkProgram(vert: WebGLShader, frag: WebGLShader): boolean {\n assert(undefined !== this.glProgram);\n if (undefined === this._glProgram || null === this._glProgram) // because WebGL APIs used Thing|null, not Thing|undefined...\n return false;\n\n const gl = System.instance.context;\n gl.attachShader(this._glProgram, vert);\n gl.attachShader(this._glProgram, frag);\n\n // bind attribute locations before final linking\n if (this._attrMap !== undefined) {\n this._attrMap.forEach((attr: AttributeDetails, key: string) => {\n gl.bindAttribLocation(this._glProgram!, attr.location, key);\n });\n }\n\n gl.linkProgram(this._glProgram);\n\n const linkLog = gl.getProgramInfoLog(this._glProgram);\n gl.validateProgram(this._glProgram);\n\n const succeeded = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.LinkStatus) as boolean;\n if (!succeeded) {\n const validateLog = gl.getProgramInfoLog(this._glProgram);\n const msg = `Shader program failed to link. Link errors: ${linkLog} Validation errors: ${validateLog} Program description: ${this.description}`;\n throw new Error(msg);\n }\n\n // Debug output\n const debugUniforms = false;\n if (debugUniforms) {\n const dbgLog = (x: string) => console.log(x); // eslint-disable-line no-console\n const outSrc = false; // true for source out, false for just varying info\n if (this._fragDescription) {\n let tStr = \"\";\n if (!outSrc) {\n tStr = `${this._fragDescription}`;\n }\n const numUniforms = gl.getProgramParameter(this._glProgram, GL.ProgramParameter.ActiveUniforms);\n const tStr2 = `Active Uniforms: ${numUniforms}`;\n if (tStr2) {\n if (outSrc) {\n dbgLog(\"//===============================================================================================================\");\n dbgLog(this.vertSource);\n dbgLog(\"//========= Num Active Uniforms =========\");\n dbgLog(`${tStr2}\\n`);\n dbgLog(this.fragSource);\n } else {\n dbgLog(`\\n${tStr2} ${tStr}\\n`);\n }\n }\n }\n }\n\n return true;\n }\n\n public compile(forUse: boolean = false): CompileStatus {\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\n this.setDebugShaderUsage();\n\n switch (this._status) {\n case CompileStatus.Failure: return CompileStatus.Failure;\n case CompileStatus.Success: return CompileStatus.Success;\n default: {\n if (this.isDisposed) {\n this._status = CompileStatus.Failure;\n return CompileStatus.Failure;\n }\n break;\n }\n }\n\n this._status = CompileStatus.Failure;\n\n const vert = this.compileShader(GL.ShaderType.Vertex);\n const frag = this.compileShader(GL.ShaderType.Fragment);\n if (undefined !== vert && undefined !== frag)\n if (this.linkProgram(vert, frag) && this.compileUniforms(this._programUniforms) && this.compileUniforms(this._graphicUniforms))\n this._status = CompileStatus.Success;\n\n if (System.instance.options.debugShaders && forUse && this._status === CompileStatus.Success)\n this.setDebugShaderUsage();\n\n if (true !== System.instance.options.preserveShaderSourceCode)\n this.vertSource = this.fragSource = \"\";\n\n return this._status;\n }\n\n public use(params: ShaderProgramParams): boolean {\n if (this.compile(true) !== CompileStatus.Success)\n return false;\n\n assert(undefined !== this._glProgram);\n if (null === this._glProgram || undefined === this._glProgram)\n return false;\n\n assert(!this._inUse);\n this._inUse = true;\n params.context.useProgram(this._glProgram);\n\n for (const uniform of this._programUniforms)\n uniform.bind(params);\n\n return true;\n }\n\n public endUse() {\n this._inUse = false;\n System.instance.context.useProgram(null);\n }\n\n public draw(params: DrawParams): void {\n assert(this._inUse);\n for (const uniform of this._graphicUniforms)\n uniform.bind(params);\n\n params.geometry.draw();\n }\n\n public addProgramUniform(name: string, binding: BindProgramUniform) {\n assert(this.isUncompiled);\n this._programUniforms.push(new ProgramUniform(name, binding));\n }\n\n public addGraphicUniform(name: string, binding: BindGraphicUniform) {\n assert(this.isUncompiled);\n this._graphicUniforms.push(new GraphicUniform(name, binding));\n }\n\n private compileUniforms<T extends Uniform>(uniforms: T[]): boolean {\n for (const uniform of uniforms) {\n if (!uniform.compile(this))\n return false;\n }\n\n return true;\n }\n\n private setDebugShaderUsage() {\n if (!System.instance.options.debugShaders)\n return;\n\n const shaderFiles = System.instance.debugShaderFiles;\n if (this._vertGNdx >= 0)\n shaderFiles[this._vertGNdx].isUsed = true;\n\n if (this._fragGNdx >= 0)\n shaderFiles[this._fragGNdx].isUsed = true;\n\n if (this._vertHNdx >= 0)\n shaderFiles[this._vertHNdx].isUsed = true;\n\n if (this._fragHNdx >= 0)\n shaderFiles[this._fragHNdx].isUsed = true;\n }\n\n private saveShaderCode(isVS: boolean, desc: string, src: string, shader: WebGLShader) {\n // save glsl and hlsl (from Angle and fixed up) in DebugShaderFile\n if (!System.instance.options.debugShaders)\n return;\n\n const shaderFiles = System.instance.debugShaderFiles;\n let sname: string;\n if (desc) {\n sname = desc.split(isVS ? \"//!V! \" : \"//!F! \").join(\"\");\n sname = sname.split(\": \").join(\"-\");\n sname = sname.split(\"; \").join(\"-\");\n } else {\n // need to investigate shaders with no comments to derive names, for now come up with unique name\n sname = `noname-${shaderFiles.length}`;\n }\n\n sname += isVS ? \"_VS\" : \"_FS\";\n const fname = `${sname}.glsl`;\n let dsfNdx = shaderFiles.push(new DebugShaderFile(fname, src, isVS, true, false));\n if (isVS)\n this._vertGNdx = dsfNdx - 1;\n else\n this._fragGNdx = dsfNdx - 1;\n\n const ext2 = System.instance.context.getExtension(\"WEBGL_debug_shaders\");\n if (!ext2)\n return;\n\n const srcH = ext2.getTranslatedShaderSource(shader);\n if (!srcH)\n return;\n\n // TODO: implement WebGL2 specific inputs for gl_VertexID and gl_InstanceID if ever used\n\n // parse and edit srcH to make it compilable\n const fnameH = `${sname}.hlsl`;\n let numTargets = 0; // for gl_Color cases\n let haveGLpos = false;\n let haveGLpntsz = false;\n let haveGLDepth = false;\n let haveGLFrontFacing = false;\n let haveGLPointCoord = false;\n let haveGLFragCoord = false;\n let haveGLFragColorOnly = false; // for only 1 output\n const haveGLFragColor = [false, false, false, false, false, false, false, false];\n const attrs: string[] = new Array<string>();\n const varyings: string[] = new Array<string>();\n const lines = srcH.split(\"\\n\");\n let toss = true;\n for (let ndx = 0; ndx < lines.length;) {\n let line = lines[ndx];\n if (line.indexOf(\"// INITIAL HLSL END\") >= 0)\n toss = true;\n\n if (toss)\n lines.splice(ndx, 1);\n\n if (line.indexOf(\"// INITIAL HLSL BEGIN\") >= 0) {\n toss = false;\n } else if (!toss) { // look for lines that need editing\n if (line.indexOf(\"Varyings\") >= 0) { // save off varyings in either case\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\n ++ndx;\n line = lines[ndx].substring(6).trimStart();\n varyings.push(line.substring(0, line.indexOf(\"=\")));\n }\n }\n\n if (isVS) {\n if (line.indexOf(\"Attributes\") >= 0) { // save off attributes\n while (ndx + 1 < lines.length && lines[ndx + 1].indexOf(\"static\") >= 0) {\n ++ndx;\n line = lines[ndx].substring(6).trimStart();\n attrs.push(line.substring(0, line.indexOf(\"=\")));\n }\n } else if (line.indexOf(\"static float4 gl_Position\") >= 0) {\n haveGLpos = true;\n } else if (line.indexOf(\"static float gl_PointSize\") >= 0) {\n haveGLpntsz = true;\n } else if (line.indexOf(\"@@ VERTEX ATTRIBUTES @@\") >= 0) {\n lines[ndx] = \"// @@ VERTEX ATTRIBUTES @@\";\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\n lines[ndx] = \"// @@ MAIN PROLOGUE @@\\ngetInput(input);\";\n } else if (line.indexOf(\"@@ VERTEX OUTPUT @@\") >= 0) {\n // have to create a VS_OUTPUT struct and a generateOutput function from varyings\n lines[ndx] = \"// @@ VERTEX OUTPUT @@\\nstruct VS_INPUT\\n {\";\n let aNdx = 0;\n for (const tstr of attrs) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${aNdx};`);\n ++aNdx;\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nvoid getInput(VS_INPUT input) {\");\n for (const tstr of attrs) {\n let t = tstr.indexOf(\"_a\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\n }\n\n ++ndx;\n lines.splice(ndx, 0, \"}\\nstruct VS_OUTPUT\\n {\");\n if (haveGLpos) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 _v_position : SV_Position;\");\n }\n\n if (haveGLpntsz) {\n ++ndx;\n lines.splice(ndx, 0, \" float gl_PointSize : PointSize;\");\n }\n\n let vNdx = 0;\n for (const tstr of varyings) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\n ++vNdx;\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nVS_OUTPUT generateOutput(VS_INPUT input) {\\n VS_OUTPUT output;\");\n if (haveGLpos) {\n ++ndx;\n lines.splice(ndx, 0, \" output._v_position = gl_Position;\");\n }\n\n if (haveGLpntsz) {\n ++ndx;\n lines.splice(ndx, 0, \" output.gl_PointSize = gl_PointSize;\");\n }\n\n for (const tstr of varyings) {\n let t = tstr.indexOf(\"_v\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` output.${vName} = ${vName};`);\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" return output;\\n}\");\n }\n } else { // fragment shader\n let tNdx = 0;\n if (line.indexOf(\"static float4 gl_Color[\") >= 0) {\n //\n } else if (line.indexOf(\"gl_Color[0] =\") >= 0) {\n if (numTargets < 1)\n numTargets = 1;\n } else if (line.indexOf(\"gl_Color[1] =\") >= 0) {\n if (numTargets < 2)\n numTargets = 2;\n } else if (line.indexOf(\"gl_Color[2] =\") >= 0) {\n if (numTargets < 3)\n numTargets = 3;\n } else if (line.indexOf(\"gl_Color[3] =\") >= 0) {\n numTargets = 4;\n } else if (line.indexOf(\"gl_Depth\") >= 0) {\n haveGLDepth = true;\n } else if (line.indexOf(\"gl_FrontFacing\") >= 0) {\n haveGLFrontFacing = true;\n } else if (line.indexOf(\"gl_PointCoord\") >= 0) {\n haveGLPointCoord = true;\n } else if (line.indexOf(\"gl_FragCoord\") >= 0) {\n haveGLFragCoord = true;\n } else if ((tNdx = line.indexOf(\"out_FragColor\")) >= 0) {\n const c = line.substring(tNdx + 13, tNdx + 13 + 1);\n if (c === \" \" || c === \"=\")\n haveGLFragColorOnly = true;\n else {\n tNdx = +c;\n haveGLFragColor[tNdx] = true;\n }\n } else if (line.indexOf(\"@@ PIXEL OUTPUT @@\") >= 0) {\n // have to create a VS_OUTPUT struct, a getInputs function (both from varyings),\n // a PS_OUTPUT struct, and a generateOutput function (both based on numTargets or haveGLFragColor)\n lines[ndx] = \"// @@ PIXEL OUTPUT @@\\nstruct VS_OUTPUT\\n {\";\n if (haveGLFragCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 gl_FragCoord : SV_POSITION;\");\n }\n\n let vNdx = 0;\n for (const tstr of varyings) {\n ++ndx;\n lines.splice(ndx, 0, ` ${tstr}: TEXCOORD${vNdx};`);\n ++vNdx;\n }\n\n if (haveGLFrontFacing) {\n ++ndx;\n lines.splice(ndx, 0, \" bool gl_FrontFacing : SV_IsFrontFace;\");\n }\n\n if (haveGLPointCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" float2 gl_PointCoord : PointCoord;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nvoid getInputs(VS_OUTPUT input) {\");\n if (haveGLFragCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_FragCoord = input.gl_FragCoord;\");\n }\n\n for (const tstr of varyings) {\n let t = tstr.indexOf(\"_v\");\n let vName = tstr.substring(t);\n t = vName.indexOf(\" \");\n vName = vName.substring(0, t);\n ++ndx;\n lines.splice(ndx, 0, ` ${vName} = input.${vName};`);\n }\n\n if (haveGLFrontFacing) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_FrontFacing = input.gl_FrontFacing;\");\n }\n\n if (haveGLPointCoord) {\n ++ndx;\n lines.splice(ndx, 0, \" gl_PointCoord = input.gl_PointCoord;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \"}\\nstruct PS_OUTPUT\\n {\");\n let cNdx = 0;\n while (cNdx < numTargets) {\n ++ndx;\n lines.splice(ndx, 0, ` float4 col${cNdx} : SV_TARGET${cNdx};`);\n ++cNdx;\n }\n\n if (haveGLFragColorOnly) {\n ++ndx;\n lines.splice(ndx, 0, \" float4 out_FragColor : SV_TARGET;\");\n } else {\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\n if (haveGLFragColor[cNdx]) {\n ++ndx;\n lines.splice(ndx, 0, ` float4 out_FragColor${cNdx} : SV_TARGET${cNdx};`);\n }\n }\n }\n\n if (haveGLDepth) {\n ++ndx;\n lines.splice(ndx, 0, \" float gl_Depth : SV_Depth;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" };\\nPS_OUTPUT generateOutput () {\\n PS_OUTPUT output;\");\n cNdx = 0;\n while (cNdx < numTargets) {\n ++ndx;\n lines.splice(ndx, 0, ` output.col${cNdx} = gl_Color[${cNdx}];`);\n ++cNdx;\n }\n\n if (haveGLFragColorOnly) {\n ++ndx;\n lines.splice(ndx, 0, \" output.out_FragColor = out_FragColor;\");\n } else {\n for (cNdx = 0; cNdx < haveGLFragColor.length; ++cNdx) {\n if (haveGLFragColor[cNdx]) {\n ++ndx;\n lines.splice(ndx, 0, ` output.out_FragColor${cNdx} = out_FragColor${cNdx};`);\n }\n }\n }\n\n if (haveGLDepth) {\n ++ndx;\n lines.splice(ndx, 0, \" output.gl_Depth = gl_Depth;\");\n }\n\n ++ndx;\n lines.splice(ndx, 0, \" return output;\\n}\");\n } else if (line.indexOf(\"PS_OUTPUT main\") >= 0) {\n lines[ndx] = `// ${line}\\nPS_OUTPUT main(VS_OUTPUT input){`;\n } else if (line.indexOf(\"@@ MAIN PROLOGUE @@\") >= 0) {\n lines[ndx] = `// ${line}\\ngetInputs(input);`;\n }\n }\n\n ++ndx;\n }\n }\n\n const srcH2 = lines.join(\"\\n\");\n dsfNdx = shaderFiles.push(new DebugShaderFile(fnameH, srcH2, isVS, false, false));\n if (isVS)\n this._vertHNdx = dsfNdx - 1;\n else\n this._fragHNdx = dsfNdx - 1;\n }\n}\n\n/** Context in which ShaderPrograms are executed. Avoids switching shaders unnecessarily.\n * Ensures shader programs are compiled before use and un-bound when scope is disposed.\n * Instances of this class must *only* be declared with the `using` keyword!\n * @internal\n */\nexport class ShaderProgramExecutor {\n private _program?: ShaderProgram;\n private static _params?: ShaderProgramParams;\n\n public constructor(target: Target, pass: RenderPass, program?: ShaderProgram) {\n this.params.init(target, pass);\n this.changeProgram(program);\n }\n\n public static freeParams(): void {\n this._params = undefined;\n }\n\n private _isDisposed = false;\n public get isDisposed(): boolean { return this._isDisposed; }\n\n /** Clears the current program to be executed. This does not free WebGL resources, since those are owned by Techniques. */\n public [Symbol.dispose]() {\n this.changeProgram(undefined);\n ShaderProgramExecutor.freeParams();\n this._isDisposed = true;\n }\n\n /** @deprecated in 5.0 - will not be removed until after 2026-06-13. Use [Symbol.dispose] instead. */\n public dispose() {\n this[Symbol.dispose]();\n }\n\n public setProgram(program: ShaderProgram): boolean { return this.changeProgram(program); }\n public get isValid() { return undefined !== this._program; }\n public get target() { return this.params.target; }\n public get renderPass() { return this.params.renderPass; }\n public get params() {\n if (undefined === ShaderProgramExecutor._params)\n ShaderProgramExecutor._params = new ShaderProgramParams();\n\n return ShaderProgramExecutor._params;\n }\n\n public draw(params: DrawParams) {\n assert(this.isValid);\n if (undefined !== this._program) {\n this._program.draw(params);\n }\n }\n public drawInterrupt(params: DrawParams) {\n assert(params.target === this.params.target);\n\n const tech = params.target.techniques.getTechnique(params.geometry.techniqueId);\n const program = tech.getShader(TechniqueFlags.defaults);\n if (this.setProgram(program)) {\n this.draw(params);\n }\n }\n\n public pushBranch(branch: Branch): void { this.target.pushBranch(branch); }\n public popBranch(): void { this.target.popBranch(); }\n public pushBatch(batch: Batch): void { this.target.pushBatch(batch); }\n public popBatch(): void { this.target.popBatch(); }\n\n private changeProgram(program?: ShaderProgram): boolean {\n if (this._program === program) {\n return true;\n } else if (undefined !== this._program) {\n this._program.endUse();\n }\n\n this._program = program;\n if (undefined !== program && !program.use(this.params)) {\n this._program = undefined;\n return false;\n }\n\n return true;\n }\n}\n"]}
1
+ {"version":3,"file":"ShaderProgram.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShaderProgram.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAc,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAChE,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,CAAC;AAE1B,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAgBlD;;GAEG;AACH,MAAM,OAAO,OAAO;IACD,KAAK,CAAS;IACrB,OAAO,CAAiB;IAElC,YAAsB,IAAY,IAAI,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;IAEnD,OAAO,CAAC,IAAmB;QAChC,MAAM,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;QACxD,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAW,OAAO,KAAc,OAAO,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;CACrE;AASD;;;;GAIG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IACxB,KAAK,CAAqB;IAE3C,YAAmB,IAAY,EAAE,IAAwB;QACvD,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,IAAI,CAAC,MAA2B;QACrC,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF;AASD;;;;;GAKG;AACH,MAAM,OAAO,cAAe,SAAQ,OAAO;IACxB,KAAK,CAAqB;IAE3C,YAAmB,IAAY,EAAE,IAAwB;QACvD,KAAK,CAAC,IAAI,CAAC,CAAC;QACZ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAEM,IAAI,CAAC,MAAkB;QAC5B,IAAI,SAAS,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF;AAWD,gBAAgB;AAChB,MAAM,OAAO,aAAa;IACjB,UAAU,CAAS;IACnB,UAAU,CAAS;IAClB,UAAU,CAAgB;IAC1B,MAAM,GAAY,KAAK,CAAC;IACxB,OAAO,oCAA2C;IACzC,gBAAgB,GAAG,IAAI,KAAK,EAAkB,CAAC;IAC/C,gBAAgB,GAAG,IAAI,KAAK,EAAkB,CAAC;IAC/C,QAAQ,CAAiC;IAC1D,4BAA4B;IACZ,WAAW,CAAS;IAC5B,gBAAgB,CAAS;IACzB,SAAS,GAAW,CAAC,CAAC,CAAC;IACvB,SAAS,GAAW,CAAC,CAAC,CAAC;IACvB,SAAS,GAAW,CAAC,CAAC,CAAC;IACvB,SAAS,GAAW,CAAC,CAAC,CAAC;IACf,aAAa,CAAC;IAE9B,YAAmB,EAA0B,EAAE,UAAkB,EAAE,UAAkB,EAAE,OAAkD,EAAE,WAAmB,EAAE,eAAuB;QACrL,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACvF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC;QACxC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QAExB,MAAM,SAAS,GAAG,EAAE,CAAC,aAAa,EAAE,CAAC;QACrC,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;IACjE,CAAC;IAED,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC;IAEnE,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,UAAW,CAAC,CAAC;YACxD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,IAAI,CAAC,OAAO,mCAA2B,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,qGAAqG;IAC9F,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAED,IAAW,SAAS,KAA+B,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC5E,IAAW,YAAY,KAAK,OAAO,qCAA6B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAC/E,IAAW,UAAU,KAAK,OAAO,kCAA0B,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAElE,aAAa,CAAC,IAAmB;QACvC,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QAEnC,MAAM,MAAM,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACrC,IAAI,IAAI,KAAK,MAAM;YACjB,OAAO,SAAS,CAAC;QAEnB,MAAM,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC;QAC9E,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC7B,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,SAAS,GAAG,EAAE,CAAC,kBAAkB,CAAC,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,aAAa,CAAY,CAAC;QAC7F,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,UAAU,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,sCAAsC,EAAE,CAAC,gBAAgB,CAAC,MAAM,CAAC,yBAAyB,IAAI,CAAC,WAAW,EAAE,CAAC;YACxL,MAAM,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;QAC9B,CAAC;QAED,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YACzC,MAAM,IAAI,GAAG,EAAE,CAAC,UAAU,CAAC,MAAM,KAAK,IAAI,CAAC;YAC3C,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,gBAAgB,CAAC;YAC7D,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,WAAW,CAAC,IAAiB,EAAE,IAAiB;QACtD,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC;QACrC,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,EAAE,6DAA6D;YAC1H,OAAO,KAAK,CAAC;QAEf,MAAM,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;QACnC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QACvC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;QAEvC,gDAAgD;QAChD,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAsB,EAAE,GAAW,EAAE,EAAE;gBAC5D,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,UAAW,EAAE,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC;QACL,CAAC;QAED,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEhC,MAAM,OAAO,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAEpC,MAAM,SAAS,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,CAAY,CAAC;QACrG,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,WAAW,GAAG,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1D,MAAM,GAAG,GAAG,+CAA+C,OAAO,uBAAuB,WAAW,yBAAyB,IAAI,CAAC,WAAW,EAAE,CAAC;YAChJ,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;QAED,eAAe;QACf,MAAM,aAAa,GAAG,KAAK,CAAC;QAC5B,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,iCAAiC;YAC/E,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,mDAAmD;YACzE,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBAC1B,IAAI,IAAI,GAAG,EAAE,CAAC;gBACd,IAAI,CAAC,MAAM,EAAE,CAAC;oBACZ,IAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,EAAE,CAAC;gBACpC,CAAC;gBACD,MAAM,WAAW,GAAG,EAAE,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,cAAc,CAAC,CAAC;gBAChG,MAAM,KAAK,GAAG,oBAAoB,WAAW,EAAE,CAAC;gBAChD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,MAAM,EAAE,CAAC;wBACX,MAAM,CAAC,mHAAmH,CAAC,CAAC;wBAC5H,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACxB,MAAM,CAAC,2CAA2C,CAAC,CAAC;wBACpD,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,CAAC;wBACrB,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;oBAC1B,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,KAAK,KAAK,KAAK,IAAI,IAAI,CAAC,CAAC;oBAClC,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,OAAO,CAAC,SAAkB,KAAK;QACpC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,kCAA0B;YAC1F,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE7B,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;YACrB,kCAA0B,CAAC,CAAC,qCAA6B;YACzD,kCAA0B,CAAC,CAAC,qCAA6B;YACzD,OAAO,CAAC,CAAC,CAAC;gBACR,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;oBACpB,IAAI,CAAC,OAAO,gCAAwB,CAAC;oBACrC,qCAA6B;gBAC/B,CAAC;gBACD,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,OAAO,gCAAwB,CAAC;QAErC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI;YAC1C,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,gBAAgB,CAAC;gBAC5H,IAAI,CAAC,OAAO,gCAAwB,CAAC;QAEzC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO,kCAA0B;YAC1F,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAE7B,IAAI,IAAI,KAAK,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,wBAAwB;YAC3D,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;QAEzC,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,GAAG,CAAC,MAA2B;QACpC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kCAA0B;YAC9C,OAAO,KAAK,CAAC;QAEf,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC;QACtC,IAAI,IAAI,KAAK,IAAI,CAAC,UAAU,IAAI,SAAS,KAAK,IAAI,CAAC,UAAU;YAC3D,OAAO,KAAK,CAAC;QAEf,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACrB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAE3C,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB;YACzC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvB,OAAO,IAAI,CAAC;IACd,CAAC;IAEM,MAAM;QACX,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC3C,CAAC;IAEM,IAAI,CAAC,MAAkB;QAC5B,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,gBAAgB;YACzC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEvB,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IACzB,CAAC;IAEM,iBAAiB,CAAC,IAAY,EAAE,OAA2B;QAChE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAEM,iBAAiB,CAAC,IAAY,EAAE,OAA2B;QAChE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC;IAEO,eAAe,CAAoB,QAAa;QACtD,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC;gBACxB,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY;YACvC,OAAO;QAET,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACrD,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAE5C,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAE5C,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;QAE5C,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC;YACrB,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IAC9C,CAAC;IAEO,cAAc,CAAC,IAAa,EAAE,IAAY,EAAE,GAAW,EAAE,MAAmB;QAClF,kEAAkE;QAClE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY;YACvC,OAAO;QAET,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QACrD,IAAI,KAAa,CAAC;QAClB,IAAI,IAAI,EAAE,CAAC;YACT,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;YACxD,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;aAAM,CAAC;YACN,iGAAiG;YACjG,KAAK,GAAG,UAAU,WAAW,CAAC,MAAM,EAAE,CAAC;QACzC,CAAC;QAED,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;QAC9B,MAAM,KAAK,GAAG,GAAG,KAAK,OAAO,CAAC;QAC9B,IAAI,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI;YACN,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;;YAE5B,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;QAE9B,MAAM,IAAI,GAAG,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,qBAAqB,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI;YACP,OAAO;QAET,MAAM,IAAI,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI;YACP,OAAO;QAET,wFAAwF;QAExF,4CAA4C;QAC5C,MAAM,MAAM,GAAG,GAAG,KAAK,OAAO,CAAC;QAC/B,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,qBAAqB;QACzC,IAAI,SAAS,GAAG,KAAK,CAAC;QACtB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,WAAW,GAAG,KAAK,CAAC;QACxB,IAAI,iBAAiB,GAAG,KAAK,CAAC;QAC9B,IAAI,gBAAgB,GAAG,KAAK,CAAC;QAC7B,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,mBAAmB,GAAG,KAAK,CAAC,CAAC,oBAAoB;QACrD,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACjF,MAAM,KAAK,GAAa,IAAI,KAAK,EAAU,CAAC;QAC5C,MAAM,QAAQ,GAAa,IAAI,KAAK,EAAU,CAAC;QAC/C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC/B,IAAI,IAAI,GAAG,IAAI,CAAC;QAChB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC;YACtC,IAAI,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YACtB,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC;gBAC1C,IAAI,GAAG,IAAI,CAAC;YAEd,IAAI,IAAI;gBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;YAEvB,IAAI,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,IAAI,GAAG,KAAK,CAAC;YACf,CAAC;iBAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,mCAAmC;gBACrD,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,mCAAmC;oBACtE,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvE,EAAE,GAAG,CAAC;wBACN,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;wBAC3C,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;oBACtD,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,EAAE,CAAC;oBACT,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,sBAAsB;wBAC3D,OAAO,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;4BACvE,EAAE,GAAG,CAAC;4BACN,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;4BAC3C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;wBACnD,CAAC;oBACH,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1D,SAAS,GAAG,IAAI,CAAC;oBACnB,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,2BAA2B,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC1D,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxD,KAAK,CAAC,GAAG,CAAC,GAAG,4BAA4B,CAAC;oBAC5C,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpD,KAAK,CAAC,GAAG,CAAC,GAAG,0CAA0C,CAAC;oBAC1D,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpD,gFAAgF;wBAChF,KAAK,CAAC,GAAG,CAAC,GAAG,8CAA8C,CAAC;wBAC5D,IAAI,IAAI,GAAG,CAAC,CAAC;wBACb,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;4BACpD,EAAE,IAAI,CAAC;wBACT,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;wBAC9D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BAC9B,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;4BACvB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC9B,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,GAAG,CAAC,CAAC;wBACvD,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;wBACjD,IAAI,SAAS,EAAE,CAAC;4BACd,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;wBAC9D,CAAC;wBAED,IAAI,WAAW,EAAE,CAAC;4BAChB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,mCAAmC,CAAC,CAAC;wBAC5D,CAAC;wBAED,IAAI,IAAI,GAAG,CAAC,CAAC;wBACb,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;4BAC5B,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;4BACpD,EAAE,IAAI,CAAC;wBACT,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,uEAAuE,CAAC,CAAC;wBAC9F,IAAI,SAAS,EAAE,CAAC;4BACd,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;wBAC9D,CAAC;wBAED,IAAI,WAAW,EAAE,CAAC;4BAChB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,uCAAuC,CAAC,CAAC;wBAChE,CAAC;wBAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;4BAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BAC9B,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;4BACvB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC9B,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,KAAK,MAAM,KAAK,GAAG,CAAC,CAAC;wBACxD,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;oBAC9C,CAAC;gBACH,CAAC;qBAAM,CAAC,CAAC,kBAAkB;oBACzB,IAAI,IAAI,GAAG,CAAC,CAAC;oBACb,IAAI,IAAI,CAAC,OAAO,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACjD,EAAE;oBACJ,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9C,IAAI,UAAU,GAAG,CAAC;4BAChB,UAAU,GAAG,CAAC,CAAC;oBACnB,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9C,IAAI,UAAU,GAAG,CAAC;4BAChB,UAAU,GAAG,CAAC,CAAC;oBACnB,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9C,IAAI,UAAU,GAAG,CAAC;4BAChB,UAAU,GAAG,CAAC,CAAC;oBACnB,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9C,UAAU,GAAG,CAAC,CAAC;oBACjB,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;wBACzC,WAAW,GAAG,IAAI,CAAC;oBACrB,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/C,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC9C,gBAAgB,GAAG,IAAI,CAAC;oBAC1B,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC7C,eAAe,GAAG,IAAI,CAAC;oBACzB,CAAC;yBAAM,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;wBACvD,MAAM,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,GAAG,EAAE,EAAE,IAAI,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;wBACnD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG;4BACxB,mBAAmB,GAAG,IAAI,CAAC;6BACxB,CAAC;4BACJ,IAAI,GAAG,CAAC,CAAC,CAAC;4BACV,eAAe,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;wBAC/B,CAAC;oBACH,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACnD,gFAAgF;wBAChF,kGAAkG;wBAClG,KAAK,CAAC,GAAG,CAAC,GAAG,8CAA8C,CAAC;wBAC5D,IAAI,eAAe,EAAE,CAAC;4BACpB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;wBAC/D,CAAC;wBAED,IAAI,IAAI,GAAG,CAAC,CAAC;wBACb,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;4BAC5B,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,IAAI,aAAa,IAAI,GAAG,CAAC,CAAC;4BACpD,EAAE,IAAI,CAAC;wBACT,CAAC;wBAED,IAAI,iBAAiB,EAAE,CAAC;4BACtB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,yCAAyC,CAAC,CAAC;wBAClE,CAAC;wBAED,IAAI,gBAAgB,EAAE,CAAC;4BACrB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;wBAC/D,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,yCAAyC,CAAC,CAAC;wBAChE,IAAI,eAAe,EAAE,CAAC;4BACpB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,sCAAsC,CAAC,CAAC;wBAC/D,CAAC;wBAED,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;4BAC5B,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;4BAC3B,IAAI,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;4BAC9B,CAAC,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;4BACvB,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;4BAC9B,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,KAAK,KAAK,YAAY,KAAK,GAAG,CAAC,CAAC;wBACvD,CAAC;wBAED,IAAI,iBAAiB,EAAE,CAAC;4BACtB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,0CAA0C,CAAC,CAAC;wBACnE,CAAC;wBAED,IAAI,gBAAgB,EAAE,CAAC;4BACrB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,wCAAwC,CAAC,CAAC;wBACjE,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,0BAA0B,CAAC,CAAC;wBACjD,IAAI,IAAI,GAAG,CAAC,CAAC;wBACb,OAAO,IAAI,GAAG,UAAU,EAAE,CAAC;4BACzB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,IAAI,eAAe,IAAI,GAAG,CAAC,CAAC;4BAChE,EAAE,IAAI,CAAC;wBACT,CAAC;wBAED,IAAI,mBAAmB,EAAE,CAAC;4BACxB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,qCAAqC,CAAC,CAAC;wBAC9D,CAAC;6BAAM,CAAC;4BACN,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC;gCACrD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oCAC1B,EAAE,GAAG,CAAC;oCACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,yBAAyB,IAAI,eAAe,IAAI,GAAG,CAAC,CAAC;gCAC5E,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,IAAI,WAAW,EAAE,CAAC;4BAChB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,8BAA8B,CAAC,CAAC;wBACvD,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,0DAA0D,CAAC,CAAC;wBACjF,IAAI,GAAG,CAAC,CAAC;wBACT,OAAO,IAAI,GAAG,UAAU,EAAE,CAAC;4BACzB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,IAAI,eAAe,IAAI,IAAI,CAAC,CAAC;4BACjE,EAAE,IAAI,CAAC;wBACT,CAAC;wBAED,IAAI,mBAAmB,EAAE,CAAC;4BACxB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,yCAAyC,CAAC,CAAC;wBAClE,CAAC;6BAAM,CAAC;4BACN,KAAK,IAAI,GAAG,CAAC,EAAE,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC;gCACrD,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;oCAC1B,EAAE,GAAG,CAAC;oCACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,yBAAyB,IAAI,mBAAmB,IAAI,GAAG,CAAC,CAAC;gCAChF,CAAC;4BACH,CAAC;wBACH,CAAC;wBAED,IAAI,WAAW,EAAE,CAAC;4BAChB,EAAE,GAAG,CAAC;4BACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,+BAA+B,CAAC,CAAC;wBACxD,CAAC;wBAED,EAAE,GAAG,CAAC;wBACN,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,EAAE,qBAAqB,CAAC,CAAC;oBAC9C,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC/C,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,oCAAoC,CAAC;oBAC9D,CAAC;yBAAM,IAAI,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;wBACpD,KAAK,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,qBAAqB,CAAC;oBAC/C,CAAC;gBACH,CAAC;gBAED,EAAE,GAAG,CAAC;YACR,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/B,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QAClF,IAAI,IAAI;YACN,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;;YAE5B,IAAI,CAAC,SAAS,GAAG,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,qBAAqB;IACxB,QAAQ,CAAiB;IACzB,MAAM,CAAC,OAAO,CAAuB;IAE7C,YAAmB,MAAc,EAAE,IAAgB,EAAE,OAAuB;QAC1E,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAEM,MAAM,CAAC,UAAU;QACtB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;IAC3B,CAAC;IAEO,WAAW,GAAG,KAAK,CAAC;IAC5B,IAAW,UAAU,KAAc,OAAO,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7D,0HAA0H;IACnH,CAAC,MAAM,CAAC,OAAO,CAAC;QACrB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;QAC9B,qBAAqB,CAAC,UAAU,EAAE,CAAC;QACnC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;IAED,qGAAqG;IAC9F,OAAO;QACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;IACzB,CAAC;IAEM,UAAU,CAAC,OAAsB,IAAa,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1F,IAAW,OAAO,KAAK,OAAO,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5D,IAAW,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,IAAW,UAAU,KAAK,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC;IAC1D,IAAW,MAAM;QACf,IAAI,SAAS,KAAK,qBAAqB,CAAC,OAAO;YAC7C,qBAAqB,CAAC,OAAO,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAE5D,OAAO,qBAAqB,CAAC,OAAO,CAAC;IACvC,CAAC;IAEM,IAAI,CAAC,MAAkB;QAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrB,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC;IACM,aAAa,CAAC,MAAkB;QACrC,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAChF,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAEM,UAAU,CAAC,MAAc,IAAU,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACpE,SAAS,KAAW,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;IAC9C,SAAS,CAAC,KAAY,IAAU,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAC/D,QAAQ,KAAW,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE3C,aAAa,CAAC,OAAuB;QAC3C,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC;QACd,CAAC;aAAM,IAAI,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;QACzB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,SAAS,KAAK,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACvD,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShadowUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShadowUniforms.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 { Matrix4d } from \"@itwin/core-geometry\";\nimport { ColorDef, RgbColor } from \"@itwin/core-common\";\nimport { FloatRgba } from \"./FloatRGBA\";\nimport { UniformHandle } from \"./UniformHandle\";\nimport { Matrix4 } from \"./Matrix\";\nimport { desync, sync, SyncToken } from \"./Sync\";\nimport { Target } from \"./Target\";\n\n/** Maintains state of uniforms used for applying shadows.\n * @internal\n */\nexport class ShadowUniforms {\n // The projection matrix depends on the model matrix.\n public syncToken?: SyncToken;\n public syncKey = 0;\n\n // CPU state\n private readonly _target: Target;\n private _enabled = false;\n private readonly _projectionMatrix = Matrix4d.createIdentity();\n private _color = RgbColor.fromJSON(undefined);\n private _bias = 0;\n\n // GPU state\n private readonly _projection32 = new Matrix4();\n private readonly _colorAndBias = new FloatRgba();\n\n // Working variables\n private readonly _scratchModel = Matrix4d.createIdentity();\n private readonly _scratchModelProjection = Matrix4d.createIdentity();\n\n public constructor(target: Target) {\n this._target = target;\n }\n\n public update(): void {\n const map = this._target.solarShadowMap;\n if (this._enabled !== map.isEnabled) {\n desync(this);\n this._enabled = map.isEnabled;\n }\n\n if (!map.isEnabled)\n return;\n\n const settings = map.settings!;\n\n if (this._bias !== settings.bias) {\n desync(this);\n this._bias = this._colorAndBias.alpha = settings.bias;\n }\n\n if (!this._color.equals(settings.color)) {\n desync(this);\n this._color = settings.color;\n this._colorAndBias.setTbgr(ColorDef.computeTbgrFromComponents(settings.color.r, settings.color.g, settings.color.b));\n this._colorAndBias.alpha = this._bias;\n }\n\n // NB: The projection matrix must be computed later when it is bound because it uses the model matrix.\n const proj = map.projectionMatrix;\n if (!proj.isExactEqual(this._projectionMatrix)) {\n desync(this);\n proj.clone(this._projectionMatrix);\n }\n }\n\n private computeProjection(): void {\n const branch = this._target.uniforms.branch;\n if (sync(branch, this))\n return;\n\n // NB: We could decouple from the other uniforms so they don't get invalidated when frustum changes but meh.\n desync(this);\n\n const proj = this._target.solarShadowMap.projectionMatrix;\n const model = Matrix4d.createTransform(this._target.currentTransform, this._scratchModel);\n const modelProj = proj.multiplyMatrixMatrix(model, this._scratchModelProjection);\n this._projection32.initFromMatrix4d(modelProj);\n }\n\n public bindColorAndBias(uniform: UniformHandle): void {\n if (!sync(this, uniform))\n this._colorAndBias.bind(uniform);\n }\n\n public bindProjectionMatrix(uniform: UniformHandle): void {\n this.computeProjection();\n if (!sync(this, uniform))\n uniform.setMatrix4(this._projection32);\n }\n}\n"]}
1
+ {"version":3,"file":"ShadowUniforms.js","sourceRoot":"","sources":["../../../../../src/internal/render/webgl/ShadowUniforms.ts"],"names":[],"mappings":"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"}