@itwin/core-frontend 4.0.0-dev.2 → 4.0.0-dev.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (534) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/lib/cjs/IModelApp.d.ts +2 -3
  3. package/lib/cjs/IModelApp.d.ts.map +1 -1
  4. package/lib/cjs/IModelApp.js +3 -7
  5. package/lib/cjs/IModelApp.js.map +1 -1
  6. package/lib/cjs/IModelConnection.d.ts +1 -1
  7. package/lib/cjs/IModelConnection.js +1 -1
  8. package/lib/cjs/IModelConnection.js.map +1 -1
  9. package/lib/cjs/NoRenderApp.d.ts +11 -4
  10. package/lib/cjs/NoRenderApp.d.ts.map +1 -1
  11. package/lib/cjs/NoRenderApp.js +13 -6
  12. package/lib/cjs/NoRenderApp.js.map +1 -1
  13. package/lib/cjs/SelectionSet.d.ts +0 -1
  14. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  15. package/lib/cjs/SelectionSet.js +0 -1
  16. package/lib/cjs/SelectionSet.js.map +1 -1
  17. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  18. package/lib/cjs/SubCategoriesCache.js +0 -1
  19. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  20. package/lib/cjs/render/RealityMeshParams.d.ts +6 -3
  21. package/lib/cjs/render/RealityMeshParams.d.ts.map +1 -1
  22. package/lib/cjs/render/RealityMeshParams.js +15 -5
  23. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  24. package/lib/cjs/render/RenderSystem.d.ts +5 -16
  25. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  26. package/lib/cjs/render/RenderSystem.js +0 -6
  27. package/lib/cjs/render/RenderSystem.js.map +1 -1
  28. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +3 -4
  29. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  30. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  31. package/lib/cjs/render/webgl/AttributeBuffers.d.ts +9 -79
  32. package/lib/cjs/render/webgl/AttributeBuffers.d.ts.map +1 -1
  33. package/lib/cjs/render/webgl/AttributeBuffers.js +19 -152
  34. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  35. package/lib/cjs/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  36. package/lib/cjs/render/webgl/BackgroundMapDrape.js +0 -3
  37. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  38. package/lib/cjs/render/webgl/BranchUniforms.d.ts.map +1 -1
  39. package/lib/cjs/render/webgl/BranchUniforms.js +0 -8
  40. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  41. package/lib/cjs/render/webgl/ClipStack.d.ts +0 -1
  42. package/lib/cjs/render/webgl/ClipStack.d.ts.map +1 -1
  43. package/lib/cjs/render/webgl/ClipStack.js +2 -6
  44. package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
  45. package/lib/cjs/render/webgl/ClipVolume.d.ts.map +1 -1
  46. package/lib/cjs/render/webgl/ClipVolume.js +1 -5
  47. package/lib/cjs/render/webgl/ClipVolume.js.map +1 -1
  48. package/lib/cjs/render/webgl/ClippingProgram.d.ts +3 -2
  49. package/lib/cjs/render/webgl/ClippingProgram.d.ts.map +1 -1
  50. package/lib/cjs/render/webgl/ClippingProgram.js +10 -37
  51. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  52. package/lib/cjs/render/webgl/DrawCommand.d.ts +2 -2
  53. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  54. package/lib/cjs/render/webgl/DrawCommand.js +1 -1
  55. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  56. package/lib/cjs/render/webgl/FeatureOverrides.js +1 -1
  57. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  58. package/lib/cjs/render/webgl/FloatRGBA.d.ts.map +1 -1
  59. package/lib/cjs/render/webgl/FloatRGBA.js +0 -4
  60. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  61. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  62. package/lib/cjs/render/webgl/GLTimer.d.ts.map +1 -1
  63. package/lib/cjs/render/webgl/GLTimer.js +2 -35
  64. package/lib/cjs/render/webgl/GLTimer.js.map +1 -1
  65. package/lib/cjs/render/webgl/PlanarClassifier.d.ts.map +1 -1
  66. package/lib/cjs/render/webgl/PlanarClassifier.js +13 -71
  67. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  68. package/lib/cjs/render/webgl/PointCloud.d.ts.map +1 -1
  69. package/lib/cjs/render/webgl/PointCloud.js +1 -3
  70. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  71. package/lib/cjs/render/webgl/RenderBuffer.d.ts +1 -1
  72. package/lib/cjs/render/webgl/RenderBuffer.d.ts.map +1 -1
  73. package/lib/cjs/render/webgl/RenderBuffer.js +2 -3
  74. package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
  75. package/lib/cjs/render/webgl/RenderFlags.d.ts +1 -2
  76. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  77. package/lib/cjs/render/webgl/RenderFlags.js +4 -6
  78. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  79. package/lib/cjs/render/webgl/SceneCompositor.d.ts +0 -2
  80. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  81. package/lib/cjs/render/webgl/SceneCompositor.js +754 -1135
  82. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  83. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  84. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  85. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +1 -2
  86. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  87. package/lib/cjs/render/webgl/ShaderBuilder.js +13 -48
  88. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  89. package/lib/cjs/render/webgl/ShaderProgram.d.ts +1 -2
  90. package/lib/cjs/render/webgl/ShaderProgram.d.ts.map +1 -1
  91. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  92. package/lib/cjs/render/webgl/SolarShadowMap.d.ts.map +1 -1
  93. package/lib/cjs/render/webgl/SolarShadowMap.js +5 -26
  94. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  95. package/lib/cjs/render/webgl/System.d.ts +10 -10
  96. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  97. package/lib/cjs/render/webgl/System.js +39 -122
  98. package/lib/cjs/render/webgl/System.js.map +1 -1
  99. package/lib/cjs/render/webgl/Technique.d.ts +4 -5
  100. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  101. package/lib/cjs/render/webgl/Technique.js +4 -28
  102. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  103. package/lib/cjs/render/webgl/Texture.d.ts.map +1 -1
  104. package/lib/cjs/render/webgl/Texture.js +14 -18
  105. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  106. package/lib/cjs/render/webgl/ThematicSensors.d.ts +4 -3
  107. package/lib/cjs/render/webgl/ThematicSensors.d.ts.map +1 -1
  108. package/lib/cjs/render/webgl/ThematicSensors.js +9 -50
  109. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  110. package/lib/cjs/render/webgl/ThematicUniforms.js +1 -1
  111. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  112. package/lib/cjs/render/webgl/UniformHandle.d.ts.map +1 -1
  113. package/lib/cjs/render/webgl/UniformHandle.js +1 -4
  114. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  115. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts +1 -2
  116. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  117. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +1 -1
  118. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  119. package/lib/cjs/render/webgl/glsl/Animation.d.ts +1 -2
  120. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  121. package/lib/cjs/render/webgl/glsl/Animation.js +23 -26
  122. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  123. package/lib/cjs/render/webgl/glsl/Blur.d.ts +1 -2
  124. package/lib/cjs/render/webgl/glsl/Blur.d.ts.map +1 -1
  125. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  126. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.d.ts +1 -2
  127. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  128. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +2 -9
  129. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  130. package/lib/cjs/render/webgl/glsl/ClearTranslucent.d.ts +1 -2
  131. package/lib/cjs/render/webgl/glsl/ClearTranslucent.d.ts.map +1 -1
  132. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +2 -10
  133. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  134. package/lib/cjs/render/webgl/glsl/Clipping.d.ts +1 -1
  135. package/lib/cjs/render/webgl/glsl/Clipping.d.ts.map +1 -1
  136. package/lib/cjs/render/webgl/glsl/Clipping.js +5 -36
  137. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  138. package/lib/cjs/render/webgl/glsl/Combine3Textures.d.ts +1 -2
  139. package/lib/cjs/render/webgl/glsl/Combine3Textures.d.ts.map +1 -1
  140. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  141. package/lib/cjs/render/webgl/glsl/CombineTextures.d.ts +1 -2
  142. package/lib/cjs/render/webgl/glsl/CombineTextures.d.ts.map +1 -1
  143. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  144. package/lib/cjs/render/webgl/glsl/Common.d.ts.map +1 -1
  145. package/lib/cjs/render/webgl/glsl/Common.js +9 -55
  146. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  147. package/lib/cjs/render/webgl/glsl/Composite.d.ts +1 -2
  148. package/lib/cjs/render/webgl/glsl/Composite.d.ts.map +1 -1
  149. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  150. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts +1 -2
  151. package/lib/cjs/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  152. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  153. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.d.ts +1 -2
  154. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.d.ts.map +1 -1
  155. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +12 -19
  156. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  157. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts +4 -7
  158. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  159. package/lib/cjs/render/webgl/glsl/CopyStencil.js +2 -39
  160. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  161. package/lib/cjs/render/webgl/glsl/EDL.d.ts +4 -5
  162. package/lib/cjs/render/webgl/glsl/EDL.d.ts.map +1 -1
  163. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  164. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.d.ts +1 -2
  165. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.d.ts.map +1 -1
  166. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  167. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  168. package/lib/cjs/render/webgl/glsl/Edge.js +2 -2
  169. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  170. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  171. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +3 -24
  172. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  173. package/lib/cjs/render/webgl/glsl/Fragment.d.ts +0 -7
  174. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  175. package/lib/cjs/render/webgl/glsl/Fragment.js +5 -40
  176. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  177. package/lib/cjs/render/webgl/glsl/Instancing.d.ts.map +1 -1
  178. package/lib/cjs/render/webgl/glsl/Instancing.js +1 -5
  179. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  180. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.d.ts.map +1 -1
  181. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js +0 -2
  182. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  183. package/lib/cjs/render/webgl/glsl/PlanarGrid.d.ts +1 -2
  184. package/lib/cjs/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
  185. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -12
  186. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  187. package/lib/cjs/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  188. package/lib/cjs/render/webgl/glsl/RealityMesh.js +3 -8
  189. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  190. package/lib/cjs/render/webgl/glsl/SkyBox.d.ts +1 -2
  191. package/lib/cjs/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  192. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  193. package/lib/cjs/render/webgl/glsl/SkySphere.d.ts +1 -2
  194. package/lib/cjs/render/webgl/glsl/SkySphere.d.ts.map +1 -1
  195. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  196. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +1 -1
  197. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  198. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  199. package/lib/cjs/render/webgl/glsl/Surface.js +33 -57
  200. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  201. package/lib/cjs/render/webgl/glsl/Thematic.d.ts.map +1 -1
  202. package/lib/cjs/render/webgl/glsl/Thematic.js +3 -36
  203. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  204. package/lib/cjs/render/webgl/glsl/Translucency.d.ts.map +1 -1
  205. package/lib/cjs/render/webgl/glsl/Translucency.js +2 -12
  206. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  207. package/lib/cjs/render/webgl/glsl/Vertex.d.ts +1 -2
  208. package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
  209. package/lib/cjs/render/webgl/glsl/Vertex.js +15 -78
  210. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  211. package/lib/cjs/render/webgl/glsl/Wiremesh.d.ts.map +1 -1
  212. package/lib/cjs/render/webgl/glsl/Wiremesh.js +2 -5
  213. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  214. package/lib/cjs/tile/PrimaryTileTree.d.ts +0 -3
  215. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  216. package/lib/cjs/tile/PrimaryTileTree.js +6 -28
  217. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  218. package/lib/cjs/tile/RealityTile.d.ts +1 -1
  219. package/lib/cjs/tile/RealityTile.js +1 -1
  220. package/lib/cjs/tile/RealityTile.js.map +1 -1
  221. package/lib/cjs/tile/RealityTileTree.d.ts +1 -1
  222. package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
  223. package/lib/cjs/tile/RealityTileTree.js +2 -3
  224. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  225. package/lib/cjs/tile/TileAdmin.d.ts +5 -1
  226. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  227. package/lib/cjs/tile/TileAdmin.js +2 -2
  228. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  229. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  230. package/lib/cjs/tile/TileRequest.js +2 -1
  231. package/lib/cjs/tile/TileRequest.js.map +1 -1
  232. package/lib/cjs/tile/TileRequestChannel.d.ts +23 -1
  233. package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
  234. package/lib/cjs/tile/TileRequestChannel.js +28 -7
  235. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  236. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts +11 -3
  237. package/lib/cjs/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  238. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js +17 -5
  239. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  240. package/lib/cjs/tile/map/ImageryTileTree.d.ts +2 -2
  241. package/lib/cjs/tile/map/ImageryTileTree.d.ts.map +1 -1
  242. package/lib/cjs/tile/map/ImageryTileTree.js +10 -5
  243. package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
  244. package/lib/cjs/tile/map/MapCartoRectangle.d.ts +1 -1
  245. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  246. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  247. package/lib/cjs/tile/map/MapTile.d.ts +10 -2
  248. package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
  249. package/lib/cjs/tile/map/MapTile.js +28 -4
  250. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  251. package/lib/cjs/tile/map/MapTileTree.d.ts +3 -2
  252. package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
  253. package/lib/cjs/tile/map/MapTileTree.js +12 -9
  254. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  255. package/lib/cjs/tile/map/MapTilingScheme.d.ts +1 -1
  256. package/lib/cjs/tile/map/MapTilingScheme.js +1 -1
  257. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  258. package/lib/cjs/tile/map/QuadId.d.ts +1 -1
  259. package/lib/cjs/tile/map/QuadId.js +1 -1
  260. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  261. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts +9 -4
  262. package/lib/cjs/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  263. package/lib/cjs/tile/map/TerrainMeshProvider.js +6 -1
  264. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  265. package/lib/cjs/tile/map/TerrainProvider.d.ts +2 -2
  266. package/lib/cjs/tile/map/TerrainProvider.js +1 -1
  267. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  268. package/lib/esm/IModelApp.d.ts +2 -3
  269. package/lib/esm/IModelApp.d.ts.map +1 -1
  270. package/lib/esm/IModelApp.js +3 -7
  271. package/lib/esm/IModelApp.js.map +1 -1
  272. package/lib/esm/IModelConnection.d.ts +1 -1
  273. package/lib/esm/IModelConnection.js +1 -1
  274. package/lib/esm/IModelConnection.js.map +1 -1
  275. package/lib/esm/NoRenderApp.d.ts +11 -4
  276. package/lib/esm/NoRenderApp.d.ts.map +1 -1
  277. package/lib/esm/NoRenderApp.js +11 -4
  278. package/lib/esm/NoRenderApp.js.map +1 -1
  279. package/lib/esm/SelectionSet.d.ts +0 -1
  280. package/lib/esm/SelectionSet.d.ts.map +1 -1
  281. package/lib/esm/SelectionSet.js +0 -1
  282. package/lib/esm/SelectionSet.js.map +1 -1
  283. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  284. package/lib/esm/SubCategoriesCache.js +0 -1
  285. package/lib/esm/SubCategoriesCache.js.map +1 -1
  286. package/lib/esm/render/RealityMeshParams.d.ts +6 -3
  287. package/lib/esm/render/RealityMeshParams.d.ts.map +1 -1
  288. package/lib/esm/render/RealityMeshParams.js +15 -5
  289. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  290. package/lib/esm/render/RenderSystem.d.ts +5 -16
  291. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  292. package/lib/esm/render/RenderSystem.js +0 -6
  293. package/lib/esm/render/RenderSystem.js.map +1 -1
  294. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +3 -4
  295. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  296. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  297. package/lib/esm/render/webgl/AttributeBuffers.d.ts +9 -79
  298. package/lib/esm/render/webgl/AttributeBuffers.d.ts.map +1 -1
  299. package/lib/esm/render/webgl/AttributeBuffers.js +16 -144
  300. package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
  301. package/lib/esm/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
  302. package/lib/esm/render/webgl/BackgroundMapDrape.js +0 -3
  303. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  304. package/lib/esm/render/webgl/BranchUniforms.d.ts.map +1 -1
  305. package/lib/esm/render/webgl/BranchUniforms.js +0 -8
  306. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  307. package/lib/esm/render/webgl/ClipStack.d.ts +0 -1
  308. package/lib/esm/render/webgl/ClipStack.d.ts.map +1 -1
  309. package/lib/esm/render/webgl/ClipStack.js +2 -6
  310. package/lib/esm/render/webgl/ClipStack.js.map +1 -1
  311. package/lib/esm/render/webgl/ClipVolume.d.ts.map +1 -1
  312. package/lib/esm/render/webgl/ClipVolume.js +1 -5
  313. package/lib/esm/render/webgl/ClipVolume.js.map +1 -1
  314. package/lib/esm/render/webgl/ClippingProgram.d.ts +3 -2
  315. package/lib/esm/render/webgl/ClippingProgram.d.ts.map +1 -1
  316. package/lib/esm/render/webgl/ClippingProgram.js +10 -37
  317. package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
  318. package/lib/esm/render/webgl/DrawCommand.d.ts +2 -2
  319. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  320. package/lib/esm/render/webgl/DrawCommand.js +1 -1
  321. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  322. package/lib/esm/render/webgl/FeatureOverrides.js +1 -1
  323. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  324. package/lib/esm/render/webgl/FloatRGBA.d.ts.map +1 -1
  325. package/lib/esm/render/webgl/FloatRGBA.js +0 -4
  326. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  327. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  328. package/lib/esm/render/webgl/GLTimer.d.ts.map +1 -1
  329. package/lib/esm/render/webgl/GLTimer.js +2 -35
  330. package/lib/esm/render/webgl/GLTimer.js.map +1 -1
  331. package/lib/esm/render/webgl/PlanarClassifier.d.ts.map +1 -1
  332. package/lib/esm/render/webgl/PlanarClassifier.js +13 -71
  333. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  334. package/lib/esm/render/webgl/PointCloud.d.ts.map +1 -1
  335. package/lib/esm/render/webgl/PointCloud.js +1 -3
  336. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  337. package/lib/esm/render/webgl/RenderBuffer.d.ts +1 -1
  338. package/lib/esm/render/webgl/RenderBuffer.d.ts.map +1 -1
  339. package/lib/esm/render/webgl/RenderBuffer.js +2 -3
  340. package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
  341. package/lib/esm/render/webgl/RenderFlags.d.ts +1 -2
  342. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  343. package/lib/esm/render/webgl/RenderFlags.js +4 -6
  344. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  345. package/lib/esm/render/webgl/SceneCompositor.d.ts +0 -2
  346. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  347. package/lib/esm/render/webgl/SceneCompositor.js +756 -1137
  348. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  349. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  350. package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
  351. package/lib/esm/render/webgl/ShaderBuilder.d.ts +1 -2
  352. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  353. package/lib/esm/render/webgl/ShaderBuilder.js +13 -48
  354. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  355. package/lib/esm/render/webgl/ShaderProgram.d.ts +1 -2
  356. package/lib/esm/render/webgl/ShaderProgram.d.ts.map +1 -1
  357. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  358. package/lib/esm/render/webgl/SolarShadowMap.d.ts.map +1 -1
  359. package/lib/esm/render/webgl/SolarShadowMap.js +5 -26
  360. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  361. package/lib/esm/render/webgl/System.d.ts +10 -10
  362. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  363. package/lib/esm/render/webgl/System.js +41 -124
  364. package/lib/esm/render/webgl/System.js.map +1 -1
  365. package/lib/esm/render/webgl/Technique.d.ts +4 -5
  366. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  367. package/lib/esm/render/webgl/Technique.js +5 -29
  368. package/lib/esm/render/webgl/Technique.js.map +1 -1
  369. package/lib/esm/render/webgl/Texture.d.ts.map +1 -1
  370. package/lib/esm/render/webgl/Texture.js +14 -18
  371. package/lib/esm/render/webgl/Texture.js.map +1 -1
  372. package/lib/esm/render/webgl/ThematicSensors.d.ts +4 -3
  373. package/lib/esm/render/webgl/ThematicSensors.d.ts.map +1 -1
  374. package/lib/esm/render/webgl/ThematicSensors.js +9 -50
  375. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  376. package/lib/esm/render/webgl/ThematicUniforms.js +1 -1
  377. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  378. package/lib/esm/render/webgl/UniformHandle.d.ts.map +1 -1
  379. package/lib/esm/render/webgl/UniformHandle.js +1 -4
  380. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  381. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts +1 -2
  382. package/lib/esm/render/webgl/glsl/AmbientOcclusion.d.ts.map +1 -1
  383. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +1 -1
  384. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  385. package/lib/esm/render/webgl/glsl/Animation.d.ts +1 -2
  386. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  387. package/lib/esm/render/webgl/glsl/Animation.js +23 -26
  388. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  389. package/lib/esm/render/webgl/glsl/Blur.d.ts +1 -2
  390. package/lib/esm/render/webgl/glsl/Blur.d.ts.map +1 -1
  391. package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
  392. package/lib/esm/render/webgl/glsl/ClearPickAndColor.d.ts +1 -2
  393. package/lib/esm/render/webgl/glsl/ClearPickAndColor.d.ts.map +1 -1
  394. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +2 -9
  395. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  396. package/lib/esm/render/webgl/glsl/ClearTranslucent.d.ts +1 -2
  397. package/lib/esm/render/webgl/glsl/ClearTranslucent.d.ts.map +1 -1
  398. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +2 -10
  399. package/lib/esm/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  400. package/lib/esm/render/webgl/glsl/Clipping.d.ts +1 -1
  401. package/lib/esm/render/webgl/glsl/Clipping.d.ts.map +1 -1
  402. package/lib/esm/render/webgl/glsl/Clipping.js +5 -36
  403. package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
  404. package/lib/esm/render/webgl/glsl/Combine3Textures.d.ts +1 -2
  405. package/lib/esm/render/webgl/glsl/Combine3Textures.d.ts.map +1 -1
  406. package/lib/esm/render/webgl/glsl/Combine3Textures.js.map +1 -1
  407. package/lib/esm/render/webgl/glsl/CombineTextures.d.ts +1 -2
  408. package/lib/esm/render/webgl/glsl/CombineTextures.d.ts.map +1 -1
  409. package/lib/esm/render/webgl/glsl/CombineTextures.js.map +1 -1
  410. package/lib/esm/render/webgl/glsl/Common.d.ts.map +1 -1
  411. package/lib/esm/render/webgl/glsl/Common.js +9 -55
  412. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  413. package/lib/esm/render/webgl/glsl/Composite.d.ts +1 -2
  414. package/lib/esm/render/webgl/glsl/Composite.d.ts.map +1 -1
  415. package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
  416. package/lib/esm/render/webgl/glsl/CopyColor.d.ts +1 -2
  417. package/lib/esm/render/webgl/glsl/CopyColor.d.ts.map +1 -1
  418. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  419. package/lib/esm/render/webgl/glsl/CopyPickBuffers.d.ts +1 -2
  420. package/lib/esm/render/webgl/glsl/CopyPickBuffers.d.ts.map +1 -1
  421. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +12 -19
  422. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  423. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts +4 -7
  424. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  425. package/lib/esm/render/webgl/glsl/CopyStencil.js +1 -37
  426. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  427. package/lib/esm/render/webgl/glsl/EDL.d.ts +4 -5
  428. package/lib/esm/render/webgl/glsl/EDL.d.ts.map +1 -1
  429. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -1
  430. package/lib/esm/render/webgl/glsl/EVSMFromDepth.d.ts +1 -2
  431. package/lib/esm/render/webgl/glsl/EVSMFromDepth.d.ts.map +1 -1
  432. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  433. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  434. package/lib/esm/render/webgl/glsl/Edge.js +2 -2
  435. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  436. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  437. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +3 -24
  438. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  439. package/lib/esm/render/webgl/glsl/Fragment.d.ts +0 -7
  440. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  441. package/lib/esm/render/webgl/glsl/Fragment.js +4 -38
  442. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  443. package/lib/esm/render/webgl/glsl/Instancing.d.ts.map +1 -1
  444. package/lib/esm/render/webgl/glsl/Instancing.js +1 -5
  445. package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
  446. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.d.ts.map +1 -1
  447. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js +0 -2
  448. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  449. package/lib/esm/render/webgl/glsl/PlanarGrid.d.ts +1 -2
  450. package/lib/esm/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
  451. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -12
  452. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  453. package/lib/esm/render/webgl/glsl/RealityMesh.d.ts.map +1 -1
  454. package/lib/esm/render/webgl/glsl/RealityMesh.js +3 -8
  455. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  456. package/lib/esm/render/webgl/glsl/SkyBox.d.ts +1 -2
  457. package/lib/esm/render/webgl/glsl/SkyBox.d.ts.map +1 -1
  458. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  459. package/lib/esm/render/webgl/glsl/SkySphere.d.ts +1 -2
  460. package/lib/esm/render/webgl/glsl/SkySphere.d.ts.map +1 -1
  461. package/lib/esm/render/webgl/glsl/SkySphere.js.map +1 -1
  462. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +1 -1
  463. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  464. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  465. package/lib/esm/render/webgl/glsl/Surface.js +33 -57
  466. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  467. package/lib/esm/render/webgl/glsl/Thematic.d.ts.map +1 -1
  468. package/lib/esm/render/webgl/glsl/Thematic.js +3 -36
  469. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  470. package/lib/esm/render/webgl/glsl/Translucency.d.ts.map +1 -1
  471. package/lib/esm/render/webgl/glsl/Translucency.js +3 -13
  472. package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
  473. package/lib/esm/render/webgl/glsl/Vertex.d.ts +1 -2
  474. package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
  475. package/lib/esm/render/webgl/glsl/Vertex.js +16 -79
  476. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  477. package/lib/esm/render/webgl/glsl/Wiremesh.d.ts.map +1 -1
  478. package/lib/esm/render/webgl/glsl/Wiremesh.js +2 -5
  479. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -1
  480. package/lib/esm/tile/PrimaryTileTree.d.ts +0 -3
  481. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  482. package/lib/esm/tile/PrimaryTileTree.js +8 -30
  483. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  484. package/lib/esm/tile/RealityTile.d.ts +1 -1
  485. package/lib/esm/tile/RealityTile.js +1 -1
  486. package/lib/esm/tile/RealityTile.js.map +1 -1
  487. package/lib/esm/tile/RealityTileTree.d.ts +1 -1
  488. package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
  489. package/lib/esm/tile/RealityTileTree.js +2 -3
  490. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  491. package/lib/esm/tile/TileAdmin.d.ts +5 -1
  492. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  493. package/lib/esm/tile/TileAdmin.js +2 -2
  494. package/lib/esm/tile/TileAdmin.js.map +1 -1
  495. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  496. package/lib/esm/tile/TileRequest.js +2 -1
  497. package/lib/esm/tile/TileRequest.js.map +1 -1
  498. package/lib/esm/tile/TileRequestChannel.d.ts +23 -1
  499. package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
  500. package/lib/esm/tile/TileRequestChannel.js +28 -7
  501. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  502. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts +11 -3
  503. package/lib/esm/tile/map/EllipsoidTerrainProvider.d.ts.map +1 -1
  504. package/lib/esm/tile/map/EllipsoidTerrainProvider.js +17 -5
  505. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  506. package/lib/esm/tile/map/ImageryTileTree.d.ts +2 -2
  507. package/lib/esm/tile/map/ImageryTileTree.d.ts.map +1 -1
  508. package/lib/esm/tile/map/ImageryTileTree.js +10 -5
  509. package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
  510. package/lib/esm/tile/map/MapCartoRectangle.d.ts +1 -1
  511. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  512. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  513. package/lib/esm/tile/map/MapTile.d.ts +10 -2
  514. package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
  515. package/lib/esm/tile/map/MapTile.js +28 -4
  516. package/lib/esm/tile/map/MapTile.js.map +1 -1
  517. package/lib/esm/tile/map/MapTileTree.d.ts +3 -2
  518. package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
  519. package/lib/esm/tile/map/MapTileTree.js +12 -9
  520. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  521. package/lib/esm/tile/map/MapTilingScheme.d.ts +1 -1
  522. package/lib/esm/tile/map/MapTilingScheme.js +1 -1
  523. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  524. package/lib/esm/tile/map/QuadId.d.ts +1 -1
  525. package/lib/esm/tile/map/QuadId.js +1 -1
  526. package/lib/esm/tile/map/QuadId.js.map +1 -1
  527. package/lib/esm/tile/map/TerrainMeshProvider.d.ts +9 -4
  528. package/lib/esm/tile/map/TerrainMeshProvider.d.ts.map +1 -1
  529. package/lib/esm/tile/map/TerrainMeshProvider.js +6 -1
  530. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  531. package/lib/esm/tile/map/TerrainProvider.d.ts +2 -2
  532. package/lib/esm/tile/map/TerrainProvider.js +1 -1
  533. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  534. package/package.json +24 -24
@@ -40,7 +40,7 @@ class Builder {
40
40
  this._shiftsPixels = undefined !== params.source.sampleSourcePixel;
41
41
  }
42
42
  get isWebGL2() {
43
- return System.instance.isWebGL2;
43
+ return true;
44
44
  }
45
45
  addUniform(params) {
46
46
  const name = params.name;
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenSpaceEffect.js","sourceRoot":"","sources":["../../../../src/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,6BAA6B,CAAC;AAIrC,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;QACZ,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,uBAA4B;QACnD,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,mBAAwB;QAC9C,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,qBAA0B;QAClD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAyB;KACjD;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,IAAiB;IAC/C,QAAQ,IAAI,EAAE;QACZ,KAAK,WAAW,CAAC,KAAK,CAAC,CAAC,qBAA0B;QAClD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAyB;QAChD,KAAK,WAAW,CAAC,IAAI,CAAC,CAAC,oBAAyB;KACjD;AACH,CAAC;AAED,MAAM,OAAO;IAMX,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,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;IAClC,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,oBAA0B,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;IAMrB,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;IAM7B;QALiB,aAAQ,GAAG,IAAI,GAAG,EAA6B,CAAC;QAGhD,kBAAa,GAAwB,EAAE,CAAC;QAGvD,4EAA4E;QAC5E,MAAM,cAAc,GAAG,mBAAmB,CAAC,MAAM,kBAAqB,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,qBAAwB,CAAC;QAC7I,MAAM,CAAC,SAAS,KAAK,YAAY,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAEM,OAAO;QACZ,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;YACxB,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;SACxB;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;YACjC,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YACzC,OAAO;SACR;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;YAC5B,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;SAChC;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;YAC5B,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;gBAC3B,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,OAAO,EAAE,CAAC;aACrB;SACF;IACH,CAAC;CACF;AAED,MAAM,UAAU,8BAA8B,CAAC,MAAsC;IACnF,OAAO,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport {\r\n ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams, ScreenSpaceEffectContext, UniformArrayParams, UniformParams, UniformType, VaryingType,\r\n} from \"../ScreenSpaceEffectBuilder\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { ProgramBuilder, VariableType } from \"./ShaderBuilder\";\r\nimport { CompileStatus, ShaderProgram } from \"./ShaderProgram\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { SingleTexturedViewportQuadGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { FrameBuffer } from \"./FrameBuffer\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { SingularTechnique } from \"./Technique\";\r\nimport { Target } from \"./Target\";\r\nimport { System } from \"./System\";\r\nimport { createScreenSpaceEffectProgramBuilder } from \"./glsl/ScreenSpaceEffect\";\r\n\r\ntype ShouldApply = (context: ScreenSpaceEffectContext) => boolean;\r\n\r\nfunction getUniformVariableType(type: UniformType): VariableType {\r\n switch (type) {\r\n case UniformType.Bool: return VariableType.Boolean;\r\n case UniformType.Int: return VariableType.Int;\r\n case UniformType.Float: return VariableType.Float;\r\n case UniformType.Vec2: return VariableType.Vec2;\r\n case UniformType.Vec3: return VariableType.Vec3;\r\n case UniformType.Vec4: return VariableType.Vec4;\r\n }\r\n}\r\n\r\nfunction getVaryingVariableType(type: VaryingType): VariableType {\r\n switch (type) {\r\n case VaryingType.Float: return VariableType.Float;\r\n case VaryingType.Vec2: return VariableType.Vec2;\r\n case VaryingType.Vec3: return VariableType.Vec3;\r\n case VaryingType.Vec4: return VariableType.Vec4;\r\n }\r\n}\r\n\r\nclass Builder {\r\n private readonly _name: string;\r\n private readonly _builder: ProgramBuilder;\r\n private readonly _shiftsPixels: boolean;\r\n public shouldApply?: ShouldApply;\r\n\r\n public constructor(params: ScreenSpaceEffectBuilderParams) {\r\n this._name = params.name;\r\n this._builder = createScreenSpaceEffectProgramBuilder(params);\r\n this._builder.setDebugDescription(`Screen-space: ${this._name}`);\r\n this._shiftsPixels = undefined !== params.source.sampleSourcePixel;\r\n }\r\n\r\n public get isWebGL2(): boolean {\r\n return System.instance.isWebGL2;\r\n }\r\n\r\n public addUniform(params: UniformParams): void {\r\n const name = params.name;\r\n const type = getUniformVariableType(params.type);\r\n const bind = params.bind;\r\n\r\n this._builder.addUniform(name, type, (prog: ShaderProgram) => {\r\n prog.addProgramUniform(name, (uniform, progParams) => {\r\n bind(uniform, progParams.target.screenSpaceEffectContext);\r\n });\r\n });\r\n }\r\n\r\n public addUniformArray(params: UniformArrayParams): void {\r\n const { name, bind, length } = { ...params };\r\n const type = getUniformVariableType(params.type);\r\n this._builder.addUniformArray(name, type, length, (prog) => {\r\n prog.addProgramUniform(name, (uniform, progParams) => {\r\n bind(uniform, progParams.target.screenSpaceEffectContext);\r\n });\r\n });\r\n }\r\n\r\n public addVarying(name: string, type: VaryingType): void {\r\n this._builder.addVarying(name, getVaryingVariableType(type));\r\n }\r\n\r\n public finish(): void {\r\n const program = this._builder.buildProgram(System.instance.context);\r\n\r\n // NB: compile() will throw with WebGL error log if compile/link fails.\r\n if (CompileStatus.Success !== program.compile())\r\n throw new Error(`Failed to produce shader program for screen-space effect \"${this._name}\"`);\r\n\r\n const technique = new SingularTechnique(program);\r\n const techniqueId = System.instance.techniques.addDynamicTechnique(technique, this._name);\r\n\r\n const effect = new ScreenSpaceEffect(techniqueId, this._name, this._shiftsPixels, this.shouldApply);\r\n System.instance.screenSpaceEffects.add(effect);\r\n }\r\n}\r\n\r\nclass ScreenSpaceEffect {\r\n public readonly techniqueId: TechniqueId;\r\n public readonly name: string;\r\n private readonly _shouldApply?: ShouldApply;\r\n private readonly _shiftsPixels: boolean;\r\n\r\n public constructor(techniqueId: TechniqueId, name: string, shiftsPixels: boolean, shouldApply?: ShouldApply) {\r\n this.techniqueId = techniqueId;\r\n this.name = name;\r\n this._shouldApply = shouldApply;\r\n this._shiftsPixels = shiftsPixels;\r\n }\r\n\r\n public shouldApply(target: Target): boolean {\r\n // Effects only apply during readPixels() if they move pixels around (we need to move pixels in the pick buffers correspondingly).\r\n if (target.isReadPixelsInProgress && !this._shiftsPixels)\r\n return false;\r\n\r\n return undefined === this._shouldApply || this._shouldApply(target.screenSpaceEffectContext);\r\n }\r\n}\r\n\r\nclass ScreenSpaceGeometry extends ViewportQuadGeometry {\r\n public setTechniqueId(id: TechniqueId) {\r\n this._techniqueId = id;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ScreenSpaceEffects {\r\n private readonly _effects = new Map<string, ScreenSpaceEffect>();\r\n private readonly _effectGeometry: ScreenSpaceGeometry;\r\n private readonly _copyGeometry: SingleTexturedViewportQuadGeometry;\r\n private readonly _workingArray: ScreenSpaceEffect[] = [];\r\n\r\n public constructor() {\r\n // We will change the geometry's TechniqueId before applying each technique.\r\n const effectGeometry = ScreenSpaceGeometry.create(TechniqueId.Invalid);\r\n assert(effectGeometry instanceof ScreenSpaceGeometry);\r\n this._effectGeometry = effectGeometry;\r\n\r\n // NB: We'll replace the texture each time we draw.\r\n const copyGeometry = SingleTexturedViewportQuadGeometry.createGeometry(System.instance.lineCodeTexture!.getHandle()!, TechniqueId.CopyColor);\r\n assert(undefined !== copyGeometry);\r\n this._copyGeometry = copyGeometry;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this._effectGeometry);\r\n dispose(this._copyGeometry);\r\n }\r\n\r\n public add(effect: ScreenSpaceEffect): void {\r\n if (undefined !== this._effects.get(effect.name))\r\n throw new Error(`Screen-space effect \"${effect.name}\" is already registered.`);\r\n\r\n this._effects.set(effect.name, effect);\r\n }\r\n\r\n /** Return true if any effects should be applied to this Target. */\r\n public shouldApply(target: Target): boolean {\r\n return this.getApplicableEffects(target).length > 0;\r\n }\r\n\r\n private getApplicableEffects(target: Target): ScreenSpaceEffect[] {\r\n const effects = this._workingArray;\r\n effects.length = 0;\r\n\r\n const names = target.screenSpaceEffects;\r\n for (const name of names) {\r\n const effect = this._effects.get(name);\r\n if (effect && effect.shouldApply(target))\r\n effects.push(effect);\r\n }\r\n\r\n return effects;\r\n }\r\n\r\n /** Apply screen-space effects to the Target's rendered image. */\r\n public apply(target: Target): void {\r\n if (0 === this._effects.size)\r\n return;\r\n\r\n const effects = this.getApplicableEffects(target);\r\n if (0 === effects.length)\r\n return;\r\n\r\n if (target.isReadPixelsInProgress) {\r\n this.applyForReadPixels(effects, target);\r\n return;\r\n }\r\n\r\n const system = System.instance;\r\n system.applyRenderState(RenderState.defaults);\r\n\r\n const copyFbo = target.compositor.screenSpaceEffectFbo;\r\n for (const effect of effects) {\r\n // Copy the rendered image to texture as input to the effect shader.\r\n this._copyGeometry.texture = system.frameBufferStack.currentColorBuffer!.getHandle()!;\r\n system.frameBufferStack.execute(copyFbo, true, false, () => {\r\n const copyParams = getDrawParams(target, this._copyGeometry);\r\n system.techniques.draw(copyParams);\r\n });\r\n\r\n // Run the effect shader with a copy of the current image as input.\r\n this._effectGeometry.setTechniqueId(effect.techniqueId);\r\n const params = getDrawParams(target, this._effectGeometry);\r\n system.techniques.draw(params);\r\n }\r\n }\r\n\r\n private applyForReadPixels(effects: ScreenSpaceEffect[], target: Target): void {\r\n const system = System.instance;\r\n system.applyRenderState(RenderState.defaults);\r\n\r\n // ###TODO: We could use MRT if available here rather than two passes.\r\n const copyFbo = target.compositor.screenSpaceEffectFbo;\r\n for (const effect of effects) {\r\n this._effectGeometry.setTechniqueId(effect.techniqueId);\r\n for (let i = 0; i <= 1; i++) {\r\n // Copy the pick buffer as input to the effect shader.\r\n const buffer = 0 === i ? target.compositor.featureIds : target.compositor.depthAndOrder;\r\n this._copyGeometry.texture = buffer.getHandle()!;\r\n system.frameBufferStack.execute(copyFbo, true, false, () => {\r\n const copyParams = getDrawParams(target, this._copyGeometry);\r\n system.techniques.draw(copyParams);\r\n });\r\n\r\n // Run the effect shader with a copy of the current pick buffer to output to pick buffer.\r\n // ###TODO: Avoid frequent framebuffer allocation.\r\n const effectFbo = FrameBuffer.create([buffer]);\r\n assert(undefined !== effectFbo);\r\n system.frameBufferStack.execute(effectFbo, true, false, () => {\r\n const effectParams = getDrawParams(target, this._effectGeometry);\r\n system.techniques.draw(effectParams);\r\n });\r\n\r\n effectFbo.dispose();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function createScreenSpaceEffectBuilder(params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder {\r\n return new Builder(params);\r\n}\r\n"]}
1
+ {"version":3,"file":"ScreenSpaceEffect.js","sourceRoot":"","sources":["../../../../src/render/webgl/ScreenSpaceEffect.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module WebGL\r\n */\r\n\r\nimport { assert, dispose } from \"@itwin/core-bentley\";\r\nimport {\r\n ScreenSpaceEffectBuilder, ScreenSpaceEffectBuilderParams, ScreenSpaceEffectContext, UniformArrayParams, UniformParams, UniformType, VaryingType,\r\n} from \"../ScreenSpaceEffectBuilder\";\r\nimport { TechniqueId } from \"./TechniqueId\";\r\nimport { ProgramBuilder, VariableType } from \"./ShaderBuilder\";\r\nimport { CompileStatus, ShaderProgram } from \"./ShaderProgram\";\r\nimport { RenderState } from \"./RenderState\";\r\nimport { SingleTexturedViewportQuadGeometry, ViewportQuadGeometry } from \"./CachedGeometry\";\r\nimport { FrameBuffer } from \"./FrameBuffer\";\r\nimport { getDrawParams } from \"./ScratchDrawParams\";\r\nimport { SingularTechnique } from \"./Technique\";\r\nimport { Target } from \"./Target\";\r\nimport { System } from \"./System\";\r\nimport { createScreenSpaceEffectProgramBuilder } from \"./glsl/ScreenSpaceEffect\";\r\n\r\ntype ShouldApply = (context: ScreenSpaceEffectContext) => boolean;\r\n\r\nfunction getUniformVariableType(type: UniformType): VariableType {\r\n switch (type) {\r\n case UniformType.Bool: return VariableType.Boolean;\r\n case UniformType.Int: return VariableType.Int;\r\n case UniformType.Float: return VariableType.Float;\r\n case UniformType.Vec2: return VariableType.Vec2;\r\n case UniformType.Vec3: return VariableType.Vec3;\r\n case UniformType.Vec4: return VariableType.Vec4;\r\n }\r\n}\r\n\r\nfunction getVaryingVariableType(type: VaryingType): VariableType {\r\n switch (type) {\r\n case VaryingType.Float: return VariableType.Float;\r\n case VaryingType.Vec2: return VariableType.Vec2;\r\n case VaryingType.Vec3: return VariableType.Vec3;\r\n case VaryingType.Vec4: return VariableType.Vec4;\r\n }\r\n}\r\n\r\nclass Builder {\r\n private readonly _name: string;\r\n private readonly _builder: ProgramBuilder;\r\n private readonly _shiftsPixels: boolean;\r\n public shouldApply?: ShouldApply;\r\n\r\n public constructor(params: ScreenSpaceEffectBuilderParams) {\r\n this._name = params.name;\r\n this._builder = createScreenSpaceEffectProgramBuilder(params);\r\n this._builder.setDebugDescription(`Screen-space: ${this._name}`);\r\n this._shiftsPixels = undefined !== params.source.sampleSourcePixel;\r\n }\r\n\r\n public get isWebGL2(): boolean {\r\n return true;\r\n }\r\n\r\n public addUniform(params: UniformParams): void {\r\n const name = params.name;\r\n const type = getUniformVariableType(params.type);\r\n const bind = params.bind;\r\n\r\n this._builder.addUniform(name, type, (prog: ShaderProgram) => {\r\n prog.addProgramUniform(name, (uniform, progParams) => {\r\n bind(uniform, progParams.target.screenSpaceEffectContext);\r\n });\r\n });\r\n }\r\n\r\n public addUniformArray(params: UniformArrayParams): void {\r\n const { name, bind, length } = { ...params };\r\n const type = getUniformVariableType(params.type);\r\n this._builder.addUniformArray(name, type, length, (prog) => {\r\n prog.addProgramUniform(name, (uniform, progParams) => {\r\n bind(uniform, progParams.target.screenSpaceEffectContext);\r\n });\r\n });\r\n }\r\n\r\n public addVarying(name: string, type: VaryingType): void {\r\n this._builder.addVarying(name, getVaryingVariableType(type));\r\n }\r\n\r\n public finish(): void {\r\n const program = this._builder.buildProgram(System.instance.context);\r\n\r\n // NB: compile() will throw with WebGL error log if compile/link fails.\r\n if (CompileStatus.Success !== program.compile())\r\n throw new Error(`Failed to produce shader program for screen-space effect \"${this._name}\"`);\r\n\r\n const technique = new SingularTechnique(program);\r\n const techniqueId = System.instance.techniques.addDynamicTechnique(technique, this._name);\r\n\r\n const effect = new ScreenSpaceEffect(techniqueId, this._name, this._shiftsPixels, this.shouldApply);\r\n System.instance.screenSpaceEffects.add(effect);\r\n }\r\n}\r\n\r\nclass ScreenSpaceEffect {\r\n public readonly techniqueId: TechniqueId;\r\n public readonly name: string;\r\n private readonly _shouldApply?: ShouldApply;\r\n private readonly _shiftsPixels: boolean;\r\n\r\n public constructor(techniqueId: TechniqueId, name: string, shiftsPixels: boolean, shouldApply?: ShouldApply) {\r\n this.techniqueId = techniqueId;\r\n this.name = name;\r\n this._shouldApply = shouldApply;\r\n this._shiftsPixels = shiftsPixels;\r\n }\r\n\r\n public shouldApply(target: Target): boolean {\r\n // Effects only apply during readPixels() if they move pixels around (we need to move pixels in the pick buffers correspondingly).\r\n if (target.isReadPixelsInProgress && !this._shiftsPixels)\r\n return false;\r\n\r\n return undefined === this._shouldApply || this._shouldApply(target.screenSpaceEffectContext);\r\n }\r\n}\r\n\r\nclass ScreenSpaceGeometry extends ViewportQuadGeometry {\r\n public setTechniqueId(id: TechniqueId) {\r\n this._techniqueId = id;\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport class ScreenSpaceEffects {\r\n private readonly _effects = new Map<string, ScreenSpaceEffect>();\r\n private readonly _effectGeometry: ScreenSpaceGeometry;\r\n private readonly _copyGeometry: SingleTexturedViewportQuadGeometry;\r\n private readonly _workingArray: ScreenSpaceEffect[] = [];\r\n\r\n public constructor() {\r\n // We will change the geometry's TechniqueId before applying each technique.\r\n const effectGeometry = ScreenSpaceGeometry.create(TechniqueId.Invalid);\r\n assert(effectGeometry instanceof ScreenSpaceGeometry);\r\n this._effectGeometry = effectGeometry;\r\n\r\n // NB: We'll replace the texture each time we draw.\r\n const copyGeometry = SingleTexturedViewportQuadGeometry.createGeometry(System.instance.lineCodeTexture!.getHandle()!, TechniqueId.CopyColor);\r\n assert(undefined !== copyGeometry);\r\n this._copyGeometry = copyGeometry;\r\n }\r\n\r\n public dispose(): void {\r\n dispose(this._effectGeometry);\r\n dispose(this._copyGeometry);\r\n }\r\n\r\n public add(effect: ScreenSpaceEffect): void {\r\n if (undefined !== this._effects.get(effect.name))\r\n throw new Error(`Screen-space effect \"${effect.name}\" is already registered.`);\r\n\r\n this._effects.set(effect.name, effect);\r\n }\r\n\r\n /** Return true if any effects should be applied to this Target. */\r\n public shouldApply(target: Target): boolean {\r\n return this.getApplicableEffects(target).length > 0;\r\n }\r\n\r\n private getApplicableEffects(target: Target): ScreenSpaceEffect[] {\r\n const effects = this._workingArray;\r\n effects.length = 0;\r\n\r\n const names = target.screenSpaceEffects;\r\n for (const name of names) {\r\n const effect = this._effects.get(name);\r\n if (effect && effect.shouldApply(target))\r\n effects.push(effect);\r\n }\r\n\r\n return effects;\r\n }\r\n\r\n /** Apply screen-space effects to the Target's rendered image. */\r\n public apply(target: Target): void {\r\n if (0 === this._effects.size)\r\n return;\r\n\r\n const effects = this.getApplicableEffects(target);\r\n if (0 === effects.length)\r\n return;\r\n\r\n if (target.isReadPixelsInProgress) {\r\n this.applyForReadPixels(effects, target);\r\n return;\r\n }\r\n\r\n const system = System.instance;\r\n system.applyRenderState(RenderState.defaults);\r\n\r\n const copyFbo = target.compositor.screenSpaceEffectFbo;\r\n for (const effect of effects) {\r\n // Copy the rendered image to texture as input to the effect shader.\r\n this._copyGeometry.texture = system.frameBufferStack.currentColorBuffer!.getHandle()!;\r\n system.frameBufferStack.execute(copyFbo, true, false, () => {\r\n const copyParams = getDrawParams(target, this._copyGeometry);\r\n system.techniques.draw(copyParams);\r\n });\r\n\r\n // Run the effect shader with a copy of the current image as input.\r\n this._effectGeometry.setTechniqueId(effect.techniqueId);\r\n const params = getDrawParams(target, this._effectGeometry);\r\n system.techniques.draw(params);\r\n }\r\n }\r\n\r\n private applyForReadPixels(effects: ScreenSpaceEffect[], target: Target): void {\r\n const system = System.instance;\r\n system.applyRenderState(RenderState.defaults);\r\n\r\n // ###TODO: We could use MRT if available here rather than two passes.\r\n const copyFbo = target.compositor.screenSpaceEffectFbo;\r\n for (const effect of effects) {\r\n this._effectGeometry.setTechniqueId(effect.techniqueId);\r\n for (let i = 0; i <= 1; i++) {\r\n // Copy the pick buffer as input to the effect shader.\r\n const buffer = 0 === i ? target.compositor.featureIds : target.compositor.depthAndOrder;\r\n this._copyGeometry.texture = buffer.getHandle()!;\r\n system.frameBufferStack.execute(copyFbo, true, false, () => {\r\n const copyParams = getDrawParams(target, this._copyGeometry);\r\n system.techniques.draw(copyParams);\r\n });\r\n\r\n // Run the effect shader with a copy of the current pick buffer to output to pick buffer.\r\n // ###TODO: Avoid frequent framebuffer allocation.\r\n const effectFbo = FrameBuffer.create([buffer]);\r\n assert(undefined !== effectFbo);\r\n system.frameBufferStack.execute(effectFbo, true, false, () => {\r\n const effectParams = getDrawParams(target, this._effectGeometry);\r\n system.techniques.draw(effectParams);\r\n });\r\n\r\n effectFbo.dispose();\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport function createScreenSpaceEffectBuilder(params: ScreenSpaceEffectBuilderParams): ScreenSpaceEffectBuilder {\r\n return new Builder(params);\r\n}\r\n"]}
@@ -1,7 +1,6 @@
1
1
  /** @packageDocumentation
2
2
  * @module WebGL
3
3
  */
4
- import { WebGLContext } from "@itwin/webgl-compatibility";
5
4
  import { AttributeDetails } from "./AttributeMap";
6
5
  import { ShaderProgram } from "./ShaderProgram";
7
6
  import { PositionType } from "./TechniqueFlags";
@@ -270,7 +269,7 @@ export declare class ProgramBuilder {
270
269
  addFunctionComputedVarying(name: string, type: VariableType, funcName: string, funcBody: string): void;
271
270
  addFunctionComputedVaryingWithArgs(name: string, type: VariableType, funcCall: string, funcDef: string): void;
272
271
  /** Assembles the vertex and fragment shader code and returns a ready-to-compile shader program */
273
- buildProgram(gl: WebGLContext): ShaderProgram;
272
+ buildProgram(gl: WebGL2RenderingContext): ShaderProgram;
274
273
  setDebugDescription(description: string): void;
275
274
  /** Returns a deep copy of this program builder. */
276
275
  clone(): ProgramBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,6 @@ import { addInstancedModelMatrixRTC } from "./glsl/Instancing";
10
10
  import { volClassOpaqueColor } from "./glsl/PlanarClassification";
11
11
  import { addPosition, earlyVertexDiscard, lateVertexDiscard, vertexDiscard } from "./glsl/Vertex";
12
12
  import { ShaderProgram } from "./ShaderProgram";
13
- import { System } from "./System";
14
13
  /** @internal */
15
14
  var Convert;
16
15
  (function (Convert) {
@@ -36,12 +35,7 @@ var Convert;
36
35
  function scopeToString(scope, isVertexShader) {
37
36
  switch (scope) {
38
37
  case 0 /* Global */: return "";
39
- case 1 /* Varying */: {
40
- if (System.instance.capabilities.isWebGL2)
41
- return (isVertexShader ? "out" : "in");
42
- else
43
- return "varying";
44
- }
38
+ case 1 /* Varying */: return (isVertexShader ? "out" : "in");
45
39
  case 2 /* Uniform */: return "uniform";
46
40
  default:
47
41
  assert(false);
@@ -154,10 +148,7 @@ export class ShaderVariables {
154
148
  this.addGlobal(name, type, value, true);
155
149
  }
156
150
  addBitFlagConstant(name, value) {
157
- if (System.instance.capabilities.isWebGL2)
158
- this.addGlobal(name, 10 /* Uint */, `${(2 ** value).toFixed(0)}u`, true);
159
- else
160
- this.addGlobal(name, 2 /* Float */, (1.0 / (2 ** (value + 1))).toExponential(7), true);
151
+ this.addGlobal(name, 10 /* Uint */, `${(2 ** value).toFixed(0)}u`, true);
161
152
  }
162
153
  /** Constructs the lines of glsl code declaring the variables of a certain scope. */
163
154
  buildScopeDeclarations(isVertexShader, scope, constants) {
@@ -387,18 +378,10 @@ export class ShaderBuilder extends ShaderVariables {
387
378
  this._initializers = new Array();
388
379
  this._components.length = maxComponents;
389
380
  this._flags = flags;
390
- if (System.instance.capabilities.isWebGL2) {
391
- this._version = "#version 300 es";
392
- this.addDefine("TEXTURE", "texture");
393
- this.addDefine("TEXTURE_CUBE", "texture");
394
- this.addDefine("TEXTURE_PROJ", "textureProj");
395
- }
396
- else {
397
- this._version = "#version 100";
398
- this.addDefine("TEXTURE", "texture2D");
399
- this.addDefine("TEXTURE_CUBE", "textureCube");
400
- this.addDefine("TEXTURE_PROJ", "texture2DProj");
401
- }
381
+ this._version = "#version 300 es";
382
+ this.addDefine("TEXTURE", "texture");
383
+ this.addDefine("TEXTURE_CUBE", "texture");
384
+ this.addDefine("TEXTURE_PROJ", "textureProj");
402
385
  }
403
386
  get usesInstancedGeometry() {
404
387
  return !!this._flags.instanced;
@@ -488,17 +471,13 @@ export class ShaderBuilder extends ShaderVariables {
488
471
  src.newline();
489
472
  // Attribute declarations
490
473
  if (attrMap !== undefined) {
491
- const webGL2 = System.instance.capabilities.isWebGL2;
492
474
  attrMap.forEach((attr, key) => {
493
- if (webGL2)
494
- src.addline(`in ${Convert.typeToString(attr.type)} ${key};`);
495
- else
496
- src.addline(`attribute ${Convert.typeToString(attr.type)} ${key};`);
475
+ src.addline(`in ${Convert.typeToString(attr.type)} ${key};`);
497
476
  });
498
477
  }
499
478
  // Variable declarations
500
479
  src.add(this.buildDeclarations(isVertexShader));
501
- // Layouts (WebGL2 only)
480
+ // Layouts
502
481
  for (const layout of this._fragOutputs)
503
482
  src.addline(layout);
504
483
  // Functions
@@ -653,26 +632,15 @@ export class FragmentShaderBuilder extends ShaderBuilder {
653
632
  constructor(flags = {}) {
654
633
  super(22 /* COUNT */, flags);
655
634
  this.requiresEarlyZWorkaround = false;
656
- if (System.instance.capabilities.isWebGL2)
657
- this.addFragOutput("FragColor", -1);
658
- else
659
- this.addDefine("FragColor", "gl_FragColor");
635
+ this.addFragOutput("FragColor", -1);
660
636
  }
661
637
  get(id) { return this.getComponent(id); }
662
638
  set(id, component) { this.addComponent(id, component); }
663
639
  unset(id) { this.removeComponent(id); }
664
640
  addDrawBuffersExtension(n) {
665
- if (System.instance.capabilities.isWebGL2) {
666
- this.clearFragOutput();
667
- for (let i = 0; i < n; i++)
668
- this.addFragOutput(`FragColor${i}`, i);
669
- }
670
- else {
671
- assert(System.instance.capabilities.supportsDrawBuffers, "WEBGL_draw_buffers unsupported");
672
- this.addExtension("GL_EXT_draw_buffers");
673
- for (let i = 0; i < n; i++)
674
- this.addDefine(`FragColor${i}`, `gl_FragData[${i}]`);
675
- }
641
+ this.clearFragOutput();
642
+ for (let i = 0; i < n; i++)
643
+ this.addFragOutput(`FragColor${i}`, i);
676
644
  }
677
645
  buildSource() {
678
646
  const applyLighting = this.get(8 /* ApplyLighting */);
@@ -707,10 +675,7 @@ export class FragmentShaderBuilder extends ShaderBuilder {
707
675
  if (undefined !== finalizeDepth) {
708
676
  prelude.addFunction("float finalizeDepth()", finalizeDepth);
709
677
  main.addline(" float finalDepth = finalizeDepth();");
710
- if (System.instance.capabilities.isWebGL2)
711
- main.addline(" gl_FragDepth = finalDepth;");
712
- else
713
- main.addline(" gl_FragDepthEXT = finalDepth;");
678
+ main.addline(" gl_FragDepth = finalDepth;");
714
679
  }
715
680
  let clipIndent = "";
716
681
  const applyClipping = this.get(10 /* ApplyClipping */);