ol 7.3.0 → 7.3.1-dev

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 (535) hide show
  1. package/Collection.d.ts +2 -2
  2. package/Collection.d.ts.map +1 -1
  3. package/DataTile.d.ts +1 -1
  4. package/DataTile.d.ts.map +1 -1
  5. package/DataTile.js +2 -1
  6. package/Feature.d.ts +1 -1
  7. package/Feature.d.ts.map +1 -1
  8. package/Geolocation.d.ts +2 -2
  9. package/Geolocation.d.ts.map +1 -1
  10. package/Image.d.ts +1 -1
  11. package/Image.d.ts.map +1 -1
  12. package/ImageBase.d.ts +1 -1
  13. package/ImageBase.d.ts.map +1 -1
  14. package/ImageCanvas.d.ts +1 -1
  15. package/ImageCanvas.d.ts.map +1 -1
  16. package/ImageTile.d.ts +1 -1
  17. package/ImageTile.d.ts.map +1 -1
  18. package/Map.d.ts +7 -7
  19. package/Map.d.ts.map +1 -1
  20. package/Map.js +2 -1
  21. package/MapBrowserEvent.d.ts +1 -1
  22. package/MapBrowserEvent.d.ts.map +1 -1
  23. package/MapBrowserEventHandler.d.ts +1 -1
  24. package/MapBrowserEventHandler.d.ts.map +1 -1
  25. package/MapEvent.d.ts +1 -1
  26. package/MapEvent.d.ts.map +1 -1
  27. package/Object.d.ts +2 -2
  28. package/Object.d.ts.map +1 -1
  29. package/Observable.d.ts +1 -1
  30. package/Observable.d.ts.map +1 -1
  31. package/Overlay.d.ts +1 -1
  32. package/Overlay.d.ts.map +1 -1
  33. package/Tile.d.ts +1 -1
  34. package/Tile.d.ts.map +1 -1
  35. package/TileCache.d.ts +1 -1
  36. package/TileCache.d.ts.map +1 -1
  37. package/TileQueue.d.ts +1 -1
  38. package/TileQueue.d.ts.map +1 -1
  39. package/VectorRenderTile.d.ts +1 -1
  40. package/VectorRenderTile.d.ts.map +1 -1
  41. package/VectorTile.d.ts +1 -1
  42. package/VectorTile.d.ts.map +1 -1
  43. package/View.d.ts +10 -6
  44. package/View.d.ts.map +1 -1
  45. package/View.js +9 -6
  46. package/array.d.ts.map +1 -1
  47. package/array.js +38 -20
  48. package/control/Attribution.d.ts +1 -1
  49. package/control/Attribution.d.ts.map +1 -1
  50. package/control/Control.d.ts +1 -1
  51. package/control/Control.d.ts.map +1 -1
  52. package/control/FullScreen.d.ts +1 -1
  53. package/control/FullScreen.d.ts.map +1 -1
  54. package/control/MousePosition.d.ts +1 -1
  55. package/control/MousePosition.d.ts.map +1 -1
  56. package/control/OverviewMap.d.ts +3 -3
  57. package/control/OverviewMap.d.ts.map +1 -1
  58. package/control/Rotate.d.ts +1 -1
  59. package/control/Rotate.d.ts.map +1 -1
  60. package/control/ScaleLine.d.ts +1 -1
  61. package/control/ScaleLine.d.ts.map +1 -1
  62. package/control/Zoom.d.ts +1 -1
  63. package/control/Zoom.d.ts.map +1 -1
  64. package/control/ZoomSlider.d.ts +1 -1
  65. package/control/ZoomSlider.d.ts.map +1 -1
  66. package/control/ZoomToExtent.d.ts +1 -1
  67. package/control/ZoomToExtent.d.ts.map +1 -1
  68. package/control/defaults.d.ts +1 -1
  69. package/control/defaults.d.ts.map +1 -1
  70. package/dist/ol.js +2 -2
  71. package/dist/ol.js.map +1 -1
  72. package/events/Key.d.ts +8 -0
  73. package/events/Key.d.ts.map +1 -0
  74. package/events/Key.js +14 -0
  75. package/events/Target.d.ts +1 -1
  76. package/events/Target.d.ts.map +1 -1
  77. package/events/condition.d.ts +2 -2
  78. package/events/condition.d.ts.map +1 -1
  79. package/extent.d.ts.map +1 -1
  80. package/extent.js +7 -2
  81. package/format/EsriJSON.d.ts +1 -1
  82. package/format/EsriJSON.d.ts.map +1 -1
  83. package/format/GML.d.ts +1 -1
  84. package/format/GML.d.ts.map +1 -1
  85. package/format/GML2.d.ts +1 -1
  86. package/format/GML2.d.ts.map +1 -1
  87. package/format/GML3.d.ts +5 -5
  88. package/format/GML3.d.ts.map +1 -1
  89. package/format/GML32.d.ts +1 -1
  90. package/format/GML32.d.ts.map +1 -1
  91. package/format/GMLBase.d.ts +9 -9
  92. package/format/GMLBase.d.ts.map +1 -1
  93. package/format/GPX.d.ts +2 -2
  94. package/format/GPX.d.ts.map +1 -1
  95. package/format/GeoJSON.d.ts +1 -1
  96. package/format/GeoJSON.d.ts.map +1 -1
  97. package/format/IGC.d.ts +1 -1
  98. package/format/IGC.d.ts.map +1 -1
  99. package/format/IIIFInfo.d.ts +8 -8
  100. package/format/IIIFInfo.d.ts.map +1 -1
  101. package/format/IIIFInfo.js +10 -9
  102. package/format/JSONFeature.d.ts +1 -1
  103. package/format/JSONFeature.d.ts.map +1 -1
  104. package/format/JSONFeature.js +2 -1
  105. package/format/KML.d.ts +121 -5
  106. package/format/KML.d.ts.map +1 -1
  107. package/format/KML.js +105 -7
  108. package/format/MVT.d.ts +2 -2
  109. package/format/MVT.d.ts.map +1 -1
  110. package/format/OSMXML.d.ts +1 -1
  111. package/format/OSMXML.d.ts.map +1 -1
  112. package/format/OSMXML.js +11 -4
  113. package/format/OWS.d.ts +1 -1
  114. package/format/OWS.d.ts.map +1 -1
  115. package/format/Polyline.d.ts +2 -2
  116. package/format/Polyline.d.ts.map +1 -1
  117. package/format/TextFeature.d.ts +1 -1
  118. package/format/TextFeature.d.ts.map +1 -1
  119. package/format/TopoJSON.d.ts +1 -1
  120. package/format/TopoJSON.d.ts.map +1 -1
  121. package/format/WFS.d.ts +2 -2
  122. package/format/WFS.d.ts.map +1 -1
  123. package/format/WFS.js +8 -4
  124. package/format/WKB.d.ts +1 -1
  125. package/format/WKB.d.ts.map +1 -1
  126. package/format/WKB.js +6 -4
  127. package/format/WKT.d.ts +1 -1
  128. package/format/WKT.d.ts.map +1 -1
  129. package/format/WMSCapabilities.d.ts +1 -1
  130. package/format/WMSCapabilities.d.ts.map +1 -1
  131. package/format/WMSGetFeatureInfo.d.ts +1 -1
  132. package/format/WMSGetFeatureInfo.d.ts.map +1 -1
  133. package/format/WMTSCapabilities.d.ts +1 -1
  134. package/format/WMTSCapabilities.d.ts.map +1 -1
  135. package/format/XML.d.ts.map +1 -1
  136. package/format/XML.js +4 -2
  137. package/format/XMLFeature.d.ts +1 -1
  138. package/format/XMLFeature.d.ts.map +1 -1
  139. package/format/XMLFeature.js +16 -8
  140. package/format/filter/And.d.ts +1 -1
  141. package/format/filter/And.d.ts.map +1 -1
  142. package/format/filter/Bbox.d.ts +1 -1
  143. package/format/filter/Bbox.d.ts.map +1 -1
  144. package/format/filter/Comparison.d.ts +1 -1
  145. package/format/filter/Comparison.d.ts.map +1 -1
  146. package/format/filter/ComparisonBinary.d.ts +1 -1
  147. package/format/filter/ComparisonBinary.d.ts.map +1 -1
  148. package/format/filter/Contains.d.ts +1 -1
  149. package/format/filter/Contains.d.ts.map +1 -1
  150. package/format/filter/DWithin.d.ts +1 -1
  151. package/format/filter/DWithin.d.ts.map +1 -1
  152. package/format/filter/Disjoint.d.ts +1 -1
  153. package/format/filter/Disjoint.d.ts.map +1 -1
  154. package/format/filter/During.d.ts +1 -1
  155. package/format/filter/During.d.ts.map +1 -1
  156. package/format/filter/EqualTo.d.ts +1 -1
  157. package/format/filter/EqualTo.d.ts.map +1 -1
  158. package/format/filter/GreaterThan.d.ts +1 -1
  159. package/format/filter/GreaterThan.d.ts.map +1 -1
  160. package/format/filter/GreaterThanOrEqualTo.d.ts +1 -1
  161. package/format/filter/GreaterThanOrEqualTo.d.ts.map +1 -1
  162. package/format/filter/Intersects.d.ts +1 -1
  163. package/format/filter/Intersects.d.ts.map +1 -1
  164. package/format/filter/IsBetween.d.ts +1 -1
  165. package/format/filter/IsBetween.d.ts.map +1 -1
  166. package/format/filter/IsLike.d.ts +1 -1
  167. package/format/filter/IsLike.d.ts.map +1 -1
  168. package/format/filter/IsNull.d.ts +1 -1
  169. package/format/filter/IsNull.d.ts.map +1 -1
  170. package/format/filter/LessThan.d.ts +1 -1
  171. package/format/filter/LessThan.d.ts.map +1 -1
  172. package/format/filter/LessThanOrEqualTo.d.ts +1 -1
  173. package/format/filter/LessThanOrEqualTo.d.ts.map +1 -1
  174. package/format/filter/LogicalNary.d.ts +1 -1
  175. package/format/filter/LogicalNary.d.ts.map +1 -1
  176. package/format/filter/Not.d.ts +1 -1
  177. package/format/filter/Not.d.ts.map +1 -1
  178. package/format/filter/NotEqualTo.d.ts +1 -1
  179. package/format/filter/NotEqualTo.d.ts.map +1 -1
  180. package/format/filter/Or.d.ts +2 -2
  181. package/format/filter/Or.d.ts.map +1 -1
  182. package/format/filter/Or.js +1 -1
  183. package/format/filter/ResourceId.d.ts +1 -1
  184. package/format/filter/ResourceId.d.ts.map +1 -1
  185. package/format/filter/Spatial.d.ts +1 -1
  186. package/format/filter/Spatial.d.ts.map +1 -1
  187. package/format/filter/Within.d.ts +1 -1
  188. package/format/filter/Within.d.ts.map +1 -1
  189. package/format/filter.d.ts +20 -20
  190. package/format/filter.d.ts.map +1 -1
  191. package/geom/Circle.d.ts +1 -1
  192. package/geom/Circle.d.ts.map +1 -1
  193. package/geom/Circle.js +1 -17
  194. package/geom/Geometry.d.ts +1 -1
  195. package/geom/Geometry.d.ts.map +1 -1
  196. package/geom/GeometryCollection.d.ts +1 -1
  197. package/geom/GeometryCollection.d.ts.map +1 -1
  198. package/geom/LineString.d.ts +1 -1
  199. package/geom/LineString.d.ts.map +1 -1
  200. package/geom/LinearRing.d.ts +1 -1
  201. package/geom/LinearRing.d.ts.map +1 -1
  202. package/geom/MultiLineString.d.ts +2 -2
  203. package/geom/MultiLineString.d.ts.map +1 -1
  204. package/geom/MultiPoint.d.ts +2 -2
  205. package/geom/MultiPoint.d.ts.map +1 -1
  206. package/geom/MultiPolygon.d.ts +3 -3
  207. package/geom/MultiPolygon.d.ts.map +1 -1
  208. package/geom/Point.d.ts +1 -1
  209. package/geom/Point.d.ts.map +1 -1
  210. package/geom/Polygon.d.ts +3 -3
  211. package/geom/Polygon.d.ts.map +1 -1
  212. package/geom/SimpleGeometry.d.ts +1 -1
  213. package/geom/SimpleGeometry.d.ts.map +1 -1
  214. package/geom/flat/interpolate.d.ts.map +1 -1
  215. package/geom/flat/interpolate.js +4 -2
  216. package/geom/flat/orient.d.ts +1 -1
  217. package/geom/flat/orient.js +1 -1
  218. package/interaction/DblClickDragZoom.d.ts +110 -0
  219. package/interaction/DblClickDragZoom.d.ts.map +1 -0
  220. package/interaction/DblClickDragZoom.js +251 -0
  221. package/interaction/DoubleClickZoom.d.ts +1 -1
  222. package/interaction/DoubleClickZoom.d.ts.map +1 -1
  223. package/interaction/DragAndDrop.d.ts +2 -2
  224. package/interaction/DragAndDrop.d.ts.map +1 -1
  225. package/interaction/DragBox.d.ts +2 -2
  226. package/interaction/DragBox.d.ts.map +1 -1
  227. package/interaction/DragPan.d.ts +1 -1
  228. package/interaction/DragPan.d.ts.map +1 -1
  229. package/interaction/DragRotate.d.ts +1 -1
  230. package/interaction/DragRotate.d.ts.map +1 -1
  231. package/interaction/DragRotateAndZoom.d.ts +1 -1
  232. package/interaction/DragRotateAndZoom.d.ts.map +1 -1
  233. package/interaction/DragZoom.d.ts +1 -1
  234. package/interaction/DragZoom.d.ts.map +1 -1
  235. package/interaction/Draw.d.ts +6 -6
  236. package/interaction/Draw.d.ts.map +1 -1
  237. package/interaction/Extent.d.ts +2 -2
  238. package/interaction/Extent.d.ts.map +1 -1
  239. package/interaction/Extent.js +2 -1
  240. package/interaction/Interaction.d.ts +1 -1
  241. package/interaction/Interaction.d.ts.map +1 -1
  242. package/interaction/KeyboardPan.d.ts +1 -1
  243. package/interaction/KeyboardPan.d.ts.map +1 -1
  244. package/interaction/KeyboardPan.js +9 -9
  245. package/interaction/KeyboardZoom.d.ts +1 -1
  246. package/interaction/KeyboardZoom.d.ts.map +1 -1
  247. package/interaction/Link.d.ts +1 -1
  248. package/interaction/Link.d.ts.map +1 -1
  249. package/interaction/Modify.d.ts +6 -6
  250. package/interaction/Modify.d.ts.map +1 -1
  251. package/interaction/Modify.js +6 -1
  252. package/interaction/MouseWheelZoom.d.ts +1 -1
  253. package/interaction/MouseWheelZoom.d.ts.map +1 -1
  254. package/interaction/PinchRotate.d.ts +1 -1
  255. package/interaction/PinchRotate.d.ts.map +1 -1
  256. package/interaction/PinchZoom.d.ts +1 -1
  257. package/interaction/PinchZoom.d.ts.map +1 -1
  258. package/interaction/Pointer.d.ts +1 -1
  259. package/interaction/Pointer.d.ts.map +1 -1
  260. package/interaction/Select.d.ts +5 -5
  261. package/interaction/Select.d.ts.map +1 -1
  262. package/interaction/Snap.d.ts +1 -1
  263. package/interaction/Snap.d.ts.map +1 -1
  264. package/interaction/Snap.js +10 -4
  265. package/interaction/Translate.d.ts +4 -4
  266. package/interaction/Translate.d.ts.map +1 -1
  267. package/interaction/Translate.js +18 -3
  268. package/interaction/defaults.d.ts +1 -1
  269. package/interaction/defaults.d.ts.map +1 -1
  270. package/interaction.d.ts +1 -0
  271. package/interaction.js +1 -0
  272. package/layer/Base.d.ts +4 -3
  273. package/layer/Base.d.ts.map +1 -1
  274. package/layer/Base.js +3 -2
  275. package/layer/BaseImage.d.ts +1 -1
  276. package/layer/BaseImage.d.ts.map +1 -1
  277. package/layer/BaseTile.d.ts +1 -1
  278. package/layer/BaseTile.d.ts.map +1 -1
  279. package/layer/BaseVector.d.ts +10 -4
  280. package/layer/BaseVector.d.ts.map +1 -1
  281. package/layer/BaseVector.js +9 -3
  282. package/layer/Graticule.d.ts +6 -6
  283. package/layer/Graticule.d.ts.map +1 -1
  284. package/layer/Group.d.ts +4 -4
  285. package/layer/Group.d.ts.map +1 -1
  286. package/layer/Heatmap.d.ts +2 -2
  287. package/layer/Heatmap.d.ts.map +1 -1
  288. package/layer/Image.d.ts +2 -2
  289. package/layer/Image.d.ts.map +1 -1
  290. package/layer/Layer.d.ts +14 -11
  291. package/layer/Layer.d.ts.map +1 -1
  292. package/layer/Layer.js +28 -8
  293. package/layer/MapboxVector.d.ts +1 -1
  294. package/layer/MapboxVector.d.ts.map +1 -1
  295. package/layer/Tile.d.ts +2 -2
  296. package/layer/Tile.d.ts.map +1 -1
  297. package/layer/Vector.d.ts +2 -2
  298. package/layer/Vector.d.ts.map +1 -1
  299. package/layer/VectorImage.d.ts +2 -2
  300. package/layer/VectorImage.d.ts.map +1 -1
  301. package/layer/VectorTile.d.ts +2 -2
  302. package/layer/VectorTile.d.ts.map +1 -1
  303. package/layer/WebGLPoints.d.ts +4 -4
  304. package/layer/WebGLPoints.d.ts.map +1 -1
  305. package/layer/WebGLPoints.js +13 -4
  306. package/layer/WebGLTile.d.ts +9 -2
  307. package/layer/WebGLTile.d.ts.map +1 -1
  308. package/layer/WebGLTile.js +6 -6
  309. package/package.json +2 -2
  310. package/proj/proj4.d.ts +2 -2
  311. package/proj/proj4.d.ts.map +1 -1
  312. package/proj/proj4.js +1 -1
  313. package/proj.d.ts +9 -9
  314. package/proj.d.ts.map +1 -1
  315. package/proj.js +9 -8
  316. package/render/Box.d.ts +1 -1
  317. package/render/Box.d.ts.map +1 -1
  318. package/render/Event.d.ts +1 -1
  319. package/render/Event.d.ts.map +1 -1
  320. package/render/Feature.d.ts +7 -7
  321. package/render/Feature.d.ts.map +1 -1
  322. package/render/canvas/Builder.d.ts +1 -1
  323. package/render/canvas/Builder.d.ts.map +1 -1
  324. package/render/canvas/ImageBuilder.d.ts +1 -1
  325. package/render/canvas/ImageBuilder.d.ts.map +1 -1
  326. package/render/canvas/Immediate.d.ts +1 -1
  327. package/render/canvas/Immediate.d.ts.map +1 -1
  328. package/render/canvas/Immediate.js +9 -1
  329. package/render/canvas/LineStringBuilder.d.ts +1 -1
  330. package/render/canvas/LineStringBuilder.d.ts.map +1 -1
  331. package/render/canvas/PolygonBuilder.d.ts +1 -1
  332. package/render/canvas/PolygonBuilder.d.ts.map +1 -1
  333. package/render/canvas/TextBuilder.d.ts +1 -1
  334. package/render/canvas/TextBuilder.d.ts.map +1 -1
  335. package/render/canvas.d.ts +1 -1
  336. package/render/canvas.d.ts.map +1 -1
  337. package/render/webgl/MixedGeometryBatch.d.ts +37 -131
  338. package/render/webgl/MixedGeometryBatch.d.ts.map +1 -1
  339. package/render/webgl/MixedGeometryBatch.js +230 -147
  340. package/render/webgl/VectorStyleRenderer.d.ts +256 -0
  341. package/render/webgl/VectorStyleRenderer.d.ts.map +1 -0
  342. package/render/webgl/VectorStyleRenderer.js +440 -0
  343. package/render/webgl/constants.d.ts +1 -1
  344. package/render/webgl/constants.js +1 -1
  345. package/render/webgl/renderinstructions.d.ts +36 -0
  346. package/render/webgl/renderinstructions.d.ts.map +1 -0
  347. package/render/webgl/renderinstructions.js +241 -0
  348. package/render/webgl/utils.d.ts +4 -4
  349. package/render/webgl/utils.d.ts.map +1 -1
  350. package/render/webgl/utils.js +9 -9
  351. package/render.d.ts +1 -1
  352. package/render.d.ts.map +1 -1
  353. package/renderer/Composite.d.ts +1 -1
  354. package/renderer/Composite.d.ts.map +1 -1
  355. package/renderer/Layer.d.ts +1 -1
  356. package/renderer/Layer.d.ts.map +1 -1
  357. package/renderer/Map.d.ts +1 -1
  358. package/renderer/Map.d.ts.map +1 -1
  359. package/renderer/canvas/ImageLayer.d.ts +1 -1
  360. package/renderer/canvas/ImageLayer.d.ts.map +1 -1
  361. package/renderer/canvas/Layer.d.ts +1 -1
  362. package/renderer/canvas/Layer.d.ts.map +1 -1
  363. package/renderer/canvas/TileLayer.d.ts +1 -1
  364. package/renderer/canvas/TileLayer.d.ts.map +1 -1
  365. package/renderer/canvas/VectorImageLayer.d.ts +1 -1
  366. package/renderer/canvas/VectorImageLayer.d.ts.map +1 -1
  367. package/renderer/canvas/VectorLayer.d.ts +3 -3
  368. package/renderer/canvas/VectorLayer.d.ts.map +1 -1
  369. package/renderer/canvas/VectorTileLayer.d.ts +2 -2
  370. package/renderer/canvas/VectorTileLayer.d.ts.map +1 -1
  371. package/renderer/webgl/Layer.d.ts +2 -2
  372. package/renderer/webgl/Layer.d.ts.map +1 -1
  373. package/renderer/webgl/PointsLayer.d.ts +3 -3
  374. package/renderer/webgl/PointsLayer.d.ts.map +1 -1
  375. package/renderer/webgl/PointsLayer.js +5 -8
  376. package/renderer/webgl/TileLayer.d.ts +32 -99
  377. package/renderer/webgl/TileLayer.d.ts.map +1 -1
  378. package/renderer/webgl/TileLayer.js +103 -644
  379. package/renderer/webgl/TileLayerBase.d.ts +194 -0
  380. package/renderer/webgl/TileLayerBase.d.ts.map +1 -0
  381. package/renderer/webgl/TileLayerBase.js +750 -0
  382. package/renderer/webgl/VectorLayer.d.ts +59 -60
  383. package/renderer/webgl/VectorLayer.d.ts.map +1 -1
  384. package/renderer/webgl/VectorLayer.js +118 -156
  385. package/renderer/webgl/VectorTileLayer.d.ts +87 -0
  386. package/renderer/webgl/VectorTileLayer.d.ts.map +1 -0
  387. package/renderer/webgl/VectorTileLayer.js +201 -0
  388. package/reproj/DataTile.d.ts +1 -1
  389. package/reproj/DataTile.d.ts.map +1 -1
  390. package/reproj/Image.d.ts +1 -1
  391. package/reproj/Image.d.ts.map +1 -1
  392. package/reproj/Image.js +22 -8
  393. package/reproj/Tile.d.ts +1 -1
  394. package/reproj/Tile.d.ts.map +1 -1
  395. package/reproj/Triangulation.js +2 -2
  396. package/source/BingMaps.d.ts +1 -1
  397. package/source/BingMaps.d.ts.map +1 -1
  398. package/source/CartoDB.d.ts +1 -1
  399. package/source/CartoDB.d.ts.map +1 -1
  400. package/source/Cluster.d.ts +3 -3
  401. package/source/Cluster.d.ts.map +1 -1
  402. package/source/DataTile.d.ts +4 -4
  403. package/source/DataTile.d.ts.map +1 -1
  404. package/source/DataTile.js +1 -1
  405. package/source/GeoTIFF.d.ts +1 -1
  406. package/source/GeoTIFF.d.ts.map +1 -1
  407. package/source/IIIF.d.ts +1 -1
  408. package/source/IIIF.d.ts.map +1 -1
  409. package/source/Image.d.ts +2 -2
  410. package/source/Image.d.ts.map +1 -1
  411. package/source/ImageArcGISRest.d.ts +1 -1
  412. package/source/ImageArcGISRest.d.ts.map +1 -1
  413. package/source/ImageCanvas.d.ts +1 -1
  414. package/source/ImageCanvas.d.ts.map +1 -1
  415. package/source/ImageMapGuide.d.ts +1 -1
  416. package/source/ImageMapGuide.d.ts.map +1 -1
  417. package/source/ImageStatic.d.ts +1 -1
  418. package/source/ImageStatic.d.ts.map +1 -1
  419. package/source/ImageWMS.d.ts +1 -1
  420. package/source/ImageWMS.d.ts.map +1 -1
  421. package/source/OGCMapTile.d.ts +1 -1
  422. package/source/OGCMapTile.d.ts.map +1 -1
  423. package/source/OGCVectorTile.d.ts +1 -1
  424. package/source/OGCVectorTile.d.ts.map +1 -1
  425. package/source/OSM.d.ts +1 -1
  426. package/source/OSM.d.ts.map +1 -1
  427. package/source/Raster.d.ts +3 -3
  428. package/source/Raster.d.ts.map +1 -1
  429. package/source/Source.d.ts +5 -5
  430. package/source/Source.d.ts.map +1 -1
  431. package/source/Source.js +2 -2
  432. package/source/Stamen.d.ts +1 -1
  433. package/source/Stamen.d.ts.map +1 -1
  434. package/source/Tile.d.ts +2 -2
  435. package/source/Tile.d.ts.map +1 -1
  436. package/source/TileArcGISRest.d.ts +1 -1
  437. package/source/TileArcGISRest.d.ts.map +1 -1
  438. package/source/TileDebug.d.ts +1 -1
  439. package/source/TileDebug.d.ts.map +1 -1
  440. package/source/TileImage.d.ts +4 -4
  441. package/source/TileImage.d.ts.map +1 -1
  442. package/source/TileJSON.d.ts +1 -1
  443. package/source/TileJSON.d.ts.map +1 -1
  444. package/source/TileWMS.d.ts +1 -1
  445. package/source/TileWMS.d.ts.map +1 -1
  446. package/source/UTFGrid.d.ts +2 -2
  447. package/source/UTFGrid.d.ts.map +1 -1
  448. package/source/UrlTile.d.ts +1 -1
  449. package/source/UrlTile.d.ts.map +1 -1
  450. package/source/Vector.d.ts +3 -3
  451. package/source/Vector.d.ts.map +1 -1
  452. package/source/Vector.js +6 -3
  453. package/source/VectorTile.d.ts +4 -4
  454. package/source/VectorTile.d.ts.map +1 -1
  455. package/source/WMTS.d.ts +1 -1
  456. package/source/WMTS.d.ts.map +1 -1
  457. package/source/XYZ.d.ts +1 -1
  458. package/source/XYZ.d.ts.map +1 -1
  459. package/source/Zoomify.d.ts +2 -2
  460. package/source/Zoomify.d.ts.map +1 -1
  461. package/structs/LRUCache.d.ts.map +1 -1
  462. package/structs/LRUCache.js +2 -1
  463. package/style/Circle.d.ts +1 -1
  464. package/style/Circle.d.ts.map +1 -1
  465. package/style/Icon.d.ts +4 -78
  466. package/style/Icon.d.ts.map +1 -1
  467. package/style/Icon.js +89 -86
  468. package/style/IconImage.d.ts +1 -1
  469. package/style/IconImage.d.ts.map +1 -1
  470. package/style/RegularShape.d.ts +1 -1
  471. package/style/RegularShape.d.ts.map +1 -1
  472. package/style/RegularShape.js +1 -1
  473. package/style/Style.d.ts +2 -2
  474. package/style/Style.d.ts.map +1 -1
  475. package/style/Text.d.ts +5 -5
  476. package/style/Text.d.ts.map +1 -1
  477. package/style/Text.js +2 -2
  478. package/style/expressions.d.ts +42 -17
  479. package/style/expressions.d.ts.map +1 -1
  480. package/style/expressions.js +258 -118
  481. package/style/flat.d.ts +14 -0
  482. package/style/flat.d.ts.map +1 -1
  483. package/style/flat.js +6 -0
  484. package/style/literal.d.ts +204 -3
  485. package/style/literal.d.ts.map +1 -1
  486. package/style/literal.js +106 -3
  487. package/tilegrid/TileGrid.d.ts +1 -9
  488. package/tilegrid/TileGrid.d.ts.map +1 -1
  489. package/tilegrid/TileGrid.js +0 -18
  490. package/tilegrid/WMTS.d.ts +1 -1
  491. package/tilegrid/WMTS.d.ts.map +1 -1
  492. package/tilegrid.d.ts +1 -1
  493. package/tilegrid.d.ts.map +1 -1
  494. package/util.d.ts.map +1 -1
  495. package/util.js +1 -1
  496. package/webgl/BaseTileRepresentation.d.ts +72 -0
  497. package/webgl/BaseTileRepresentation.d.ts.map +1 -0
  498. package/webgl/BaseTileRepresentation.js +108 -0
  499. package/webgl/Buffer.d.ts +9 -6
  500. package/webgl/Buffer.d.ts.map +1 -1
  501. package/webgl/Buffer.js +6 -0
  502. package/webgl/Helper.d.ts +19 -12
  503. package/webgl/Helper.d.ts.map +1 -1
  504. package/webgl/Helper.js +79 -71
  505. package/webgl/ShaderBuilder.d.ts +75 -65
  506. package/webgl/ShaderBuilder.d.ts.map +1 -1
  507. package/webgl/ShaderBuilder.js +382 -241
  508. package/webgl/TileGeometry.d.ts +29 -0
  509. package/webgl/TileGeometry.d.ts.map +1 -0
  510. package/webgl/TileGeometry.js +73 -0
  511. package/webgl/TileTexture.d.ts +8 -51
  512. package/webgl/TileTexture.d.ts.map +1 -1
  513. package/webgl/TileTexture.js +11 -62
  514. package/webgl/styleparser.d.ts +61 -0
  515. package/webgl/styleparser.d.ts.map +1 -0
  516. package/webgl/styleparser.js +406 -0
  517. package/worker/webgl.js +1 -1
  518. package/events/KeyCode.d.ts +0 -8
  519. package/events/KeyCode.d.ts.map +0 -1
  520. package/events/KeyCode.js +0 -14
  521. package/render/webgl/BatchRenderer.d.ts +0 -92
  522. package/render/webgl/BatchRenderer.d.ts.map +0 -1
  523. package/render/webgl/BatchRenderer.js +0 -200
  524. package/render/webgl/LineStringBatchRenderer.d.ts +0 -27
  525. package/render/webgl/LineStringBatchRenderer.d.ts.map +0 -1
  526. package/render/webgl/LineStringBatchRenderer.js +0 -114
  527. package/render/webgl/PointBatchRenderer.d.ts +0 -26
  528. package/render/webgl/PointBatchRenderer.d.ts.map +0 -1
  529. package/render/webgl/PointBatchRenderer.js +0 -95
  530. package/render/webgl/PolygonBatchRenderer.d.ts +0 -25
  531. package/render/webgl/PolygonBatchRenderer.d.ts.map +0 -1
  532. package/render/webgl/PolygonBatchRenderer.js +0 -115
  533. package/renderer/webgl/shaders.d.ts +0 -43
  534. package/renderer/webgl/shaders.d.ts.map +0 -1
  535. package/renderer/webgl/shaders.js +0 -198
@@ -1,59 +1,40 @@
1
- export default WebGLVectorLayerRenderer;
2
- /**
3
- * A callback computing
4
- * the value of a custom attribute (different for each feature) to be passed on to the GPU.
5
- * Properties are available as 2nd arg for quicker access.
6
- */
7
- export type CustomAttributeCallback = (arg0: import("../../Feature").default, arg1: {
8
- [x: string]: any;
9
- }) => number;
10
- /**
11
- * An object containing both shaders (vertex and fragment) as well as the required attributes
12
- */
13
- export type ShaderProgram = {
14
- /**
15
- * Vertex shader source (using the default one if unspecified).
16
- */
17
- vertexShader?: string | undefined;
18
- /**
19
- * Fragment shader source (using the default one if unspecified).
20
- */
21
- fragmentShader?: string | undefined;
22
- /**
23
- * Custom attributes made available in the vertex shader.
24
- * Keys are the names of the attributes which are then accessible in the vertex shader using the `a_` prefix, e.g.: `a_opacity`.
25
- * Default shaders rely on the attributes in {@link module :ol/render/webgl/shaders~DefaultAttributes}.
26
- */
27
- attributes: any;
1
+ export const Uniforms: {
2
+ RENDER_EXTENT: string;
3
+ GLOBAL_ALPHA: string;
4
+ PROJECTION_MATRIX: string;
5
+ OFFSET_SCALE_MATRIX: string;
6
+ OFFSET_ROTATION_MATRIX: string;
7
+ TIME: string;
8
+ ZOOM: string;
9
+ RESOLUTION: string;
10
+ VIEWPORT_SIZE_PX: string;
11
+ PIXEL_RATIO: string;
28
12
  };
13
+ export default WebGLVectorLayerRenderer;
14
+ export type VectorStyle = import('../../render/webgl/VectorStyleRenderer.js').VectorStyle;
29
15
  export type Options = {
30
16
  /**
31
17
  * A CSS class name to set to the canvas element.
32
18
  */
33
19
  className?: string | undefined;
34
20
  /**
35
- * Attributes and shaders for filling polygons.
36
- */
37
- fill?: ShaderProgram | undefined;
38
- /**
39
- * Attributes and shaders for line strings and polygon strokes.
40
- */
41
- stroke?: ShaderProgram | undefined;
42
- /**
43
- * Attributes and shaders for points.
21
+ * Vector style as literal style or shaders; can also accept an array of styles
44
22
  */
45
- point?: ShaderProgram | undefined;
46
- /**
47
- * Uniform definitions.
48
- */
49
- uniforms?: {
50
- [x: string]: import("../../webgl/Helper.js").UniformValue;
51
- } | undefined;
23
+ style: VectorStyle | Array<VectorStyle>;
52
24
  /**
53
25
  * Post-processes definitions
54
26
  */
55
27
  postProcesses?: import("./Layer.js").PostProcessesOptions[] | undefined;
56
28
  };
29
+ /**
30
+ * @typedef {import('../../render/webgl/VectorStyleRenderer.js').VectorStyle} VectorStyle
31
+ */
32
+ /**
33
+ * @typedef {Object} Options
34
+ * @property {string} [className='ol-layer'] A CSS class name to set to the canvas element.
35
+ * @property {VectorStyle|Array<VectorStyle>} style Vector style as literal style or shaders; can also accept an array of styles
36
+ * @property {Array<import("./Layer").PostProcessesOptions>} [postProcesses] Post-processes definitions
37
+ */
57
38
  /**
58
39
  * @classdesc
59
40
  * Experimental WebGL vector renderer. Supports polygons, lines and points:
@@ -88,27 +69,43 @@ declare class WebGLVectorLayerRenderer extends WebGLLayerRenderer<any> {
88
69
  * @private
89
70
  */
90
71
  private currentTransform_;
91
- fillVertexShader_: string;
92
- fillFragmentShader_: string;
93
- fillAttributes_: import("../../render/webgl/BatchRenderer").CustomAttribute[];
94
- strokeVertexShader_: string;
95
- strokeFragmentShader_: string;
96
- strokeAttributes_: import("../../render/webgl/BatchRenderer").CustomAttribute[];
97
- pointVertexShader_: string;
98
- pointFragmentShader_: string;
99
- pointAttributes_: import("../../render/webgl/BatchRenderer").CustomAttribute[];
72
+ tmpTransform_: number[];
73
+ tmpMat4_: number[];
74
+ /**
75
+ * @type {import("../../transform.js").Transform}
76
+ * @private
77
+ */
78
+ private currentFrameStateTransform_;
79
+ /**
80
+ * @type {Array<VectorStyle>}
81
+ * @private
82
+ */
83
+ private styles_;
84
+ /**
85
+ * @type {Array<VectorStyleRenderer>}
86
+ * @private
87
+ */
88
+ private styleRenderers_;
100
89
  /**
90
+ * @type {Array<import('../../render/webgl/VectorStyleRenderer.js').WebGLBuffers>}
101
91
  * @private
102
92
  */
103
- private worker_;
93
+ private buffers_;
104
94
  /**
105
95
  * @private
106
96
  */
107
97
  private batch_;
108
98
  sourceListenKeys_: import("../../events.js").EventsKey[];
109
- polygonRenderer_: PolygonBatchRenderer | undefined;
110
- pointRenderer_: PointBatchRenderer | undefined;
111
- lineStringRenderer_: LineStringBatchRenderer | undefined;
99
+ /**
100
+ * @param {Options} options Options.
101
+ * @private
102
+ */
103
+ private applyOptions_;
104
+ /**
105
+ * @private
106
+ */
107
+ private createRenderers_;
108
+ reset(options: any): void;
112
109
  /**
113
110
  * @param {import("../../source/Vector.js").VectorSourceEvent} event Event.
114
111
  * @private
@@ -128,6 +125,11 @@ declare class WebGLVectorLayerRenderer extends WebGLLayerRenderer<any> {
128
125
  * @private
129
126
  */
130
127
  private handleSourceFeatureClear_;
128
+ /**
129
+ * @param {import("../../transform.js").Transform} batchInvertTransform Inverse of the transformation in which geometries are expressed
130
+ * @private
131
+ */
132
+ private applyUniforms_;
131
133
  /**
132
134
  * Render the layer.
133
135
  * @param {import("../../Map.js").FrameState} frameState Frame state.
@@ -135,8 +137,5 @@ declare class WebGLVectorLayerRenderer extends WebGLLayerRenderer<any> {
135
137
  */
136
138
  renderFrame(frameState: import("../../Map.js").FrameState): HTMLElement;
137
139
  }
138
- import WebGLLayerRenderer from "./Layer.js";
139
- import PolygonBatchRenderer from "../../render/webgl/PolygonBatchRenderer.js";
140
- import PointBatchRenderer from "../../render/webgl/PointBatchRenderer.js";
141
- import LineStringBatchRenderer from "../../render/webgl/LineStringBatchRenderer.js";
140
+ import WebGLLayerRenderer from './Layer.js';
142
141
  //# sourceMappingURL=VectorLayer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":";;;;;;6CA2BsB,OAAO,eAAe,EAAE,OAAO;QAAS,MAAM;MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgChF;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EAmHjB;IAvGC,wBAAyB;IAEzB,kDAAoC;IAEpC;;;;;;OAMG;IACH,0BAAkD;IAmClD,0BACmE;IACnE,4BACuE;IACvE,8EAAwD;IAExD,4BACyE;IACzE,8BAEwB;IACxB,gFAA4D;IAE5D,2BACsE;IACtE,6BAC0E;IAC1E,+EAA0D;IAE1D;;OAEG;IACH,gBAAkC;IAElC;;OAEG;IACH,eAAsC;IAItC,yDAyBC;IAID,mDAMC;IACD,+CAMC;IACD,yDAMC;IAGH;;;OAGG;IACH,kCAGC;IAED;;;OAGG;IACH,oCAGC;IAED;;;OAGG;IACH,mCAGC;IAED;;OAEG;IACH,kCAEC;IAED;;;;OAIG;IACH,wBAHW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CAoDtB;CAgGF"}
1
+ {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["VectorLayer.js"],"names":[],"mappings":"AAuBA;;;;;;;;;;;EAIE;;0BAGW,OAAO,2CAA2C,EAAE,WAAW;;;;;;;;;WAM9D,WAAW,GAAC,MAAM,WAAW,CAAC;;;;;;AAP5C;;GAEG;AAEH;;;;;GAKG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AACH;IACE;;;OAGG;IACH,mBAHW,OAAO,sBAAsB,EAAE,OAAO,WACtC,OAAO,EAwFjB;IA3EC,wBAAyB;IAEzB,kDAAoC;IAEpC;;;;;;OAMG;IACH,0BAA0C;IAE1C,wBAAsC;IACtC,mBAA4B;IAE5B;;;OAGG;IACH,oCAAoD;IAEpD;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;OAGG;IACH,iBAAkB;IAIlB;;OAEG;IACH,eAAsC;IAItC,yDAyBC;IAGH;;;OAGG;IACH,sBAIC;IAED;;OAEG;IACH,yBAKC;IAED,0BAMC;IAMD;;;OAGG;IACH,kCAGC;IAED;;;OAGG;IACH,oCAGC;IAED;;;OAGG;IACH,mCAGC;IAED;;OAEG;IACH,kCAEC;IAED;;;OAGG;IACH,uBAQC;IAED;;;;OAIG;IACH,wBAHW,OAAO,cAAc,EAAE,UAAU,GAChC,WAAW,CAoDtB;CAkFF;+BAxW8B,YAAY"}
@@ -2,61 +2,42 @@
2
2
  * @module ol/renderer/webgl/VectorLayer
3
3
  */
4
4
  import BaseVector from '../../layer/BaseVector.js';
5
- import LineStringBatchRenderer from '../../render/webgl/LineStringBatchRenderer.js';
6
5
  import MixedGeometryBatch from '../../render/webgl/MixedGeometryBatch.js';
7
- import PointBatchRenderer from '../../render/webgl/PointBatchRenderer.js';
8
- import PolygonBatchRenderer from '../../render/webgl/PolygonBatchRenderer.js';
9
6
  import VectorEventType from '../../source/VectorEventType.js';
7
+ import VectorStyleRenderer from '../../render/webgl/VectorStyleRenderer.js';
10
8
  import ViewHint from '../../ViewHint.js';
11
9
  import WebGLLayerRenderer from './Layer.js';
12
10
  import {DefaultUniform} from '../../webgl/Helper.js';
13
- import {
14
- FILL_FRAGMENT_SHADER,
15
- FILL_VERTEX_SHADER,
16
- POINT_FRAGMENT_SHADER,
17
- POINT_VERTEX_SHADER,
18
- STROKE_FRAGMENT_SHADER,
19
- STROKE_VERTEX_SHADER,
20
- packColor,
21
- } from './shaders.js';
22
11
  import {buffer, createEmpty, equals, getWidth} from '../../extent.js';
23
- import {create as createTransform} from '../../transform.js';
24
- import {create as createWebGLWorker} from '../../worker/webgl.js';
12
+ import {
13
+ create as createMat4,
14
+ fromTransform as mat4FromTransform,
15
+ } from '../../vec/mat4.js';
16
+ import {
17
+ create as createTransform,
18
+ multiply as multiplyTransform,
19
+ setFromArray as setFromTransform,
20
+ translate as translateTransform,
21
+ } from '../../transform.js';
25
22
  import {listen, unlistenByKey} from '../../events.js';
26
23
 
27
- /**
28
- * @typedef {function(import("../../Feature").default, Object<string, *>):number} CustomAttributeCallback A callback computing
29
- * the value of a custom attribute (different for each feature) to be passed on to the GPU.
30
- * Properties are available as 2nd arg for quicker access.
31
- */
24
+ export const Uniforms = {
25
+ ...DefaultUniform,
26
+ RENDER_EXTENT: 'u_renderExtent', // intersection of layer, source, and view extent
27
+ GLOBAL_ALPHA: 'u_globalAlpha',
28
+ };
32
29
 
33
30
  /**
34
- * @typedef {Object} ShaderProgram An object containing both shaders (vertex and fragment) as well as the required attributes
35
- * @property {string} [vertexShader] Vertex shader source (using the default one if unspecified).
36
- * @property {string} [fragmentShader] Fragment shader source (using the default one if unspecified).
37
- * @property {Object<import("./shaders.js").DefaultAttributes,CustomAttributeCallback>} attributes Custom attributes made available in the vertex shader.
38
- * Keys are the names of the attributes which are then accessible in the vertex shader using the `a_` prefix, e.g.: `a_opacity`.
39
- * Default shaders rely on the attributes in {@link module:ol/render/webgl/shaders~DefaultAttributes}.
31
+ * @typedef {import('../../render/webgl/VectorStyleRenderer.js').VectorStyle} VectorStyle
40
32
  */
41
33
 
42
34
  /**
43
35
  * @typedef {Object} Options
44
36
  * @property {string} [className='ol-layer'] A CSS class name to set to the canvas element.
45
- * @property {ShaderProgram} [fill] Attributes and shaders for filling polygons.
46
- * @property {ShaderProgram} [stroke] Attributes and shaders for line strings and polygon strokes.
47
- * @property {ShaderProgram} [point] Attributes and shaders for points.
48
- * @property {Object<string,import("../../webgl/Helper").UniformValue>} [uniforms] Uniform definitions.
37
+ * @property {VectorStyle|Array<VectorStyle>} style Vector style as literal style or shaders; can also accept an array of styles
49
38
  * @property {Array<import("./Layer").PostProcessesOptions>} [postProcesses] Post-processes definitions
50
39
  */
51
40
 
52
- /**
53
- * @param {Object<import("./shaders.js").DefaultAttributes,CustomAttributeCallback>} obj Lookup of attribute getters.
54
- * @return {Array<import("../../render/webgl/BatchRenderer").CustomAttribute>} An array of attribute descriptors.
55
- */
56
- function toAttributesArray(obj) {
57
- return Object.keys(obj).map((key) => ({name: key, callback: obj[key]}));
58
- }
59
-
60
41
  /**
61
42
  * @classdesc
62
43
  * Experimental WebGL vector renderer. Supports polygons, lines and points:
@@ -81,9 +62,10 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
81
62
  * @param {Options} options Options.
82
63
  */
83
64
  constructor(layer, options) {
84
- const uniforms = options.uniforms || {};
85
- const projectionMatrixTransform = createTransform();
86
- uniforms[DefaultUniform.PROJECTION_MATRIX] = projectionMatrixTransform;
65
+ const uniforms = {
66
+ [Uniforms.RENDER_EXTENT]: [0, 0, 0, 0],
67
+ [Uniforms.GLOBAL_ALPHA]: 1,
68
+ };
87
69
 
88
70
  super(layer, {
89
71
  uniforms: uniforms,
@@ -101,64 +83,36 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
101
83
  * @type {import("../../transform.js").Transform}
102
84
  * @private
103
85
  */
104
- this.currentTransform_ = projectionMatrixTransform;
105
-
106
- const fillAttributes = {
107
- color: function () {
108
- return packColor('#ddd');
109
- },
110
- opacity: function () {
111
- return 1;
112
- },
113
- ...(options.fill && options.fill.attributes),
114
- };
86
+ this.currentTransform_ = createTransform();
115
87
 
116
- const strokeAttributes = {
117
- color: function () {
118
- return packColor('#eee');
119
- },
120
- opacity: function () {
121
- return 1;
122
- },
123
- width: function () {
124
- return 1.5;
125
- },
126
- ...(options.stroke && options.stroke.attributes),
127
- };
88
+ this.tmpTransform_ = createTransform();
89
+ this.tmpMat4_ = createMat4();
128
90
 
129
- const pointAttributes = {
130
- color: function () {
131
- return packColor('#eee');
132
- },
133
- opacity: function () {
134
- return 1;
135
- },
136
- ...(options.point && options.point.attributes),
137
- };
91
+ /**
92
+ * @type {import("../../transform.js").Transform}
93
+ * @private
94
+ */
95
+ this.currentFrameStateTransform_ = createTransform();
138
96
 
139
- this.fillVertexShader_ =
140
- (options.fill && options.fill.vertexShader) || FILL_VERTEX_SHADER;
141
- this.fillFragmentShader_ =
142
- (options.fill && options.fill.fragmentShader) || FILL_FRAGMENT_SHADER;
143
- this.fillAttributes_ = toAttributesArray(fillAttributes);
144
-
145
- this.strokeVertexShader_ =
146
- (options.stroke && options.stroke.vertexShader) || STROKE_VERTEX_SHADER;
147
- this.strokeFragmentShader_ =
148
- (options.stroke && options.stroke.fragmentShader) ||
149
- STROKE_FRAGMENT_SHADER;
150
- this.strokeAttributes_ = toAttributesArray(strokeAttributes);
151
-
152
- this.pointVertexShader_ =
153
- (options.point && options.point.vertexShader) || POINT_VERTEX_SHADER;
154
- this.pointFragmentShader_ =
155
- (options.point && options.point.fragmentShader) || POINT_FRAGMENT_SHADER;
156
- this.pointAttributes_ = toAttributesArray(pointAttributes);
97
+ /**
98
+ * @type {Array<VectorStyle>}
99
+ * @private
100
+ */
101
+ this.styles_ = [];
157
102
 
158
103
  /**
104
+ * @type {Array<VectorStyleRenderer>}
159
105
  * @private
160
106
  */
161
- this.worker_ = createWebGLWorker();
107
+ this.styleRenderers_ = [];
108
+
109
+ /**
110
+ * @type {Array<import('../../render/webgl/VectorStyleRenderer.js').WebGLBuffers>}
111
+ * @private
112
+ */
113
+ this.buffers_ = [];
114
+
115
+ this.applyOptions_(options);
162
116
 
163
117
  /**
164
118
  * @private
@@ -195,30 +149,38 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
195
149
  ];
196
150
  }
197
151
 
198
- afterHelperCreated() {
199
- this.polygonRenderer_ = new PolygonBatchRenderer(
200
- this.helper,
201
- this.worker_,
202
- this.fillVertexShader_,
203
- this.fillFragmentShader_,
204
- this.fillAttributes_
205
- );
206
- this.pointRenderer_ = new PointBatchRenderer(
207
- this.helper,
208
- this.worker_,
209
- this.pointVertexShader_,
210
- this.pointFragmentShader_,
211
- this.pointAttributes_
212
- );
213
- this.lineStringRenderer_ = new LineStringBatchRenderer(
214
- this.helper,
215
- this.worker_,
216
- this.strokeVertexShader_,
217
- this.strokeFragmentShader_,
218
- this.strokeAttributes_
152
+ /**
153
+ * @param {Options} options Options.
154
+ * @private
155
+ */
156
+ applyOptions_(options) {
157
+ this.styles_ = Array.isArray(options.style)
158
+ ? options.style
159
+ : [options.style];
160
+ }
161
+
162
+ /**
163
+ * @private
164
+ */
165
+ createRenderers_() {
166
+ this.buffers_ = [];
167
+ this.styleRenderers_ = this.styles_.map(
168
+ (style) => new VectorStyleRenderer(style, this.helper)
219
169
  );
220
170
  }
221
171
 
172
+ reset(options) {
173
+ this.applyOptions_(options);
174
+ if (this.helper) {
175
+ this.createRenderers_();
176
+ }
177
+ super.reset(options);
178
+ }
179
+
180
+ afterHelperCreated() {
181
+ this.createRenderers_();
182
+ }
183
+
222
184
  /**
223
185
  * @param {import("../../source/Vector.js").VectorSourceEvent} event Event.
224
186
  * @private
@@ -253,6 +215,20 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
253
215
  this.batch_.clear();
254
216
  }
255
217
 
218
+ /**
219
+ * @param {import("../../transform.js").Transform} batchInvertTransform Inverse of the transformation in which geometries are expressed
220
+ * @private
221
+ */
222
+ applyUniforms_(batchInvertTransform) {
223
+ // world to screen matrix
224
+ setFromTransform(this.tmpTransform_, this.currentFrameStateTransform_);
225
+ multiplyTransform(this.tmpTransform_, batchInvertTransform);
226
+ this.helper.setUniformMatrixValue(
227
+ Uniforms.PROJECTION_MATRIX,
228
+ mat4FromTransform(this.tmpMat4_, this.tmpTransform_)
229
+ );
230
+ }
231
+
256
232
  /**
257
233
  * Render the layer.
258
234
  * @param {import("../../Map.js").FrameState} frameState Frame state.
@@ -262,6 +238,12 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
262
238
  const gl = this.helper.getGL();
263
239
  this.preRender(gl, frameState);
264
240
 
241
+ this.helper.prepareDraw(frameState);
242
+ this.currentFrameStateTransform_ = this.helper.makeProjectionTransform(
243
+ frameState,
244
+ this.currentFrameStateTransform_
245
+ );
246
+
265
247
  const layer = this.getLayer();
266
248
  const vectorSource = layer.getSource();
267
249
  const projection = frameState.viewState.projection;
@@ -276,25 +258,19 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
276
258
  ? Math.floor((extent[0] - projectionExtent[0]) / worldWidth)
277
259
  : 0;
278
260
 
261
+ translateTransform(this.currentFrameStateTransform_, world * worldWidth, 0);
279
262
  do {
280
- this.polygonRenderer_.render(
281
- this.batch_.polygonBatch,
282
- this.currentTransform_,
283
- frameState,
284
- world * worldWidth
285
- );
286
- this.lineStringRenderer_.render(
287
- this.batch_.lineStringBatch,
288
- this.currentTransform_,
289
- frameState,
290
- world * worldWidth
291
- );
292
- this.pointRenderer_.render(
293
- this.batch_.pointBatch,
294
- this.currentTransform_,
295
- frameState,
296
- world * worldWidth
297
- );
263
+ for (let i = 0, ii = this.styleRenderers_.length; i < ii; i++) {
264
+ const renderer = this.styleRenderers_[i];
265
+ const buffers = this.buffers_[i];
266
+ if (!buffers) {
267
+ continue;
268
+ }
269
+ renderer.render(buffers, frameState, () => {
270
+ this.applyUniforms_(buffers.invertVerticesTransform);
271
+ });
272
+ }
273
+ translateTransform(this.currentFrameStateTransform_, worldWidth, 0);
298
274
  } while (++world < endWorld);
299
275
 
300
276
  this.helper.finalizeDraw(frameState);
@@ -339,37 +315,25 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
339
315
  vectorSource.loadFeatures(extent, resolution, projection);
340
316
 
341
317
  this.ready = false;
342
- let remaining = 3;
343
- const rebuildCb = () => {
344
- remaining--;
345
- this.ready = remaining <= 0;
346
- this.getLayer().changed();
347
- };
348
318
 
349
- this.polygonRenderer_.rebuild(
350
- this.batch_.polygonBatch,
319
+ const transform = this.helper.makeProjectionTransform(
351
320
  frameState,
352
- 'Polygon',
353
- rebuildCb
321
+ createTransform()
354
322
  );
355
- this.lineStringRenderer_.rebuild(
356
- this.batch_.lineStringBatch,
357
- frameState,
358
- 'LineString',
359
- rebuildCb
360
- );
361
- this.pointRenderer_.rebuild(
362
- this.batch_.pointBatch,
363
- frameState,
364
- 'Point',
365
- rebuildCb
323
+
324
+ const generatePromises = this.styleRenderers_.map((renderer, i) =>
325
+ renderer.generateBuffers(this.batch_, transform).then((buffers) => {
326
+ this.buffers_[i] = buffers;
327
+ })
366
328
  );
329
+ Promise.all(generatePromises).then(() => {
330
+ this.ready = true;
331
+ this.getLayer().changed();
332
+ });
333
+
367
334
  this.previousExtent_ = frameState.extent.slice();
368
335
  }
369
336
 
370
- this.helper.makeProjectionTransform(frameState, this.currentTransform_);
371
- this.helper.prepareDraw(frameState);
372
-
373
337
  return true;
374
338
  }
375
339
 
@@ -396,8 +360,6 @@ class WebGLVectorLayerRenderer extends WebGLLayerRenderer {
396
360
  * Clean up.
397
361
  */
398
362
  disposeInternal() {
399
- this.worker_.terminate();
400
- this.layer_ = null;
401
363
  this.sourceListenKeys_.forEach(function (key) {
402
364
  unlistenByKey(key);
403
365
  });
@@ -0,0 +1,87 @@
1
+ export default WebGLVectorTileLayerRenderer;
2
+ export type VectorStyle = import('../../render/webgl/VectorStyleRenderer.js').VectorStyle;
3
+ export type Options = {
4
+ /**
5
+ * Vector style as literal style or shaders; can also accept an array of styles
6
+ */
7
+ style: VectorStyle | Array<VectorStyle>;
8
+ /**
9
+ * The vector tile cache size.
10
+ */
11
+ cacheSize?: number | undefined;
12
+ };
13
+ export type LayerType = import("../../layer/BaseTile.js").default<any, any>;
14
+ /**
15
+ * @typedef {import('../../render/webgl/VectorStyleRenderer.js').VectorStyle} VectorStyle
16
+ */
17
+ /**
18
+ * @typedef {Object} Options
19
+ * @property {VectorStyle|Array<VectorStyle>} style Vector style as literal style or shaders; can also accept an array of styles
20
+ * @property {number} [cacheSize=512] The vector tile cache size.
21
+ */
22
+ /**
23
+ * @typedef {import("../../layer/BaseTile.js").default} LayerType
24
+ */
25
+ /**
26
+ * @classdesc
27
+ * WebGL renderer for vector tile layers. Experimental.
28
+ * @extends {WebGLBaseTileLayerRenderer<LayerType>}
29
+ */
30
+ declare class WebGLVectorTileLayerRenderer extends WebGLBaseTileLayerRenderer<import("../../layer/BaseTile.js").default<any, any>, any, any> {
31
+ /**
32
+ * @param {LayerType} tileLayer Tile layer.
33
+ * @param {Options} options Options.
34
+ */
35
+ constructor(tileLayer: import("../../layer/BaseTile.js").default<any, any>, options: Options);
36
+ /**
37
+ * @type {Array<VectorStyle>}
38
+ * @private
39
+ */
40
+ private styles_;
41
+ /**
42
+ * @type {Array<VectorStyleRenderer>}
43
+ * @private
44
+ */
45
+ private styleRenderers_;
46
+ /**
47
+ * This transform is updated on every frame and is the composition of:
48
+ * - invert of the world->screen transform that was used when rebuilding buffers (see `this.renderTransform_`)
49
+ * - current world->screen transform
50
+ * @type {import("../../transform.js").Transform}
51
+ * @private
52
+ */
53
+ private currentFrameStateTransform_;
54
+ tmpTransform_: number[];
55
+ tmpMat4_: number[];
56
+ /**
57
+ * @param {Options} options Options.
58
+ */
59
+ reset(options: Options): void;
60
+ /**
61
+ * @param {Options} options Options.
62
+ * @private
63
+ */
64
+ private applyOptions_;
65
+ /**
66
+ * @private
67
+ */
68
+ private createRenderers_;
69
+ createTileRepresentation(options: any): TileGeometry;
70
+ beforeTilesRender(frameState: any, tilesWithAlpha: any): void;
71
+ /**
72
+ * @param {number} alpha Alpha value of the tile
73
+ * @param {import("../../extent.js").Extent} renderExtent Which extent to restrict drawing to
74
+ * @param {import("../../transform.js").Transform} batchInvertTransform Inverse of the transformation in which tile geometries are expressed
75
+ * @private
76
+ */
77
+ private applyUniforms_;
78
+ renderTile(tileRepresentation: any, tileTransform: any, frameState: any, renderExtent: any, tileResolution: any, tileSize: any, tileOrigin: any, tileExtent: any, depth: any, gutter: any, alpha: any): void;
79
+ /**
80
+ * Render declutter items for this layer
81
+ * @param {import("../../Map.js").FrameState} frameState Frame state.
82
+ */
83
+ renderDeclutter(frameState: import("../../Map.js").FrameState): void;
84
+ }
85
+ import WebGLBaseTileLayerRenderer from './TileLayerBase.js';
86
+ import TileGeometry from '../../webgl/TileGeometry.js';
87
+ //# sourceMappingURL=VectorTileLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorTileLayer.d.ts","sourceRoot":"","sources":["VectorTileLayer.js"],"names":[],"mappings":";0BAoBa,OAAO,2CAA2C,EAAE,WAAW;;;;;WAK9D,WAAW,GAAC,MAAM,WAAW,CAAC;;;;;;;AAN5C;;GAEG;AAEH;;;;GAIG;AAEH;;GAEG;AAEH;;;;GAIG;AACH;IACE;;;OAGG;IACH,qFAFW,OAAO,EA8BjB;IAzBC;;;OAGG;IACH,gBAAiB;IAEjB;;;OAGG;IACH,wBAAyB;IAEzB;;;;;;OAMG;IACH,oCAAoD;IAEpD,wBAAsC;IACtC,mBAA4B;IAK9B;;OAEG;IACH,eAFW,OAAO,QASjB;IAED;;;OAGG;IACH,sBAIC;IAED;;OAEG;IACH,yBAIC;IAMD,qDAWC;IAED,8DAMC;IAED;;;;;OAKG;IACH,uBAkBC;IAED,6MA6BC;IAED;;;OAGG;IACH,4BAFW,OAAO,cAAc,EAAE,UAAU,QAEd;CAQ/B;uCAhMkD,oBAAoB;yBAF9C,6BAA6B"}