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
@@ -0,0 +1,108 @@
1
+ /**
2
+ * @module ol/webgl/BaseTileRepresentation
3
+ */
4
+
5
+ import EventTarget from '../events/Target.js';
6
+ import EventType from '../events/EventType.js';
7
+ import ImageTile from '../ImageTile.js';
8
+ import TileState from '../TileState.js';
9
+ import {abstract} from '../util.js';
10
+
11
+ /**
12
+ * @typedef {import("../Tile.js").default} BaseTileType
13
+ */
14
+
15
+ /**
16
+ * @template {BaseTileType} TileType
17
+ * @typedef {Object} TileRepresentationOptions
18
+ * @property {TileType} tile The tile.
19
+ * @property {import("../tilegrid/TileGrid.js").default} grid Tile grid.
20
+ * @property {import("../webgl/Helper.js").default} helper WebGL helper.
21
+ * @property {number} [gutter=0] The size in pixels of the gutter around image tiles to ignore.
22
+ */
23
+
24
+ /**
25
+ * @classdesc
26
+ * Base class for representing a tile in a webgl context
27
+ * @template {import("../Tile.js").default} TileType
28
+ * @abstract
29
+ */
30
+ class BaseTileRepresentation extends EventTarget {
31
+ /**
32
+ * @param {TileRepresentationOptions<TileType>} options The tile representation options.
33
+ */
34
+ constructor(options) {
35
+ super();
36
+
37
+ /**
38
+ * @type {TileType}
39
+ */
40
+ this.tile;
41
+ this.handleTileChange_ = this.handleTileChange_.bind(this);
42
+
43
+ /**
44
+ * @type {number}
45
+ * @protected
46
+ */
47
+ this.gutter_ = options.gutter || 0;
48
+
49
+ /**
50
+ * @type {import("../webgl/Helper.js").default}
51
+ * @protected
52
+ */
53
+ this.helper_ = options.helper;
54
+
55
+ this.loaded = false;
56
+ this.ready = false;
57
+ }
58
+
59
+ /**
60
+ * @param {TileType} tile Tile.
61
+ */
62
+ setTile(tile) {
63
+ if (tile !== this.tile) {
64
+ if (this.tile) {
65
+ this.tile.removeEventListener(EventType.CHANGE, this.handleTileChange_);
66
+ }
67
+ this.tile = tile;
68
+ this.loaded = tile.getState() === TileState.LOADED;
69
+ if (this.loaded) {
70
+ this.uploadTile();
71
+ } else {
72
+ if (tile instanceof ImageTile) {
73
+ const image = tile.getImage();
74
+ if (image instanceof Image && !image.crossOrigin) {
75
+ image.crossOrigin = 'anonymous';
76
+ }
77
+ }
78
+ tile.addEventListener(EventType.CHANGE, this.handleTileChange_);
79
+ }
80
+ }
81
+ }
82
+
83
+ /**
84
+ * @abstract
85
+ * @protected
86
+ */
87
+ uploadTile() {
88
+ abstract();
89
+ }
90
+
91
+ setReady() {
92
+ this.ready = true;
93
+ this.dispatchEvent(EventType.CHANGE);
94
+ }
95
+
96
+ handleTileChange_() {
97
+ if (this.tile.getState() === TileState.LOADED) {
98
+ this.loaded = true;
99
+ this.uploadTile();
100
+ }
101
+ }
102
+
103
+ disposeInternal() {
104
+ this.tile.removeEventListener(EventType.CHANGE, this.handleTileChange_);
105
+ }
106
+ }
107
+
108
+ export default BaseTileRepresentation;
package/webgl/Buffer.d.ts CHANGED
@@ -15,9 +15,9 @@ export namespace BufferUsage {
15
15
  export { DYNAMIC_DRAW };
16
16
  }
17
17
  export default WebGLArrayBuffer;
18
- import { STATIC_DRAW } from "../webgl.js";
19
- import { STREAM_DRAW } from "../webgl.js";
20
- import { DYNAMIC_DRAW } from "../webgl.js";
18
+ import { STATIC_DRAW } from '../webgl.js';
19
+ import { STREAM_DRAW } from '../webgl.js';
20
+ import { DYNAMIC_DRAW } from '../webgl.js';
21
21
  /**
22
22
  * @classdesc
23
23
  * Object used to store an array of data as well as usage information for that data.
@@ -59,19 +59,22 @@ declare class WebGLArrayBuffer {
59
59
  /**
60
60
  * Populates the buffer with an array of the given size (all values will be zeroes).
61
61
  * @param {number} size Array size
62
+ * @return {WebGLArrayBuffer} This
62
63
  */
63
- ofSize(size: number): void;
64
+ ofSize(size: number): WebGLArrayBuffer;
64
65
  /**
65
66
  * Populates the buffer with an array of the given size.
66
67
  * @param {Array<number>} array Numerical array
68
+ * @return {WebGLArrayBuffer} This
67
69
  */
68
- fromArray(array: Array<number>): void;
70
+ fromArray(array: Array<number>): WebGLArrayBuffer;
69
71
  /**
70
72
  * Populates the buffer with a raw binary array buffer.
71
73
  * @param {ArrayBuffer} buffer Raw binary buffer to populate the array with. Note that this buffer must have been
72
74
  * initialized for the same typed array class.
75
+ * @return {WebGLArrayBuffer} This
73
76
  */
74
- fromArrayBuffer(buffer: ArrayBuffer): void;
77
+ fromArrayBuffer(buffer: ArrayBuffer): WebGLArrayBuffer;
75
78
  /**
76
79
  * @return {number} Buffer type.
77
80
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Buffer.d.ts","sourceRoot":"","sources":["Buffer.js"],"names":[],"mappings":"AA2HA;;;;GAIG;AACH,2CAHW,MAAM,GACL,uBAAuB,GAAC,sBAAsB,CAWzD;;;;;0BA1HS,MAAM;;;;;;;;;;AAQhB;;;;;;;;;;;;;;;GAeG;AACH;IACE;;;;OAIG;IACH,kBAJW,MAAM,8BAwBhB;IAnBC;;;OAGG;IACH,cAAiB;IAEjB;;;OAGG;IACH,aAAgB;IAIhB;;;OAGG;IACH,cAAkE;IAGpE;;;OAGG;IACH,aAFW,MAAM,QAIhB;IAED;;;OAGG;IACH,iBAFW,MAAM,MAAM,CAAC,QAIvB;IAED;;;;OAIG;IACH,wBAHW,WAAW,QAKrB;IAED;;OAEG;IACH,WAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,YAFY,YAAY,GAAC,WAAW,CAInC;IAED;;OAEG;IACH,YAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,WAFY,MAAM,CAIjB;CACF"}
1
+ {"version":3,"file":"Buffer.d.ts","sourceRoot":"","sources":["Buffer.js"],"names":[],"mappings":"AAiIA;;;;GAIG;AACH,2CAHW,MAAM,GACL,uBAAuB,GAAC,sBAAsB,CAWzD;;;;;0BAhIS,MAAM;;;;;;;4BANT,aAAa;4BAAb,aAAa;6BAAb,aAAa;AAcpB;;;;;;;;;;;;;;;GAeG;AACH;IACE;;;;OAIG;IACH,kBAJW,MAAM,8BAwBhB;IAnBC;;;OAGG;IACH,cAAiB;IAEjB;;;OAGG;IACH,aAAgB;IAIhB;;;OAGG;IACH,cAAkE;IAGpE;;;;OAIG;IACH,aAHW,MAAM,GACL,gBAAgB,CAK3B;IAED;;;;OAIG;IACH,iBAHW,MAAM,MAAM,CAAC,GACZ,gBAAgB,CAK3B;IAED;;;;;OAKG;IACH,wBAJW,WAAW,GAEV,gBAAgB,CAK3B;IAED;;OAEG;IACH,WAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,YAFY,YAAY,GAAC,WAAW,CAInC;IAED;;OAEG;IACH,YAFY,MAAM,CAIjB;IAED;;;OAGG;IACH,WAFY,MAAM,CAIjB;CACF"}
package/webgl/Buffer.js CHANGED
@@ -68,26 +68,32 @@ class WebGLArrayBuffer {
68
68
  /**
69
69
  * Populates the buffer with an array of the given size (all values will be zeroes).
70
70
  * @param {number} size Array size
71
+ * @return {WebGLArrayBuffer} This
71
72
  */
72
73
  ofSize(size) {
73
74
  this.array = new (getArrayClassForType(this.type))(size);
75
+ return this;
74
76
  }
75
77
 
76
78
  /**
77
79
  * Populates the buffer with an array of the given size.
78
80
  * @param {Array<number>} array Numerical array
81
+ * @return {WebGLArrayBuffer} This
79
82
  */
80
83
  fromArray(array) {
81
84
  this.array = getArrayClassForType(this.type).from(array);
85
+ return this;
82
86
  }
83
87
 
84
88
  /**
85
89
  * Populates the buffer with a raw binary array buffer.
86
90
  * @param {ArrayBuffer} buffer Raw binary buffer to populate the array with. Note that this buffer must have been
87
91
  * initialized for the same typed array class.
92
+ * @return {WebGLArrayBuffer} This
88
93
  */
89
94
  fromArrayBuffer(buffer) {
90
95
  this.array = new (getArrayClassForType(this.type))(buffer);
96
+ return this;
91
97
  }
92
98
 
93
99
  /**
package/webgl/Helper.d.ts CHANGED
@@ -24,7 +24,7 @@ export namespace DefaultUniform {
24
24
  const TIME: string;
25
25
  const ZOOM: string;
26
26
  const RESOLUTION: string;
27
- const SIZE_PX: string;
27
+ const VIEWPORT_SIZE_PX: string;
28
28
  const PIXEL_RATIO: string;
29
29
  }
30
30
  /**
@@ -140,10 +140,10 @@ export type CanvasCacheItem = {
140
140
  */
141
141
  users: number;
142
142
  };
143
- import { UNSIGNED_BYTE } from "../webgl.js";
144
- import { UNSIGNED_SHORT } from "../webgl.js";
145
- import { UNSIGNED_INT } from "../webgl.js";
146
- import { FLOAT } from "../webgl.js";
143
+ import { UNSIGNED_BYTE } from '../webgl.js';
144
+ import { UNSIGNED_SHORT } from '../webgl.js';
145
+ import { UNSIGNED_INT } from '../webgl.js';
146
+ import { FLOAT } from '../webgl.js';
147
147
  /**
148
148
  * @classdesc
149
149
  * This class is intended to provide low-level functions related to WebGL rendering, so that accessing
@@ -324,14 +324,14 @@ declare class WebGLHelper extends Disposable {
324
324
  private tmpMat4_;
325
325
  /**
326
326
  * @private
327
- * @type {Object<string, WebGLUniformLocation>}
327
+ * @type {Object<string, Object<string, WebGLUniformLocation>>}
328
328
  */
329
- private uniformLocations_;
329
+ private uniformLocationsByProgram_;
330
330
  /**
331
331
  * @private
332
- * @type {Object<string, number>}
332
+ * @type {Object<string, Object<string, number>>}
333
333
  */
334
- private attribLocations_;
334
+ private attribLocationsByProgram_;
335
335
  /**
336
336
  * Holds info about custom uniforms used in the post processing pass.
337
337
  * If the uniform is a texture, the WebGL Texture object will be stored here.
@@ -400,6 +400,13 @@ declare class WebGLHelper extends Disposable {
400
400
  * @param {boolean} [disableAlphaBlend] If true, no alpha blending will happen.
401
401
  */
402
402
  prepareDraw(frameState: import("../Map.js").FrameState, disableAlphaBlend?: boolean | undefined): void;
403
+ /**
404
+ * Prepare a program to use a texture.
405
+ * @param {WebGLTexture} texture The texture.
406
+ * @param {number} slot The texture slot.
407
+ * @param {string} uniformName The corresponding uniform name.
408
+ */
409
+ bindTexture(texture: WebGLTexture, slot: number, uniformName: string): void;
403
410
  /**
404
411
  * Clear the render target & bind it for future draw operations.
405
412
  * This is similar to `prepareDraw`, only post processes will not be applied.
@@ -478,8 +485,8 @@ declare class WebGLHelper extends Disposable {
478
485
  */
479
486
  getAttributeLocation(name: string): number;
480
487
  /**
481
- * Modifies the given transform to apply the rotation/translation/scaling of the given frame state.
482
- * The resulting transform can be used to convert world space coordinates to view coordinates.
488
+ * Sets the given transform to apply the rotation/translation/scaling of the given frame state.
489
+ * The resulting transform can be used to convert world space coordinates to view coordinates in the [-1, 1] range.
483
490
  * @param {import("../Map.js").FrameState} frameState Frame state.
484
491
  * @param {import("../transform").Transform} transform Transform to update.
485
492
  * @return {import("../transform").Transform} The updated transform object.
@@ -549,5 +556,5 @@ declare class WebGLHelper extends Disposable {
549
556
  */
550
557
  createTexture(size: Array<number>, data?: HTMLCanvasElement | HTMLImageElement | ImageData | undefined, texture?: WebGLTexture | undefined): WebGLTexture;
551
558
  }
552
- import Disposable from "../Disposable.js";
559
+ import Disposable from '../Disposable.js';
553
560
  //# sourceMappingURL=Helper.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Helper.d.ts","sourceRoot":"","sources":["Helper.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Helper.d.ts","sourceRoot":"","sources":["Helper.js"],"names":[],"mappings":"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"}
package/webgl/Helper.js CHANGED
@@ -49,7 +49,7 @@ export const DefaultUniform = {
49
49
  TIME: 'u_time',
50
50
  ZOOM: 'u_zoom',
51
51
  RESOLUTION: 'u_resolution',
52
- SIZE_PX: 'u_sizePx',
52
+ VIEWPORT_SIZE_PX: 'u_viewportSizePx',
53
53
  PIXEL_RATIO: 'u_pixelRatio',
54
54
  };
55
55
 
@@ -389,15 +389,15 @@ class WebGLHelper extends Disposable {
389
389
 
390
390
  /**
391
391
  * @private
392
- * @type {Object<string, WebGLUniformLocation>}
392
+ * @type {Object<string, Object<string, WebGLUniformLocation>>}
393
393
  */
394
- this.uniformLocations_ = {};
394
+ this.uniformLocationsByProgram_ = {};
395
395
 
396
396
  /**
397
397
  * @private
398
- * @type {Object<string, number>}
398
+ * @type {Object<string, Object<string, number>>}
399
399
  */
400
- this.attribLocations_ = {};
400
+ this.attribLocationsByProgram_ = {};
401
401
 
402
402
  /**
403
403
  * Holds info about custom uniforms used in the post processing pass.
@@ -410,8 +410,6 @@ class WebGLHelper extends Disposable {
410
410
  this.setUniforms(options.uniforms);
411
411
  }
412
412
 
413
- const gl = this.getGL();
414
-
415
413
  /**
416
414
  * An array of PostProcessingPass objects is kept in this variable, built from the steps provided in the
417
415
  * options. If no post process was given, a default one is used (so as not to have to make an exception to
@@ -420,16 +418,17 @@ class WebGLHelper extends Disposable {
420
418
  * @private
421
419
  */
422
420
  this.postProcessPasses_ = options.postProcesses
423
- ? options.postProcesses.map(function (options) {
424
- return new WebGLPostProcessingPass({
425
- webGlContext: gl,
426
- scaleRatio: options.scaleRatio,
427
- vertexShader: options.vertexShader,
428
- fragmentShader: options.fragmentShader,
429
- uniforms: options.uniforms,
430
- });
431
- })
432
- : [new WebGLPostProcessingPass({webGlContext: gl})];
421
+ ? options.postProcesses.map(
422
+ (options) =>
423
+ new WebGLPostProcessingPass({
424
+ webGlContext: this.gl_,
425
+ scaleRatio: options.scaleRatio,
426
+ vertexShader: options.vertexShader,
427
+ fragmentShader: options.fragmentShader,
428
+ uniforms: options.uniforms,
429
+ })
430
+ )
431
+ : [new WebGLPostProcessingPass({webGlContext: this.gl_})];
433
432
 
434
433
  /**
435
434
  * @type {string|null}
@@ -455,7 +454,6 @@ class WebGLHelper extends Disposable {
455
454
  value: uniforms[name],
456
455
  });
457
456
  }
458
- this.uniformLocations_ = {};
459
457
  }
460
458
 
461
459
  /**
@@ -488,7 +486,7 @@ class WebGLHelper extends Disposable {
488
486
  * @param {import("./Buffer").default} buffer Buffer.
489
487
  */
490
488
  bindBuffer(buffer) {
491
- const gl = this.getGL();
489
+ const gl = this.gl_;
492
490
  const bufferKey = getUid(buffer);
493
491
  let bufferCache = this.bufferCache_[bufferKey];
494
492
  if (!bufferCache) {
@@ -508,7 +506,7 @@ class WebGLHelper extends Disposable {
508
506
  * @param {import("./Buffer").default} buffer Buffer.
509
507
  */
510
508
  flushBufferData(buffer) {
511
- const gl = this.getGL();
509
+ const gl = this.gl_;
512
510
  this.bindBuffer(buffer);
513
511
  gl.bufferData(buffer.getType(), buffer.getArray(), buffer.getUsage());
514
512
  }
@@ -517,7 +515,7 @@ class WebGLHelper extends Disposable {
517
515
  * @param {import("./Buffer.js").default} buf Buffer.
518
516
  */
519
517
  deleteBuffer(buf) {
520
- const gl = this.getGL();
518
+ const gl = this.gl_;
521
519
  const bufferKey = getUid(buf);
522
520
  const bufferCacheEntry = this.bufferCache_[bufferKey];
523
521
  if (bufferCacheEntry && !gl.isContextLost()) {
@@ -553,15 +551,20 @@ class WebGLHelper extends Disposable {
553
551
  * @param {boolean} [disableAlphaBlend] If true, no alpha blending will happen.
554
552
  */
555
553
  prepareDraw(frameState, disableAlphaBlend) {
556
- const gl = this.getGL();
554
+ const gl = this.gl_;
557
555
  const canvas = this.getCanvas();
558
556
  const size = frameState.size;
559
557
  const pixelRatio = frameState.pixelRatio;
560
558
 
561
- canvas.width = size[0] * pixelRatio;
562
- canvas.height = size[1] * pixelRatio;
563
- canvas.style.width = size[0] + 'px';
564
- canvas.style.height = size[1] + 'px';
559
+ if (
560
+ canvas.width !== size[0] * pixelRatio ||
561
+ canvas.height !== size[1] * pixelRatio
562
+ ) {
563
+ canvas.width = size[0] * pixelRatio;
564
+ canvas.height = size[1] * pixelRatio;
565
+ canvas.style.width = size[0] + 'px';
566
+ canvas.style.height = size[1] + 'px';
567
+ }
565
568
 
566
569
  // loop backwards in post processes list
567
570
  for (let i = this.postProcessPasses_.length - 1; i >= 0; i--) {
@@ -577,6 +580,19 @@ class WebGLHelper extends Disposable {
577
580
  gl.blendFunc(gl.ONE, disableAlphaBlend ? gl.ZERO : gl.ONE_MINUS_SRC_ALPHA);
578
581
  }
579
582
 
583
+ /**
584
+ * Prepare a program to use a texture.
585
+ * @param {WebGLTexture} texture The texture.
586
+ * @param {number} slot The texture slot.
587
+ * @param {string} uniformName The corresponding uniform name.
588
+ */
589
+ bindTexture(texture, slot, uniformName) {
590
+ const gl = this.gl_;
591
+ gl.activeTexture(gl.TEXTURE0 + slot);
592
+ gl.bindTexture(gl.TEXTURE_2D, texture);
593
+ gl.uniform1i(this.getUniformLocation(uniformName), slot);
594
+ }
595
+
580
596
  /**
581
597
  * Clear the render target & bind it for future draw operations.
582
598
  * This is similar to `prepareDraw`, only post processes will not be applied.
@@ -586,7 +602,7 @@ class WebGLHelper extends Disposable {
586
602
  * @param {boolean} [disableAlphaBlend] If true, no alpha blending will happen.
587
603
  */
588
604
  prepareDrawToRenderTarget(frameState, renderTarget, disableAlphaBlend) {
589
- const gl = this.getGL();
605
+ const gl = this.gl_;
590
606
  const size = renderTarget.getSize();
591
607
 
592
608
  gl.bindFramebuffer(gl.FRAMEBUFFER, renderTarget.getFramebuffer());
@@ -604,7 +620,7 @@ class WebGLHelper extends Disposable {
604
620
  * @param {number} end End index.
605
621
  */
606
622
  drawElements(start, end) {
607
- const gl = this.getGL();
623
+ const gl = this.gl_;
608
624
  this.getExtension('OES_element_index_uint');
609
625
 
610
626
  const elementType = gl.UNSIGNED_INT;
@@ -691,7 +707,10 @@ class WebGLHelper extends Disposable {
691
707
  frameState.viewState.resolution
692
708
  );
693
709
  this.setUniformFloatValue(DefaultUniform.PIXEL_RATIO, pixelRatio);
694
- this.setUniformFloatVec2(DefaultUniform.SIZE_PX, [size[0], size[1]]);
710
+ this.setUniformFloatVec2(DefaultUniform.VIEWPORT_SIZE_PX, [
711
+ size[0],
712
+ size[1],
713
+ ]);
695
714
  }
696
715
 
697
716
  /**
@@ -699,7 +718,7 @@ class WebGLHelper extends Disposable {
699
718
  * @param {import("../Map.js").FrameState} frameState Frame state.
700
719
  */
701
720
  applyUniforms(frameState) {
702
- const gl = this.getGL();
721
+ const gl = this.gl_;
703
722
 
704
723
  let value;
705
724
  let textureSlot = 0;
@@ -790,11 +809,9 @@ class WebGLHelper extends Disposable {
790
809
  * @param {import("../Map.js").FrameState} frameState Frame state.
791
810
  */
792
811
  useProgram(program, frameState) {
793
- const gl = this.getGL();
812
+ const gl = this.gl_;
794
813
  gl.useProgram(program);
795
814
  this.currentProgram_ = program;
796
- this.uniformLocations_ = {};
797
- this.attribLocations_ = {};
798
815
  this.applyFrameState(frameState);
799
816
  this.applyUniforms(frameState);
800
817
  }
@@ -809,7 +826,7 @@ class WebGLHelper extends Disposable {
809
826
  * @return {WebGLShader} Shader object
810
827
  */
811
828
  compileShader(source, type) {
812
- const gl = this.getGL();
829
+ const gl = this.gl_;
813
830
  const shader = gl.createShader(type);
814
831
  gl.shaderSource(shader, source);
815
832
  gl.compileShader(shader);
@@ -823,7 +840,7 @@ class WebGLHelper extends Disposable {
823
840
  * @return {WebGLProgram} Program
824
841
  */
825
842
  getProgram(fragmentShaderSource, vertexShaderSource) {
826
- const gl = this.getGL();
843
+ const gl = this.gl_;
827
844
 
828
845
  const fragmentShader = this.compileShader(
829
846
  fragmentShaderSource,
@@ -857,8 +874,8 @@ class WebGLHelper extends Disposable {
857
874
  gl.deleteShader(vertexShader);
858
875
 
859
876
  if (!gl.getProgramParameter(program, gl.LINK_STATUS)) {
860
- const message = `GL program linking failed: ${gl.getShaderInfoLog(
861
- vertexShader
877
+ const message = `GL program linking failed: ${gl.getProgramInfoLog(
878
+ program
862
879
  )}`;
863
880
  throw new Error(message);
864
881
  }
@@ -872,13 +889,15 @@ class WebGLHelper extends Disposable {
872
889
  * @return {WebGLUniformLocation} uniformLocation
873
890
  */
874
891
  getUniformLocation(name) {
875
- if (this.uniformLocations_[name] === undefined) {
876
- this.uniformLocations_[name] = this.getGL().getUniformLocation(
877
- this.currentProgram_,
878
- name
879
- );
892
+ const programUid = getUid(this.currentProgram_);
893
+ if (this.uniformLocationsByProgram_[programUid] === undefined) {
894
+ this.uniformLocationsByProgram_[programUid] = {};
895
+ }
896
+ if (this.uniformLocationsByProgram_[programUid][name] === undefined) {
897
+ this.uniformLocationsByProgram_[programUid][name] =
898
+ this.gl_.getUniformLocation(this.currentProgram_, name);
880
899
  }
881
- return this.uniformLocations_[name];
900
+ return this.uniformLocationsByProgram_[programUid][name];
882
901
  }
883
902
 
884
903
  /**
@@ -887,18 +906,20 @@ class WebGLHelper extends Disposable {
887
906
  * @return {number} attribLocation
888
907
  */
889
908
  getAttributeLocation(name) {
890
- if (this.attribLocations_[name] === undefined) {
891
- this.attribLocations_[name] = this.getGL().getAttribLocation(
892
- this.currentProgram_,
893
- name
894
- );
909
+ const programUid = getUid(this.currentProgram_);
910
+ if (this.attribLocationsByProgram_[programUid] === undefined) {
911
+ this.attribLocationsByProgram_[programUid] = {};
912
+ }
913
+ if (this.attribLocationsByProgram_[programUid][name] === undefined) {
914
+ this.attribLocationsByProgram_[programUid][name] =
915
+ this.gl_.getAttribLocation(this.currentProgram_, name);
895
916
  }
896
- return this.attribLocations_[name];
917
+ return this.attribLocationsByProgram_[programUid][name];
897
918
  }
898
919
 
899
920
  /**
900
- * Modifies the given transform to apply the rotation/translation/scaling of the given frame state.
901
- * The resulting transform can be used to convert world space coordinates to view coordinates.
921
+ * Sets the given transform to apply the rotation/translation/scaling of the given frame state.
922
+ * The resulting transform can be used to convert world space coordinates to view coordinates in the [-1, 1] range.
902
923
  * @param {import("../Map.js").FrameState} frameState Frame state.
903
924
  * @param {import("../transform").Transform} transform Transform to update.
904
925
  * @return {import("../transform").Transform} The updated transform object.
@@ -908,8 +929,6 @@ class WebGLHelper extends Disposable {
908
929
  const rotation = frameState.viewState.rotation;
909
930
  const resolution = frameState.viewState.resolution;
910
931
  const center = frameState.viewState.center;
911
-
912
- resetTransform(transform);
913
932
  composeTransform(
914
933
  transform,
915
934
  0,
@@ -929,7 +948,7 @@ class WebGLHelper extends Disposable {
929
948
  * @param {number} value Value
930
949
  */
931
950
  setUniformFloatValue(uniform, value) {
932
- this.getGL().uniform1f(this.getUniformLocation(uniform), value);
951
+ this.gl_.uniform1f(this.getUniformLocation(uniform), value);
933
952
  }
934
953
 
935
954
  /**
@@ -938,7 +957,7 @@ class WebGLHelper extends Disposable {
938
957
  * @param {Array<number>} value Array of length 4.
939
958
  */
940
959
  setUniformFloatVec2(uniform, value) {
941
- this.getGL().uniform2fv(this.getUniformLocation(uniform), value);
960
+ this.gl_.uniform2fv(this.getUniformLocation(uniform), value);
942
961
  }
943
962
 
944
963
  /**
@@ -947,7 +966,7 @@ class WebGLHelper extends Disposable {
947
966
  * @param {Array<number>} value Array of length 4.
948
967
  */
949
968
  setUniformFloatVec4(uniform, value) {
950
- this.getGL().uniform4fv(this.getUniformLocation(uniform), value);
969
+ this.gl_.uniform4fv(this.getUniformLocation(uniform), value);
951
970
  }
952
971
 
953
972
  /**
@@ -956,11 +975,7 @@ class WebGLHelper extends Disposable {
956
975
  * @param {Array<number>} value Matrix value
957
976
  */
958
977
  setUniformMatrixValue(uniform, value) {
959
- this.getGL().uniformMatrix4fv(
960
- this.getUniformLocation(uniform),
961
- false,
962
- value
963
- );
978
+ this.gl_.uniformMatrix4fv(this.getUniformLocation(uniform), false, value);
964
979
  }
965
980
 
966
981
  /**
@@ -979,15 +994,8 @@ class WebGLHelper extends Disposable {
979
994
  if (location < 0) {
980
995
  return;
981
996
  }
982
- this.getGL().enableVertexAttribArray(location);
983
- this.getGL().vertexAttribPointer(
984
- location,
985
- size,
986
- type,
987
- false,
988
- stride,
989
- offset
990
- );
997
+ this.gl_.enableVertexAttribArray(location);
998
+ this.gl_.vertexAttribPointer(location, size, type, false, stride, offset);
991
999
  }
992
1000
 
993
1001
  /**
@@ -1038,7 +1046,7 @@ class WebGLHelper extends Disposable {
1038
1046
  * @return {WebGLTexture} The generated texture
1039
1047
  */
1040
1048
  createTexture(size, data, texture) {
1041
- const gl = this.getGL();
1049
+ const gl = this.gl_;
1042
1050
  texture = texture || gl.createTexture();
1043
1051
 
1044
1052
  // set params & size