@mapgis/mapbox-gl 16.0.0 → 16.2.0

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 (441) hide show
  1. package/dist/mapbox-gl.js +4 -4
  2. package/dist/mapbox-gl.js.map +1 -1
  3. package/package.json +4 -5
  4. package/.flowconfig +0 -61
  5. package/LICENSE.txt +0 -84
  6. package/README.md +0 -34
  7. package/build/banner.js +0 -4
  8. package/build/check-bundle-size.js +0 -140
  9. package/build/generate-access-token-script.js +0 -11
  10. package/build/generate-flow-typed-style-spec.js +0 -188
  11. package/build/generate-release-list.js +0 -21
  12. package/build/generate-struct-arrays.js +0 -237
  13. package/build/generate-style-code.js +0 -159
  14. package/build/mapbox-gl.js.flow +0 -3
  15. package/build/print-release-url.js +0 -6
  16. package/build/rollup_plugin_minify_style_spec.js +0 -20
  17. package/build/rollup_plugins.js +0 -80
  18. package/build/run-node +0 -3
  19. package/build/run-tap +0 -8
  20. package/build/test/build-tape.js +0 -19
  21. package/dist/mapbox-gl-csp-worker.js +0 -2
  22. package/dist/mapbox-gl-csp-worker.js.map +0 -1
  23. package/dist/mapbox-gl-csp.js +0 -2
  24. package/dist/mapbox-gl-csp.js.map +0 -1
  25. package/dist/mapbox-gl-dev.js +0 -68798
  26. package/dist/mapbox-gl-unminified.js +0 -45076
  27. package/dist/mapbox-gl-unminified.js.map +0 -1
  28. package/flow-typed/gl.js +0 -5
  29. package/flow-typed/jsdom.js +0 -18
  30. package/flow-typed/mapbox-gl-supported.js +0 -9
  31. package/flow-typed/mapbox-unitbezier.js +0 -14
  32. package/flow-typed/offscreen-canvas.js +0 -9
  33. package/flow-typed/pbf.js +0 -25
  34. package/flow-typed/point-geometry.js +0 -44
  35. package/flow-typed/potpack.js +0 -12
  36. package/flow-typed/sinon.js +0 -28
  37. package/flow-typed/vector-tile.js +0 -41
  38. package/src/css/mapbox-gl.css +0 -798
  39. package/src/css/svg/mapboxgl-ctrl-attrib.svg +0 -3
  40. package/src/css/svg/mapboxgl-ctrl-compass.svg +0 -4
  41. package/src/css/svg/mapboxgl-ctrl-fullscreen.svg +0 -3
  42. package/src/css/svg/mapboxgl-ctrl-geolocate.svg +0 -5
  43. package/src/css/svg/mapboxgl-ctrl-logo.svg +0 -20
  44. package/src/css/svg/mapboxgl-ctrl-shrink.svg +0 -3
  45. package/src/css/svg/mapboxgl-ctrl-zoom-in.svg +0 -3
  46. package/src/css/svg/mapboxgl-ctrl-zoom-out.svg +0 -3
  47. package/src/data/array_types.js +0 -1095
  48. package/src/data/bucket/circle_attributes.js +0 -9
  49. package/src/data/bucket/circle_bucket.js +0 -204
  50. package/src/data/bucket/fill_attributes.js +0 -9
  51. package/src/data/bucket/fill_bucket.js +0 -233
  52. package/src/data/bucket/fill_extrusion_attributes.js +0 -10
  53. package/src/data/bucket/fill_extrusion_bucket.js +0 -289
  54. package/src/data/bucket/heatmap_bucket.js +0 -17
  55. package/src/data/bucket/line_attributes.js +0 -10
  56. package/src/data/bucket/line_bucket.js +0 -556
  57. package/src/data/bucket/pattern_attributes.js +0 -10
  58. package/src/data/bucket/pattern_bucket_features.js +0 -60
  59. package/src/data/bucket/symbol_attributes.js +0 -117
  60. package/src/data/bucket/symbol_bucket.js +0 -972
  61. package/src/data/bucket.js +0 -123
  62. package/src/data/dem_data.js +0 -125
  63. package/src/data/extent.js +0 -18
  64. package/src/data/feature_index.js +0 -321
  65. package/src/data/feature_position_map.js +0 -125
  66. package/src/data/index_array_type.js +0 -16
  67. package/src/data/load_geometry.js +0 -48
  68. package/src/data/pos_attributes.js +0 -6
  69. package/src/data/program_configuration.js +0 -687
  70. package/src/data/raster_bounds_attributes.js +0 -7
  71. package/src/data/segment.js +0 -76
  72. package/src/geo/edge_insets.js +0 -102
  73. package/src/geo/lng_lat.js +0 -165
  74. package/src/geo/lng_lat_bounds.js +0 -267
  75. package/src/geo/mercator_coordinate.js +0 -153
  76. package/src/geo/transform.js +0 -864
  77. package/src/gl/color_mode.js +0 -34
  78. package/src/gl/context.js +0 -298
  79. package/src/gl/cull_face_mode.js +0 -26
  80. package/src/gl/depth_mode.js +0 -29
  81. package/src/gl/framebuffer.js +0 -44
  82. package/src/gl/index_buffer.js +0 -55
  83. package/src/gl/stencil_mode.js +0 -30
  84. package/src/gl/types.js +0 -84
  85. package/src/gl/value.js +0 -520
  86. package/src/gl/vertex_buffer.js +0 -119
  87. package/src/index.js +0 -201
  88. package/src/render/draw_background.js +0 -57
  89. package/src/render/draw_circle.js +0 -113
  90. package/src/render/draw_collision_debug.js +0 -49
  91. package/src/render/draw_custom.js +0 -49
  92. package/src/render/draw_debug.js +0 -127
  93. package/src/render/draw_fill.js +0 -126
  94. package/src/render/draw_fill_extrusion.js +0 -96
  95. package/src/render/draw_heatmap.js +0 -140
  96. package/src/render/draw_hillshade.js +0 -108
  97. package/src/render/draw_line.js +0 -98
  98. package/src/render/draw_raster.js +0 -125
  99. package/src/render/draw_symbol.js +0 -394
  100. package/src/render/glyph_atlas.js +0 -71
  101. package/src/render/glyph_manager.js +0 -182
  102. package/src/render/image_atlas.js +0 -149
  103. package/src/render/image_manager.js +0 -306
  104. package/src/render/line_atlas.js +0 -210
  105. package/src/render/painter.js +0 -653
  106. package/src/render/program/background_program.js +0 -103
  107. package/src/render/program/circle_program.js +0 -69
  108. package/src/render/program/clipping_mask_program.js +0 -20
  109. package/src/render/program/collision_program.js +0 -49
  110. package/src/render/program/debug_program.js +0 -35
  111. package/src/render/program/fill_extrusion_program.js +0 -122
  112. package/src/render/program/fill_program.js +0 -126
  113. package/src/render/program/heatmap_program.js +0 -83
  114. package/src/render/program/hillshade_program.js +0 -122
  115. package/src/render/program/line_program.js +0 -207
  116. package/src/render/program/pattern.js +0 -102
  117. package/src/render/program/program_uniforms.js +0 -42
  118. package/src/render/program/raster_program.js +0 -92
  119. package/src/render/program/symbol_program.js +0 -224
  120. package/src/render/program.js +0 -168
  121. package/src/render/texture.js +0 -122
  122. package/src/render/uniform_binding.js +0 -147
  123. package/src/render/vertex_array_object.js +0 -163
  124. package/src/shaders/README.md +0 -42
  125. package/src/shaders/_prelude.fragment.glsl +0 -17
  126. package/src/shaders/_prelude.vertex.glsl +0 -73
  127. package/src/shaders/background.fragment.glsl +0 -10
  128. package/src/shaders/background.vertex.glsl +0 -7
  129. package/src/shaders/background_pattern.fragment.glsl +0 -28
  130. package/src/shaders/background_pattern.vertex.glsl +0 -20
  131. package/src/shaders/circle.fragment.glsl +0 -39
  132. package/src/shaders/circle.vertex.glsl +0 -64
  133. package/src/shaders/clipping_mask.fragment.glsl +0 -3
  134. package/src/shaders/clipping_mask.vertex.glsl +0 -7
  135. package/src/shaders/collision_box.fragment.glsl +0 -21
  136. package/src/shaders/collision_box.vertex.glsl +0 -27
  137. package/src/shaders/collision_circle.fragment.glsl +0 -34
  138. package/src/shaders/collision_circle.vertex.glsl +0 -36
  139. package/src/shaders/debug.fragment.glsl +0 -9
  140. package/src/shaders/debug.vertex.glsl +0 -12
  141. package/src/shaders/encode_attribute.js +0 -17
  142. package/src/shaders/fill.fragment.glsl +0 -13
  143. package/src/shaders/fill.vertex.glsl +0 -13
  144. package/src/shaders/fill_extrusion.fragment.glsl +0 -9
  145. package/src/shaders/fill_extrusion.vertex.glsl +0 -66
  146. package/src/shaders/fill_extrusion_pattern.fragment.glsl +0 -45
  147. package/src/shaders/fill_extrusion_pattern.vertex.glsl +0 -79
  148. package/src/shaders/fill_outline.fragment.glsl +0 -17
  149. package/src/shaders/fill_outline.vertex.glsl +0 -17
  150. package/src/shaders/fill_outline_pattern.fragment.glsl +0 -43
  151. package/src/shaders/fill_outline_pattern.vertex.glsl +0 -44
  152. package/src/shaders/fill_pattern.fragment.glsl +0 -36
  153. package/src/shaders/fill_pattern.vertex.glsl +0 -39
  154. package/src/shaders/heatmap.fragment.glsl +0 -22
  155. package/src/shaders/heatmap.vertex.glsl +0 -54
  156. package/src/shaders/heatmap_texture.fragment.glsl +0 -14
  157. package/src/shaders/heatmap_texture.vertex.glsl +0 -11
  158. package/src/shaders/hillshade.fragment.glsl +0 -52
  159. package/src/shaders/hillshade.vertex.glsl +0 -11
  160. package/src/shaders/hillshade_prepare.fragment.glsl +0 -74
  161. package/src/shaders/hillshade_prepare.vertex.glsl +0 -15
  162. package/src/shaders/index.js +0 -20
  163. package/src/shaders/line.fragment.glsl +0 -30
  164. package/src/shaders/line.vertex.glsl +0 -85
  165. package/src/shaders/line_gradient.fragment.glsl +0 -34
  166. package/src/shaders/line_gradient.vertex.glsl +0 -87
  167. package/src/shaders/line_pattern.fragment.glsl +0 -74
  168. package/src/shaders/line_pattern.vertex.glsl +0 -99
  169. package/src/shaders/line_sdf.fragment.glsl +0 -45
  170. package/src/shaders/line_sdf.vertex.glsl +0 -98
  171. package/src/shaders/raster.fragment.glsl +0 -52
  172. package/src/shaders/raster.vertex.glsl +0 -21
  173. package/src/shaders/shaders.js +0 -180
  174. package/src/shaders/symbol_icon.fragment.glsl +0 -17
  175. package/src/shaders/symbol_icon.vertex.glsl +0 -94
  176. package/src/shaders/symbol_sdf.fragment.glsl +0 -52
  177. package/src/shaders/symbol_sdf.vertex.glsl +0 -115
  178. package/src/shaders/symbol_text_and_icon.fragment.glsl +0 -68
  179. package/src/shaders/symbol_text_and_icon.vertex.glsl +0 -116
  180. package/src/source/canvas_source.js +0 -238
  181. package/src/source/geojson_helper.js +0 -92
  182. package/src/source/geojson_source.js +0 -374
  183. package/src/source/geojson_worker_source.js +0 -357
  184. package/src/source/geojson_wrapper.js +0 -94
  185. package/src/source/image_source.js +0 -307
  186. package/src/source/load_tilejson.js +0 -39
  187. package/src/source/mbtiles_source.js +0 -115
  188. package/src/source/offline_database.js +0 -61
  189. package/src/source/offline_database_root.js +0 -62
  190. package/src/source/pixels_to_tile_units.js +0 -21
  191. package/src/source/query_features.js +0 -208
  192. package/src/source/raster_dem_tile_source.js +0 -138
  193. package/src/source/raster_dem_tile_worker_source.js +0 -62
  194. package/src/source/raster_tile_offline_source.js +0 -136
  195. package/src/source/raster_tile_source.js +0 -177
  196. package/src/source/rtl_text_plugin.js +0 -138
  197. package/src/source/source.js +0 -137
  198. package/src/source/source_cache.js +0 -957
  199. package/src/source/source_state.js +0 -159
  200. package/src/source/tile.js +0 -465
  201. package/src/source/tile_bounds.js +0 -38
  202. package/src/source/tile_cache.js +0 -212
  203. package/src/source/tile_id.js +0 -402
  204. package/src/source/vector_tile_source.js +0 -192
  205. package/src/source/vector_tile_worker_source.js +0 -216
  206. package/src/source/video_source.js +0 -203
  207. package/src/source/worker.js +0 -237
  208. package/src/source/worker_source.js +0 -106
  209. package/src/source/worker_tile.js +0 -224
  210. package/src/style/create_style_layer.js +0 -36
  211. package/src/style/evaluation_parameters.js +0 -62
  212. package/src/style/light.js +0 -130
  213. package/src/style/load_glyph_range.js +0 -38
  214. package/src/style/load_sprite.js +0 -67
  215. package/src/style/parse_glyph_pbf.js +0 -44
  216. package/src/style/pauseable_placement.js +0 -132
  217. package/src/style/properties.js +0 -753
  218. package/src/style/query_utils.js +0 -43
  219. package/src/style/style.js +0 -1361
  220. package/src/style/style_glyph.js +0 -17
  221. package/src/style/style_image.js +0 -137
  222. package/src/style/style_layer/background_style_layer.js +0 -21
  223. package/src/style/style_layer/background_style_layer_properties.js +0 -40
  224. package/src/style/style_layer/circle_style_layer.js +0 -98
  225. package/src/style/style_layer/circle_style_layer_properties.js +0 -63
  226. package/src/style/style_layer/custom_style_layer.js +0 -223
  227. package/src/style/style_layer/fill_extrusion_style_layer.js +0 -224
  228. package/src/style/style_layer/fill_extrusion_style_layer_properties.js +0 -50
  229. package/src/style/style_layer/fill_style_layer.js +0 -67
  230. package/src/style/style_layer/fill_style_layer_properties.js +0 -55
  231. package/src/style/style_layer/heatmap_style_layer.js +0 -69
  232. package/src/style/style_layer/heatmap_style_layer_properties.js +0 -44
  233. package/src/style/style_layer/hillshade_style_layer.js +0 -25
  234. package/src/style/style_layer/hillshade_style_layer_properties.js +0 -46
  235. package/src/style/style_layer/layer_properties.js.ejs +0 -69
  236. package/src/style/style_layer/line_style_layer.js +0 -151
  237. package/src/style/style_layer/line_style_layer_properties.js +0 -71
  238. package/src/style/style_layer/raster_style_layer.js +0 -21
  239. package/src/style/style_layer/raster_style_layer_properties.js +0 -50
  240. package/src/style/style_layer/symbol_style_layer.js +0 -190
  241. package/src/style/style_layer/symbol_style_layer_properties.js +0 -153
  242. package/src/style/style_layer/typed_style_layer.js +0 -17
  243. package/src/style/style_layer.js +0 -281
  244. package/src/style/style_layer_index.js +0 -80
  245. package/src/style/validate_style.js +0 -42
  246. package/src/style/zoom_history.js +0 -44
  247. package/src/style-spec/.eslintrc +0 -5
  248. package/src/style-spec/CHANGELOG.md +0 -438
  249. package/src/style-spec/README.md +0 -59
  250. package/src/style-spec/bin/gl-style-composite +0 -9
  251. package/src/style-spec/bin/gl-style-format +0 -22
  252. package/src/style-spec/bin/gl-style-migrate +0 -9
  253. package/src/style-spec/bin/gl-style-validate +0 -50
  254. package/src/style-spec/composite.js +0 -50
  255. package/src/style-spec/declass.js +0 -42
  256. package/src/style-spec/deref.js +0 -52
  257. package/src/style-spec/diff.js +0 -393
  258. package/src/style-spec/dist/.gitkeep +0 -0
  259. package/src/style-spec/empty.js +0 -29
  260. package/src/style-spec/error/parsing_error.js +0 -16
  261. package/src/style-spec/error/validation_error.js +0 -18
  262. package/src/style-spec/expression/compound_expression.js +0 -162
  263. package/src/style-spec/expression/definitions/assertion.js +0 -130
  264. package/src/style-spec/expression/definitions/at.js +0 -70
  265. package/src/style-spec/expression/definitions/case.js +0 -85
  266. package/src/style-spec/expression/definitions/coalesce.js +0 -93
  267. package/src/style-spec/expression/definitions/coercion.js +0 -133
  268. package/src/style-spec/expression/definitions/collator.js +0 -78
  269. package/src/style-spec/expression/definitions/comparison.js +0 -184
  270. package/src/style-spec/expression/definitions/format.js +0 -144
  271. package/src/style-spec/expression/definitions/format_section_override.js +0 -54
  272. package/src/style-spec/expression/definitions/image.js +0 -52
  273. package/src/style-spec/expression/definitions/in.js +0 -92
  274. package/src/style-spec/expression/definitions/index.js +0 -561
  275. package/src/style-spec/expression/definitions/interpolate.js +0 -267
  276. package/src/style-spec/expression/definitions/length.js +0 -61
  277. package/src/style-spec/expression/definitions/let.js +0 -72
  278. package/src/style-spec/expression/definitions/literal.js +0 -77
  279. package/src/style-spec/expression/definitions/match.js +0 -158
  280. package/src/style-spec/expression/definitions/number_format.js +0 -142
  281. package/src/style-spec/expression/definitions/step.js +0 -120
  282. package/src/style-spec/expression/definitions/var.js +0 -46
  283. package/src/style-spec/expression/definitions/within.js +0 -333
  284. package/src/style-spec/expression/evaluation_context.js +0 -59
  285. package/src/style-spec/expression/expression.js +0 -27
  286. package/src/style-spec/expression/index.js +0 -392
  287. package/src/style-spec/expression/is_constant.js +0 -59
  288. package/src/style-spec/expression/parsing_context.js +0 -233
  289. package/src/style-spec/expression/parsing_error.js +0 -13
  290. package/src/style-spec/expression/runtime_error.js +0 -17
  291. package/src/style-spec/expression/scope.js +0 -36
  292. package/src/style-spec/expression/stops.js +0 -39
  293. package/src/style-spec/expression/types/collator.js +0 -61
  294. package/src/style-spec/expression/types/formatted.js +0 -73
  295. package/src/style-spec/expression/types/resolved_image.js +0 -29
  296. package/src/style-spec/expression/types.js +0 -106
  297. package/src/style-spec/expression/values.js +0 -123
  298. package/src/style-spec/feature_filter/README.md +0 -55
  299. package/src/style-spec/feature_filter/convert.js +0 -208
  300. package/src/style-spec/feature_filter/index.js +0 -165
  301. package/src/style-spec/format.js +0 -51
  302. package/src/style-spec/function/convert.js +0 -254
  303. package/src/style-spec/function/index.js +0 -262
  304. package/src/style-spec/group_by_layout.js +0 -75
  305. package/src/style-spec/migrate/expressions.js +0 -39
  306. package/src/style-spec/migrate/v8.js +0 -203
  307. package/src/style-spec/migrate/v9.js +0 -26
  308. package/src/style-spec/migrate.js +0 -36
  309. package/src/style-spec/package.json +0 -41
  310. package/src/style-spec/read_style.js +0 -14
  311. package/src/style-spec/reference/latest.js +0 -3
  312. package/src/style-spec/reference/v8.json +0 -5808
  313. package/src/style-spec/rollup.config.js +0 -45
  314. package/src/style-spec/style-spec.js +0 -122
  315. package/src/style-spec/types.js +0 -438
  316. package/src/style-spec/util/color.js +0 -95
  317. package/src/style-spec/util/color_spaces.js +0 -139
  318. package/src/style-spec/util/deep_equal.js +0 -28
  319. package/src/style-spec/util/extend.js +0 -10
  320. package/src/style-spec/util/get_type.js +0 -17
  321. package/src/style-spec/util/interpolate.js +0 -22
  322. package/src/style-spec/util/properties.js +0 -15
  323. package/src/style-spec/util/ref_properties.js +0 -2
  324. package/src/style-spec/util/result.js +0 -19
  325. package/src/style-spec/util/unbundle_jsonlint.js +0 -24
  326. package/src/style-spec/validate/latest.js +0 -11
  327. package/src/style-spec/validate/validate.js +0 -75
  328. package/src/style-spec/validate/validate_array.js +0 -52
  329. package/src/style-spec/validate/validate_boolean.js +0 -15
  330. package/src/style-spec/validate/validate_color.js +0 -20
  331. package/src/style-spec/validate/validate_constants.js +0 -13
  332. package/src/style-spec/validate/validate_enum.js +0 -21
  333. package/src/style-spec/validate/validate_expression.js +0 -43
  334. package/src/style-spec/validate/validate_filter.js +0 -111
  335. package/src/style-spec/validate/validate_formatted.js +0 -11
  336. package/src/style-spec/validate/validate_function.js +0 -207
  337. package/src/style-spec/validate/validate_glyphs_url.js +0 -21
  338. package/src/style-spec/validate/validate_image.js +0 -11
  339. package/src/style-spec/validate/validate_layer.js +0 -134
  340. package/src/style-spec/validate/validate_layout_property.js +0 -6
  341. package/src/style-spec/validate/validate_light.js +0 -47
  342. package/src/style-spec/validate/validate_number.js +0 -29
  343. package/src/style-spec/validate/validate_object.js +0 -61
  344. package/src/style-spec/validate/validate_paint_property.js +0 -6
  345. package/src/style-spec/validate/validate_property.js +0 -64
  346. package/src/style-spec/validate/validate_source.js +0 -111
  347. package/src/style-spec/validate/validate_string.js +0 -15
  348. package/src/style-spec/validate_mapbox_api_supported.js +0 -171
  349. package/src/style-spec/validate_style.js +0 -39
  350. package/src/style-spec/validate_style.min.js +0 -78
  351. package/src/style-spec/visit.js +0 -77
  352. package/src/symbol/anchor.js +0 -26
  353. package/src/symbol/check_max_angle.js +0 -81
  354. package/src/symbol/clip_line.js +0 -71
  355. package/src/symbol/collision_feature.js +0 -217
  356. package/src/symbol/collision_index.js +0 -372
  357. package/src/symbol/cross_tile_symbol_index.js +0 -301
  358. package/src/symbol/get_anchors.js +0 -167
  359. package/src/symbol/grid_index.js +0 -335
  360. package/src/symbol/mergelines.js +0 -82
  361. package/src/symbol/one_em.js +0 -4
  362. package/src/symbol/opacity_state.js +0 -27
  363. package/src/symbol/placement.js +0 -1062
  364. package/src/symbol/projection.js +0 -450
  365. package/src/symbol/quads.js +0 -334
  366. package/src/symbol/shaping.js +0 -816
  367. package/src/symbol/symbol_layout.js +0 -772
  368. package/src/symbol/symbol_size.js +0 -113
  369. package/src/symbol/transform_text.js +0 -29
  370. package/src/types/callback.js +0 -17
  371. package/src/types/cancelable.js +0 -3
  372. package/src/types/tilejson.js +0 -17
  373. package/src/types/transferable.js +0 -3
  374. package/src/types/window.js +0 -172
  375. package/src/ui/anchor.js +0 -32
  376. package/src/ui/bind_handlers.js +0 -202
  377. package/src/ui/camera.js +0 -1152
  378. package/src/ui/control/attribution_control.js +0 -189
  379. package/src/ui/control/fps_control.js +0 -185
  380. package/src/ui/control/fullscreen_control.js +0 -147
  381. package/src/ui/control/geolocate_control.js +0 -594
  382. package/src/ui/control/logo_control.js +0 -92
  383. package/src/ui/control/navigation_control.js +0 -148
  384. package/src/ui/control/scale_control.js +0 -142
  385. package/src/ui/crs.js +0 -64
  386. package/src/ui/default_locale.js +0 -20
  387. package/src/ui/events.js +0 -806
  388. package/src/ui/handler/box_zoom.js +0 -175
  389. package/src/ui/handler/dblclick_zoom.js +0 -139
  390. package/src/ui/handler/drag_pan.js +0 -416
  391. package/src/ui/handler/drag_rotate.js +0 -378
  392. package/src/ui/handler/keyboard.js +0 -161
  393. package/src/ui/handler/scroll_zoom.js +0 -333
  394. package/src/ui/handler/touch_zoom_rotate.js +0 -293
  395. package/src/ui/hash.js +0 -147
  396. package/src/ui/map.js +0 -2883
  397. package/src/ui/marker.js +0 -607
  398. package/src/ui/offline_map.js +0 -91
  399. package/src/ui/popup.js +0 -530
  400. package/src/util/actor.js +0 -212
  401. package/src/util/ajax.js +0 -371
  402. package/src/util/browser/web_worker.js +0 -10
  403. package/src/util/browser/window.js +0 -5
  404. package/src/util/browser.js +0 -70
  405. package/src/util/classify_rings.js +0 -52
  406. package/src/util/color_ramp.js +0 -28
  407. package/src/util/config.js +0 -30
  408. package/src/util/debug.js +0 -12
  409. package/src/util/dictionary_coder.js +0 -30
  410. package/src/util/dispatcher.js +0 -70
  411. package/src/util/dom.js +0 -144
  412. package/src/util/evented.js +0 -174
  413. package/src/util/find_pole_of_inaccessibility.js +0 -129
  414. package/src/util/global_worker_pool.js +0 -17
  415. package/src/util/image.js +0 -142
  416. package/src/util/intersection_tests.js +0 -208
  417. package/src/util/is_char_in_unicode_block.js +0 -311
  418. package/src/util/mapbox.js +0 -486
  419. package/src/util/offscreen_canvas_supported.js +0 -14
  420. package/src/util/performance.js +0 -112
  421. package/src/util/primitives.js +0 -145
  422. package/src/util/resolve_tokens.js +0 -16
  423. package/src/util/script_detection.js +0 -328
  424. package/src/util/sku_token.js +0 -42
  425. package/src/util/smart_wrap.js +0 -55
  426. package/src/util/struct_array.js +0 -243
  427. package/src/util/struct_array.js.ejs +0 -112
  428. package/src/util/struct_array_layout.js.ejs +0 -98
  429. package/src/util/task_queue.js +0 -68
  430. package/src/util/throttle.js +0 -28
  431. package/src/util/throttled_invoker.js +0 -46
  432. package/src/util/tile_cover.js +0 -101
  433. package/src/util/tile_request_cache.js +0 -172
  434. package/src/util/util.js +0 -504
  435. package/src/util/vectortile_to_geojson.js +0 -54
  436. package/src/util/verticalize_punctuation.js +0 -114
  437. package/src/util/web_worker.js +0 -91
  438. package/src/util/web_worker_transfer.js +0 -266
  439. package/src/util/webp_supported.js +0 -69
  440. package/src/util/window.js +0 -102
  441. package/src/util/worker_pool.js +0 -47
@@ -1,687 +0,0 @@
1
- // @flow
2
-
3
- import {packUint8ToFloat} from '../shaders/encode_attribute';
4
- import Color from '../style-spec/util/color';
5
- import {supportsPropertyExpression} from '../style-spec/util/properties';
6
- import {register} from '../util/web_worker_transfer';
7
- import {PossiblyEvaluatedPropertyValue} from '../style/properties';
8
- import {StructArrayLayout1f4, StructArrayLayout2f8, StructArrayLayout4f16, PatternLayoutArray} from './array_types';
9
- import {clamp} from '../util/util';
10
-
11
- import EvaluationParameters from '../style/evaluation_parameters';
12
- import FeaturePositionMap from './feature_position_map';
13
- import {
14
- Uniform,
15
- Uniform1f,
16
- UniformColor,
17
- Uniform4f,
18
- type UniformLocations
19
- } from '../render/uniform_binding';
20
-
21
- import type {CanonicalTileID} from '../source/tile_id';
22
- import type Context from '../gl/context';
23
- import type {TypedStyleLayer} from '../style/style_layer/typed_style_layer';
24
- import type {CrossfadeParameters} from '../style/evaluation_parameters';
25
- import type {StructArray, StructArrayMember} from '../util/struct_array';
26
- import type VertexBuffer from '../gl/vertex_buffer';
27
- import type {ImagePosition} from '../render/image_atlas';
28
- import type {
29
- Feature,
30
- FeatureState,
31
- GlobalProperties,
32
- SourceExpression,
33
- CompositeExpression
34
- } from '../style-spec/expression';
35
- import type {PossiblyEvaluated} from '../style/properties';
36
- import type {FeatureStates} from '../source/source_state';
37
- import type {FormattedSection} from '../style-spec/expression/types/formatted';
38
-
39
- export type BinderUniform = {
40
- name: string,
41
- property: string,
42
- binding: Uniform<any>
43
- };
44
-
45
- function packColor(color: Color): [number, number] {
46
- return [
47
- packUint8ToFloat(255 * color.r, 255 * color.g),
48
- packUint8ToFloat(255 * color.b, 255 * color.a)
49
- ];
50
- }
51
-
52
- /**
53
- * `Binder` is the interface definition for the strategies for constructing,
54
- * uploading, and binding paint property data as GLSL attributes. Most style-
55
- * spec properties have a 1:1 relationship to shader attribute/uniforms, but
56
- * some require multliple values per feature to be passed to the GPU, and in
57
- * those cases we bind multiple attributes/uniforms.
58
- *
59
- * It has three implementations, one for each of the three strategies we use:
60
- *
61
- * * For _constant_ properties -- those whose value is a constant, or the constant
62
- * result of evaluating a camera expression at a particular camera position -- we
63
- * don't need a vertex attribute buffer, and instead use a uniform.
64
- * * For data expressions, we use a vertex buffer with a single attribute value,
65
- * the evaluated result of the source function for the given feature.
66
- * * For composite expressions, we use a vertex buffer with two attributes: min and
67
- * max values covering the range of zooms at which we expect the tile to be
68
- * displayed. These values are calculated by evaluating the composite expression for
69
- * the given feature at strategically chosen zoom levels. In addition to this
70
- * attribute data, we also use a uniform value which the shader uses to interpolate
71
- * between the min and max value at the final displayed zoom level. The use of a
72
- * uniform allows us to cheaply update the value on every frame.
73
- *
74
- * Note that the shader source varies depending on whether we're using a uniform or
75
- * attribute. We dynamically compile shaders at runtime to accomodate this.
76
- *
77
- * @private
78
- */
79
-
80
- interface AttributeBinder {
81
- populatePaintArray(length: number, feature: Feature, imagePositions: {[_: string]: ImagePosition}, canonical?: CanonicalTileID, formattedSection?: FormattedSection): void;
82
- updatePaintArray(start: number, length: number, feature: Feature, featureState: FeatureState, imagePositions: {[_: string]: ImagePosition}): void;
83
- upload(Context): void;
84
- destroy(): void;
85
- }
86
-
87
- interface UniformBinder {
88
- uniformNames: Array<string>;
89
- setUniform(uniform: Uniform<*>, globals: GlobalProperties, currentValue: PossiblyEvaluatedPropertyValue<*>, uniformName: string): void;
90
- getBinding(context: Context, location: WebGLUniformLocation, name: string): $Shape<Uniform<*>>;
91
- }
92
-
93
- class ConstantBinder implements UniformBinder {
94
- value: mixed;
95
- type: string;
96
- uniformNames: Array<string>;
97
-
98
- constructor(value: mixed, names: Array<string>, type: string) {
99
- this.value = value;
100
- this.uniformNames = names.map(name => `u_${name}`);
101
- this.type = type;
102
- }
103
-
104
- setUniform(uniform: Uniform<*>, globals: GlobalProperties, currentValue: PossiblyEvaluatedPropertyValue<mixed>): void {
105
- uniform.set(currentValue.constantOr(this.value));
106
- }
107
-
108
- getBinding(context: Context, location: WebGLUniformLocation, _: string): $Shape<Uniform<any>> {
109
- return (this.type === 'color') ?
110
- new UniformColor(context, location) :
111
- new Uniform1f(context, location);
112
- }
113
- }
114
-
115
- class CrossFadedConstantBinder implements UniformBinder {
116
- uniformNames: Array<string>;
117
- patternFrom: ?Array<number>;
118
- patternTo: ?Array<number>;
119
- pixelRatioFrom: number;
120
- pixelRatioTo: number;
121
-
122
- constructor(value: mixed, names: Array<string>) {
123
- this.uniformNames = names.map(name => `u_${name}`);
124
- this.patternFrom = null;
125
- this.patternTo = null;
126
- this.pixelRatioFrom = 1.0;
127
- this.pixelRatioTo = 1.0;
128
- }
129
-
130
- setConstantPatternPositions(posTo: ImagePosition, posFrom: ImagePosition) {
131
- this.pixelRatioFrom = posFrom.pixelRatio;
132
- this.pixelRatioTo = posTo.pixelRatio;
133
- this.patternFrom = posFrom.tlbr;
134
- this.patternTo = posTo.tlbr;
135
- }
136
-
137
- setUniform(uniform: Uniform<*>, globals: GlobalProperties, currentValue: PossiblyEvaluatedPropertyValue<mixed>, uniformName: string) {
138
- const pos =
139
- uniformName === 'u_pattern_to' ? this.patternTo :
140
- uniformName === 'u_pattern_from' ? this.patternFrom :
141
- uniformName === 'u_pixel_ratio_to' ? this.pixelRatioTo :
142
- uniformName === 'u_pixel_ratio_from' ? this.pixelRatioFrom : null;
143
- if (pos) uniform.set(pos);
144
- }
145
-
146
- getBinding(context: Context, location: WebGLUniformLocation, name: string): $Shape<Uniform<any>> {
147
- return name.substr(0, 9) === 'u_pattern' ?
148
- new Uniform4f(context, location) :
149
- new Uniform1f(context, location);
150
- }
151
- }
152
-
153
- class SourceExpressionBinder implements AttributeBinder {
154
- expression: SourceExpression;
155
- type: string;
156
- maxValue: number;
157
-
158
- paintVertexArray: StructArray;
159
- paintVertexAttributes: Array<StructArrayMember>;
160
- paintVertexBuffer: ?VertexBuffer;
161
-
162
- constructor(expression: SourceExpression, names: Array<string>, type: string, PaintVertexArray: Class<StructArray>) {
163
- this.expression = expression;
164
- this.type = type;
165
- this.maxValue = 0;
166
- this.paintVertexAttributes = names.map((name) => ({
167
- name: `a_${name}`,
168
- type: 'Float32',
169
- components: type === 'color' ? 2 : 1,
170
- offset: 0
171
- }));
172
- this.paintVertexArray = new PaintVertexArray();
173
- }
174
-
175
- populatePaintArray(newLength: number, feature: Feature, imagePositions: {[_: string]: ImagePosition}, canonical?: CanonicalTileID, formattedSection?: FormattedSection) {
176
- const start = this.paintVertexArray.length;
177
- const value = this.expression.evaluate(new EvaluationParameters(0), feature, {}, canonical, [], formattedSection);
178
- this.paintVertexArray.resize(newLength);
179
- this._setPaintValue(start, newLength, value);
180
- }
181
-
182
- updatePaintArray(start: number, end: number, feature: Feature, featureState: FeatureState) {
183
- const value = this.expression.evaluate({zoom: 0}, feature, featureState);
184
- this._setPaintValue(start, end, value);
185
- }
186
-
187
- _setPaintValue(start, end, value) {
188
- if (this.type === 'color') {
189
- const color = packColor(value);
190
- for (let i = start; i < end; i++) {
191
- this.paintVertexArray.emplace(i, color[0], color[1]);
192
- }
193
- } else {
194
- for (let i = start; i < end; i++) {
195
- this.paintVertexArray.emplace(i, value);
196
- }
197
- this.maxValue = Math.max(this.maxValue, Math.abs(value));
198
- }
199
- }
200
-
201
- upload(context: Context) {
202
- if (this.paintVertexArray && this.paintVertexArray.arrayBuffer) {
203
- if (this.paintVertexBuffer && this.paintVertexBuffer.buffer) {
204
- this.paintVertexBuffer.updateData(this.paintVertexArray);
205
- } else {
206
- this.paintVertexBuffer = context.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);
207
- }
208
- }
209
- }
210
-
211
- destroy() {
212
- if (this.paintVertexBuffer) {
213
- this.paintVertexBuffer.destroy();
214
- }
215
- }
216
- }
217
-
218
- class CompositeExpressionBinder implements AttributeBinder, UniformBinder {
219
- expression: CompositeExpression;
220
- uniformNames: Array<string>;
221
- type: string;
222
- useIntegerZoom: boolean;
223
- zoom: number;
224
- maxValue: number;
225
-
226
- paintVertexArray: StructArray;
227
- paintVertexAttributes: Array<StructArrayMember>;
228
- paintVertexBuffer: ?VertexBuffer;
229
-
230
- constructor(expression: CompositeExpression, names: Array<string>, type: string, useIntegerZoom: boolean, zoom: number, PaintVertexArray: Class<StructArray>) {
231
- this.expression = expression;
232
- this.uniformNames = names.map(name => `u_${name}_t`);
233
- this.type = type;
234
- this.useIntegerZoom = useIntegerZoom;
235
- this.zoom = zoom;
236
- this.maxValue = 0;
237
- this.paintVertexAttributes = names.map((name) => ({
238
- name: `a_${name}`,
239
- type: 'Float32',
240
- components: type === 'color' ? 4 : 2,
241
- offset: 0
242
- }));
243
- this.paintVertexArray = new PaintVertexArray();
244
- }
245
-
246
- populatePaintArray(newLength: number, feature: Feature, imagePositions: {[_: string]: ImagePosition}, canonical?: CanonicalTileID, formattedSection?: FormattedSection) {
247
- const min = this.expression.evaluate(new EvaluationParameters(this.zoom), feature, {}, canonical, [], formattedSection);
248
- const max = this.expression.evaluate(new EvaluationParameters(this.zoom + 1), feature, {}, canonical, [], formattedSection);
249
- const start = this.paintVertexArray.length;
250
- this.paintVertexArray.resize(newLength);
251
- this._setPaintValue(start, newLength, min, max);
252
- }
253
-
254
- updatePaintArray(start: number, end: number, feature: Feature, featureState: FeatureState) {
255
- const min = this.expression.evaluate({zoom: this.zoom}, feature, featureState);
256
- const max = this.expression.evaluate({zoom: this.zoom + 1}, feature, featureState);
257
- this._setPaintValue(start, end, min, max);
258
- }
259
-
260
- _setPaintValue(start, end, min, max) {
261
- if (this.type === 'color') {
262
- const minColor = packColor(min);
263
- const maxColor = packColor(max);
264
- for (let i = start; i < end; i++) {
265
- this.paintVertexArray.emplace(i, minColor[0], minColor[1], maxColor[0], maxColor[1]);
266
- }
267
- } else {
268
- for (let i = start; i < end; i++) {
269
- this.paintVertexArray.emplace(i, min, max);
270
- }
271
- this.maxValue = Math.max(this.maxValue, Math.abs(min), Math.abs(max));
272
- }
273
- }
274
-
275
- upload(context: Context) {
276
- if (this.paintVertexArray && this.paintVertexArray.arrayBuffer) {
277
- if (this.paintVertexBuffer && this.paintVertexBuffer.buffer) {
278
- this.paintVertexBuffer.updateData(this.paintVertexArray);
279
- } else {
280
- this.paintVertexBuffer = context.createVertexBuffer(this.paintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);
281
- }
282
- }
283
- }
284
-
285
- destroy() {
286
- if (this.paintVertexBuffer) {
287
- this.paintVertexBuffer.destroy();
288
- }
289
- }
290
-
291
- setUniform(uniform: Uniform<*>, globals: GlobalProperties): void {
292
- const currentZoom = this.useIntegerZoom ? Math.floor(globals.zoom) : globals.zoom;
293
- const factor = clamp(this.expression.interpolationFactor(currentZoom, this.zoom, this.zoom + 1), 0, 1);
294
- uniform.set(factor);
295
- }
296
-
297
- getBinding(context: Context, location: WebGLUniformLocation, _: string): Uniform1f {
298
- return new Uniform1f(context, location);
299
- }
300
- }
301
-
302
- class CrossFadedCompositeBinder implements AttributeBinder {
303
- expression: CompositeExpression;
304
- type: string;
305
- useIntegerZoom: boolean;
306
- zoom: number;
307
- layerId: string;
308
-
309
- zoomInPaintVertexArray: StructArray;
310
- zoomOutPaintVertexArray: StructArray;
311
- zoomInPaintVertexBuffer: ?VertexBuffer;
312
- zoomOutPaintVertexBuffer: ?VertexBuffer;
313
- paintVertexAttributes: Array<StructArrayMember>;
314
-
315
- constructor(expression: CompositeExpression, names: Array<string>, type: string, useIntegerZoom: boolean, zoom: number, PaintVertexArray: Class<StructArray>, layerId: string) {
316
- this.expression = expression;
317
- this.type = type;
318
- this.useIntegerZoom = useIntegerZoom;
319
- this.zoom = zoom;
320
- this.layerId = layerId;
321
-
322
- this.paintVertexAttributes = names.map((name) => ({
323
- name: `a_${name}`,
324
- type: 'Uint16',
325
- components: 4,
326
- offset: 0
327
- }));
328
-
329
- this.zoomInPaintVertexArray = new PaintVertexArray();
330
- this.zoomOutPaintVertexArray = new PaintVertexArray();
331
- }
332
-
333
- populatePaintArray(length: number, feature: Feature, imagePositions: {[_: string]: ImagePosition}) {
334
- const start = this.zoomInPaintVertexArray.length;
335
- this.zoomInPaintVertexArray.resize(length);
336
- this.zoomOutPaintVertexArray.resize(length);
337
- this._setPaintValues(start, length, feature.patterns && feature.patterns[this.layerId], imagePositions);
338
- }
339
-
340
- updatePaintArray(start: number, end: number, feature: Feature, featureState: FeatureState, imagePositions: {[_: string]: ImagePosition}) {
341
- this._setPaintValues(start, end, feature.patterns && feature.patterns[this.layerId], imagePositions);
342
- }
343
-
344
- _setPaintValues(start, end, patterns, positions) {
345
- if (!positions || !patterns) return;
346
-
347
- const {min, mid, max} = patterns;
348
- const imageMin = positions[min];
349
- const imageMid = positions[mid];
350
- const imageMax = positions[max];
351
- if (!imageMin || !imageMid || !imageMax) return;
352
-
353
- // We populate two paint arrays because, for cross-faded properties, we don't know which direction
354
- // we're cross-fading to at layout time. In order to keep vertex attributes to a minimum and not pass
355
- // unnecessary vertex data to the shaders, we determine which to upload at draw time.
356
- for (let i = start; i < end; i++) {
357
- this.zoomInPaintVertexArray.emplace(i,
358
- imageMid.tl[0], imageMid.tl[1], imageMid.br[0], imageMid.br[1],
359
- imageMin.tl[0], imageMin.tl[1], imageMin.br[0], imageMin.br[1],
360
- imageMid.pixelRatio,
361
- imageMin.pixelRatio,
362
- );
363
- this.zoomOutPaintVertexArray.emplace(i,
364
- imageMid.tl[0], imageMid.tl[1], imageMid.br[0], imageMid.br[1],
365
- imageMax.tl[0], imageMax.tl[1], imageMax.br[0], imageMax.br[1],
366
- imageMid.pixelRatio,
367
- imageMax.pixelRatio,
368
- );
369
- }
370
- }
371
-
372
- upload(context: Context) {
373
- if (this.zoomInPaintVertexArray && this.zoomInPaintVertexArray.arrayBuffer && this.zoomOutPaintVertexArray && this.zoomOutPaintVertexArray.arrayBuffer) {
374
- this.zoomInPaintVertexBuffer = context.createVertexBuffer(this.zoomInPaintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);
375
- this.zoomOutPaintVertexBuffer = context.createVertexBuffer(this.zoomOutPaintVertexArray, this.paintVertexAttributes, this.expression.isStateDependent);
376
- }
377
- }
378
-
379
- destroy() {
380
- if (this.zoomOutPaintVertexBuffer) this.zoomOutPaintVertexBuffer.destroy();
381
- if (this.zoomInPaintVertexBuffer) this.zoomInPaintVertexBuffer.destroy();
382
- }
383
- }
384
-
385
- /**
386
- * ProgramConfiguration contains the logic for binding style layer properties and tile
387
- * layer feature data into GL program uniforms and vertex attributes.
388
- *
389
- * Non-data-driven property values are bound to shader uniforms. Data-driven property
390
- * values are bound to vertex attributes. In order to support a uniform GLSL syntax over
391
- * both, [Mapbox GL Shaders](https://github.com/mapbox/mapbox-gl-shaders) defines a `#pragma`
392
- * abstraction, which ProgramConfiguration is responsible for implementing. At runtime,
393
- * it examines the attributes of a particular layer, combines this with fixed knowledge
394
- * about how layers of the particular type are implemented, and determines which uniforms
395
- * and vertex attributes will be required. It can then substitute the appropriate text
396
- * into the shader source code, create and link a program, and bind the uniforms and
397
- * vertex attributes in preparation for drawing.
398
- *
399
- * When a vector tile is parsed, this same configuration information is used to
400
- * populate the attribute buffers needed for data-driven styling using the zoom
401
- * level and feature property data.
402
- *
403
- * @private
404
- */
405
- export default class ProgramConfiguration {
406
- binders: {[_: string]: (AttributeBinder | UniformBinder) };
407
- cacheKey: string;
408
- layoutAttributes: Array<StructArrayMember>;
409
-
410
- _buffers: Array<VertexBuffer>;
411
-
412
- constructor(layer: TypedStyleLayer, zoom: number, filterProperties: (_: string) => boolean, layoutAttributes: Array<StructArrayMember>) {
413
- this.binders = {};
414
- this.layoutAttributes = layoutAttributes;
415
- this._buffers = [];
416
-
417
- const keys = [];
418
-
419
- for (const property in layer.paint._values) {
420
- if (!filterProperties(property)) continue;
421
- const value = layer.paint.get(property);
422
- if (!(value instanceof PossiblyEvaluatedPropertyValue) || !supportsPropertyExpression(value.property.specification)) {
423
- continue;
424
- }
425
- const names = paintAttributeNames(property, layer.type);
426
- const expression = value.value;
427
- const type = value.property.specification.type;
428
- const useIntegerZoom = value.property.useIntegerZoom;
429
- const propType = value.property.specification['property-type'];
430
- const isCrossFaded = propType === 'cross-faded' || propType === 'cross-faded-data-driven';
431
-
432
- if (expression.kind === 'constant') {
433
- this.binders[property] = isCrossFaded ?
434
- new CrossFadedConstantBinder(expression.value, names) :
435
- new ConstantBinder(expression.value, names, type);
436
- keys.push(`/u_${property}`);
437
-
438
- } else if (expression.kind === 'source' || isCrossFaded) {
439
- const StructArrayLayout = layoutType(property, type, 'source');
440
- this.binders[property] = isCrossFaded ?
441
- new CrossFadedCompositeBinder(expression, names, type, useIntegerZoom, zoom, StructArrayLayout, layer.id) :
442
- new SourceExpressionBinder(expression, names, type, StructArrayLayout);
443
- keys.push(`/a_${property}`);
444
-
445
- } else {
446
- const StructArrayLayout = layoutType(property, type, 'composite');
447
- this.binders[property] = new CompositeExpressionBinder(expression, names, type, useIntegerZoom, zoom, StructArrayLayout);
448
- keys.push(`/z_${property}`);
449
- }
450
- }
451
-
452
- this.cacheKey = keys.sort().join('');
453
- }
454
-
455
- getMaxValue(property: string): number {
456
- const binder = this.binders[property];
457
- return binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder ? binder.maxValue : 0;
458
- }
459
-
460
- populatePaintArrays(newLength: number, feature: Feature, imagePositions: {[_: string]: ImagePosition}, canonical?: CanonicalTileID, formattedSection?: FormattedSection) {
461
- for (const property in this.binders) {
462
- const binder = this.binders[property];
463
- if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder)
464
- (binder: AttributeBinder).populatePaintArray(newLength, feature, imagePositions, canonical, formattedSection);
465
- }
466
- }
467
- setConstantPatternPositions(posTo: ImagePosition, posFrom: ImagePosition) {
468
- for (const property in this.binders) {
469
- const binder = this.binders[property];
470
- if (binder instanceof CrossFadedConstantBinder)
471
- binder.setConstantPatternPositions(posTo, posFrom);
472
- }
473
- }
474
-
475
- updatePaintArrays(featureStates: FeatureStates, featureMap: FeaturePositionMap, vtLayer: VectorTileLayer, layer: TypedStyleLayer, imagePositions: {[_: string]: ImagePosition}): boolean {
476
- let dirty: boolean = false;
477
- for (const id in featureStates) {
478
- const positions = featureMap.getPositions(id);
479
-
480
- for (const pos of positions) {
481
- const feature = vtLayer.feature(pos.index);
482
-
483
- for (const property in this.binders) {
484
- const binder = this.binders[property];
485
- if ((binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder ||
486
- binder instanceof CrossFadedCompositeBinder) && (binder: any).expression.isStateDependent === true) {
487
- //AHM: Remove after https://github.com/mapbox/mapbox-gl-js/issues/6255
488
- const value = layer.paint.get(property);
489
- (binder: any).expression = value.value;
490
- (binder: AttributeBinder).updatePaintArray(pos.start, pos.end, feature, featureStates[id], imagePositions);
491
- dirty = true;
492
- }
493
- }
494
- }
495
- }
496
- return dirty;
497
- }
498
-
499
- defines(): Array<string> {
500
- const result = [];
501
- for (const property in this.binders) {
502
- const binder = this.binders[property];
503
- if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder) {
504
- result.push(...binder.uniformNames.map(name => `#define HAS_UNIFORM_${name}`));
505
- }
506
- }
507
- return result;
508
- }
509
-
510
- getPaintVertexBuffers(): Array<VertexBuffer> {
511
- return this._buffers;
512
- }
513
-
514
- getUniforms(context: Context, locations: UniformLocations): Array<BinderUniform> {
515
- const uniforms = [];
516
- for (const property in this.binders) {
517
- const binder = this.binders[property];
518
- if (binder instanceof ConstantBinder || binder instanceof CrossFadedConstantBinder || binder instanceof CompositeExpressionBinder) {
519
- for (const name of binder.uniformNames) {
520
- if (locations[name]) {
521
- const binding = binder.getBinding(context, locations[name], name);
522
- uniforms.push({name, property, binding});
523
- }
524
- }
525
- }
526
- }
527
- return uniforms;
528
- }
529
-
530
- setUniforms<Properties: Object>(context: Context, binderUniforms: Array<BinderUniform>, properties: PossiblyEvaluated<Properties>, globals: GlobalProperties) {
531
- // Uniform state bindings are owned by the Program, but we set them
532
- // from within the ProgramConfiguraton's binder members.
533
- for (const {name, property, binding} of binderUniforms) {
534
- (this.binders[property]: any).setUniform(binding, globals, properties.get(property), name);
535
- }
536
- }
537
-
538
- updatePaintBuffers(crossfade?: CrossfadeParameters) {
539
- this._buffers = [];
540
-
541
- for (const property in this.binders) {
542
- const binder = this.binders[property];
543
- if (crossfade && binder instanceof CrossFadedCompositeBinder) {
544
- const patternVertexBuffer = crossfade.fromScale === 2 ? binder.zoomInPaintVertexBuffer : binder.zoomOutPaintVertexBuffer;
545
- if (patternVertexBuffer) this._buffers.push(patternVertexBuffer);
546
-
547
- } else if ((binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder) && binder.paintVertexBuffer) {
548
- this._buffers.push(binder.paintVertexBuffer);
549
- }
550
- }
551
- }
552
-
553
- upload(context: Context) {
554
- for (const property in this.binders) {
555
- const binder = this.binders[property];
556
- if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder)
557
- binder.upload(context);
558
- }
559
- this.updatePaintBuffers();
560
- }
561
-
562
- destroy() {
563
- for (const property in this.binders) {
564
- const binder = this.binders[property];
565
- if (binder instanceof SourceExpressionBinder || binder instanceof CompositeExpressionBinder || binder instanceof CrossFadedCompositeBinder)
566
- binder.destroy();
567
- }
568
- }
569
- }
570
-
571
- export class ProgramConfigurationSet<Layer: TypedStyleLayer> {
572
- programConfigurations: {[_: string]: ProgramConfiguration};
573
- needsUpload: boolean;
574
- _featureMap: FeaturePositionMap;
575
- _bufferOffset: number;
576
-
577
- constructor(layoutAttributes: Array<StructArrayMember>, layers: $ReadOnlyArray<Layer>, zoom: number, filterProperties: (_: string) => boolean = () => true) {
578
- this.programConfigurations = {};
579
- for (const layer of layers) {
580
- this.programConfigurations[layer.id] = new ProgramConfiguration(layer, zoom, filterProperties, layoutAttributes);
581
- }
582
- this.needsUpload = false;
583
- this._featureMap = new FeaturePositionMap();
584
- this._bufferOffset = 0;
585
- }
586
-
587
- populatePaintArrays(length: number, feature: Feature, index: number, imagePositions: {[_: string]: ImagePosition}, canonical: CanonicalTileID, formattedSection?: FormattedSection) {
588
- for (const key in this.programConfigurations) {
589
- this.programConfigurations[key].populatePaintArrays(length, feature, imagePositions, canonical, formattedSection);
590
- }
591
-
592
- if (feature.id !== undefined) {
593
- this._featureMap.add(feature.id, index, this._bufferOffset, length);
594
- }
595
- this._bufferOffset = length;
596
-
597
- this.needsUpload = true;
598
- }
599
-
600
- updatePaintArrays(featureStates: FeatureStates, vtLayer: VectorTileLayer, layers: $ReadOnlyArray<TypedStyleLayer>, imagePositions: {[_: string]: ImagePosition}) {
601
- for (const layer of layers) {
602
- this.needsUpload = this.programConfigurations[layer.id].updatePaintArrays(featureStates, this._featureMap, vtLayer, layer, imagePositions) || this.needsUpload;
603
- }
604
- }
605
-
606
- get(layerId: string) {
607
- return this.programConfigurations[layerId];
608
- }
609
-
610
- upload(context: Context) {
611
- if (!this.needsUpload) return;
612
- for (const layerId in this.programConfigurations) {
613
- this.programConfigurations[layerId].upload(context);
614
- }
615
- this.needsUpload = false;
616
- }
617
-
618
- destroy() {
619
- for (const layerId in this.programConfigurations) {
620
- this.programConfigurations[layerId].destroy();
621
- }
622
- }
623
- }
624
-
625
- function paintAttributeNames(property, type) {
626
- const attributeNameExceptions = {
627
- 'text-opacity': ['opacity'],
628
- 'icon-opacity': ['opacity'],
629
- 'text-color': ['fill_color'],
630
- 'icon-color': ['fill_color'],
631
- 'text-halo-color': ['halo_color'],
632
- 'icon-halo-color': ['halo_color'],
633
- 'text-halo-blur': ['halo_blur'],
634
- 'icon-halo-blur': ['halo_blur'],
635
- 'text-halo-width': ['halo_width'],
636
- 'icon-halo-width': ['halo_width'],
637
- 'line-gap-width': ['gapwidth'],
638
- 'line-pattern': ['pattern_to', 'pattern_from', 'pixel_ratio_to', 'pixel_ratio_from'],
639
- 'fill-pattern': ['pattern_to', 'pattern_from', 'pixel_ratio_to', 'pixel_ratio_from'],
640
- 'fill-extrusion-pattern': ['pattern_to', 'pattern_from', 'pixel_ratio_to', 'pixel_ratio_from'],
641
- };
642
-
643
- return attributeNameExceptions[property] || [property.replace(`${type}-`, '').replace(/-/g, '_')];
644
- }
645
-
646
- function getLayoutException(property) {
647
- const propertyExceptions = {
648
- 'line-pattern':{
649
- 'source': PatternLayoutArray,
650
- 'composite': PatternLayoutArray
651
- },
652
- 'fill-pattern': {
653
- 'source': PatternLayoutArray,
654
- 'composite': PatternLayoutArray
655
- },
656
- 'fill-extrusion-pattern':{
657
- 'source': PatternLayoutArray,
658
- 'composite': PatternLayoutArray
659
- }
660
- };
661
-
662
- return propertyExceptions[property];
663
- }
664
-
665
- function layoutType(property, type, binderType) {
666
- const defaultLayouts = {
667
- 'color': {
668
- 'source': StructArrayLayout2f8,
669
- 'composite': StructArrayLayout4f16
670
- },
671
- 'number': {
672
- 'source': StructArrayLayout1f4,
673
- 'composite': StructArrayLayout2f8
674
- }
675
- };
676
-
677
- const layoutException = getLayoutException(property);
678
- return layoutException && layoutException[binderType] || defaultLayouts[type][binderType];
679
- }
680
-
681
- register('ConstantBinder', ConstantBinder);
682
- register('CrossFadedConstantBinder', CrossFadedConstantBinder);
683
- register('SourceExpressionBinder', SourceExpressionBinder);
684
- register('CrossFadedCompositeBinder', CrossFadedCompositeBinder);
685
- register('CompositeExpressionBinder', CompositeExpressionBinder);
686
- register('ProgramConfiguration', ProgramConfiguration, {omit: ['_buffers']});
687
- register('ProgramConfigurationSet', ProgramConfigurationSet);
@@ -1,7 +0,0 @@
1
- // @flow
2
- import {createLayout} from '../util/struct_array';
3
-
4
- export default createLayout([
5
- {name: 'a_pos', type: 'Int16', components: 2},
6
- {name: 'a_texture_pos', type: 'Int16', components: 2}
7
- ]);