@itwin/core-frontend 3.0.0-dev.148 → 3.0.0-dev.153

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 (259) hide show
  1. package/lib/cjs/Marker.d.ts +9 -2
  2. package/lib/cjs/Marker.d.ts.map +1 -1
  3. package/lib/cjs/Marker.js +33 -5
  4. package/lib/cjs/Marker.js.map +1 -1
  5. package/lib/cjs/RealityDataSource.js +1 -12
  6. package/lib/cjs/RealityDataSource.js.map +1 -1
  7. package/lib/cjs/render/RenderMemory.d.ts +21 -15
  8. package/lib/cjs/render/RenderMemory.d.ts.map +1 -1
  9. package/lib/cjs/render/RenderMemory.js +21 -15
  10. package/lib/cjs/render/RenderMemory.js.map +1 -1
  11. package/lib/cjs/render/RenderSystem.d.ts +2 -0
  12. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  13. package/lib/cjs/render/RenderSystem.js +2 -0
  14. package/lib/cjs/render/RenderSystem.js.map +1 -1
  15. package/lib/cjs/render/primitives/EdgeParams.d.ts +35 -1
  16. package/lib/cjs/render/primitives/EdgeParams.d.ts.map +1 -1
  17. package/lib/cjs/render/primitives/EdgeParams.js +114 -10
  18. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  19. package/lib/cjs/render/primitives/VertexTable.d.ts +1 -0
  20. package/lib/cjs/render/primitives/VertexTable.d.ts.map +1 -1
  21. package/lib/cjs/render/primitives/VertexTable.js +6 -1
  22. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  23. package/lib/cjs/render/webgl/AttributeMap.js +5 -5
  24. package/lib/cjs/render/webgl/CachedGeometry.d.ts +2 -0
  25. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  26. package/lib/cjs/render/webgl/CachedGeometry.js +14 -13
  27. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  28. package/lib/cjs/render/webgl/DrawCommand.js +2 -2
  29. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  30. package/lib/cjs/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  31. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +90 -0
  32. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  33. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -0
  34. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  35. package/lib/cjs/render/webgl/InstancedGeometry.js +1 -0
  36. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  37. package/lib/cjs/render/webgl/Mesh.d.ts +2 -0
  38. package/lib/cjs/render/webgl/Mesh.d.ts.map +1 -1
  39. package/lib/cjs/render/webgl/Mesh.js +7 -1
  40. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  41. package/lib/cjs/render/webgl/PlanarClassifier.js +1 -1
  42. package/lib/cjs/render/webgl/PlanarGrid.js +2 -2
  43. package/lib/cjs/render/webgl/RealityMesh.js +5 -5
  44. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  45. package/lib/cjs/render/webgl/RenderFlags.d.ts +4 -1
  46. package/lib/cjs/render/webgl/RenderFlags.d.ts.map +1 -1
  47. package/lib/cjs/render/webgl/RenderFlags.js +6 -1
  48. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  49. package/lib/cjs/render/webgl/SceneCompositor.js +6 -6
  50. package/lib/cjs/render/webgl/ScreenSpaceEffect.js +1 -1
  51. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +16 -14
  52. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  53. package/lib/cjs/render/webgl/ShaderBuilder.js +19 -15
  54. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  55. package/lib/cjs/render/webgl/System.d.ts +2 -0
  56. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  57. package/lib/cjs/render/webgl/System.js +2 -0
  58. package/lib/cjs/render/webgl/System.js.map +1 -1
  59. package/lib/cjs/render/webgl/Target.js +1 -1
  60. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  61. package/lib/cjs/render/webgl/Technique.js +72 -57
  62. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  63. package/lib/cjs/render/webgl/TechniqueId.d.ts +29 -28
  64. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  65. package/lib/cjs/render/webgl/TechniqueId.js +7 -7
  66. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  67. package/lib/cjs/render/webgl/glsl/Animation.js +1 -1
  68. package/lib/cjs/render/webgl/glsl/Color.js +1 -1
  69. package/lib/cjs/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  70. package/lib/cjs/render/webgl/glsl/CopyStencil.js +4 -7
  71. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  72. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +1 -1
  73. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  74. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -1
  75. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  76. package/lib/cjs/render/webgl/glsl/Edge.js +132 -14
  77. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  78. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  79. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +13 -10
  80. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  81. package/lib/cjs/render/webgl/glsl/Fragment.d.ts.map +1 -1
  82. package/lib/cjs/render/webgl/glsl/Fragment.js +9 -1
  83. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  84. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts +4 -2
  85. package/lib/cjs/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  86. package/lib/cjs/render/webgl/glsl/LookupTable.js +7 -3
  87. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  88. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +2 -2
  89. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  90. package/lib/cjs/render/webgl/glsl/PointCloud.js +2 -2
  91. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  92. package/lib/cjs/render/webgl/glsl/PointString.js +1 -1
  93. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  94. package/lib/cjs/render/webgl/glsl/Polyline.js +1 -1
  95. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  96. package/lib/cjs/render/webgl/glsl/RealityMesh.js +4 -4
  97. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  98. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  99. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  100. package/lib/cjs/render/webgl/glsl/SkyBox.js +1 -1
  101. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  102. package/lib/cjs/render/webgl/glsl/SkySphere.js +1 -1
  103. package/lib/cjs/render/webgl/glsl/Surface.js +3 -3
  104. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  105. package/lib/cjs/render/webgl/glsl/Vertex.js +1 -1
  106. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  107. package/lib/cjs/render/webgl/glsl/ViewportQuad.js +1 -1
  108. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  109. package/lib/cjs/tile/IModelTile.d.ts.map +1 -1
  110. package/lib/cjs/tile/IModelTile.js +1 -0
  111. package/lib/cjs/tile/IModelTile.js.map +1 -1
  112. package/lib/cjs/tile/ImdlReader.d.ts +1 -0
  113. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  114. package/lib/cjs/tile/ImdlReader.js +21 -1
  115. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  116. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  117. package/lib/cjs/tile/PrimaryTileTree.js +4 -3
  118. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  119. package/lib/cjs/tile/TileAdmin.d.ts +9 -0
  120. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  121. package/lib/cjs/tile/TileAdmin.js +18 -13
  122. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  123. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  124. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +4 -3
  125. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  126. package/lib/cjs/webgl.d.ts +1 -0
  127. package/lib/cjs/webgl.d.ts.map +1 -1
  128. package/lib/cjs/webgl.js +1 -0
  129. package/lib/cjs/webgl.js.map +1 -1
  130. package/lib/esm/Marker.d.ts +9 -2
  131. package/lib/esm/Marker.d.ts.map +1 -1
  132. package/lib/esm/Marker.js +34 -6
  133. package/lib/esm/Marker.js.map +1 -1
  134. package/lib/esm/RealityDataSource.js +2 -13
  135. package/lib/esm/RealityDataSource.js.map +1 -1
  136. package/lib/esm/render/RenderMemory.d.ts +21 -15
  137. package/lib/esm/render/RenderMemory.d.ts.map +1 -1
  138. package/lib/esm/render/RenderMemory.js +21 -15
  139. package/lib/esm/render/RenderMemory.js.map +1 -1
  140. package/lib/esm/render/RenderSystem.d.ts +2 -0
  141. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  142. package/lib/esm/render/RenderSystem.js +2 -0
  143. package/lib/esm/render/RenderSystem.js.map +1 -1
  144. package/lib/esm/render/primitives/EdgeParams.d.ts +35 -1
  145. package/lib/esm/render/primitives/EdgeParams.d.ts.map +1 -1
  146. package/lib/esm/render/primitives/EdgeParams.js +114 -10
  147. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  148. package/lib/esm/render/primitives/VertexTable.d.ts +1 -0
  149. package/lib/esm/render/primitives/VertexTable.d.ts.map +1 -1
  150. package/lib/esm/render/primitives/VertexTable.js +6 -1
  151. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  152. package/lib/esm/render/webgl/AttributeMap.js +5 -5
  153. package/lib/esm/render/webgl/CachedGeometry.d.ts +2 -0
  154. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  155. package/lib/esm/render/webgl/CachedGeometry.js +14 -13
  156. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  157. package/lib/esm/render/webgl/DrawCommand.js +2 -2
  158. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts +51 -0
  159. package/lib/esm/render/webgl/IndexedEdgeGeometry.d.ts.map +1 -0
  160. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +85 -0
  161. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -0
  162. package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -0
  163. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  164. package/lib/esm/render/webgl/InstancedGeometry.js +1 -0
  165. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  166. package/lib/esm/render/webgl/Mesh.d.ts +2 -0
  167. package/lib/esm/render/webgl/Mesh.d.ts.map +1 -1
  168. package/lib/esm/render/webgl/Mesh.js +7 -1
  169. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  170. package/lib/esm/render/webgl/PlanarClassifier.js +1 -1
  171. package/lib/esm/render/webgl/PlanarGrid.js +2 -2
  172. package/lib/esm/render/webgl/RealityMesh.js +5 -5
  173. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  174. package/lib/esm/render/webgl/RenderFlags.d.ts +4 -1
  175. package/lib/esm/render/webgl/RenderFlags.d.ts.map +1 -1
  176. package/lib/esm/render/webgl/RenderFlags.js +6 -1
  177. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  178. package/lib/esm/render/webgl/SceneCompositor.js +6 -6
  179. package/lib/esm/render/webgl/ScreenSpaceEffect.js +1 -1
  180. package/lib/esm/render/webgl/ShaderBuilder.d.ts +16 -14
  181. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  182. package/lib/esm/render/webgl/ShaderBuilder.js +19 -15
  183. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  184. package/lib/esm/render/webgl/System.d.ts +2 -0
  185. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  186. package/lib/esm/render/webgl/System.js +2 -0
  187. package/lib/esm/render/webgl/System.js.map +1 -1
  188. package/lib/esm/render/webgl/Target.js +1 -1
  189. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  190. package/lib/esm/render/webgl/Technique.js +72 -57
  191. package/lib/esm/render/webgl/Technique.js.map +1 -1
  192. package/lib/esm/render/webgl/TechniqueId.d.ts +29 -28
  193. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  194. package/lib/esm/render/webgl/TechniqueId.js +7 -7
  195. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  196. package/lib/esm/render/webgl/glsl/Animation.js +1 -1
  197. package/lib/esm/render/webgl/glsl/Color.js +1 -1
  198. package/lib/esm/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
  199. package/lib/esm/render/webgl/glsl/CopyStencil.js +4 -7
  200. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  201. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +1 -1
  202. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  203. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -1
  204. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  205. package/lib/esm/render/webgl/glsl/Edge.js +132 -14
  206. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  207. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  208. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +13 -10
  209. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  210. package/lib/esm/render/webgl/glsl/Fragment.d.ts.map +1 -1
  211. package/lib/esm/render/webgl/glsl/Fragment.js +9 -1
  212. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  213. package/lib/esm/render/webgl/glsl/LookupTable.d.ts +4 -2
  214. package/lib/esm/render/webgl/glsl/LookupTable.d.ts.map +1 -1
  215. package/lib/esm/render/webgl/glsl/LookupTable.js +7 -3
  216. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  217. package/lib/esm/render/webgl/glsl/PlanarGrid.js +2 -2
  218. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  219. package/lib/esm/render/webgl/glsl/PointCloud.js +2 -2
  220. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  221. package/lib/esm/render/webgl/glsl/PointString.js +1 -1
  222. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  223. package/lib/esm/render/webgl/glsl/Polyline.js +1 -1
  224. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  225. package/lib/esm/render/webgl/glsl/RealityMesh.js +4 -4
  226. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  227. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +1 -1
  228. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  229. package/lib/esm/render/webgl/glsl/SkyBox.js +1 -1
  230. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  231. package/lib/esm/render/webgl/glsl/SkySphere.js +1 -1
  232. package/lib/esm/render/webgl/glsl/Surface.js +3 -3
  233. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  234. package/lib/esm/render/webgl/glsl/Vertex.js +1 -1
  235. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  236. package/lib/esm/render/webgl/glsl/ViewportQuad.js +1 -1
  237. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  238. package/lib/esm/tile/IModelTile.d.ts.map +1 -1
  239. package/lib/esm/tile/IModelTile.js +1 -0
  240. package/lib/esm/tile/IModelTile.js.map +1 -1
  241. package/lib/esm/tile/ImdlReader.d.ts +1 -0
  242. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  243. package/lib/esm/tile/ImdlReader.js +21 -1
  244. package/lib/esm/tile/ImdlReader.js.map +1 -1
  245. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  246. package/lib/esm/tile/PrimaryTileTree.js +5 -4
  247. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  248. package/lib/esm/tile/TileAdmin.d.ts +9 -0
  249. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  250. package/lib/esm/tile/TileAdmin.js +19 -14
  251. package/lib/esm/tile/TileAdmin.js.map +1 -1
  252. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  253. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +4 -3
  254. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  255. package/lib/esm/webgl.d.ts +1 -0
  256. package/lib/esm/webgl.d.ts.map +1 -1
  257. package/lib/esm/webgl.js +1 -0
  258. package/lib/esm/webgl.js.map +1 -1
  259. package/package.json +22 -22
@@ -37,6 +37,8 @@ export declare const enum GeometryType {
37
37
  ArrayedPoints = 2
38
38
  }
39
39
  /** Reserved texture units for specific sampler variables, to avoid conflicts between shader components which each have their own textures.
40
+ * WebGL 1 guarantees a minimum of 8 vertex texture units, and iOS provides no more than that.
41
+ * WebGL 2 guarantees a minimum of 15 vertex texture units.
40
42
  * @internal
41
43
  */
42
44
  export declare enum TextureUnit {
@@ -66,7 +68,8 @@ export declare enum TextureUnit {
66
68
  RealityMesh3,
67
69
  RealityMesh4,
68
70
  RealityMesh5,
69
- RealityMeshThematicGradient
71
+ RealityMeshThematicGradient,
72
+ EdgeLUT
70
73
  }
71
74
  /**
72
75
  * Defines the order in which primitives are rendered within a GLESList. This is chiefly
@@ -1 +1 @@
1
- {"version":3,"file":"RenderFlags.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RenderFlags.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"RenderFlags.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/RenderFlags.ts"],"names":[],"mappings":"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"}
@@ -10,6 +10,8 @@
10
10
  Object.defineProperty(exports, "__esModule", { value: true });
11
11
  exports.isPlanar = exports.TextureUnit = void 0;
12
12
  /** Reserved texture units for specific sampler variables, to avoid conflicts between shader components which each have their own textures.
13
+ * WebGL 1 guarantees a minimum of 8 vertex texture units, and iOS provides no more than that.
14
+ * WebGL 2 guarantees a minimum of 15 vertex texture units.
13
15
  * @internal
14
16
  */
15
17
  var TextureUnit;
@@ -37,14 +39,17 @@ var TextureUnit;
37
39
  // Texture unit 7 is overloaded. Therefore receiving shadows and thematic display are mutually exclusive.
38
40
  TextureUnit[TextureUnit["ShadowMap"] = TextureUnit.Seven] = "ShadowMap";
39
41
  TextureUnit[TextureUnit["ThematicSensors"] = TextureUnit.Seven] = "ThematicSensors";
40
- // The number of allowable map layers for either background or overlay map is limited to 3 if only 8 texture units is available (IOS)... 6 layers are available if the hardware supports them.
42
+ // Textures used for up to 3 background or overlay map layers.
41
43
  TextureUnit[TextureUnit["RealityMesh0"] = TextureUnit.Two] = "RealityMesh0";
42
44
  TextureUnit[TextureUnit["RealityMesh1"] = TextureUnit.VertexLUT] = "RealityMesh1";
43
45
  TextureUnit[TextureUnit["RealityMesh2"] = TextureUnit.ShadowMap] = "RealityMesh2";
46
+ // If more than 8 texture units are available, 3 additional background or overlay map layers.
44
47
  TextureUnit[TextureUnit["RealityMesh3"] = WebGLRenderingContext.TEXTURE8] = "RealityMesh3";
45
48
  TextureUnit[TextureUnit["RealityMesh4"] = WebGLRenderingContext.TEXTURE9] = "RealityMesh4";
46
49
  TextureUnit[TextureUnit["RealityMesh5"] = WebGLRenderingContext.TEXTURE10] = "RealityMesh5";
47
50
  TextureUnit[TextureUnit["RealityMeshThematicGradient"] = WebGLRenderingContext.TEXTURE11] = "RealityMeshThematicGradient";
51
+ // Lookup table for indexed edges - used only if WebGL 2 is available.
52
+ TextureUnit[TextureUnit["EdgeLUT"] = WebGLRenderingContext.TEXTURE12] = "EdgeLUT";
48
53
  })(TextureUnit = exports.TextureUnit || (exports.TextureUnit = {}));
49
54
  /** @internal */
50
55
  function isPlanar(order) { return order >= 8 /* PlanarBit */; }
@@ -1 +1 @@
1
- {"version":3,"file":"RenderFlags.js","sourceRoot":"","sources":["../../../../src/render/webgl/RenderFlags.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,yCAAyC;;;AAuCzC;;GAEG;AACH,IAAY,WAqCX;AArCD,WAAY,WAAW;IACrB,6DAA6D;IAC7D,kCAAO,qBAAqB,CAAC,QAAQ,UAAA,CAAA;IACrC,iCAAM,qBAAqB,CAAC,QAAQ,SAAA,CAAA;IACpC,iCAAM,qBAAqB,CAAC,QAAQ,SAAA,CAAA;IACpC,mCAAQ,qBAAqB,CAAC,QAAQ,WAAA,CAAA;IACtC,kCAAO,qBAAqB,CAAC,QAAQ,UAAA,CAAA;IACrC,kCAAO,qBAAqB,CAAC,QAAQ,UAAA,CAAA;IACrC,iCAAM,qBAAqB,CAAC,QAAQ,SAAA,CAAA;IACpC,mCAAQ,qBAAqB,CAAC,QAAQ,WAAA,CAAA;IAEtC,wCAAa,YAAA,IAAI,gBAAA,CAAA;IACjB,8CAAmB,YAAA,GAAG,sBAAA,CAAA;IACtB,4CAAiB,YAAA,GAAG,oBAAA,CAAA;IACpB,sCAAW,YAAA,GAAG,cAAA,CAAA;IAEd,2CAAgB,YAAA,KAAK,mBAAA,CAAA;IACrB,+CAAoB,YAAA,IAAI,uBAAA,CAAA;IAExB,uCAAY,YAAA,IAAI,eAAA,CAAA;IAEhB,6HAA6H;IAC7H,2CAAgB,YAAA,GAAG,mBAAA,CAAA;IACnB,kDAAuB,YAAA,GAAG,0BAAA,CAAA;IAC1B,wDAA6B,YAAA,GAAG,gCAAA,CAAA;IAEhC,yGAAyG;IACzG,uCAAY,YAAA,KAAK,eAAA,CAAA;IACjB,6CAAkB,YAAA,KAAK,qBAAA,CAAA;IACvB,8LAA8L;IAC9L,0CAAe,YAAA,GAAG,kBAAA,CAAA;IAClB,0CAAe,YAAA,SAAS,kBAAA,CAAA;IACxB,0CAAe,YAAA,SAAS,kBAAA,CAAA;IACxB,0CAAe,qBAAqB,CAAC,QAAQ,kBAAA,CAAA;IAC7C,0CAAe,qBAAqB,CAAC,QAAQ,kBAAA,CAAA;IAC7C,0CAAe,qBAAqB,CAAC,SAAS,kBAAA,CAAA;IAC9C,yDAA8B,qBAAqB,CAAC,SAAS,iCAAA,CAAA;AAC/D,CAAC,EArCW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QAqCtB;AAgCD,gBAAgB;AAChB,SAAgB,QAAQ,CAAC,KAAkB,IAAa,OAAO,KAAK,qBAAyB,CAAC,CAAC,CAAC;AAAhG,4BAAgG","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/* eslint-disable no-restricted-syntax */\r\n\r\n/** Ordered list of render passes which produce a rendered frame.\r\n * @internal\r\n */\r\nexport const enum RenderPass {\r\n None = 0xff,\r\n Background = 0,\r\n OpaqueLayers, // XY planar models render without depth-testing in order based on priority\r\n OpaqueLinear, // Linear geometry that is opaque and needs to be written to the pick data buffers\r\n OpaquePlanar, // Planar surface geometry that is opaque and needs to be written to the pick data buffers\r\n OpaqueGeneral, // All other opaque geometry (including point clouds and reality meshes) which are not written to the pick data buffers\r\n Classification, // Stencil volumes for normal processing of reality data classification.\r\n TranslucentLayers, // like Layers but drawn without depth write, blending with opaque\r\n Translucent,\r\n HiddenEdge,\r\n Hilite,\r\n OverlayLayers, // Like Layers, but drawn atop all other geometry\r\n WorldOverlay, // Decorations\r\n ViewOverlay, // Decorations\r\n SkyBox,\r\n BackgroundMap,\r\n HiliteClassification, // Secondary hilite pass for stencil volumes to process hilited classifiers for reality data\r\n ClassificationByIndex, // Stencil volumes for processing classification one classifier at a time (used for generating pick data Ids and flashing a single classifier).\r\n HilitePlanarClassification,\r\n PlanarClassification,\r\n VolumeClassifiedRealityData,\r\n COUNT,\r\n}\r\n\r\n/** Describes the type of geometry rendered by a ShaderProgram.\r\n * @internal\r\n */\r\nexport const enum GeometryType {\r\n IndexedTriangles,\r\n IndexedPoints,\r\n ArrayedPoints,\r\n}\r\n\r\n/** Reserved texture units for specific sampler variables, to avoid conflicts between shader components which each have their own textures.\r\n * @internal\r\n */\r\nexport enum TextureUnit {\r\n // For shaders which know exactly which textures will be used\r\n Zero = WebGLRenderingContext.TEXTURE0,\r\n One = WebGLRenderingContext.TEXTURE1,\r\n Two = WebGLRenderingContext.TEXTURE2,\r\n Three = WebGLRenderingContext.TEXTURE3,\r\n Four = WebGLRenderingContext.TEXTURE4,\r\n Five = WebGLRenderingContext.TEXTURE5,\r\n Six = WebGLRenderingContext.TEXTURE6,\r\n Seven = WebGLRenderingContext.TEXTURE7, // Last one available for GLES2\r\n\r\n ClipVolume = Zero,\r\n FeatureSymbology = One,\r\n SurfaceTexture = Two,\r\n LineCode = Two,\r\n\r\n PickFeatureId = Three,\r\n PickDepthAndOrder = Four,\r\n\r\n VertexLUT = Five,\r\n\r\n // Texture unit 6 is overloaded. Therefore classification, hilite classification, and aux channel are all mutually exclusive.\r\n AuxChannelLUT = Six,\r\n PlanarClassification = Six,\r\n PlanarClassificationHilite = Six,\r\n\r\n // Texture unit 7 is overloaded. Therefore receiving shadows and thematic display are mutually exclusive.\r\n ShadowMap = Seven,\r\n ThematicSensors = Seven,\r\n // The number of allowable map layers for either background or overlay map is limited to 3 if only 8 texture units is available (IOS)... 6 layers are available if the hardware supports them.\r\n RealityMesh0 = Two,\r\n RealityMesh1 = VertexLUT, // Reality meshes do not use VertexLUT.\r\n RealityMesh2 = ShadowMap, // Shadow map when picking -- PickDepthAndOrder otherwise....\r\n RealityMesh3 = WebGLRenderingContext.TEXTURE8, // These are used only if available.\r\n RealityMesh4 = WebGLRenderingContext.TEXTURE9,\r\n RealityMesh5 = WebGLRenderingContext.TEXTURE10,\r\n RealityMeshThematicGradient = WebGLRenderingContext.TEXTURE11,\r\n}\r\n\r\n/**\r\n * Defines the order in which primitives are rendered within a GLESList. This is chiefly\r\n * used to sort primitives which originate from the same element. e.g., the blanking fill\r\n * associated with a text field must always render behind the text; the edges of a surface\r\n * must render in front of the surface; etc.\r\n * An exception to the 'same element' rule is provided for planar surfaces and edges thereof\r\n * sketched onto non-planar surfaces. When the depth test is ambiguous the planar geometry\r\n * is always on top of the non-planar surface. This addresses z-fighting when shapes are\r\n * sketched onto surfaces, e.g. as part of push-pull modeling workflows.\r\n * @internal\r\n */\r\nexport const enum RenderOrder {\r\n None = 0,\r\n Background = 1, // i.e., background map drawn without depth\r\n BlankingRegion = 2,\r\n UnlitSurface = 3, // Distinction only made for whether or not to apply ambient occlusion.\r\n LitSurface = 4,\r\n Linear = 5,\r\n Edge = 6,\r\n Silhouette = 7,\r\n\r\n PlanarBit = 8,\r\n\r\n PlanarUnlitSurface = UnlitSurface | PlanarBit,\r\n PlanarLitSurface = LitSurface | PlanarBit,\r\n PlanarLinear = Linear | PlanarBit,\r\n PlanarEdge = Edge | PlanarBit,\r\n PlanarSilhouette = Silhouette | PlanarBit,\r\n}\r\n\r\n/** @internal */\r\nexport function isPlanar(order: RenderOrder): boolean { return order >= RenderOrder.PlanarBit; }\r\n\r\n/** Flags indicating operations to be performed by the post-process composite step.\r\n * @internal\r\n */\r\nexport const enum CompositeFlags {\r\n None = 0,\r\n Translucent = 1 << 0,\r\n Hilite = 1 << 1,\r\n AmbientOcclusion = 1 << 2,\r\n}\r\n\r\n/** Location in boolean array of SurfaceFlags above.\r\n * @internal\r\n */\r\nexport const enum SurfaceBitIndex {\r\n HasTexture,\r\n ApplyLighting,\r\n HasNormals,\r\n IgnoreMaterial,\r\n TransparencyThreshold,\r\n BackgroundFill,\r\n HasColorAndNormal,\r\n OverrideRgb,\r\n NoFaceFront,\r\n HasMaterialAtlas,\r\n Count,\r\n}\r\n\r\n/** Describes attributes of a MeshGeometry object. Used to conditionally execute portion of shader programs.\r\n * @internal\r\n */\r\nexport const enum SurfaceFlags {\r\n None = 0,\r\n HasTexture = 1 << SurfaceBitIndex.HasTexture,\r\n ApplyLighting = 1 << SurfaceBitIndex.ApplyLighting,\r\n HasNormals = 1 << SurfaceBitIndex.HasNormals,\r\n\r\n // NB: In u_surfaceFlags provided to shader, indicates material color/specular/alpha should be ignored. Has no effect on texture.\r\n // If a given feature has the 'ignore material' override set, v_surfaceFlags will be modified to turn on IgnoreMaterial and turn off HasTexture.\r\n IgnoreMaterial = 1 << SurfaceBitIndex.IgnoreMaterial,\r\n\r\n // In HiddenLine and SolidFill modes, a transparency threshold is supplied; surfaces that are more transparent than the threshold are not rendered.\r\n TransparencyThreshold = 1 << SurfaceBitIndex.TransparencyThreshold,\r\n\r\n // For HiddenLine mode\r\n BackgroundFill = 1 << SurfaceBitIndex.BackgroundFill,\r\n\r\n // For textured meshes, the color index in the vertex LUT is unused - we place the normal there instead.\r\n // For untextured lit meshes, the normal is placed after the feature ID.\r\n HasColorAndNormal = 1 << SurfaceBitIndex.HasColorAndNormal,\r\n // For textured meshes, use rgb from v_color instead of from texture.\r\n OverrideRgb = 1 << SurfaceBitIndex.OverrideRgb,\r\n // For geometry with fixed normals (terrain meshes) we must avoid front facing normal reversal or skirts will be incorrectly lit.\r\n NoFaceFront = 1 << SurfaceBitIndex.NoFaceFront,\r\n HasMaterialAtlas = 1 << SurfaceBitIndex.HasMaterialAtlas,\r\n}\r\n\r\n/** @internal */\r\n/** 16-bit flags indicating what aspects of a feature's symbology are overridden.\r\n * @internal\r\n */\r\nexport const enum OvrFlags {\r\n None = 0,\r\n Visibility = 1 << 0,\r\n Rgb = 1 << 1,\r\n Alpha = 1 << 2,\r\n IgnoreMaterial = 1 << 3, // ignore material color, specular properties, and texture.\r\n Flashed = 1 << 4,\r\n NonLocatable = 1 << 5, // do not draw during pick - allows geometry beneath to be picked.\r\n LineCode = 1 << 6,\r\n Weight = 1 << 7,\r\n Hilited = 1 << 8,\r\n Emphasized = 1 << 9, // rendered with \"emphasis\" hilite settings (silhouette etc).\r\n ViewIndependentTransparency = 1 << 10,\r\n\r\n Rgba = Rgb | Alpha,\r\n}\r\n\r\n/** @internal */\r\nexport const enum IsTranslucent { No, Yes, Maybe }\r\n"]}
1
+ {"version":3,"file":"RenderFlags.js","sourceRoot":"","sources":["../../../../src/render/webgl/RenderFlags.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,yCAAyC;;;AAuCzC;;;;GAIG;AACH,IAAY,WA4CX;AA5CD,WAAY,WAAW;IACrB,6DAA6D;IAC7D,kCAAO,qBAAqB,CAAC,QAAQ,UAAA,CAAA;IACrC,iCAAM,qBAAqB,CAAC,QAAQ,SAAA,CAAA;IACpC,iCAAM,qBAAqB,CAAC,QAAQ,SAAA,CAAA;IACpC,mCAAQ,qBAAqB,CAAC,QAAQ,WAAA,CAAA;IACtC,kCAAO,qBAAqB,CAAC,QAAQ,UAAA,CAAA;IACrC,kCAAO,qBAAqB,CAAC,QAAQ,UAAA,CAAA;IACrC,iCAAM,qBAAqB,CAAC,QAAQ,SAAA,CAAA;IACpC,mCAAQ,qBAAqB,CAAC,QAAQ,WAAA,CAAA;IAEtC,wCAAa,YAAA,IAAI,gBAAA,CAAA;IACjB,8CAAmB,YAAA,GAAG,sBAAA,CAAA;IACtB,4CAAiB,YAAA,GAAG,oBAAA,CAAA;IACpB,sCAAW,YAAA,GAAG,cAAA,CAAA;IAEd,2CAAgB,YAAA,KAAK,mBAAA,CAAA;IACrB,+CAAoB,YAAA,IAAI,uBAAA,CAAA;IAExB,uCAAY,YAAA,IAAI,eAAA,CAAA;IAEhB,6HAA6H;IAC7H,2CAAgB,YAAA,GAAG,mBAAA,CAAA;IACnB,kDAAuB,YAAA,GAAG,0BAAA,CAAA;IAC1B,wDAA6B,YAAA,GAAG,gCAAA,CAAA;IAEhC,yGAAyG;IACzG,uCAAY,YAAA,KAAK,eAAA,CAAA;IACjB,6CAAkB,YAAA,KAAK,qBAAA,CAAA;IAEvB,8DAA8D;IAC9D,0CAAe,YAAA,GAAG,kBAAA,CAAA;IAClB,0CAAe,YAAA,SAAS,kBAAA,CAAA;IACxB,0CAAe,YAAA,SAAS,kBAAA,CAAA;IAExB,6FAA6F;IAC7F,0CAAe,qBAAqB,CAAC,QAAQ,kBAAA,CAAA;IAC7C,0CAAe,qBAAqB,CAAC,QAAQ,kBAAA,CAAA;IAC7C,0CAAe,qBAAqB,CAAC,SAAS,kBAAA,CAAA;IAE9C,yDAA8B,qBAAqB,CAAC,SAAS,iCAAA,CAAA;IAE7D,sEAAsE;IACtE,qCAAU,qBAAqB,CAAC,SAAS,aAAA,CAAA;AAC3C,CAAC,EA5CW,WAAW,GAAX,mBAAW,KAAX,mBAAW,QA4CtB;AAgCD,gBAAgB;AAChB,SAAgB,QAAQ,CAAC,KAAkB,IAAa,OAAO,KAAK,qBAAyB,CAAC,CAAC,CAAC;AAAhG,4BAAgG","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/* eslint-disable no-restricted-syntax */\r\n\r\n/** Ordered list of render passes which produce a rendered frame.\r\n * @internal\r\n */\r\nexport const enum RenderPass {\r\n None = 0xff,\r\n Background = 0,\r\n OpaqueLayers, // XY planar models render without depth-testing in order based on priority\r\n OpaqueLinear, // Linear geometry that is opaque and needs to be written to the pick data buffers\r\n OpaquePlanar, // Planar surface geometry that is opaque and needs to be written to the pick data buffers\r\n OpaqueGeneral, // All other opaque geometry (including point clouds and reality meshes) which are not written to the pick data buffers\r\n Classification, // Stencil volumes for normal processing of reality data classification.\r\n TranslucentLayers, // like Layers but drawn without depth write, blending with opaque\r\n Translucent,\r\n HiddenEdge,\r\n Hilite,\r\n OverlayLayers, // Like Layers, but drawn atop all other geometry\r\n WorldOverlay, // Decorations\r\n ViewOverlay, // Decorations\r\n SkyBox,\r\n BackgroundMap,\r\n HiliteClassification, // Secondary hilite pass for stencil volumes to process hilited classifiers for reality data\r\n ClassificationByIndex, // Stencil volumes for processing classification one classifier at a time (used for generating pick data Ids and flashing a single classifier).\r\n HilitePlanarClassification,\r\n PlanarClassification,\r\n VolumeClassifiedRealityData,\r\n COUNT,\r\n}\r\n\r\n/** Describes the type of geometry rendered by a ShaderProgram.\r\n * @internal\r\n */\r\nexport const enum GeometryType {\r\n IndexedTriangles,\r\n IndexedPoints,\r\n ArrayedPoints,\r\n}\r\n\r\n/** Reserved texture units for specific sampler variables, to avoid conflicts between shader components which each have their own textures.\r\n * WebGL 1 guarantees a minimum of 8 vertex texture units, and iOS provides no more than that.\r\n * WebGL 2 guarantees a minimum of 15 vertex texture units.\r\n * @internal\r\n */\r\nexport enum TextureUnit {\r\n // For shaders which know exactly which textures will be used\r\n Zero = WebGLRenderingContext.TEXTURE0,\r\n One = WebGLRenderingContext.TEXTURE1,\r\n Two = WebGLRenderingContext.TEXTURE2,\r\n Three = WebGLRenderingContext.TEXTURE3,\r\n Four = WebGLRenderingContext.TEXTURE4,\r\n Five = WebGLRenderingContext.TEXTURE5,\r\n Six = WebGLRenderingContext.TEXTURE6,\r\n Seven = WebGLRenderingContext.TEXTURE7, // Last one guaranteed available for WebGL 1\r\n\r\n ClipVolume = Zero,\r\n FeatureSymbology = One,\r\n SurfaceTexture = Two,\r\n LineCode = Two,\r\n\r\n PickFeatureId = Three,\r\n PickDepthAndOrder = Four,\r\n\r\n VertexLUT = Five,\r\n\r\n // Texture unit 6 is overloaded. Therefore classification, hilite classification, and aux channel are all mutually exclusive.\r\n AuxChannelLUT = Six,\r\n PlanarClassification = Six,\r\n PlanarClassificationHilite = Six,\r\n\r\n // Texture unit 7 is overloaded. Therefore receiving shadows and thematic display are mutually exclusive.\r\n ShadowMap = Seven,\r\n ThematicSensors = Seven,\r\n\r\n // Textures used for up to 3 background or overlay map layers.\r\n RealityMesh0 = Two,\r\n RealityMesh1 = VertexLUT, // Reality meshes do not use VertexLUT.\r\n RealityMesh2 = ShadowMap, // Shadow map when picking -- PickDepthAndOrder otherwise....\r\n\r\n // If more than 8 texture units are available, 3 additional background or overlay map layers.\r\n RealityMesh3 = WebGLRenderingContext.TEXTURE8,\r\n RealityMesh4 = WebGLRenderingContext.TEXTURE9,\r\n RealityMesh5 = WebGLRenderingContext.TEXTURE10,\r\n\r\n RealityMeshThematicGradient = WebGLRenderingContext.TEXTURE11,\r\n\r\n // Lookup table for indexed edges - used only if WebGL 2 is available.\r\n EdgeLUT = WebGLRenderingContext.TEXTURE12,\r\n}\r\n\r\n/**\r\n * Defines the order in which primitives are rendered within a GLESList. This is chiefly\r\n * used to sort primitives which originate from the same element. e.g., the blanking fill\r\n * associated with a text field must always render behind the text; the edges of a surface\r\n * must render in front of the surface; etc.\r\n * An exception to the 'same element' rule is provided for planar surfaces and edges thereof\r\n * sketched onto non-planar surfaces. When the depth test is ambiguous the planar geometry\r\n * is always on top of the non-planar surface. This addresses z-fighting when shapes are\r\n * sketched onto surfaces, e.g. as part of push-pull modeling workflows.\r\n * @internal\r\n */\r\nexport const enum RenderOrder {\r\n None = 0,\r\n Background = 1, // i.e., background map drawn without depth\r\n BlankingRegion = 2,\r\n UnlitSurface = 3, // Distinction only made for whether or not to apply ambient occlusion.\r\n LitSurface = 4,\r\n Linear = 5,\r\n Edge = 6,\r\n Silhouette = 7,\r\n\r\n PlanarBit = 8,\r\n\r\n PlanarUnlitSurface = UnlitSurface | PlanarBit,\r\n PlanarLitSurface = LitSurface | PlanarBit,\r\n PlanarLinear = Linear | PlanarBit,\r\n PlanarEdge = Edge | PlanarBit,\r\n PlanarSilhouette = Silhouette | PlanarBit,\r\n}\r\n\r\n/** @internal */\r\nexport function isPlanar(order: RenderOrder): boolean { return order >= RenderOrder.PlanarBit; }\r\n\r\n/** Flags indicating operations to be performed by the post-process composite step.\r\n * @internal\r\n */\r\nexport const enum CompositeFlags {\r\n None = 0,\r\n Translucent = 1 << 0,\r\n Hilite = 1 << 1,\r\n AmbientOcclusion = 1 << 2,\r\n}\r\n\r\n/** Location in boolean array of SurfaceFlags above.\r\n * @internal\r\n */\r\nexport const enum SurfaceBitIndex {\r\n HasTexture,\r\n ApplyLighting,\r\n HasNormals,\r\n IgnoreMaterial,\r\n TransparencyThreshold,\r\n BackgroundFill,\r\n HasColorAndNormal,\r\n OverrideRgb,\r\n NoFaceFront,\r\n HasMaterialAtlas,\r\n Count,\r\n}\r\n\r\n/** Describes attributes of a MeshGeometry object. Used to conditionally execute portion of shader programs.\r\n * @internal\r\n */\r\nexport const enum SurfaceFlags {\r\n None = 0,\r\n HasTexture = 1 << SurfaceBitIndex.HasTexture,\r\n ApplyLighting = 1 << SurfaceBitIndex.ApplyLighting,\r\n HasNormals = 1 << SurfaceBitIndex.HasNormals,\r\n\r\n // NB: In u_surfaceFlags provided to shader, indicates material color/specular/alpha should be ignored. Has no effect on texture.\r\n // If a given feature has the 'ignore material' override set, v_surfaceFlags will be modified to turn on IgnoreMaterial and turn off HasTexture.\r\n IgnoreMaterial = 1 << SurfaceBitIndex.IgnoreMaterial,\r\n\r\n // In HiddenLine and SolidFill modes, a transparency threshold is supplied; surfaces that are more transparent than the threshold are not rendered.\r\n TransparencyThreshold = 1 << SurfaceBitIndex.TransparencyThreshold,\r\n\r\n // For HiddenLine mode\r\n BackgroundFill = 1 << SurfaceBitIndex.BackgroundFill,\r\n\r\n // For textured meshes, the color index in the vertex LUT is unused - we place the normal there instead.\r\n // For untextured lit meshes, the normal is placed after the feature ID.\r\n HasColorAndNormal = 1 << SurfaceBitIndex.HasColorAndNormal,\r\n // For textured meshes, use rgb from v_color instead of from texture.\r\n OverrideRgb = 1 << SurfaceBitIndex.OverrideRgb,\r\n // For geometry with fixed normals (terrain meshes) we must avoid front facing normal reversal or skirts will be incorrectly lit.\r\n NoFaceFront = 1 << SurfaceBitIndex.NoFaceFront,\r\n HasMaterialAtlas = 1 << SurfaceBitIndex.HasMaterialAtlas,\r\n}\r\n\r\n/** @internal */\r\n/** 16-bit flags indicating what aspects of a feature's symbology are overridden.\r\n * @internal\r\n */\r\nexport const enum OvrFlags {\r\n None = 0,\r\n Visibility = 1 << 0,\r\n Rgb = 1 << 1,\r\n Alpha = 1 << 2,\r\n IgnoreMaterial = 1 << 3, // ignore material color, specular properties, and texture.\r\n Flashed = 1 << 4,\r\n NonLocatable = 1 << 5, // do not draw during pick - allows geometry beneath to be picked.\r\n LineCode = 1 << 6,\r\n Weight = 1 << 7,\r\n Hilited = 1 << 8,\r\n Emphasized = 1 << 9, // rendered with \"emphasis\" hilite settings (silhouette etc).\r\n ViewIndependentTransparency = 1 << 10,\r\n\r\n Rgba = Rgb | Alpha,\r\n}\r\n\r\n/** @internal */\r\nexport const enum IsTranslucent { No, Yes, Maybe }\r\n"]}
@@ -315,10 +315,10 @@ class Geometry {
315
315
  }
316
316
  enableVolumeClassifier(textures, depth, width, height) {
317
317
  (0, core_bentley_1.assert)(undefined === this.volClassColorStencil && undefined === this.volClassCopyZ && undefined === this.volClassSetBlend && undefined === this.volClassBlend);
318
- this.volClassColorStencil = CachedGeometry_1.ViewportQuadGeometry.create(19 /* VolClassColorUsingStencil */);
319
- this.volClassCopyZ = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(depth.getHandle(), 29 /* VolClassCopyZ */);
318
+ this.volClassColorStencil = CachedGeometry_1.ViewportQuadGeometry.create(20 /* VolClassColorUsingStencil */);
319
+ this.volClassCopyZ = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(depth.getHandle(), 30 /* VolClassCopyZ */);
320
320
  this.volClassSetBlend = CachedGeometry_1.VolumeClassifierGeometry.createVCGeometry(depth.getHandle());
321
- this.volClassBlend = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(textures.volClassBlend.getHandle(), 31 /* VolClassBlend */);
321
+ this.volClassBlend = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(textures.volClassBlend.getHandle(), 32 /* VolClassBlend */);
322
322
  if (!System_1.System.instance.capabilities.supportsFragDepth)
323
323
  this.volClassCopyZWithPoints = CachedGeometry_1.ScreenPointsGeometry.createGeometry(width, height, depth.getHandle());
324
324
  return undefined !== this.volClassColorStencil && undefined !== this.volClassCopyZ && undefined !== this.volClassSetBlend && undefined !== this.volClassBlend
@@ -1598,8 +1598,8 @@ class MRTGeometry extends Geometry {
1598
1598
  return false;
1599
1599
  (0, core_bentley_1.assert)(undefined === this.copyPickBuffers);
1600
1600
  this.copyPickBuffers = CachedGeometry_1.CopyPickBufferGeometry.createGeometry(textures.featureId.getHandle(), textures.depthAndOrder.getHandle());
1601
- this.clearTranslucent = CachedGeometry_1.ViewportQuadGeometry.create(15 /* OITClearTranslucent */);
1602
- this.clearPickAndColor = CachedGeometry_1.ViewportQuadGeometry.create(20 /* ClearPickAndColor */);
1601
+ this.clearTranslucent = CachedGeometry_1.ViewportQuadGeometry.create(16 /* OITClearTranslucent */);
1602
+ this.clearPickAndColor = CachedGeometry_1.ViewportQuadGeometry.create(21 /* ClearPickAndColor */);
1603
1603
  return undefined !== this.copyPickBuffers && undefined !== this.clearTranslucent && undefined !== this.clearPickAndColor;
1604
1604
  }
1605
1605
  get isDisposed() {
@@ -1808,7 +1808,7 @@ class MPGeometry extends Geometry {
1808
1808
  if (!super.init(textures))
1809
1809
  return false;
1810
1810
  (0, core_bentley_1.assert)(undefined === this.copyColor);
1811
- this.copyColor = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(textures.featureId.getHandle(), 17 /* CopyColor */);
1811
+ this.copyColor = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(textures.featureId.getHandle(), 18 /* CopyColor */);
1812
1812
  return undefined !== this.copyColor;
1813
1813
  }
1814
1814
  get isDisposed() { return super.isDisposed && undefined === this.copyColor; }
@@ -107,7 +107,7 @@ class ScreenSpaceEffects {
107
107
  (0, core_bentley_1.assert)(effectGeometry instanceof ScreenSpaceGeometry);
108
108
  this._effectGeometry = effectGeometry;
109
109
  // NB: We'll replace the texture each time we draw.
110
- const copyGeometry = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(System_1.System.instance.lineCodeTexture.getHandle(), 17 /* CopyColor */);
110
+ const copyGeometry = CachedGeometry_1.SingleTexturedViewportQuadGeometry.createGeometry(System_1.System.instance.lineCodeTexture.getHandle(), 18 /* CopyColor */);
111
111
  (0, core_bentley_1.assert)(undefined !== copyGeometry);
112
112
  this._copyGeometry = copyGeometry;
113
113
  }
@@ -171,19 +171,20 @@ export declare class ShaderBuilder extends ShaderVariables {
171
171
  * @internal
172
172
  */
173
173
  export declare const enum VertexShaderComponent {
174
- AdjustRawPosition = 0,
175
- CheckForEarlyDiscard = 1,
176
- ComputeFeatureOverrides = 2,
177
- ComputeMaterial = 3,
178
- ComputeBaseColor = 4,
179
- ApplyMaterialColor = 5,
180
- ApplyFeatureColor = 6,
181
- AdjustContrast = 7,
182
- CheckForDiscard = 8,
183
- ComputePosition = 9,
184
- CheckForLateDiscard = 10,
185
- FinalizePosition = 11,
186
- COUNT = 12
174
+ ComputeQuantizedPosition = 0,
175
+ AdjustRawPosition = 1,
176
+ CheckForEarlyDiscard = 2,
177
+ ComputeFeatureOverrides = 3,
178
+ ComputeMaterial = 4,
179
+ ComputeBaseColor = 5,
180
+ ApplyMaterialColor = 6,
181
+ ApplyFeatureColor = 7,
182
+ AdjustContrast = 8,
183
+ CheckForDiscard = 9,
184
+ ComputePosition = 10,
185
+ CheckForLateDiscard = 11,
186
+ FinalizePosition = 12,
187
+ COUNT = 13
187
188
  }
188
189
  /** Assembles the source code for a vertex shader from a set of modular components.
189
190
  * @internal
@@ -223,7 +224,8 @@ export declare const enum FragmentShaderComponent {
223
224
  OverrideFeatureId = 17,
224
225
  FinalizeDepth = 18,
225
226
  OverrideColor = 19,
226
- COUNT = 20
227
+ OverrideRenderOrder = 20,
228
+ COUNT = 21
227
229
  }
228
230
  /** Assembles the source code for a fragment shader from a set of modular components.
229
231
  * @internal
@@ -1 +1 @@
1
- {"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"AAIA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIlD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAKhD;;GAEG;AACH,0BAAkB,YAAY;IAC5B,OAAO,IAAA;IACP,GAAG,IAAA;IACH,KAAK,IAAA;IACL,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,IAAI,IAAA;IACJ,SAAS,IAAA;IACT,WAAW,IAAA;IACX,IAAI,KAAA;IAEJ,KAAK,KAAA;CACN;AAED;;GAEG;AACH,0BAAkB,aAAa;IAC7B,MAAM,IAAA;IACN,OAAO,IAAA;IACP,OAAO,IAAA;IAEP,KAAK,IAAA;CACN;AAED;;GAEG;AACH,0BAAkB,iBAAiB;IACjC,OAAO,IAAA;IACP,GAAG,IAAA;IACH,MAAM,IAAA;IACN,IAAI,IAAA;IAEJ,KAAK,IAAA;CACN;AA8CD;;;;;GAKG;AACH,oBAAY,kBAAkB,GAAG,CAAC,IAAI,EAAE,aAAa,KAAK,IAAI,CAAC;AAE/D;;GAEG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAqB;IAClD,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,KAAK,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAgB,IAAI,EAAE,YAAY,CAAC;IACnC,SAAgB,KAAK,EAAE,aAAa,CAAC;IACrC,SAAgB,SAAS,EAAE,iBAAiB,CAAC;IAC7C,SAAgB,OAAO,EAAE,OAAO,CAAS;IACzC,SAAgB,MAAM,EAAE,MAAM,CAAC;IAE/B,OAAO;WAWO,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,kBAAkB,EAAE,SAAS,GAAE,iBAA6C,GAAG,cAAc;WAIzK,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,kBAAkB,EAAE,SAAS,GAAE,iBAA6C,GAAG,cAAc;WAI9L,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAIrG,IAAW,UAAU,IAAI,OAAO,CAA2C;IACpE,UAAU,CAAC,IAAI,EAAE,aAAa;IAKrC,IAAW,QAAQ,IAAI,MAAM,CAA4C;IAClE,YAAY,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM;IACpD,IAAW,aAAa,IAAI,MAAM,CAAsD;IAExF,8DAA8D;IACvD,gBAAgB,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM;CA2BzD;AAED;;;;GAIG;AACH,qBAAa,eAAe;IAC1B,SAAS,CAAC,KAAK,EAAE,cAAc,EAAE,CAA+B;IAEhE,wDAAwD;IACjD,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAErD,yGAAyG;IAClG,WAAW,CAAC,CAAC,EAAE,cAAc,GAAG,OAAO;IAYvC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,GAAE,iBAA6C;IAIlI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO;IAIrD,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAIpF,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM;IAI3D,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IAOrD,oFAAoF;IAC7E,sBAAsB,CAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC,EAAE,OAAO,GAAG,MAAM;IAUzG,wEAAwE;IACjE,iBAAiB,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM;IAgBzD;;;OAGG;IACI,WAAW,CAAC,IAAI,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI;IAS3E,IAAW,MAAM,IAAI,MAAM,CAA8B;IAEzD,OAAO,CAAC,QAAQ;IAaT,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;IA6ElD,wBAAwB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM;CAiD5D;AAED;;GAEG;AACH,qBAAa,aAAa;IACjB,MAAM,EAAE,MAAM,CAAM;IAGpB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAGvB,OAAO,IAAI,IAAI;IAGf,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAElC;;;;;;;;;;;OAWG;WACW,uBAAuB,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,MAAM;IAQ1F,oHAAoH;IAC7G,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI;IAErE,2HAA2H;IACpH,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI;CAC7C;AAED,gBAAgB;AAChB,0BAAkB,kBAAkB;IAElC,IAAI,IAAI;IAER,WAAW,IAAS;IAEpB,SAAS,IAAS;IAClB,oBAAoB,IAA0B;CAC/C;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,eAAe;IAChD,SAAS,CAAC,WAAW,yBAAmC;IACxD,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IACpC,SAAS,CAAC,WAAW,EAAE,MAAM,EAAE,CAAM;IACrC,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,CAAM;IACjC,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,CAAM;IACtC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAM;IACzB,aAAa,EAAE,MAAM,CAAM;IAClC,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,kBAAkB,CAAC;IAC9C,SAAS,CAAC,aAAa,EAAE,MAAM,EAAE,CAAuB;IAExD,IAAW,eAAe,YAAyF;IACnH,IAAW,qBAAqB,YAAuF;IAEhH,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKhD,SAAS,aAAa,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB;IAiBtE,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAM9D,SAAS,CAAC,eAAe,CAAC,KAAK,EAAE,MAAM;IAKvC,SAAS,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAKlD,WAAW,CAAC,iBAAiB,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI;IASrE,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO;IAU/D,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9C,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKnC,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAK7B,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAW5C,eAAe,IAAI,IAAI;IAKvB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAQvD,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,SAAS,EAAE,cAAc,EAAE,OAAO,GAAG,aAAa;IAuDxH,SAAS,CAAC,UAAU,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;CAW/C;AAED;;GAEG;AACH,0BAAkB,qBAAqB;IAGrC,iBAAiB,IAAA;IAGjB,oBAAoB,IAAA;IAGpB,uBAAuB,IAAA;IAGvB,eAAe,IAAA;IAGf,gBAAgB,IAAA;IAGhB,kBAAkB,IAAA;IAGlB,iBAAiB,IAAA;IAGjB,cAAc,IAAA;IAKd,eAAe,IAAA;IAGf,eAAe,IAAA;IAGf,mBAAmB,KAAA;IAGnB,gBAAgB,KAAA;IAEhB,KAAK,KAAA;CACN;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,OAAO,CAAC,gBAAgB,CAAiC;IAEzD,OAAO,CAAC,YAAY;gBAED,KAAK,EAAE,kBAAkB;IAgBrC,GAAG,CAAC,EAAE,EAAE,qBAAqB,GAAG,MAAM,GAAG,SAAS;IAClD,GAAG,CAAC,EAAE,EAAE,qBAAqB,EAAE,SAAS,EAAE,MAAM;IAChD,KAAK,CAAC,EAAE,EAAE,qBAAqB;IAE/B,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAK/E,WAAW,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,MAAM;IAoG5D,QAAQ,CAAC,GAAG,EAAE,mBAAmB,GAAG,IAAI;CAIhD;AAED;;GAEG;AACH,0BAAkB,uBAAuB;IAGvC,oBAAoB,IAAA;IAGpB,gBAAgB,IAAA;IAGhB,sBAAsB,IAAA;IAGtB,iBAAiB,IAAA;IAIjB,eAAe,IAAA;IAGf,cAAc,IAAA;IAGd,eAAe,IAAA;IAGf,oBAAoB,IAAA;IAGpB,aAAa,IAAA;IAEb,mBAAmB,IAAA;IAGnB,aAAa,KAAA;IAGb,UAAU,KAAA;IAGV,qBAAqB,KAAA;IAGrB,mBAAmB,KAAA;IAGnB,aAAa,KAAA;IAGb,eAAe,KAAA;IAGf,cAAc,KAAA;IAGd,iBAAiB,KAAA;IAGjB,aAAa,KAAA;IAGb,aAAa,KAAA;IACb,KAAK,KAAA;CACN;AAED;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,aAAa;IAC/C,wBAAwB,UAAS;gBAErB,KAAK,EAAE,kBAAkB;IASrC,GAAG,CAAC,EAAE,EAAE,uBAAuB,GAAG,MAAM,GAAG,SAAS;IACpD,GAAG,CAAC,EAAE,EAAE,uBAAuB,EAAE,SAAS,EAAE,MAAM;IAClD,KAAK,CAAC,EAAE,EAAE,uBAAuB;IAEjC,uBAAuB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAaxC,WAAW,IAAI,MAAM;IAyJ5B,OAAO,CAAC,YAAY;IAIb,QAAQ,CAAC,GAAG,EAAE,qBAAqB,GAAG,IAAI;CAIlD;AAED,gBAAgB;AAChB,0BAAkB,UAAU;IAC1B,QAAQ,IAAS;IACjB,MAAM,IAAS;IACf,IAAI,IAAoB;CACzB;AAED;;;;GAIG;AACH,qBAAa,cAAc;IACzB,SAAgB,IAAI,EAAE,mBAAmB,CAAC;IAC1C,SAAgB,IAAI,EAAE,qBAAqB,CAAC;IAC5C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAgC;gBAEvC,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,gBAAgB,CAAC,EAAE,KAAK,qBAA0B;IAO3F,OAAO,CAAC,WAAW;IAUZ,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,GAAE,UAA4B;IAG7G,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,kBAAkB,EAAE,KAAK,GAAE,UAA4B;IAGlI,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY;IAG3C,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,GAAE,UAA4B,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,GAAE,OAAe;IAIzH,wBAAwB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM;IAIpF,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAO/F,kCAAkC,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAM7G,kGAAkG;IAC3F,YAAY,CAAC,EAAE,EAAE,YAAY,GAAG,aAAa;IAmC7C,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAKrD,mDAAmD;IAC5C,KAAK,IAAI,cAAc;CAM/B"}
1
+ {"version":3,"file":"ShaderBuilder.d.ts","sourceRoot":"","sources":["../../../../src/render/webgl/ShaderBuilder.ts"],"names":[],"mappings":"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"}
@@ -529,7 +529,7 @@ exports.ShaderBuilder = ShaderBuilder;
529
529
  */
530
530
  class VertexShaderBuilder extends ShaderBuilder {
531
531
  constructor(flags) {
532
- super(12 /* COUNT */, flags);
532
+ super(13 /* COUNT */, flags);
533
533
  this._computedVarying = new Array();
534
534
  this.addDefine("MAT_NORM", "g_nmx");
535
535
  if (this.usesInstancedGeometry) {
@@ -552,14 +552,18 @@ class VertexShaderBuilder extends ShaderBuilder {
552
552
  this._computedVarying.push(computation);
553
553
  }
554
554
  buildSource(attrMap) {
555
+ var _a;
555
556
  const prelude = this.buildPrelude(attrMap);
556
557
  const main = new SourceBuilder();
557
558
  main.newline();
558
- const computePosition = this.get(9 /* ComputePosition */);
559
+ const computePosition = this.get(10 /* ComputePosition */);
559
560
  (0, core_bentley_1.assert)(undefined !== computePosition);
560
561
  if (undefined !== computePosition) {
561
562
  prelude.addFunction("vec4 computePosition(vec4 rawPos)", computePosition);
562
563
  }
564
+ const computeQPos = (_a = this.get(0 /* ComputeQuantizedPosition */)) !== null && _a !== void 0 ? _a : "return a_pos;";
565
+ prelude.addFunction("vec3 computeQuantizedPosition()", computeQPos);
566
+ main.addline(" vec3 qpos = computeQuantizedPosition();");
563
567
  // Initialization logic that should occur at start of main() - primarily global variables whose values
564
568
  // are too complex to compute inline or which depend on uniforms and/or other globals.
565
569
  for (const init of this._initializers) {
@@ -568,56 +572,56 @@ class VertexShaderBuilder extends ShaderBuilder {
568
572
  else
569
573
  main.addline(` { ${init} }\n`);
570
574
  }
571
- main.addline(" vec4 rawPosition = unquantizeVertexPosition(a_pos, u_qOrigin, u_qScale);");
572
- const adjustRawPosition = this.get(0 /* AdjustRawPosition */);
575
+ main.addline(" vec4 rawPosition = unquantizeVertexPosition(qpos, u_qOrigin, u_qScale);");
576
+ const adjustRawPosition = this.get(1 /* AdjustRawPosition */);
573
577
  if (undefined !== adjustRawPosition) {
574
578
  prelude.addFunction("vec4 adjustRawPosition(vec4 rawPos)", adjustRawPosition);
575
579
  main.addline(" rawPosition = adjustRawPosition(rawPosition);");
576
580
  }
577
- const checkForEarlyDiscard = this.get(1 /* CheckForEarlyDiscard */);
581
+ const checkForEarlyDiscard = this.get(2 /* CheckForEarlyDiscard */);
578
582
  if (undefined !== checkForEarlyDiscard) {
579
583
  prelude.addFunction("bool checkForEarlyDiscard(vec4 rawPos)", checkForEarlyDiscard);
580
584
  main.add(Vertex_1.earlyVertexDiscard);
581
585
  }
582
- const computeFeatureOverrides = this.get(2 /* ComputeFeatureOverrides */);
586
+ const computeFeatureOverrides = this.get(3 /* ComputeFeatureOverrides */);
583
587
  if (undefined !== computeFeatureOverrides) {
584
588
  prelude.addFunction("void computeFeatureOverrides()", computeFeatureOverrides);
585
589
  main.addline(" computeFeatureOverrides();");
586
590
  }
587
- const computeMaterial = this.get(3 /* ComputeMaterial */);
591
+ const computeMaterial = this.get(4 /* ComputeMaterial */);
588
592
  if (undefined !== computeMaterial) {
589
593
  prelude.addFunction("void computeMaterial()", computeMaterial);
590
594
  main.addline(" computeMaterial();");
591
595
  }
592
- const computeBaseColor = this.get(4 /* ComputeBaseColor */);
596
+ const computeBaseColor = this.get(5 /* ComputeBaseColor */);
593
597
  if (undefined !== computeBaseColor) {
594
598
  (0, core_bentley_1.assert)(undefined !== this.find("v_color"));
595
599
  prelude.addFunction("vec4 computeBaseColor()", computeBaseColor);
596
600
  main.addline(" vec4 baseColor = computeBaseColor();");
597
- const applyMaterialColor = this.get(5 /* ApplyMaterialColor */);
601
+ const applyMaterialColor = this.get(6 /* ApplyMaterialColor */);
598
602
  if (undefined !== applyMaterialColor) {
599
603
  prelude.addFunction("vec4 applyMaterialColor(vec4 baseColor)", applyMaterialColor);
600
604
  main.addline(" baseColor = applyMaterialColor(baseColor);");
601
605
  }
602
- const applyFeatureColor = this.get(6 /* ApplyFeatureColor */);
606
+ const applyFeatureColor = this.get(7 /* ApplyFeatureColor */);
603
607
  if (undefined !== applyFeatureColor) {
604
608
  prelude.addFunction("vec4 applyFeatureColor(vec4 baseColor)", applyFeatureColor);
605
609
  main.addline(" baseColor = applyFeatureColor(baseColor);");
606
610
  }
607
- const adjustContrast = this.get(7 /* AdjustContrast */);
611
+ const adjustContrast = this.get(8 /* AdjustContrast */);
608
612
  if (adjustContrast) {
609
613
  prelude.addFunction("vec4 adjustContrast(vec4 baseColor)", adjustContrast);
610
614
  main.addline(" baseColor = adjustContrast(baseColor);");
611
615
  }
612
616
  main.addline(" v_color = baseColor;");
613
617
  }
614
- const checkForDiscard = this.get(8 /* CheckForDiscard */);
618
+ const checkForDiscard = this.get(9 /* CheckForDiscard */);
615
619
  if (undefined !== checkForDiscard) {
616
620
  prelude.addFunction("bool checkForDiscard()", checkForDiscard);
617
621
  main.add(Vertex_1.vertexDiscard);
618
622
  }
619
623
  main.addline(" gl_Position = computePosition(rawPosition);");
620
- const finalizePos = this.get(11 /* FinalizePosition */);
624
+ const finalizePos = this.get(12 /* FinalizePosition */);
621
625
  if (undefined !== finalizePos) {
622
626
  prelude.addFunction("vec4 finalizePosition(vec4 pos)", finalizePos);
623
627
  main.addline(" gl_Position = finalizePosition(gl_Position);");
@@ -625,7 +629,7 @@ class VertexShaderBuilder extends ShaderBuilder {
625
629
  for (const comp of this._computedVarying) {
626
630
  main.addline(` ${comp}`);
627
631
  }
628
- const checkForLateDiscard = this.get(10 /* CheckForLateDiscard */);
632
+ const checkForLateDiscard = this.get(11 /* CheckForLateDiscard */);
629
633
  if (undefined !== checkForLateDiscard) {
630
634
  prelude.addFunction("bool checkForLateDiscard()", checkForLateDiscard);
631
635
  main.addline(Vertex_1.lateVertexDiscard);
@@ -644,7 +648,7 @@ exports.VertexShaderBuilder = VertexShaderBuilder;
644
648
  */
645
649
  class FragmentShaderBuilder extends ShaderBuilder {
646
650
  constructor(flags) {
647
- super(20 /* COUNT */, flags);
651
+ super(21 /* COUNT */, flags);
648
652
  this.requiresEarlyZWorkaround = false;
649
653
  if (System_1.System.instance.capabilities.isWebGL2)
650
654
  this.addFragOutput("FragColor", -1);